Ustawienia > Konfiguracja systemów bankowych > Format wyciągów CSV

Drukuj

Format wyciągów CSV

oz_rdf_12

 

Więcej informacji - Jak dodać system bankowy?

 

Jeśli jako format wyciągu bankowego wybrany zostanie format CSV, wtedy na zakładce Wyciągi można skonfigurować szczegółowe parametry jego przetworzenia oraz mapowania kolumn z danymi w systemie Symfonia.

 

Poprawny import w tym formacie wymaga ustawienia parametrów importu oraz mapowania kolumn na zakładce Wyciągi.

 

Parametry dla CSV

oz_rdf_10

 

Konfiguracja – umożliwia wklejenie ciągu znaków definiującego cały szablon importu wyciągu bankowego z CSV.

Rozszerzenia plików – rozpoznawane rozszerzenia plików dla wyciągów bankowych.

Ignoruj nadmiarowe kolumny – ostatnie kolumny nie uwzględnione w schemacie będą ignorowane.

Formaty daty – rozpoznawane formaty daty.

Separator dziesiętny – znak używany jako separator części ułamkowej liczb.

Separator tysięcy – znak używany jako separator grup cyfr w zapisie liczby.

Separator pól – znak używany do oddzielenia pól(kolumn) danych w pliku CSV.

