EXE - prijedlozi

Coordinator
Oct 23, 2012 at 7:42 AM

Otvaramo ovu temu kako bi se moglo raspraviti o tome što nedostaje u EXE "sučelju" onima koji ga koriste. 

Naime, samo osnovni dio funkcionalnosti iz .NET assembly-a je prisutan u EXE aplikaciji, tako da sve zainteresirane molimo da nam iznesu prijedloge što im još nedostaje.

 

Oct 23, 2012 at 9:19 AM

Meni .exe radi odlično !

Doduše dosad nisam baš proučio poziv ECHO funkcije kroz exe.

Možda ubaciti mrvicu opširniju help funkciju ( sa nekim osnovnim pravilima pozivanja programa i nešto o eventualno o češče ponavljanim greškama unutar xml datoteke).

To bi se moglo rješiti dodavanjem neke read_me.txt datoteke uz exe u Zip ili eventualno pozivom exe programa uz  -?  ili -Help parametar.

Oct 23, 2012 at 10:32 PM
Edited Oct 23, 2012 at 10:37 PM

Bilo bi dobro exe programu prosljedivati kao parametar url adresu i port servera porezne jer ce se to mijenjati. Hvala. Za pohvalu je ovo sto radite, isprobao sam exe sa porukom o poslovnom prostoru i radi.

Coordinator
Oct 24, 2012 at 7:24 AM

@jdvorski, u pravu si da će se ovaj URL mijenjati, no, mišljenja smo da ne treba to parametrizirati s obzirom da će do promjene doći samo jednom - kada jednom URL produkcijskog servera bude objavljen, to je to :)

Hvala na pohvalama, lijepo je čuti da ti sve radi :)

Oct 24, 2012 at 9:27 AM
Edited Oct 24, 2012 at 9:29 AM

Da, do promjene će doći samo jednom, no tko garantira da neće doći i još koji put dok sve bude u radu, što ako se samo port promjeni, exe nam u tom slučaju postaje neupotrebljiv, mogao bi uz njega ići ini datoteka gdje bi se upisale osnovne postavke potrebne mu za rad ili kroz parametar, uvijek je dobro imati što više parametriziran program pogotovo exe inačica..znam da trenutno izgleda nepotrebno ali vjerujte kod nas je sve moguće..:-) koliko već poreznih stopa imamo u knigama ira i ura a bit će ih i još više...zemlja nam je raj za programere :-)))

Coordinator
Oct 24, 2012 at 9:28 AM

Ima smisla, pokušat ćemo nešto tako srediti :)

Oct 24, 2012 at 2:55 PM

Prijedlog:
Odvojiti potpisivanje i slanje

Potpisivanje poruke bi bilo:
Raverus.FiskalizacijaDEV.EXE.exe RacunPotpisi "RacunZahtjev.xml" "RacunPotpisan.xml" false true "MojCert.pfx" "PASSWORD"

Slanje poruke bi bilo
Raverus.FiskalizacijaDEV.EXE.exe RacunPosalji "RacunPotpisan.xml" "RacunOdgovor.xml" false true "https://cistest.apis-it.hr:8449/FiskalizacijaServiceTest"

Oct 25, 2012 at 9:19 AM

Čemu odvajanje? To je nepotrebno kompliciranje.

URL kao opcionalni parametar, to svakako treba dodati.

Raverus.FiskalizacijaDEV.EXE.exe RacunZahtjev "C:\RacunZahtjev.xml" "C:\RacunOdgovor.xml" false true "FISKAL 1" "https://cistest.apis-it.hr:8449/FiskalizacijaServiceTest"

Oct 25, 2012 at 1:04 PM

Za funkciju RačunZahtjev se slažem da se "jednostavno" na kraj dopuni adresa.

Predložio sam nove funkcije RacunPotpisi i RacunPosalji.
Funkcijom RacunPotpisi bi dobio potpisani račun bez slanja, a poslao bi ga nekako drukčije.

Oct 29, 2012 at 10:40 AM

Slažem se da bi bilo dobro imati funkciju koja samo potpisuje XML dokument.

Za one koji i dalje želje imati sve u jednom (potpisivanje i slanje) ostaje postojeća funkcija tj. tipovi.

Dakle uz prvi parametar (Echo, RacunZahtjev, PoslovniProstorZahtjev) možda dodati još dva tipa RacunPotpis i PoslovniProstorPotpis, a onda ih se može slati kako tko želi. Ovo rješenje ne povećava broj parametara programa, a oni koji ga koriste do sada neće osjetiti nikakvu promjenu.

