eFactura Import – Documentaţie tehnică JS

Scop

Integrarea pachetelor de Advanced Javascript are ca scop accesul către o gamă largă de funcţionalităţi de bază cât şi posibilitatea de a crea soluţii custom pentru clienţii care necesită acest lucru.

.

Informaţii generale despre modul de funcţionare

În Advanced Javascript există un pachet numit MyFacturaImport care conţine 2 module noi: JS şi JSMAIN (JSMAIN nu se va intersecta cu niciun alt JSMAIN existent fiind prezent într-un pachet diferit şi având numai cod care este folosit de către fişierul .dll al aplicaţiei eFactura).

.

.

eFactura (Descărcare facturi din SPV Paging) apelează direct DOAR modulul de javascript JSMAIN.

.

JSMAIN-> Conţine apelurile către funcţiile complet definite din modulul JS care execută operaţiunile de creare / inserţie / link / ştergere, folosind informaţiile transmise din tabul de Descărcare.

.

JS -> Funcţiile din acest modul conţin logica generală despre cum sunt create / şterse obiectele ( ITEM / PURDOC / LINSUPDOC etc. )

.

Exemplu

1.În tabul de [Descărcare Facturi din SPV Pagina] se apasă pe opţiunea Creare Furnizor”.
2.Se preiau (din fişierul .xml) datele despre furnizor: nume, CUI, etc. şi se pregătesc pentru a fi trimise către modulul JSMAIN, funcţia: CreateNEWSupplier(params).
3.Funcţia din JSMAIN primeşte informaţiile sub forma unui obiect Javascript urmând ca acesta să trimită mai departe informaţiile către modulul JS, funcţia: CreateSupplier(params).
4.Modulul JS preia acel apel şi execută codul funcţiei: CreateSupplier(params).
5.Funcţia CreateSupplier din JS este executată, aceasta sfârşindu-se cu deschiderea ferestrei aferente obiectului din SOFTONE ( în cazul de faţă, SUPPLIER ) pentru ca userul să finalizeze salvarea în baza de date.
6.Răspunsul este transmis înapoi către tabul din eFactura [Descarcare Facturi din SPV Paging] şi se tratează ca atare: în caz de succes se actualizează tabelele Myfactura, tabelul prezent în tabul de descărcare etc. Iar în caz de eşec ( fereastra a fost inchisă, s-au generat alte erori ) este afişat mesajul cu eroarea (dacă este cazul) sau mesajul Creation Failed.

.

Pe baza exemplului funcţionează majoritatea operaţiunilor de creare, ştergere şi legătura cu articole alternative / de furnizor.

.

Mod de lucru recomandat pentru crearea de soluţii custom

.

1.Modulul JS va fi copiat şi redenumit (numele este irelevant, rămâne la alegerea celui care generează soluţia custom).
2.Odată ce modulul JS a fost copiat şi redenumit, în modulul JSMAIN linia următoare: lib.include(“MyFacturaImport.JS”); va fi înlocuită cu numele noului modul JS redenumit. Exemplu: lib.include(“MyFacturaImport.CustomJS“);
3.În cazul acesta noul modul, complet identic în momentul actual, va fi folosit pentru crearea de funcţii custom.

.

Noul JS:

.

Va deveni:

.

Schimbând linia lib.include din JSMAIN spunem că apelurile venite să fie redirecţionate către copia modulului JS ( copia creată mai devreme ). Astfel în noul modul creat se poate modifica în întregime codul funcţiilor şi logica în care informaţiile sunt folosite.

.

Modulul original JS NU trebuie modificat întrucat există posibilitatea, ca în urma unui update, conţinutul să fie suprascris.

.

Exemple de obiecte transmise către funcţiile din modulul JS pot fi descăcate de aici.