Import danych > Import specjalny (format 3.0) > Predefiniowane formaty

Drukuj

Predefiniowane formaty

Uwagi ogólne

Import specjalny w programie FK obsługuje wiele różnych formatów danych wejściowych, z czego część jest dostarczana razem z programem, a wiele innych można utworzyć samodzielnie. Poniższy opis predefiniowanych (wbudowanych) formatów opisuje tylko sposób, w jaki powinny zostać skonstruowane pliki danych, aby zostały rozpoznane jako poprawne pod względem składniowym. Nie znajdziemy w tym opisie szczegółowego znaczenia każdego pola, ani wartości jakie to pole może i powinno przyjmować, aby zostać prawidłowo zaimportowane do programu. Dane zawarte w plikach każdego formatu mogą być zupełnie dowolne i dowolnie ułożone, to dopiero szablon dokonuje takiego przekształcenia danych, aby zostały one prawidłowo zaimportowane. Tak więc format opisuje tylko cechy charakterystyczne pliku, nie opisuje jego zawartości merytorycznej. W Aby dowiedzieć się jak interpretować i pobierać dane zajrzyj do opisu języka szablonów.

 

Format SDF

Informacje ogólne  

Jest to jeden z najbardziej wiekowych i popularnych formatów danych. Jest używany przez programy MS Excel, MS Access i wiele innych. W formacie tym każda linia pliku zawiera jedną porcję pól danych, oddzielonych średnikami. W ogólnym przypadku formatu SDF każda linia zawiera taką samą liczbę pól, o takim samym znaczeniu. W imporcie specjalnym każdy wiersz może zawierać różną liczbę pól, a do tego mogą mieć one w każdym wierszu zupełnie różne znaczenie. Format kryjący się pod nazwą SDF jest jednym z przypadków ogólnego formatu CSV, czyli pól oddzielonych separatorami. Format SDF w imporcie specjalnym obsługuje pola oddzielone średnikami. Jeśli zaistnieje potrzeba obsłużenia formatu z polami oddzielonymi innymi znakami (np. tabulatorem lub przecinkiem), należy utworzyć własną definicję formatu, wzorując się na definicji SDF.

 

Pola danych

W formacie SDF pola danych oddzielone są od siebie średnikami. Pola tekstowe mogą być ujęte w cudzysłów, albo pozostać bez cudzysłowu. Jeśli nie używamy cudzysłowu, wówczas należy zadbać, aby wewnątrz pól tekstowych nie znalazł się znak średnika, który zostanie potraktowany jako separator pól. Z tego względu bezpieczniej jest stosować teksty w cudzysłowie. Jeśli jakieś pole zawiera pustą daną (zero lub pusty tekst), można skrócić zapis takiej informacji, pisząc sam średnik. Uwaga: w ten sposób nie można „skrócić” zapisu pierwszej danej w linii, gdyż tak linia zostałaby potraktowana jak komentarz.

 

Przykład:

"FV";1999-03-18; 1999-03-19;436576,56; "Holding S.A. ";233-22-33-234;01-223;"Warszawa"

 

Nazwy pól

Do wersji FK 4.0 jedynym sposobem nazywania pól w formacie SDF jest podawanie jako nazwy numeru kolejnego pola w wierszu danych. Od wersji 4.0 można używać pierwszy wiersz jako nazwy pól. Służy temu dyrektywa:

#NAZWY_POL „TAK” 

 

Oczywiście jeśli używamy tej dyrektywy, wówczas pierwszy wiersz powinien zawierać właściwe nazwy pól, w przeciwnym wypadku jako nazwy zostanie pobrany pierwszy wiersz danych.

 

Przykład użycia numerów pól w szablonie:

Section("","Dokument")

{

 $klucz  = [1]

$dataDok = [2]

$nip = [6]

}

 

Komentarze

Komentarzem w formacie SDF jest średnik umieszczony na początku linii.

Przykład:

;to jest komentarz. Następna linia również

;"FV";1999-03-18; 1999-03-19;436576,56; "Holding S.A. ";233-22-33-234;01-223;"Warszawa"

 

Sekcje i podsekcje

W formacie SDF jedna linia tworzy jedną sekcję bez zagnieżdżonych podsekcji. Sekcja wejściowa SDF nie ma nazwy (nazwa jest pusta).

 

Format AM

Informacje ogólne  

