In questo articolo andremo a vedere che cosa sono le fun , come si implementano e alcuni esempi utili.

Che cosa è una fun ?

La comunicazione tra client e server in Sme.UP avviene tramite richieste http nelle quali vengono inserite precise stringhe chiamate fun. Il server, tramite una semplice convenzione, interpreta la fun inviata dal client, esegue la specifica funzione metodo ed infine ritorna un XML o JSON contenente le informazioni richieste.

La sintassi di una fun è la seguente :

F(componente;servizio;funzione metodo//Parametri


Componente

Per componente si intende il tipo di componente grafico dove verranno visualizzati i dati richiesti. In questo modo la funzione richiamata genererà un XML/JSON di ritorno compatibile e i dati saranno visualizzati correttamente. Questo è molto importante perchè permette di ottenere uno standard di comunicazione sia lato front-end sia lato back-end.

 

Servizio

Per servizio si intende il nome del servizio RPG da richiamare.

Funzione Metodo

Per funzione metodo si intende il nome della funzione e del metodo da richiamare, appartenenti allo specifico servizio citato in precedenza. Per comodità e gestione dei caratteri, le funzioni metodo vengono nominate con sintassi : XXX.YYY (XXX -> funzione; YYY -> metodo). Ogni servizio RPG ha diverse funzioni metodo in base a ciò che deve restituire.

 

F(EXB;SERV_01;LIS.CLI) //Richiamo la funzione LIS.CLI del servizio SERV_01 e richiedo un file XML di tipo EXB (matrice)

 

Parametri

Un programma scritto sul Server può necessitare di ricevere dei parametri in ingresso. I parametri che possono essere passati alla funzione sono sei oggetti e due parametri liberi.

Oggetti

n(tipo;parametro;codice)

Con n si intende un numero da 1 a 6 (quindi massimo 6 oggetti) in base al numero dell’oggetto che identifica. Per esempio se una funzione necessita di 2 oggetti, il primo lo si scriverà : 1(tipo; parametro; codice) e il secondo : 2(tipo; parametro; codice). Essendo Sme.UP basato sugli oggetti (tipo;parametro;codice), questi parametri sono molto importanti in quanto sono strutturati appositamente per essi.

 

Parametri liberi

P(valore)

Nel parametro P si può inserire qualsiasi informazione, purché le informazioni al suo interno non superano la lunghezza di 256 caratteri.

 

Input(valore)

Il parametro Input è uguale al parametro P ma ha un’estensione fino a 30.000 caratteri.

Tipicamente le informazioni scritte in P e Input sono in formato KEY-VALUE, in particolare KEY(VALUE), per consentire una maggiore comprensione del dato.

 

Esempi di fun ricorrenti

Di seguito potete trovate un elenco di fun che sono usate spesso in Sme.Up ERP.

Funzione che carica una specifica scheda (nome file nome membro) :

F(EXD;*SCO;) 2(MB;SCP_SCH;nome membro)

 

Funzione che carica il contenuto di una sottoscheda (::I.SCH Nam(nome sottoscheda)) nella scheda corrente  :

F(EXD;*SCO;) 1(;;) 2(MB;SCP_SCH;nome membro) 4(;;nome sottoscheda)

 

Funzione che ritorna l’elenco delle istanze di una determinata classe :

F(EXB;*LIS;) 1(tipo;parametro;)

 

Funzione che crea una nuova istanza :

F(EXD;*SCO;) 1(tipo;parametro;codice) 2(MB;SCP_SCH;LOA36) 
P(MsgExe(Yes) AziExe(01) CloFin(Yes) InzDat(numero OAV(valore OAV))

 

Funzione che modifica gli attributi di un’ istanza singola :

F(EXD;*SCO;) 1(tipo;parametro;codice) 2(MB;SCP_SCH;LOA36) 
P(MsgExe(Yes) AziExe(02) CloFin(Yes) InzDat(numero OAV(valore OAV))

 

Funzione che visualizza gli attributi di un’ istanza singola :

F(EXD;*SCO;) 1(tipo;parametro;codice) 2(MB;SCP_SCH;LOA36) P(MsgExe(Yes) AziExe(05) CloFin(Yes))

 

Funzione che elimina un’ istanza singola :

F(EXD;*SCO;) 1(tipo;parametro;codice) 2(MB;SCP_SCH;LOA36) P(MsgExe(Yes) AziExe(04) CloFin(Yes))