Ovime bi se rješila još jedna stvar koju sam mislio dodati kao prijedlog, a to je da bih volio imati originalnu potpisanu datoteku koju je EXE program poslao u PU.

Coordinator
Oct 29, 2012 at 2:16 PM
deva55 wrote:

....

Ovime bi se rješila još jedna stvar koju sam mislio dodati kao prijedlog, a to je da bih volio imati originalnu potpisanu datoteku koju je EXE program poslao u PU.

Imaš ovu mogućnost, stavi true na Snimanje argument: http://fiskalizacija.codeplex.com/wikipage?title=Potpisivanje%20i%20slanje%20XML%20dokumenata%20pozivanjem%20vanjskog%20programa%20%28EXE%29

"

Snimanje - true ili false, ako je postavljeno na true u mapu gdje se nalazi Raverus.FiskalizacijaDEV.EXE.exe će biti kreirane mape "Zahtjev" i "Odgovor" koje će sadržavati sve zahtjeve poslane u CIS kao i sve primljene odgovore, kao XML datoteke. Naziv XML datoteke sadrži tip dokumenta i UUID

"

Oct 29, 2012 at 7:30 PM
nrasinec wrote:
deva55 wrote:

....

Ovime bi se rješila još jedna stvar koju sam mislio dodati kao prijedlog, a to je da bih volio imati originalnu potpisanu datoteku koju je EXE program poslao u PU.

Imaš ovu mogućnost, stavi true na Snimanje argument: http://fiskalizacija.codeplex.com/wikipage?title=Potpisivanje%20i%20slanje%20XML%20dokumenata%20pozivanjem%20vanjskog%20programa%20%28EXE%29

"

Snimanje - true ili false, ako je postavljeno na true u mapu gdje se nalazi Raverus.FiskalizacijaDEV.EXE.exe će biti kreirane mape "Zahtjev" i "Odgovor" koje će sadržavati sve zahtjeve poslane u CIS kao i sve primljene odgovore, kao XML datoteke. Naziv XML datoteke sadrži tip dokumenta i UUID

"

To mi je poznato, ali u toj varijanti ako želim dobiti potpisanu XML datoteku moram je istodobno i poslati. Možda sam se malo nespretno izrazio u gornjem postu. Inače ne koristim tu opciju (Zahtjev, Odgovor) jer kreiram poseban direktorij na drugom mjestu za datoteke.

U svakom slučaju i bez dodatnih opcija/izmjena tu je odrađen hvale vrijedan posao.

Coordinator
Oct 30, 2012 at 7:06 AM

@deva55, ok, kužim sada malo jasnije koja je namjena toga, probat ćemo nešto tako uvrstiti u slijedeću nadogradnju...

Oct 31, 2012 at 5:42 AM

Bilo bi dobro da funkcija RacunZahtjev u slučaju kad ulazna xml datoteka nema zaštitni kod između tagova <tns:ZastKod> i </tns:ZastKod>, izračuna zaštitni kod, upiše taj kod u xml datoteku između tagova <tns:ZastKod> i </tns:ZastKod>, i onda nastavi dalje s obradom.

Naime, u nekim aplikacijama će biti jako teško izvesti čitanje privatnog ključa iz certification storea radi kreiranja zaštitnog koda koji mora biti u xml-u, pa bi bilo super da exe to odradi.

Npr. aplikacija kreira datoteku RacunZahtjev.xml:

<?xml version="1.0" encoding="utf-8"?><tns:RacunZahtjev xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" Id="signXmlId" xmlns:tns="http://www.apis-it.hr/fin/2012/types/f73"><tns:Zaglavlje><tns:IdPoruke>60c06a12-ff4c-4210-bf4f-d730866b1e68</tns:IdPoruke><tns:DatumVrijeme>22.10.2012T18:04:26</tns:DatumVrijeme></tns:Zaglavlje><tns:Racun><tns:Oib>44718633471</tns:Oib><tns:USustPdv>true</tns:USustPdv><tns:DatVrijeme>22.10.2012T18:04:26</tns:DatVrijeme><tns:OznSlijed>P</tns:OznSlijed><tns:BrRac><tns:BrOznRac>1</tns:BrOznRac><tns:OznPosPr>123</tns:OznPosPr><tns:OznNapUr>1</tns:OznNapUr></tns:BrRac><tns:Pdv><tns:Porez><tns:Stopa>25.00</tns:Stopa><tns:Osnovica>10.00</tns:Osnovica><tns:Iznos>2.50</tns:Iznos></tns:Porez></tns:Pdv><tns:IznosUkupno>12.50</tns:IznosUkupno><tns:NacinPlac>G</tns:NacinPlac><tns:OibOper>12345678900</tns:OibOper><tns:ZastKod></tns:ZastKod><tns:NakDost>false</tns:NakDost></tns:Racun></tns:RacunZahtjev>

