Import danych > Import specjalny (format 3.0) > Przykłady szablonu i danych

Drukuj

Przykłady szablonu i danych

Ilustracja procesu przetwarzania danych

Przykłady  ilustrują przebieg przetwarzania przez szablon danych wejściowych do postaci wymaganej przez procedury wewnętrzne programu. Strzałkami zaznaczono przykładowe przepływy danych.

 

W przypadku formatu z nazwami pól, kolejność pól  w ramach jednej sekcji nie ma znaczenia. Również kolejność przetwarzania i analizowania pól w szablonie nie ma znaczenia. Wszystkie pola wejściowe są identyfikowane poprzez swoje nazwy.

 

img_fk_imp_sp_06

Rysunek  Przetworzenie pojedynczej sekcji danych w formacie z nazwami pól

 

W przypadku formatu bez nazw pól (pola oddzielone separatorami), istotna jest kolejność pól  w ramach jednej sekcji. Wszystkie pola identyfikowane są poprzez swój numer kolejny w linii danych.  Kolejność przetwarzania i analizowania pól w szablonie nie ma znaczenia, do poszczególnych pól można odwoływać się wielokrotnie, w dowolnej kolejności. Dla formatu bez nazw pól zwykle jeden plik zawiera jeden rodzaj danych, a każda linia pliku jest jedną sekcją danych. W takim przypadku nie ma również jawnie podanej nazwy sekcji wejściowej. W szablonie podajemy wówczas pustą nazwę sekcji wejściowej.

 

img_fk_imp_sp_07

 

Przetworzenie pojedynczej sekcji danych w formacie pól oddzielonych średnikami

 

W jednej sekcji danych może znajdować się wiele podsekcji o tej samej nazwie (np. wiele zapisów na różne konta w jednym dokumencie). W takim przypadku należy w szablonie zastosować pętlę programową w celu przeczytania wszystkich podsekcji.  Można to zrobić dodając argument REPEAT do polecenia SECTION, lub organizując klasyczną pętlę WHILE. Aby przetworzyć podsekcje o różnych nazwach (i zawierających różne dane), umieszczamy w szablonie odpowiednią liczbę podsekcji, przetwarzających odpowiadające im podsekcje wejściowe.

img_fk_imp_sp_08

 

Proces przetwarzania EDS z wykorzystaniem XSLT

Profil importu EDS został oznaczony dodatkową flagą w pliku INI wymuszającą pobieranie plików wejściowych z aplikacji Symfonia e-Faktury EDS, zamiast standardowego przeszukiwania z katalogu. W przypadku utworzenia własnego profilu z wykorzystaniem własnego szablonu XSLT, pobieranie pliku następuje standardowo z katalogu.

 

Po etapie pobierania pliku wejściowego w formacie XML następuje przetworzenie za pomocą wskazanego w profilach szablonu XSLT (w przypadku profilu EDS jest to efaktury.xslt). Transformacja wejściowego XML zgodnie ze wskazanym szablonem XSL generuje tekstowy plik wyjściowy w katalogu tymczasowym. W następnym kroku tak wygenerowany plik TXT importowany jest zgodnie z ilustracją z pkt 12.1 na podstawie wskazanego w profilu szablonu AMS.

 

Przykład obsługi dokumentów walutowych

Poniższy przykład wykorzystuje format danych AMS

// fragmenty  szablonu obsługującego dokumenty walutowe

Section("dokument", "dokument")

{

 ......

 $Kwota                = [kwota]

 //w sekcji „dokument” dodajemy wypełnianie pól dotyczących walut

 $Waluta        = [waluta]

 $WKwota        = [wkwota]

 $Tabela                = [tabela]         

 $Kurs                = [kurs]

 $TypKursu        = [typkursu]

 ......

 Section("", "", "REPEAT")        //REPEAT: analizujemy wszystkie podsekcje

 {

         switch( Translate( Name(), "L") )

         {

 ......

         case "zapis"

                 MakeSec("zapis")

                 {

                         $kwota                = [kwota]

 //w sekcji „Zapis” dodajemy wypełnianie pól dotyczących walut

                         $Waluta        = [waluta]

                         $WKwota        = [wkwota]

                         $Tabela                = [tabela]

                         $Kurs                = [kurs]

                         $TypKursu        = [typkursu]

                 }

                 break

         case "transakcja"

                 MakeSec("transakcja")

                 {

                 //w transakcji wszystkie informacje są wypełniane automatycznie

                         $ustawowe                = 1         //odsetki ustawowe

                         $zaliczka                = 0                //Zaliczka

                         $idDlaRozliczen         = [idDlaRozliczen]

                         $termin                        = [termin]        //Termin;

                 }

                 break

         case "rozliczenie"

                 MakeSec("rozliczenie")

                 {

                         $dSymbol = [dSymbol]        //numer własny dokumentu

                         $idDlaRozliczen = [idDlaRozliczen]

                         $kwota = [kwota]

 //w sekcji „rozlicznie” dodajemy kwotę walutową,

 //kurs itd. pobierane są automatycznie z dokumentu lub zapisu

                         $w_kwota = [wkwota]

                 }

                 break

         }

 }

}

 

// fragment pliku danych zawierającego informacje walutowe

Dokument{

 ....

 kwota =1382.70

 wkwota =337.24

 waluta =USD

 kurs =4.1000

 tabela = 0

 typkursu=3

 Zapis{

         strona =WN

         kwota =1382.70

         wkwota =337.24

         waluta =USD

         kurs =4.1000

         tabela = 0

         typkursu=3

         konto =201-9

         IdDlaRozliczen =1

         ...

 }

 Zapis{

         strona =MA

         kwota =1133.36

         wkwota =276.43

         waluta =USD

         kurs =4.1000

         tabela = 0

         typkursu=3

         konto =731

         IdDlaRozliczen =2

....

 }

 Zapis{

         strona =MA

         kwota =249.34

         wkwota =60.81

         waluta =USD

         kurs =4.1000

         tabela = 0

         typkursu=3

         konto =221-1

         IdDlaRozliczen =3

         ...

 }

 Rozliczenie{

         IdDlaRozliczen= -1

         kwota =1382.70

         wkwota =337.24

         dSymbol=FV12/00/001

 }

}