Wenn Qodly.com auf 4D Server trifft, worüber reden sie dann?

Im September letzten Jahres hat 4D Qodly Studio for 4D vorgestellt, das Ihnen umfassende Vorteile für die Erstellung dynamischer, effizienter Webanwendungen für Unternehmen bietet. Falls Sie es noch nicht mit Qodyl Studio begonnen haben, lesen Sie diesen Blogpost, um zu erfahren, wie Sie loslegen können.

Qodly Studio ist auch auf qodly.com verfügbar und ist Teil des neuen SaaS-Angebots von 4D.

Möchten Sie Ihre 4D Anwendungsdaten und Geschäftslogik in einer qodly.com Anwendung nutzen? Dann wird es Sie freuen zu erfahren, dass eine qodly.com Web-Anwendung jetzt mit einer 4D Anwendung auf einem 4D Server verbunden werden kann – dank des neuen QodlyScript openDatastore Befehls. Sie können dann ein 4D Projekt als Remote-Datenspeicher von Qodly.com verwenden.

Mit anderen Worten:

  • Eine 4D Server basierte Anwendung kann beides: 4D Desktop Clients und Web Clients mit Qodly Formularen bedienen. Wenn Sie genau das tun, brauchen Sie nicht weiter zu lesen.
  • Aber nehmen wir an, Sie möchten Ihre bestehende 4D Server basierte Anwendung mit einer völlig neuen, nur webbasierten Anwendung erweitern – und diese wird auf Qodly.com gehostet: dieser Beitrag ist für Sie und zeigt, wie man zwischen beiden kommuniziert.

Konkrete Beispiele

Hinweis: Der folgende Code verwendet QodlyScript , eine Sprache, die auf JavaScript und 4D basiert. Sie sieht ähnlich aus wie 4D, ist aber nicht ganz identisch.

Beispiel 1

Nehmen wir an, wir entwickeln eine HR-Webanwendung auf qodly.com: Qodly-HR. Wir haben bereits einige Geschäftslogik in einem 4D Projekt kodiert: 4D-HR. Anstatt diese Logik in QodlyScript neu zu schreiben, rufen wir sie einfach mit dem openDatastore Befehl auf!

In diesem einfachen Beispiel werden die Stundensätze der Mitarbeiter in Abhängigkeit vom Land, in dem sie arbeiten, behandelt. Je nach Arbeitsort ist der Stundensatz eines Mitarbeiters nicht derselbe.

Hier ist das Modell in Qodly-HR:

In Qodly-HR legen wir Mitarbeiter an. Aber um ihre Stundensätze zu berechnen, greifen wir auf eine bereits bestehende Geschäftslogik von 4D-HR zurück. Die Funktion computeHourlyRates ist in 4D-HR verfügbar: Sie nimmt einen Stundensatz in einem bestimmten Land als Eingabeparameter und gibt eine Sammlung von Stundensätzen pro Land zurück.

Der folgende QodlyScript-Codeausschnitt wird verwendet, um einen Mitarbeiter in Qodly-HR anzulegen. In diesem Codestück rufen wir unsere entfernte 4D-HR Datenspeicherfunktion computeHourlyRates auf, indem wir ihr einen französischen Stundensatz übergeben, um britische und US-amerikanische Stundensätze zu ermitteln.

var employee: cs.EmployeesEntity
var salaryInfo : cs.SalaryInfoEntity
var salaries: collection
var info : object
var status: object

employee = ds.Employees.new()
employee.firstname="Mary"
employee.lastname="Smith"
status=employee.save()

salaries=ds.getHRDatastore().computeHourlyRates("FR", 100)
//Gehälter ist [{Land:FR,hourlyRate:100},{Land:UK,hourlyRate:95},{Land:US,hourlyRate:90}]

forEach(info, gehälter)
salaryInfo=ds.SalaryInfo.new()
salaryInfo.fromObject(info)
salaryInfo.theEmployee=employee
status=salaryInfo.save()
end

 

Hier ist die Datastore-Klasse:

extends DataStoreImplementation

exposed Function getHRDatastore() : 4D.DataStoreImplementation

var connect : object = {hostname: "hr@acme.com"}
var remoteDS : 4D.DataStoreImplementation

remoteDS = openDatastore(connect, "hr")

return remoteDS

 

Beispiel 2

Wir haben ein weiteres 4D Projekt: 4D-Sales, um Verkäufe und Kunden zu verwalten. Wir verwenden es auf die gleiche Weise wie das 4D-Projekt: 4D-HR.

In der Datastore-Klasse haben wir diese Funktion, um das 4D-Projekt 4D-Sales als Remote-Datenspeicher zu verwenden:

exposed Function getSalesDatastore() : 4D.DataStoreImplementation

var connect : object = {hostname: "sales@acme.com"}
var remoteDS : 4D.DataStoreImplementation

remoteDS = openDatastore(connect, "sales")

return remoteDS

In unserer Qodly-HR-Webanwendung müssen wir die Kunden ermitteln, deren Gesamtbetrag größer als der Durchschnitt ist.

Nachfolgend sehen Sie, wie wir das machen. Wir lesen alle Kunden aus dem 4D-Projekt: 4D-Sales und machen unsere Abfrage.

 

var customers, targetCustomers: 4D.EntitySelection
var amountAverage : number

customers=ds.getSalesDatastore().Customer.all()

amountAverage=customers.average("totalAmount")

targetCustomers=customers.query("totalAmount >= :1", amountAverage)

Das war’s!

Bleiben Sie dran, um mehr über die Verbindung zwischen Qodly.com und 4D Server zu erfahren.

Avatar
- Product Owner - Marie-Sophie Landrieu-Yvert ist seit 2017 als Product Owner im 4D Produktteam tätig. Als Product Owner ist sie für das Schreiben der User Stories und deren Umsetzung in funktionale Spezifikationen zuständig. Ihre Aufgabe ist es auch, sicherzustellen, dass die Implementierung der Funktionen den Anforderungen des Kunden entspricht. Marie-Sophie ist Absolventin der ESIGELEC Ingenieurschule und begann ihre Karriere als Ingenieurin bei IBM im Jahr 1995. Sie nahm an verschiedenen Projekten teil (Wartungs- oder Build-Projekte) und arbeitete als Cobol-Entwicklerin. Dann arbeitete sie als UML-Designerin und Java-Entwicklerin. In letzter Zeit bestand ihre Hauptaufgabe darin, funktionale Anforderungen zu analysieren und zu schreiben sowie Geschäfts- und Entwicklungsteams zu koordinieren.