i pozove:

Raverus.FiskalizacijaDEV.EXE.exe RacunZahtjev "D:\RacunZahtjev.xml" "D:\RacunOdgovor.xml" false true "FISKAL 1" 

Exe učita xml i provjeri da li je ZastKod empty string. Budući da jest, exe najprije kreira ZastKod na osnovu privatnog ključa iz certifikata i podataka iz xml-a (oib, broj računa, vrijeme itd.), upiše ZastKod u xml, i onda dalje nastavi s radom.

Coordinator
Oct 31, 2012 at 7:56 AM

@solar, hvala na sugestiji, svakako ima smisla tako nešto :)

Oct 31, 2012 at 8:50 AM

Možda bi bilo dobro napraviti funkcije npr. Vrati_ID i Vrati_ZastKod.

Vrati_ID - bi bila funkcija koja bi vraćala ID (po UUID klasifikaciji http://en.wikipedia.org/wiki/Universally_unique_identifier , jer mislim da će netko u clipperu i ostalim sličnim programima, koji nemaju uključenu funkciju koja automatski vraća UUID, malo teže to izračunati)

Vrati_ZastKod - bi bila funkcija koja vraća zaštitni kod ( ako će to biti moguće izračunati bez cijelog XML-a ).

Tako bi se mogao napraviti kompletan XML i poslati na potpisivanje i slanje(za one koji žele sve raditi sami), a ako je zaštitni kod prazan nek se izračuna automatski kao što je @solar napisao.

Oct 31, 2012 at 9:47 AM

Sad čitam što sam napisao i vidim da je to nemoguće napraviti sa EXE programom, jer u clipper i stare programe mislim da nije moguće vratiti neku vrijednost, nego bi trebalo razultat vratiti u datoteku, pa pročitati datoteku.

Mogao bi se pozvati program sa npr.

Raverus.FiskalizacijaDEV.EXE.exe /VratiID pa da on upiše u datoteku id.txt vrijednost UUID ključa.

Sad, koliko to ima smisla ne znam više.

Možda razmisliti za te dvije funkcije koje sam napisao za COM DLL riješenje.

Oct 31, 2012 at 2:28 PM

Kad se instalira Microsoft SDK, dobije se:
C:\Program Files\Microsoft SDKs\Windows\v7.1\Bin\Uuidgen.Exe (18KB)

Program se može koristiti za kreiranje UUID/GUID:
Uuidgen.Exe > ID.txt 

Coordinator
Oct 31, 2012 at 2:48 PM

@asacaric, da, dobije se UUD/GUID, ali onaj UUID koji treba slati u CIS se dobija pomoću algoritma koji veže osnovne stvari u računu - OIB, (koji se dohvati iz certifikata, bas64 kjuc certifikata, datumvrijeme izdavanja racuna, slijedni broj racuna, broj poslovnog prostora, oznaka naplatnog uredjaja, ukupni iznos racuna.

Kada se sastave ti podaci, izracuna se MD5hex checksum  iz kojeg treba dobiti zaštitni kod.. koji se na kraju šalje u PU.. Najveci problem ovdje, a radi njega cekamo verziju 1.1 sluzbenog dokumenta je taj sto ce u ovom slucaju aplikacije morati baratiti sa privatim kljucem u certifikatu, sto je jedan mali security issue...

 

Uuidgen.exe je dobar tool kada trebas sebi definirati neki UUID, za vlastitu evidenciju, ali se isti ne moze koristiti za izracun zastitnog koda računa.

Coordinator
Oct 31, 2012 at 3:15 PM

Prva napomena - svakako treba uzeti u obzir da na računalo klijenta (obveznika) treba instalirati što je manje moguće toga - s obzirom da je ovaj projekt na .NET tehnologiji, minimum je .NET 2.0 i to se ne može izbjeći; na novijim Windowsima je on već prisutan...

Znači - možda ipak ima smisla da EXE isto ima mogućnost kreiranja UUID-a (System.Guid u .Net terminologiji) kojeg može snimiti u neku datoteku, pa da se to prema potrebi dalje može iskoristiti.

@dkustec - mislim da nisi u pravu vezano uz ovo što pišeš - naime - čini mi se da si to pobrkao sa zaštitnim kodom izdavatelja (ZKI), jer UUID računa nema veze sa time što ti spominješ. Više o UUID-u: http://en.wikipedia.org/wiki/Universally_unique_identifier

Coordinator
Oct 31, 2012 at 3:17 PM

@nrasinec, u pravu si.. bilo je negdje ovdje riječi oko zaštitnog koda.. tek sada kada čitam, vidim da se radi o UUID računu :)

Lapsus calami, mea culpa :(

Coordinator
Oct 31, 2012 at 3:23 PM

@dkustec, znaš kaj - pravo da ti kažem, ova izmjena algoritma zaštitnog koda u zadnji čas im fakat nije trebala, svi smo u iščekivanju finalne verzije algoritma; nadajmo se samo da neće i nekaj drugo (bitnije) izmijeniti :)

Coordinator
Oct 31, 2012 at 3:29 PM

@nrasinec, ne zna se koji će se algoritam koristiti niti se zna da li će se slati dnevno izvješće :). Ako se sjete u zadnji čas nešto mijenjat, bome će biti finog veselja...

