====== 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.