Import danych > Import specjalny (format 3.0) > Predefiniowane formaty | | Drukuj |
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. & <, 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 -->