Oct 31, 2012 at 7:39 PM
Edited Oct 31, 2012 at 8:32 PM

Pa zar nije iz onog zadnjeg pseudo kooda i naknadne izmjene sve jasno?

Nešto ovako :

        public string GenerirajZastitniKod2()
        {
            string StringZaIzracunZastitnogKoda =
                            this.Oib 
                        +   this.VrijemeRacuna
                        +   this.BrojcanaOznakaRacuna
                        +   this.OznakaPoslovnogProstora
                        +   this.OznakaNaplatnogUredjaja
                        +   this.UkupniIznosRacuna;
            string potpisaniStringZaIzracunZastitnogKoda = this.SignString(StringZaIzracunZastitnogKoda);
            if (String.IsNullOrWhiteSpace(potpisaniStringZaIzracunZastitnogKoda)) {
                this.ZastitniKod = "";
                return "";
            }
            this.ZastitniKod = SkladisteFunkcija.RacunajMd5Hash(potpisaniStringZaIzracunZastitnogKoda);
            return this.ZastitniKod;
        }
Coordinator
Oct 31, 2012 at 8:52 PM

@mladenbabic, bilo je "jasno" i u prethodnoj verziji, kada je funkcija dohvacala OIB iz certifikata, pa vidis sto se dogodilo na kraju... Dok ne izadje sluzbena verzija, svi se mozemo samo slikati s algoritmom i pseudokodom :)

Oct 31, 2012 at 9:38 PM
Edited Oct 31, 2012 at 9:39 PM

U prethodnoj verziji izračuna zaštitnog koda nije bio uvjet dohvaćanje OIBa iz certifikata. Oib možeš uzeti i iz setupa aplikacije. Uvjet je samo da taj OIB bude isti onom koji se nalazi u certifikatu. Razlika je ta što su u prvoj metodi zbrajali PrivateKey s ostalim podacima pa tek onda sve hashirali, dok se u novoj verziji PKom encryptiraju svi ostali podaci (što je naravno i ispravno, jer se PK ne "objavljuje" - pa čak niti u hashiranoj verziji).

Ovdje je prilično jasna nakana i funkcija zaštitnoga kooda : osiguranje garancije da je neki izdani račun upravo izdan od tog i tog poreznog obveznika i da ga ne može netko drugi falsificirati u promijenjenom obliku (osim stavaka računa, jer promjena stavaka ne mijenja zaštitni kod - kao što sam već pisao ovdje a što je veliki problem kako u zaštiti izdavatelja računa - jer je račun podložan falsificiranju stavaka - tako i u "ostalim mogućnostima manipulacije").

Dakle, tu neće biti nekih velikih promjena (osim možda u dodatnom kodiranju i nečega iz stavaka računa) i sve je prilično jasno, pa ne vidim razloga da odmah ne implementirate metodu za generiranje zaštitnog kooda a poslije je eventualno sitno doradite.

Nov 1, 2012 at 3:37 AM

@nrasinec, hvala na prihvaćanju sugestije :-)

