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.