Anveo Mobile App / Documentazione dello script Anveo

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 inizialelocal 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 impostatomyIntegerValue = 10;
= =ugualethisIsTrue = (‘A’ ==’A’);
∼=non ugualethisIsTrue = (‘A’ ~= ‘B’);
<più piccolothisIsTrue = 2 < 3;
<=minore o uguale
>più grandethisIsTrue = 3 > 2;
>=maggiore o uguale
nonlogico NONthisIsTrue = non falso;
eAND logicothisIsTrue = vero e (non falso);
oOR logicothisIsTrue = vero o falso;
..Aggiungi testoNewText = Variabile1 … ‘ è aggiunto a ‘ … Variabile 2;

Gestione dei dati

Registri: ottenere e impostare i dati

oggetto GETVALUE(stringa Fieldname);Restituisce il valore del campoMESSAGE(‘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 StringMESSAGE(‘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 VALIDATECliente: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
void SETRANGE(string FieldName,
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,
…);