BTW, slažem se i s prijedlogom za generiranje UUID-a. Predlažem da EXE najprije provjeri UUID i generira ga ako je prazan, i onda provjeri ZastKod i kreira ga ako je prazan. Nakon što stigne odgovor iz CIS-a, neka EXE snimi JIR.txt datoteku u formatu "UUID;ZastKod;JIR" ili "UUID;ZastKod;#opis greške". Parent aplikacija jednostavno pročita 3 stringa iz JIR.txt datoteke. Ako je prvi znak u 3. stringu  #, znači da CIS nije prihvatio račun, pa aplikacija treba ispisati upozorenje i opis greške, a ako prvi znak u 3. stringu nije #, znači da je to JIR, pa aplikacija može spremiti UUID, ZastKod i JIR u svoju bazu i ispisati račun. Mislim da je to najjednostavnije rješenje.

Usput, imam jedno pitanje u vezi encodinga. Ako parent aplikacija nema mogućnost snimanja tekstualne datoteke u utf-8 encodingu, već samo u ANSI encodingu, hoće li u tom slučaju biti problema? Ako da, onda bi bilo dobro u EXE-u osigurati da ulazni text bude utf-8: Dim ulaz As IO.StreamReader = New IO.StreamReader(xmldatoteka, System.Text.Encoding.Default). Mislim da će na ovaj način "ulaz" uvijek biti utf-8, bez obzira da li je "xmldatoteka" ANSI ili utf-8.

LP

Coordinator
Nov 7, 2012 at 8:02 AM

@solar, otvaram novi Issue vezano uz encoding - iskreno - ne znam da li to treba ili ne, ako netko ima problema sa time, neka glasa ovdje: http://fiskalizacija.codeplex.com/workitem/657

Coordinator
Nov 7, 2012 at 8:38 AM

Prema vašim sugestijama, ovo je dostupno od v1.2. EXE-a: http://fiskalizacija.codeplex.com/workitem/658

Hvala svima koji su se uključili u raspravu :)

Nov 10, 2012 at 11:49 PM

Prvo, veliko HVALA autoru/autorima na sjajno odrađenom poslu, gdje su mjastorski pomirili najrazličitije prohtjeve. Dužim barem pivu ako odgulim ovo do kraja (dakle negdje u proljeće :)

Priključio bih se diskusiji sa nekoliko prijedloga koji bi (mislim) mnogima olakšali posao - govorim isključivo o EXE. Do sada sam aplikaciju držao pod DOS-om (pravim), sada sam silom-prilika upogonio DOS prozor XP-a. Koristim ZIM (malo poznati alat iz prošlog stoljeća). Jedan od problema s kojima se borim su jako dugački stringovi za ulazne atribute i prilično nesretno imenovani EXE i DLL-ovi (dugačka imena, pa točkice između... Kad pokušam nekom logikom po folderima organizirati ulazne i izlazne datoteke, prilikom slaganja argumenata za EXE, moj alat jednostavno ne može cijeli string predati sistemu, pa sam prisiljen konstruirati kojekave BAT-ove. Čak i tu se pojavljuje "program to big to fit in memmory" kada redak u BAT-u postane predugačak. Problem postaje velik ako se upiše adresa servisa (moglo bi se desiti da to u jednom trenutku postane nužno). Pomalo smetaju i fiksirana imena (lokacije) za UUID.TXT, ZKI.TXT i JIR.TXT datoteke - pohvalno je što su kratka!

Da ne duljim, evo prijedloga:

1. Mislim da ne bi trebao biti problem složiti EXE i pripadajuće DLL-ove sa imenima u 8.3 formatu.

2. Bilo bi krasno kada bi se npr. "PoslovniProstorZahtjev" ili "GenerirajUuid" mogli pozvati kao recimo "PPZ" ili "GU"

3. Bilo bi još ljepše kad bi EXE prilikom pokretanja učitao nekakvu .INI datoteku u kojoj bi našao url servisa, path-ove za ulazne i izlazne datoteke te, eventualno imena izlaznih datoteka koja su sada hard-kodirana (UUID, ZKI, JIR). Da, skoro sam zaboravio, tu bi moglo stajati i ime certifikata (i lozinka ako je c. u datoteci). Dakle to bi bilo mjesto za  stvari koje se postave sada i tko zna kada. Time bi kobasica argumenata postala preglednija, a organizacija datoteka fleksibilnija.

Na kraju jedno pitanje: možda sam previdio, ali nisam uočio da je negdje rečeno da EXE ispiše npr. STATUS OK kad stvar uspješno odradi. Mogu li se pouzdati u taj komentar (npr. usmjeravanjem u neku datoteku i čitanjem iz nje) prilikom provjere rezultata, a onda, ako su okolnosti povoljne, krenuti u parsanje JIR.TXT?

Pozdrav svima.

Coordinator
Nov 11, 2012 at 7:29 AM

@gmacarol, hvala na prijedlozima, otvorio sam 3 nova issue-a, svi mogu glasati ovdje:

http://fiskalizacija.codeplex.com/workitem/662
http://fiskalizacija.codeplex.com/workitem/663
http://fiskalizacija.codeplex.com/workitem/664

Još par napomena: držanje passworda za pristup certifikatu u nekriptiranom obliku (iako ni kriptiranje nije rješenje...), ako je isti u datoteci, se nikako ne može preporučiti u produkcijskim uvjetima. Istina je da je obveznik onaj koji je pred zakonom odgovoran, no, dobra praksa od nas koji obvezniku radimo software nalaže da i mi brinemo o takvim stvarima :)

