====== Balans EDI prijem podataka ======
Osnovna svrha BEP WS modula jeste prijem i deserijalizacija EDI dokumenata poslatih putem https protokola od strane drugih programa. \\ Pod deserijalizacijom se podrazumeva pretvaranje EDI dokumenta odgovarajuće zapise u Balans bazi podataka. Takvi zapisi postaju predmet obrade Balasn ERP sistema. \\
U ovom momentu obrada primljenih XML porudžbina i drugih OAGIS dokumenata mora da se radi kroz COM/ActiveX aplikaciju. Razlog je što se mora koristiti Balans ROB Basic biblioteka koja omogućava upis podataka u bazu i po potrebi slanje sistemom za razmenu podataka. \\ U tu svrhu koristi se program **ExDocTest.exe** izvrno napravljen za testiranje sistema prihvata porudžbina.
===== Šema =====
{{ :kb:web:02_prijem_edi_dokumenata.png?879x659 }}
===== Obrada primljenih porudžbina =====
Obrada mora biti postavljena na **Windows** kompatibilnoj platformi na kojoj je prethodno instaliran **Balans**. \\
Ni Windows ni Balans ne moraju biti serverske instalacije.
Ključni momenti:
- Otvaranje prostora (direktorijuma) u koji će se smeštati prihvaćeni XML fajlovi. \\ U ovom folderu sistem će automatski kreirati ''OrdersOK'', ''Logs'' i po potrebi ''DOCErrors'' odnosno ''XMLErrors'' podfoldere.
- Podešavanje parametara prihvata uređivanjem pogleda **[[balans_edi_mapiranje_main#FN_EDIContractMap_In|FN_EDIContractMap_In]]**. \\ Naročito je važno obratiti pažnju na postavke ''options'' parametra, odnosno njegove **SalesPriceSrc** postavke zadužene za prodajne cene poručene robe.
- Izrada ''bat/vbs'' skripte za pokretanje. Ovo se svodi na kopiranje i prilagođavanje postojećih skripti.
- Registracija skripte i postavljanje parametara pokretanja u //Task Scheduleru// Windows servera nakom će se **ExDocTest** pokretati.
- Testiranje rada
===== Statusi obrađenih porudžbina =====
Statusi sakupljeni tokom obrade upisuju se u folder ''Logs'' u vidu tekstualnog fajla. \\
Ukoliko firma nad kojojm se vrši obrada ima **aktivan nalog** na **Balans WebAPI** rezultat obrade biće upisan i u javni prostor odakle će moći da ga vide i udaljeni korisnici.
\\
To radi ovako:
- **Balans** kompanije koja prihvata porudžbinu i **Balans** udaljenog //balans klastera// registruju se na **Balans WebAPI**. \\ Poželjno je aktivirati modul **BORT** i registraciju izvršiti na njemu. Ukoliko klijent koristi Melany Oblak na kom se vrti i prijem porudžbina dovoljna je i samo jedna licenca. \\ //Napomena: Modul ima komercijalnu licencu//.
- Program **ExDocTest** uočiće da postoji registracija i pored upisa u osnovni ''Logs'' žurnal ipis usmerava i na **Balans WebAPI**.
- Korisnik može iz **Menadžera Dokumenata** da izvrši uvid u statuse pristiglih porudžbina i eventualne greške koje su tom prilikom zabeležene.
==== Pregled statusa iz Balansa ====
Uslov da ovaj predled radi jeste da je firma u datom klasteru registrovana i ima važeću licencu za **BORT **modul na **Balans WebAPI**.
1. Pozicionirati se na neku od važećih prezentacija i kliknuti na komandno dugme za prikaz detalja.
{{:kb:web:ee334ed4e2b6496499d6dbb1a9a97183.png}}
2. Ukoliko je sistem prijavljen na **Balans WebAPI** otvoriće se prozor sa informacijama o pristiglim porudžbinama u poslednjih 15 dana.
{{:kb:web:0e22e3d855bc8913509501699a928aed.png}}
==== Najčešći problemi ====
=== Loše definisan Sender/LogicalId ===
U ovom čvoru očekuje se unos šifre/ID-ja odobrenog pošiljaoca EDI porudžbine (ili nekog drugog OAGIS dokumenta). \\ \\
Uslovi za validnost:
- Broj je uparen sa poljem **SenderID** u nekom od redova **[[balans_edi_mapiranje_main#FN_EDIContractMap_In|FN_EDIContractMap_In]]** zapisa.
- Veza pošiljaoca sa kartotekom komitenta preko polja **PartnerID**. U ovo polje se unosi *kupid* komitenta.
- (Opciono) Ppodrazumevane postavke **fn_edidefaults** koje su urelaciji sa **SenderID** preko **PartnerID** vrednosti.
=== Artikal nema zadatu vrednost u cenovnoj koloni ===
Primer pune poruke:
Artikal '15363M' VARIOS plafonska lampa, D:380, H:100, exkl. 2xE27 LED 15W 230V nema zadatu vrednost u cenovnoj koloni CenaA. Postavka 'SalesPriceSrc' u FN_EDIContractMap_In za SenderID '7305' ima vrednost '0'.
Kako se iz primera vidi, linija čak i objašnjava u čemu je problem:
Postavka 'SalesPriceSrc' u FN_EDIContractMap_In za SenderID '7305' ima vrednost '0'
U ovom slučaju parametar **SalesPriceSrc** ima vrednost **beEDISALPRCStandard = 0** što znači da je za određivanje cene prepušteno Balansu i njegovim komercijalnim uslovima. \\
Ova greška obično se javlja u situacijama kada je komitent vezan za neki drugi cenovnik ili cenovnu kolonu od očekivane. Jednom sam naleteo na situaciju da je kupac bio vezan ce cenovnik koji uopšte nije definisan u sistemu. Verovatno je bio definisan pa u međuvremenu obrisan.