Format AM został wprowadzony w programie FK w wersji 2.0 i był używany do wymiany danych pomiędzy programami Sprzedaż oraz Finanse i Księgowość skończywszy na wersji 3.0. Jest to modyfikacja formatu SDF, w którym wprowadzono podział na sekcje oraz podsekcje. Format od wprowadzenia wersji FK 3.0 nie jest rozwijany , a bardzo mało elastyczna struktura tego formatu powoduje niemożność przyjmowana bardziej rozbudowanych dokumentów przy jego pomocy. Również szablony dla tego formatu nie są dalej rozwijane. Obecnie w rozwiązaniach Symfonii stosowany jest format AMS, zaś format AM pozostał na wypadek gdyby ktokolwiek chciał użyć archiwalnych wersji danych. Nie należy go używać do tworzenia nowych rozwiązań.

 

Pola danych

W formacie AM pola danych oddzielone są od siebie średnikami. Dodatkowo pola tekstowe ujęte są w cudzysłowie.

Przykład pól w formacie AM

"FV";1999-03-18; 1999-03-19;436576,56; "Holding S.A. "

 

Komentarze

Komentarzem w formacie AM jest średnik umieszczony na początku linii.

Przykład:

;to jest komentarz. Następna linia również

;"DOK";1999-03-18; 1999-03-19;6576,56; "Holding S.A.";233-22-33-234;01-223; "Koło"

 

Sekcje i podsekcje

W formacie AM występują sekcje oraz podsekcje. Główną sekcją jest zawsze sekcja dokumentu, która zawiera podsekcje zapisów, rejestrów VAT oraz rozrachunków. Wyróżnikiem rodzaju sekcji jest zawartość pierwszego pola w wierszu danych:

„DOK”        Sekcja dokumentu

„ZAP”        podsekcja pierwszego zapisu w bilansującej się grupie (pozycji)

„ZAK”        podsekcje kolejnych  zapisów w bilansującej się grupie

„VAT”        podsekcja rejestru VAT

„TRA”        podsekcja nowej transakcji

„ROZ”        podsekcja rozliczenia transakcji

 

Format CDF

Informacje ogólne  

W formacie CDF poszczególne pola danych mają na stałe określony rozmiar (ilość znaków), jeśli aktualna wartość pola ma mniejszą liczbę znaków (np. cyfr w kwocie) wówczas reszta dopełniana jest spacjami do pełnego rozmiaru pola. W tym formacie nie ma separatorów pól.

 

Pola danych

Dla każdego pola w formacie CDF musi zostać określona szerokość tego pola (ilość znaków).

Szerokości poszczególnych pól podaje się bezpośrednio w specyfikacji formatu. Przykładowo jeśli linia danych zawiera 4 pola o szerokości odpowiednio 8, 4, 200 oraz 12 znaków, wówczas definicja tego formatu będzie wyglądać następująco:

#FORMAT  „CDF,8,4,200,12”

 

Komentarze

W tym formacie nie ma komentarzy.

 

Sekcje i podsekcje

W tym formacie sekcję stanowi jeden wiersz danych. Nie ma  możliwości tworzenia podsekcji, ani też sekcji różnego rodzaju.

 

Format AMS

Informacje ogólne  

Format AMS jest obecnie powszechnie wykorzystywany w aplikacjach Symfonii. Stosuje on identyfikację każdej danej poprzez jej nazwę. Dzięki temu każda dana może być jednoznacznie zidentyfikowana niezależnie od tego, w którym miejscu się znajdzie, ani też jakie inne informacje i jakich miejscach są oprócz niej zawarte. Jedna linia  danych w pliku zawiera tylko jedno pole danych. Nazwa pola danych jest oddzielona od jej wartości znakiem równości (podstawienia).   Dane które są ze sobą logicznie połączone  powinny zostać umieszczone w sekcji danych. Sekcja danych składa się z nazwy oraz znaków początku i końca sekcji. Wszystko co znajduje się pomiędzy znakami początku i końca sekcji traktowane jest jako zawartość sekcji. Sekcja danych jest elementarną porcją danych, przetwarzanych w całości przez procedury importu specjalnego. Szablony oparte na formacie AMS odpowiedzialne za wczytywanie konkretnych danych mogą przetwarzać dowolny podzbiór danych, zarówno w pojedynczej sekcji, jak i odnośnie całych sekcji. Oznacza to że w pliku danych może być wiele nadmiarowych danych , które nie podlegają wczytywaniu i przetwarzaniu, oznacza to również że plik wejściowy może się zmieniać (może przybywać w nim kolejnych sekcji i kolejnych danych w sekcjach), a szablon pozostawiony w niezmienionej postaci nadal może te dane dokładnie tak samo przetwarzać. Format ten pozwala więc na elastyczną pracę z plikami danych.

 