Kwalifikator tekstu – znak oznaczający dane typu tekst (zazwyczaj cudzysłów " ).

Tytuły kolumn – oznaczenie, czy plik zawiera wiersz z tytułami kolumn.

Nagłówek - maksymalna liczba wierszy – pomaga określić maksymalną liczbę wierszy w nagłówku, które zostaną pominięte.

Nagłówek - minimalna liczba wierszy – pomaga określić minimalną liczbę wierszy w nagłówku, które zostaną pominięte.

Stopka - maksymalna liczba wierszy – pomaga określić maksymalną liczbę wierszy w stopce, które zostaną pominięte.

Stopka - minimalna liczba wierszy – pomaga określić minimalną liczbę wierszy w stopce, które zostaną pominięte.

Regex detekcji nagłówka – wyrażenie regularne pomagające wykryć wiersz zawierający tytuły kolumn (lub pierwszy wiersz danych).

Mapowanie – mapowanie powiązania kolejnych pól(kolumn) danych(przetworzonych według schematu z definicji Kolumny) z danymi w Repozytorium Dokumentów.

Kolumny – definicja przetworzenia danych z pliku CSV w importowane kolumny. Wykorzystując wyrażenia regularne można np. wydzielić lub połączyć treść pól z pliku CSV.

Ignoruj puste wiersze – gdy zaznaczone: pominięte zostaną wiersze zawierające białe znaki (spacja, tabulacja, koniec wiersza).

Kodowanie – domyślne kodowanie pliku wyciągu.

Automatycznie rozpoznawaj kodowanie – gdy zaznaczone: program spróbuje samodzielnie rozpoznać użytą w pliku stronę kodową.

 

Mapowanie kolumn

W parametrze definicji Mapowanie należy wprowadzić powiązania kolumn z pliku CSV z danymi z systemie Symfonia.

 

Mapowanie wprowadzane jest jako serializacja słownika (w formacie JSON) np:

{ "O.AccountingDate": "C01", "O.Amount": "C02", "O.ClientAccount": "C03", "O.ContractorAccount": "C04", "O.ContractorAddress": "C05", "O.ContractorName": "C06", "O.Title": "\"Tyt: \" + C07 + C08" }

 

Gdzie powiązanie kolumn składa się z:

"kodu kolumny w programie Symfonia": "Identyfikatora kolumny z pliku CSV"

na przykład: "O.AccountingDate": "C01"

 

Identyfikatory kolejnych kolumn z pliku CSV to odpowiednio: C01, C02, C03 ... C99.

 

W poniższej tabeli znajdują się możliwe do wykorzystania przy mapowaniu kody kolumn w systemie Symfonia.

Kod

Kolumna w programie

O.AccountingDate

Data operacji

Pole wymagane.

O.AdditionalInfo

Informacje dodatkowe

O.Amount

Kwota

Kwota operacji. Pole wymagane.

O.BankReference

Referencje Banku

O.ClientAccount

Numer rachunku

Numer rachunku którego dotyczy wyciąg.

O.ClientInfo

Informacje dodatkowe klienta

O.ClientReference

Numer referencyjny klienta

Unikalny numer referencyjny z przelewu. Np.: SYMF0000012345.

O.ContractorAccount

Numer rachunku kontrahenta

Numer rachunku, z którego przelew przyszedł lub, na który my przelewamy.

O.ContractorAddress

Adres kontrahenta

Adres firmy lub osoby kontrahenta.

O.ContractorName

Nazwa kontrahenta

Nazwa firmy lub osoby kontrahenta.

O.Currency

Waluta

O.CurrencyDate

Data waluty

O.Description

Opis operacji

O.OperationCode

Kod operacji

O.OperationCodeGVC

Kod GVC operacji

O.OperationCodeName

Nazwa kodu operacji

O.OperationCodeSWIFT

Kod SWIFT operacji

O.Title

Tytuł przelewu

Tytuł operacji. Tytuł może zawierać informację dotyczące podzielonej płatności lub numer referencyjny klienta.

O.TransactionReference

Numer referencyjny transakcji

O.VatTransferAmount

Kwota VAT

Deklarowana kwota VAT w przelewach podzielonej płatności.

O.VatTransferInvoiceNumber

Numer faktury

Numer faktury (/INV/) w przelewach podzielonej płatności.

O.VatTransferNIP

Numer NIP

Numer NIP w przelewach podzielonej płatności.

O.VatTransferPaymentID

Identyfikator płatności polecenia zapłaty

Identyfikator płatności polecenia zapłaty w przelewach podzielonej płatności.

 

Definicja powiązania kolumny programu Symfonia może być złożona:

z kilku kolumn / wartości tekstowych / fragmentów kolumn z pliku CSV za pomocą operatora + np.:

"O.Title": "C07 + C08"

Zawartość kolumny Tytuł przelewu złożona zostanie z wartości kolumn C07 oraz C08 (z pliku CSV).

 

z fragmentów kolumny CSV na podstawie wyrażeń regularnych, np.:

"O.Title": "C07.DAY"

Zwartość kolumny Tytuł przelewu uzupełniona zostanie na podstawie zdefiniowanego w parametrze Kolumny wyrażenia regularnego DAY zdefiniowanego dla kolumny 7 np.: (?<DAY>\d\d).*

Więcej informacji o wyrażeniach regularnych znajduje się niżej w części Kolumny i definicje transformacji.

 

z wartości tekstowej umieszczonej w cudzysłowach np.:

"O.Title": "\"Tytuł:\" + C08"

W kolumnie Tytuł przelewu umieszczony zostanie tekst Tytuł: i po nim dołączona zostanie wartość kolumny C08 (z pliku CSV).

Wartość tekstowa oznaczona jest cudzysłowami ale w związku z tym, że jest to znak specjalny w formacie JSON należy przed nimi wstawić znak backslash np: \"tekst\".

 

Kolumny i definicje transformacji

W parametrze Kolumny znajdują się (w formacie JSON) dodatkowe informacje dotyczące przetworzenia treści tabeli z pliku CSV.

 

{

    "Count": 10,

    "CountMin": 8,

    "Cols": {

        "C01": {

            "Regex": "(?<DD>\\d\\d)[\-\/\.](?<MM>\\d\\d)[\-\/\.](?<YY>\\d\\d)"

        },

        "C02": {

            "True": ["DontTrim", "KeepApostrophe", "KeepQuotation", "TrimValue"]

        },

        "C05": {

            "True": ["KeepApostrophe", "KeepQuotation"]

        },

        "C06": {

            "True": ["KeepApostrophe"],

            "Regex": ".*(?<REF>SAGE\\d{10}).*"

        }

    }

}

 

W związku z tym, że zapis wykonywany jest w formacie JSON, wszystkie znaki specjalne zastrzeżone dla niego a wykorzystywane w wyrażeniach regularnych muszą być poprzedzone \.

 

Parametry

Nazwa

Opis

Count

Określa oczekiwaną liczbę kolumn np:

"Count": 10

 

Z takiej ilości pierwszych kolumn będą odczytywane dane.

 

Jeśli kolumn jest więcej i została zaznaczona opcja "IgnoreAdditionalColumns" to nadmiarowe kolumny zostaną zignorowane. Jeśli opcja nie została zaznaczona opcji to program zwróci błąd. Zasady te nie dotyczą wierszy zaklasyfikowanych jako nagłówek lub stopka (ustawienia parametrów maksymalnej/minimalnej liczby wierszy nagłówka/stopki).

CountMin

Minimalna ilość kolumn w pliku CSV wymagana, aby wiersz został rozpoznany jako poprawny wiersz danych np:

"CountMin": 8

 

Domyślnie przyjmowana jest wartość tama sama jak parametru Count.

Cols

Kolekcja (maksymalnie Count elementów) z parametrami dla każdej z kolumn np:

"Cols":

   "C01": {

           "Regex": "(?<DD>\\d\\d)[\-\/\.](?<MM>\\d\\d)[\-\/\.](?<YY>\\d\\d)"

   },  

   "C02": {

      "True": ["DontTrim", "KeepApostrophe", "KeepQuotation", "TrimValue"]

   }

}

 