Ako je sve u redu sa potpisivanjem i slanjem XML poruke, EXE će napisati "Status OK" i to slobodno možeš loviti; isto tako, ako je sve u redu sa RacunZahtjev, u JIR.txt će biti će biti UUID i JIR iz odgovora - ovo je preporučeni način kako saznati da li je sve ok sa porukom. Naime, ako je sve ok, onda će u toj datoteci biti UUID zahtjeva koji si poslao (što je isti UUID kao i na odgovoru) + JIR koji ti je vratio CIS na osnovu tvog zahtjeva.

Nov 11, 2012 at 10:30 PM

gmacarol, probaj "program to big to fit in memmory" izbjeći preko "cmd.exe /c", meni je upalilo....

Nov 12, 2012 at 12:32 PM

@tsokol  - Ma, već sam ja to probao, upogonio sam priču, šaljem i primam ko veliki :). Samo želim sve pojednostavniti i osigurati se za ubuduće. Stvar u tome da bih želio izbjeći kobasice i BAT-ove, loptanje sa %1, %2 .... %8 argumenatima, kopiranje datoteka sa odgovorima i preusmjerenim "status OK" u željene foldere... Ipak, hvala na sugestiji, lijepo je znati da netko još brine o tuđim problemima.

@nrasinec - Hvala, ovo sa "Status OK" i JIR.txt sam skužio, samo sam htio "službenu" potvrdu, da i drugi znaju na čemu su.

Što se tiče sigurnosti lozinke, slažem se. No, postavljam si pitanje: Koliko je sigurno imati lozinku hard-kodiranu u BAT datoteci? A moram,  da bih uštedio prostor za varijabilne atribute koje šaljem iz aplikacije. Međutim, kad bi (nazovimo to tako) WorkPath, DBpath, TmpPath, OutPath, InPath (ili slične ludorije koje svi izvodimo) mogli fiksirati u INI datoteci, lozinku bismo mogli "lansirati" kao atribut prilikom pozivanja BAT-a ili direktno EXE-a (što bi bilo najbolje). A ako netko baš želi, mogao bi ju držati i u INI datoteci. Dakle, svi željeni parametri poimence u INI datoteci (npr. ovako):

[POZIVNE_FUNKCIJE]

PoslovniProstorZahtjev="PPZ"

RacunZahtjevPotpisi="RZP"

....

[DATOTEKE]

XMLzahtjev="C:\FisZah\"                                         (primijeti: ovdje je za primjer samo path, ime se može predati kroz argument (npr. RZ.XML) pa EXE u konačnici barata sa "C:\FisZah\RZ.XML")

XMLodgovor="C:\FisOdg\ODG.XML"                 (ovdje je za primjer puno ime , argument šaljem "" , EXE barata sa "C:\FisOdg\ODG.XML"  pa i XML poslovnog prostora i XML racuna dobivam u istu datoteku)

EXEecho="C:\FisOdg\Status.txt"                        (ako se ne navede ili se stavi "", napucava van, kao i do sada, pa lovim kroz  EXE > MyFile)

JIRPath="C:\FisOdg\TmpOdg.txt"

....

[OSTALO]

URLservisa=""

Certifikat="C:\Kasa\Fiskal1.pfx"

Lozinka="PeRo"              (a prema gore prikazanoj logici mogu: ne navesti, ili staviti "", ili nadopuniti kroz argument, npr. "123" pa EXE barata sa "PeRo123"

Uh, malo je dugačko, ali nadam se, jasno.

LP svima