Pola danych:

Każda dana (pole) składa się z nazwy danej oraz z jej wartości. Nazwa i wartość oddzielone są znakiem przypisania. Zarówno nazwa jak i wartość mogą zawierać dowolne znaki ASCII o kodach >= 32. Spacje na początku i końcu nazwy pola oraz wartości są ignorowane.

 

Przykład:

Data dokumentu = 1997-09-12

Kwota = 12 000 245,56

Treść = Zakup towarów handlowych w firmie „PPHU Handel”

 

Nazwy pól danych mogą być dowolne, ale powinny być unikalne w ramach jednej sekcji. Jeśli pojawi się w jednej sekcji kilka pól o tej samej nazwie, wówczas dostępna będzie tylko wartość tylko pierwszego pola. Kolejne pola  o powtórzonej nazwie będą niedostępne.

 

Pola danych mogą występować  poza sekcjami tylko na samym początku pliku (tzw. dane globalne) mogą określać dodatkowo format  pliku, w szczególności: format daty oraz separator dziesiętny w polach kwot, nadawcę pliku, datę pliku itp.

 

Przykład:

Data=rrrr-mm-dd

Separator01=,

Nadawca= SYSTEM SPRZEDAŻY v1.0

Data nadania=1997-09-12

 

Komentarze

Komentarze są to informacje przeznaczone wyłącznie dla osoby przeglądającej zawartość pliku, a nie dla programu wczytującego dane. Użycie komentarzy pozwala na przeprowadzanie eksperymentów w trakcie tworzenia szablonów importu (można szybko „usuwać” oraz „dodawać” dane).

Dwa znaki // (slash) oznaczają komentarz. Wszystko co znajduje się po tych znakach, aż do końca linii jest traktowane jak komentarz i jest ignorowane.

Przykład:

//ten tekst będzie zignorowany, to jest tylko komentarz  

kwota = 12 000,89        //kwota brutto <- to też jest komentarz

//pole do testów = dane testowe

 

Sekcje i podsekcje

Sekcja składa się z nazwy sekcji, znaku początku sekcji, danych sekcji lub podsekcji oraz znaku końca sekcji.

Nazwa sekcji może zawierać dowolne znaki ASCII o kodach >= 32. Spacje na początku i końcu nazwy pola oraz wartości są ignorowane. Znakami początku i końca sekcji są nawiasy klamrowe.

 

W obecnej wersji importu specjalnego nazwa sekcji oraz znak początku sekcji muszą znajdować się w tej samej linii pliku wejściowego.

 

Przykład:

Faktura VAT         {        //<- nazwa sekcji oraz początek sekcji

 data dokumentu = 1997-09-12        //<- dane sekcji

 kwota = 12 345,34

 kontrahent = ABACO HOLDING

}                        //koniec sekcji

 

Sekcje danych mogą być umieszczone wewnątrz innych sekcji danych, wówczas nazywamy je podsekcjami. Przykładem mogą być podsekcje zapisów w sekcji dokumentu

 

Przykład z zagnieżdżonymi sekcjami:

Faktura VAT        {        //<- nazwa sekcji oraz początek sekcji

 data dokumentu = 1997-09-12        //<- dane sekcji

 kwota = 12 345,34

 kontrahent        { //<-nazwa podsekcji oraz początek podsekcji

nazwa = ABACO HOLDING

adres = Zalesie 12

 } //koniec podsekcji

}  //koniec sekcji

 

Kolejność poszczególnych pól w sekcji nie ma znaczenia. Nazwy pól użyte w jednej sekcji mogą być powtórzone w dowolnej innej sekcji lub podsekcji.

Nazwy podsekcji są dowolne i w odróżnieniu od nazw pól mogą się powtarzać. Powtarzające się sekcje są  dostępne i mogą być analizowane w kolejności ich występowania.

 

