Lo scorso settembre, 4D ha presentato Qodly Studio per 4D, che offre vantaggi completi che consentono di creare applicazioni web aziendali dinamiche ed efficienti. Se non l’avete ancora fatto, date un’occhiata a questo blogpost per scoprire come iniziare a utilizzare Qodly Studio per 4D.
Qodly Studio è accessibile anche su qodly.com e fa parte della nuova offerta SaaS di 4D.
Volete sfruttare i dati e la logica di busines della vostra applicazione 4D in un’applicazione qodly.com? Sarete felici di sapere che un’applicazione web qodly.com può ora connettersi a un’applicazione 4D distribuita su un server 4D grazie al nuovo comando openDatastore di QodlyScript. È quindi possibile utilizzare un progetto 4D come datastore remoto da Qodly.com.
In altre parole:
- Un’applicazione basata su 4D Server può fare entrambe le cose: gestire i client desktop 4D e i client web utilizzando i moduli Qodly. Se questo è il vostro lavoro, non c’è bisogno di continuare a leggere.
- Ma supponiamo che vogliate estendere la vostra applicazione esistente basata su 4D Server con un’applicazione completamente nuova, solo basata sul web e ospitata su Qodly.com: questo post è per voi e mostra come comunicare tra le due applicazioni.
esempi concreti
Nota: il codice seguente utilizza QodlyScript , un linguaggio scaduto da JavaScript e 4D. Sembra simile a 4D, ma non è esattamente identico.
esempio 1
Supponiamo di sviluppare un’applicazione web HR su qodly.com: Qodly-HR. Abbiamo una logica di business già codificata in un progetto 4D: 4D-HR. Invece di riscrivere questa logica in QodlyScript, la richiameremo semplicemente con il comando openDatastore!
Questo semplice esempio gestisce le tariffe orarie dei dipendenti a seconda del Paese in cui lavorano. A seconda del luogo in cui lavorano, la tariffa oraria dei dipendenti non è la stessa.
Ecco il modello in Qodly-HR:

In Qodly-HR creiamo i dipendenti. Ma per calcolare le loro tariffe orarie, ci affidiamo a una logica aziendale già esistente in 4D-HR. Infatti, in 4D-HR è disponibile la funzione computeHourlyRates, che prende come parametro di input una tariffa oraria in un determinato Paese e restituisce un insieme di tariffe per Paese.
Il frammento di codice QodlyScript che segue viene utilizzato per creare un dipendente in Qodly-HR. In questo pezzo di codice, chiamiamo la nostra lontana funzione del datastore 4D-HR computeHourlyRates fornendole una tariffa oraria francese, per recuperare le tariffe orarie del Regno Unito e degli Stati Uniti.
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)
//salaries is [{country:FR,hourlyRate:100},{country:UK,hourlyRate:95},{country:US,hourlyRate:90}]
forEach(info, salaries)
salaryInfo=ds.SalaryInfo.new()
salaryInfo.fromObject(info)
salaryInfo.theEmployee=dipendente
status=salaryInfo.save()
end
Ecco la classe Datastore:
extends DataStoreImplementation
exposed Function getHRDatastore() : 4D.DataStoreImplementation
var connect : object = {hostname: "hr@acme.com"}
var remoteDS : 4D.DataStoreImplementation
remoteDS = openDatastore(connect, "hr")
return remoteDS
esempio 2
Abbiamo un altro progetto 4D: 4D-Sales per gestire vendite e clienti. Lo utilizziamo allo stesso modo del progetto 4D: 4D-HR.
Nella classe Datastore, abbiamo questa funzione per utilizzare il progetto 4D 4D-Sales come datastore remoto:
Funzione esposta getSalesDatastore() : 4D.DataStoreImplementation
var connect : object = {hostname: "sales@acme.com"}
var remoteDS : 4D.DataStoreImplementation
remoteDS = openDatastore(connect, "sales")
return remoteDS
Nella nostra applicazione web Qodly-HR, dobbiamo ottenere i clienti il cui importo totale è superiore alla media.
Di seguito viene illustrato il modo in cui gestiamo questo aspetto. Leggiamo tutti i clienti del progetto 4D: 4D-Sales e facciamo la nostra query.
var customers, targetCustomers: 4D.EntitySelection
var amountAverage : number
customers=ds.getSalesDatastore().Customer.all()
amountAverage=customers.average("totalAmount")
targetCustomers=customers.query("totalAmount >= :1", amountAverage)
Questo è tutto!
Restate sintonizzati per saperne di più sulla connessione tra Qodly.com e 4D Server.
Al momento non è possibile lasciare commenti su questo post.