Jeśli któryś z elementów nie wystąpi to zakładamy, że ma wartości domyślne.

C01 ... C99

Identyfikator kolumny z pliku CSV.

DontTrim

Cecha kolumny wyłączająca usuwanie białych znaków okalających np:

"C02": { "True": ["DontTrim"] }

 

Jako wartość pola domyślnie pobierana jest cała wartość pola kolumny między znakami rozdzielającymi.

 

Domyślnie cecha ma wartość false i powoduje usuwanie pustych znaków okalających np:
;  " mój tekst "  ;

zaimportuje wartość " mój tekst " bez oznaczonych na przykładzie rozpoczynających i kończących białych znaków.

KeepApostrophe

Cecha kolumny wyłączająca usuwanie apostrofu (kwalifikatora tekstu) z początku i końca stringa np:

"C02": { "True": ["KeepApostrophe"] }

 

Domyślnie cecha ma wartość false.

KeepQuotation

Cecha kolumny wyłączająca usuwanie cudzysłowów z początku i końca stringa, oraz zamiany podwójnych apostrofów (kwalifikatorów tekstu) na pojedyncze np:

"C02": { "True": ["KeepQuotation"] }

 

Domyślnie cecha ma wartość false.  Cudzysłowy nie zostaną usunięte jeśli string zawiera okalające białe znaki.

TrimValue

Cecha kolumny włączająca usunięcie okalających białych znaków.

"C02": { "True": ["TrimValue"] }

 

Domyślnie cecha ma wartość false.

 

Działanie cechy jest podobne do DontTrim z tą różnicą, że dla TrimValue usunięcie białych znaków wykonywane jest po operacjach DontTrim, KeepApostrophe, KeepQuotation. Dzięki czemu na przykład, gdy TrimValue=True oraz DontTrim=False, KeepQuotation=False możliwe jest usunięcie białych znaków (wewnątrz cudzysłowów) np.:

;  " mój tekst "  ;

zaimportuje wartość mój tekst bez oznaczonych na przykładzie rozpoczynających i kończących białych znaków (cechy DontTrim oraz KeepQuotation odpowiadają tu za usunięcie pozostałych białych znaków oraz cudzysłowów).

Regex

Cecha kolumny definiująca jedno lub więcej wyrażeń regularnych Regex wykorzystywanych do przekształcenia zawartości kolumny np:

"C06": { "Regex": ".*(?<REF>SAGE\\d{10}).*" }

 

Zdefinowane tu wyrażenia regularne można wykorzystać w definicji mapowania kolumn (parametr Mapowanie) np:

{ "O.ClientReference": "C06.REF" }

 

Wyrażenia regularne Regex

W niektórych formatach wyciągów może być niezbędne wykorzystanie wyrażeń regularnych aby przekształcić dane z kolumn pliku wyciągu do układu stosowanego w programach Symfonia.

 

Poniżej opisany został mechanizm zastosowania wyrażeń regularnych na przykładzie wydzielenia numeru referencyjnego (nadawanego przez Symfonię) umożliwiającego połączenie operacji bankowych z dokumentami w module Finanse i Księgowość.

 

Przykładowa definicja dla parametru Mapowanie:

{

    "O.AccountingDate": "C01",

    "O.CurrencyDate": "C02",

    "O.ContractorName": "C03",

    "O.ClientAccount": "C04",

    "O.ContractorAccount": "C05",

    "O.Title": "C06",
    "O.ClientReference": "C06.REF",

    "O.Amount": "C07",

    "O.Currency": "C08",

    "O.TransactionReference": "C09",

    "O.OperationCodeName": "C10"

}

 

Definicja zawiera wskazanie że numer referencyjny "O.ClientReference" odczytany zostanie z wyrażenia regularnego o nazwie grupy REF dla kolumny C06.

 

Ze względu że zapis parametru przechowywany jest w formacie JSON należy pamiętać o dostawieniu znaków ucieczki \ przed znakami specjalnymi.

 

W ustawieniach parametru Kolumny należy dodać definicję wyrażenia regularnego (dla kolumny C06) określającą grupę warunków o nazwie REF np:

"C06": { "Regex": ".*(?<REF>SAGE\\d{10}).*" }

 

W tym przypadku wyrażenie regularne składa się z elementów:

.* (dowolny ciąg znaków)

?<REF> (definicja nazwy grupy)

SAGE\\d{10} (warunek grupy REF: odszukaj ciąg zawierający SAGE a nastęnie 10 cyfr)

 

Dokumentacja wyrażeń regularnych Regex:

https://docs.microsoft.com/pl-pl/dotnet/standard/base-types/regular-expression-language-quick-reference