Każda sekcja danych powinna zawierać komplet danych niezbędnych do prawidłowego wprowadzenia danych do programu. W szczególności nie powinno być w nich bezpośrednich odwołań (relacji) do danych znajdujących się w innych plikach. Przykładowo sekcja dokumentu powinna zawierać podsekcję kontrahenta z podaniem wszystkich informacji o kontrahencie, a nie tylko numer kontrahenta w kartotece u nadawcy. Umożliwia to lepszą kontrolę wprowadzanych danych oraz gwarantuje spójność danych.

 

Mechanizmy importu specjalnego zastosowane w programie Symfonia Finanse i Księgowość zapewniają dużą elastyczność importu, dzięki zastosowaniu szablonów, które opisują sposób zamiany dowolnych danych wejściowych na wymaganą przez program postać. Mechanizm ten daje dużą swobodę w sposobie nazywania pól oraz sekcji danych a także formatu danych. Oczywiście dla każdego formatu danych wejściowych musi zostać stworzony oddzielny szablon opisujący ten format.

 

Przykładowe dane, generowane przez program Symfonia Płace, dane te mogą być wczytywane przy użyciu szablonu PLACE.AMS:

 

Dokument {

 NrKolejny =0

 Nazwa =PŁACE 02/1998

 Treść =Płatne gotówką  luty 1998 otwarty

 DataDok =1997-11-14

 DataOper =1997-11-14

 DataWpływu =1997-11-14

 Kwota =1024.0000

 Kontrahent =0

 KontrahentFK =0

 NIP =

 Sygnatura =admin

 SaldoPRK =0.0000

 SaldoZRK =0.0000

 KontoKasy =

 NazwaKor =

 DataKor =

 ObsługujJak =DP

 Zapis{

         ZAP/ZAK =P

         WN/MA =WN

         Kwota =192.8000

         Konto =100

         NumerDokDlaRK =numer = 0

         IdDlaRozl =1

         Opis =zaliczka na podatek

         zapisRownolegly =0

 }

 Zapis{

         ZAP/ZAK =K

         WN/MA =MA

         Kwota =203.8000

         Konto =210

         NumerDokDlaRK =numer = 0

         IdDlaRozl =2

         Opis =zaliczka na podatek i inne

         zapisRownolegly =0

 }

 Zapis{

         ZAP/ZAK =K

         WN/MA =WN

         Kwota =11.0000

         Konto =200-U6

         NumerDokDlaRK =numer = 0

         IdDlaRozl =5

         Opis =zaliczka na podatek

         zapisRownolegly =0

 }

 Pracownik {

         id =59

         nazwisko =Jankowski

         panienskie =

         imie1 =Jerzy

         imie2 =Paweł

         imieOjca =Marian

         imieMatki =Alicja

         data urodzenia =1945-12-01

         miejsce urodzenia =Kobyłka

         pesel =44120147891

         nip =722-101-21-89

         telefon =

         Adres staly {

                 miejscowosc =Kobyłka

                 gmina =Kobyłka

                 ulica =Kobielska

                 numerDomu =12

                 numerMieszk =7

                 st_kod =12-876

                 st_poczta =Rowy

                 województwo =Opolskie

                 kraj =

         }

         Adres tymczasowy {

                 miejscowosc =Tłuszcz

                 gmina =Kobyłka

                 ulica =

                 numerDomu =12

                 numerMieszk =

                 st_kod =12-300

                 st_poczta =Kobyłka

                 województwo =

                 kraj =Polska

         }

         Rachunek {

                 urzadSkarbowy =Urząd skarbowy nr 3

                 rach_symbol = PKO BP 0/12

                 rach_numer =1342-3453-345345

         }

 }

 Urzad   {

         id =6

         nazwa =Urząd Skarbowy Biała Podlaska

         ulica =Prosta

         nr_domu =19

         miejscowosc =Biała Podlaska

         kod =21-500

         Rachunek {

                 rach_symbol =NBP o/o Biała Podlaska

                 rach_numer =10101036-1531-222-3

         }

 }

 

Format POLKA

Informacje ogólne  

Historycznie jest to najstarszy format, stosowany przez program FK do wczytywania danych z programów innych producentów. Został opracowany na potrzeby współpracy z programem POLKA w wersji 2.0. Ze względu na upływ czasu i możliwość zmian przez producenta programu należy się liczyć z tym, że nie będzie mógł być wykorzystany z aktualnymi wersjami programu POLKA bez koniecznych modyfikacji.  Jest to format danych z nazwami pól, zgrupowanych w sekcje, które mogą być zagnieżdżane. Jest zbliżony do nowszego formatu AMS, który w pełni przejął jego funkcjonalność.

 

Sekcje i podsekcje

W formacie POLKA występują trzy rodzaje danych, każdy rodzaj jest  inaczej zapisywany. Dane te są podzielone na trzy kategorie:

Dane globalne

Sekcja identyfikacja

Sekcje danych właściwych

Z punktu widzenia szablonów importu dane te tworzą trzy rodzaje sekcji wejściowych. Złożoność tego formatu wynika stąd, że każdy rodzaj sekcji i danych ma inną składnię.

 

Pola danych

Dane globalne są zbliżone do definicji w szablonie, czyli są to nazwy definicji poprzedzone znakiem #  z następującą  składnią:

#nazwa_definicji   „wartość_definicji”

 

Sekcja IDENTYFIKACJA zawiera dane z nazwami pól, dla których obowiązującym separatorem nazwy i wartości jest znak dwukropka

 Nadawca        : "Polka™ 2.50"

 

Właściwe sekcje danych zawierają wartości z nazwami pól, a separatorem jest znak równości:

 Nazwa klienta DO = HOLDING S.A.

W każdym z rodzajów danych w jednym wierszu znajduje się tylko jedna dana

Komentarze

 

Format SUBIEKT

Informacje ogólne  

Jest to format stosowany przez wczesne wersje programu SUBIEKT do eksportu danych z tego programu. Konstrukcja tego pliku jest w pewnym zakresie wzorowana na plikach typu INI. Jest to format, w którym dane wejściowe są grupowane w sekcje (nagłówek dokumentu) oraz podsekcje (pozycje towarowe). Format ten może nie odpowiadać potrzebom bieżącej wersji programu SUBIEKT i przedstawiony jest w celach poglądowych.

 

Pola danych

Pola danych są w formacie zbliżonym do SDF, czyli są to wartości oddzielone średnikami

 

Komentarze

W tym formacie nie ma komentarzy

 

Sekcje i podsekcje

W tym formacie nie ma jednorodnej definicji sekcji, występują zarówno jawnie nazwane sekcje zbliżone do formatu INI, jak też podsekcje będące wierszami w formacie SDF.

 

Format COMMA

Informacje ogólne  

Format COMMA jest analogiczny do formatu SDF, z tą różnicą, że pola są od siebie oddzielone przecinkami.

 

Pola danych

W formacie COMMA pola danych oddzielone są od siebie przecinkami. Pola tekstowe mogą być ujęte w cudzysłów, albo pozostać bez cudzysłowu. Jeśli nie używamy cudzysłowu, wówczas należy zadbać, aby wewnątrz pól tekstowych nie znalazł się znak przecinka, który zostanie potraktowany jako separator pól. Z tego względu bezpieczniej jest stosować teksty w cudzysłowie. Jeśli jakieś pole zawiera pustą daną (zero lub pusty tekst), można skrócić zapis takiej informacji, pisząc sam przecinek. Uwaga: w ten sposób nie można „skrócić” zapisu pierwszej danej w linii, gdyż tak linia zostałaby potraktowana jak komentarz.

 

Nazwy pól

Od wersji FK 4.0 można używać pierwszy wiersz jako nazwy pól. Służy temu dyrektywa:

#NAZWY_POL „TAK” 

Oczywiście jeśli używamy tej dyrektywy, wówczas pierwszy wiersz powinien zawierać właściwe nazwy pól, w przeciwnym wypadku jako nazwy zostanie pobrany pierwszy wiersz danych.

 

Komentarze

Komentarzem w formacie SDF jest przecinek umieszczony na początku linii.

 

Sekcje i podsekcje

W formacie COMMA jedna linia tworzy jedną sekcję bez zagnieżdżonych podsekcji. Sekcja wejściowa nie ma nazwy (nazwa jest pusta).

 

Format Symfonia e-Faktury z EDS

Informacje ogólne

Format EDS jest hierarchicznym formatem XML (Maska plików danych *.XML) zawierającym dane wewnątrz tagów wejściowych zdefiniowanych w dokumencie XSD.

 

Pola danych

W formacie EDS pola danych zawarte są w notacji XML. Dane wejściowe mogą zawierać znaki specjalne np. &amp; &lt;, które w procesie transformacji XSL zamieniane są na odpowiednie znaki w formacie ASCII. Dokument wejściowy może zawierać komentarze wewnątrz tagów <!-- komentarz -->