Documentazione dello script Anveo
Anveo Script consente alla vostra App mobile Anveo di eseguire singoli processi aziendali senza contattare Microsoft Dynamics. Anveo Script si basa sul linguaggio di script LUA ed estende le sue funzioni con comandi tipici di Dynamics come SETRANGE, FINDFIRST, MESSAGE ecc.
Risorse utili all’utente
A differenza del C/AL, Anveo Script e LUA sono completamente sensibili alle maiuscole e minuscole per tutte le variabili e i comandi.
Nozioni di base di Lua
Dichiarazione di variabili, funzioni, if-then-else, for-do, while, repeat-until
variabilelocale; | Dichiara una variabile locale È valida solo fino al termine successivo; | locale myVariable; |
variabile locale = valore; | Dichiarare una variabile locale e impostare un valore iniziale | local Customer = Record(‘Customer’); local isValue = false; |
variabile1 = variabile1 .. variabile2; | Imposta il valore di una variabile a un nuovo valore. | myText = ‘nuovo testo’; |
se a == 2 allora … elseif a == 3 then … else … fine; | no BEGIN no end; before elseif no end; before else end; è sempre richiesto. | Le dichiarazioni CASE non esistono, utilizzare invece elseif . |
functionNome(Parametro1,Param2,…) return NomeVariabile; end; | ||
per i = valore iniziale, valore finale, passo fare … fine; | ciclo for | per i = 1, 10, 0,5 fare … fine; |
while condition do … fine; | Anello basato sulla testa | while i <= 5 do i = i + 1; end; |
ripetere … fino alla condizione; | Ciclo basato sul piè di pagina | ripetere i = i + 1; finché i <= 5; |
‘–[[This is=”” a=”” comment.]=””]] | Commenti nel codice dello script Anveo |
Operatori
= | Valore impostato | myIntegerValue = 10; |
= = | uguale | thisIsTrue = (‘A’ ==’A’); |
∼= | non uguale | thisIsTrue = (‘A’ ~= ‘B’); |
< | più piccolo | thisIsTrue = 2 < 3; |
<= | minore o uguale | |
> | più grande | thisIsTrue = 3 > 2; |
>= | maggiore o uguale | |
non | logico NON | thisIsTrue = non falso; |
e | AND logico | thisIsTrue = vero e (non falso); |
o | OR logico | thisIsTrue = vero o falso; |
.. | Aggiungi testo | NewText = Variabile1 … ‘ è aggiunto a ‘ … Variabile 2; |
Gestione dei dati
Registri: ottenere e impostare i dati
oggetto GETVALUE(stringa Fieldname); | Restituisce il valore del campo | MESSAGE(‘Il nome del cliente è ‘ .. Cliente:GETVALUE(‘Nome’)); |
DateTime GETVALUE_DATETIME (stringa Fieldname); | … tipo di dati esplicito DateTime | |
double GETVALUE_DOUBLE(string Fieldname); | … tipo di dati esplicito Double | |
int GETVALUE_INT(string Fieldname); | … tipo di dati esplicito Integer. Utilizzare questa opzione per il tipo di campo di Microsoft Dynamics. Il primo valore inizia con 0. | se (Contact:GETVALUE_INT(‘Type’) == 0) allora… |
stringa GETVALUE_STRING(stringa Fieldname); | … tipo di dati esplicito String | MESSAGE(‘Il nome del cliente è ‘ .. Cliente:GETVALUE_STRING(‘Nome’)); |
Tempo GETVALUE_TIME(stringa Fieldname); | … tipo di dati esplicito Tempo | |
stringa GETOPTION_ML_VALUE(stringa Fieldname); | … tipo di dati esplicito Opzione – restituisce il valore del testo nella lingua corrente | |
void SETVALUE(stringa columnName, oggetto value) | Impostare il valore del campo senza eseguire il trigger VALIDATE | Cliente:SETVALUE(‘Nome’,’nuovoNome’); |
void VALIDATE(string columnName, object value) | Impostare il valore del campo con l’esecuzione del trigger VALIDATE | Cliente:VALIDATE(‘Nome’,’nuovoNome’); |
void INIT(); | Inizializza il record corrente con valori vuoti. |
Filtrare i dati sui record
void SETFILTER(string FieldName, string Filter = “””, string replaceString1, string replaceString2, …); | Imposta un filtro Nota: La stringa di filtro deve avere solo operatori logici e/o parametri %1, %2, ma nessun dato. Inserite sempre i dati negli argomenti. Imposta un filtro che inizia con il valore FromDate Imposta un filtro che termina con il valore ToDate Imposta un filtro da FromDate a ToDate | Questo è sbagliato: SalesHeader:SETFILTER(‘Posting Date’, ‘14.03.2014..’); SalesHeader:SETFILTER(‘Quantity’, 5); SalesHeader:SETFILTER(‘Posting Date’,’%1..’, FromDate); SalesHeader:SETFILTER(‘Posting Date’,’..%1′,ToDate); SalesHeader:SETFILTER(‘Posting Date’, ‘%1..%2’,FromDate, ToDate);” |
void SETRANGE(string FieldName, object FromValue = null, object ToValue = null); | Imposta un filtro sul valore 10000 Imposta un filtro da 10000 a 20000 Cancella il filtro nel campo Codice | Cliente:SETRANGE(‘Codice’,’10000′); Cliente:SETRANGE(‘Codice’,’10000′,’20000′); Cliente:SETRANGE(‘Codice’); |
bool ISEMPTY(); | Vero, se l’insieme dei risultati è vuoto | |
bool FINDFIRST(); | Andare al primo record. Restituisce true se il record è stato trovato. | se Cliente:FINDFIRST() allora MESSAGE(Cliente:GETVALUE(‘Nome‘)); end; |
bool FINDLAST(); | Vai all’ultimo record. Restituisce true se il record è stato trovato. | |
int NEXT(int Passi = 1); | Passa alla registrazione successiva o sposta i passi avanti/indietro | |
bool GET(Fieldname1,Fieldname2,Fieldname3,…); | Ottenere un record con la chiave primaria Nota: GET(‘CODE’); non genera un messaggio di errore, utilizzare if not GET(‘CODE’) then ERROR(‘Error message.’); end; instead. | |
int Record:COUNT(); | Numero di record nel filtro corrente | |
void SETCURRENTKEY(Fieldname1, Fieldname2, Fieldname3, … ); | Imposta l’ordinamento corrente Nella tabella deve essere disponibile una chiave. | |
bool ASCENDING(bool SetAscending); | Impostare l’ordinamento corrente | |
void RESET(); | Eliminare il filtro | |
int FILTERGROUP(int newGroupNo); | Imposta un nuovo gruppo di filtri per impostare filtri aggiuntivi non accessibili all’utente negli elenchi. Ripristinare il gruppo di filtri al gruppo 0 alla fine dello script. | Cliente:FILTERGROUP(1); Cliente:SETRANGE(‘Blocked’, false); Cliente:FILTERGROUP(0); |
int FILTERGROUP(); | Ottiene il gruppo di filtri corrente |
object FromValue = null,
object ToValue = null);
Imposta un nuovo gruppo di filtri per impostare filtri aggiuntivi non accessibili all’utente negli elenchi.
Ripristinare il gruppo di filtri al gruppo 0 alla fine dello script.
void SETRANGE(string FieldName,
object FromValue = null,
object ToValue = null);
void SETRANGE(string FieldName,
object FromValue = null,
object ToValue = null);
Ottiene il gruppo di filtri corrente
void SETFILTER(string FieldName, string Filter = """, string replaceString1, string replaceString2, …);