Transformacje pól
Transformacje modyfikują wartości pobrane ze źródeł danych przed wstawieniem do XML. Łączy się je znakiem | (pipe):
CardName|TRIM|UPPERTransformacje tekstowe
Dział zatytułowany „Transformacje tekstowe”Usuwa białe znaki z początku i końca.
" ABC " → "ABC"Zamienia na wielkie litery.
"abc" → "ABC"Zamienia na małe litery.
"ABC" → "abc"REPLACE(“stary”,“nowy”)
Dział zatytułowany „REPLACE(“stary”,“nowy”)”Zamienia tekst.
"ul. Kwiatowa 5" z REPLACE("ul. ","") → "Kwiatowa 5"LEFT(n)
Dział zatytułowany „LEFT(n)”Pierwsze n znaków.
"ABCDEF" z LEFT(3) → "ABC"RIGHT(n)
Dział zatytułowany „RIGHT(n)”Ostatnie n znaków.
"ABCDEF" z RIGHT(3) → "DEF"SUBSTRING(start,długość)
Dział zatytułowany „SUBSTRING(start,długość)”Wycina fragment (indeks od 0).
"ABCDEF" z SUBSTRING(2,3) → "CDE"PREFIX(“tekst”)
Dział zatytułowany „PREFIX(“tekst”)”Dodaje tekst na początku.
"12345" z PREFIX("PL") → "PL12345"SUFFIX(“tekst”)
Dział zatytułowany „SUFFIX(“tekst”)”Dodaje tekst na końcu.
"12345" z SUFFIX("-00") → "12345-00"PADLEFT(n,“znak”)
Dział zatytułowany „PADLEFT(n,“znak”)”Dopełnia z lewej strony do długości n.
"42" z PADLEFT(5,"0") → "00042"PADRIGHT(n,“znak”)
Dział zatytułowany „PADRIGHT(n,“znak”)”Dopełnia z prawej strony do długości n.
"42" z PADRIGHT(5,"0") → "42000"Wyrażenia regularne
Dział zatytułowany „Wyrażenia regularne”REGEX(“wzorzec”,“zamiennik”)
Dział zatytułowany „REGEX(“wzorzec”,“zamiennik”)”Zamiana z wyrażeniem regularnym.
"NIP: 123-456-78-90" z REGEX("[^0-9]","") → "1234567890"MATCH(“wzorzec”)
Dział zatytułowany „MATCH(“wzorzec”)”Wyciąga pierwsze dopasowanie.
"Faktura VAT nr 123/2026" z MATCH("[0-9]+/[0-9]+") → "123/2026"Transformacje warunkowe
Dział zatytułowany „Transformacje warunkowe”IF_FIELD_EQ(“pole”,“wartość”)
Dział zatytułowany „IF_FIELD_EQ(“pole”,“wartość”)”Stosuje kolejne transformacje tylko jeśli pole jest równe wartości.
DocCurrency|IF_FIELD_EQ("DocCurrency","PLN")|CONST("PLN")Jeśli DocCurrency = "PLN" → wynik "PLN". Jeśli nie — pomija resztę łańcucha.
IF_FIELD_NEQ(“pole”,“wartość”)
Dział zatytułowany „IF_FIELD_NEQ(“pole”,“wartość”)”Stosuje kolejne transformacje tylko jeśli pole NIE jest równe wartości.
DocTotalFC|IF_FIELD_NEQ("DocCurrency","PLN")Zwraca DocTotalFC tylko jeśli waluta to nie PLN.
IF_EMPTY
Dział zatytułowany „IF_EMPTY”Stosuje kolejne transformacje tylko jeśli bieżąca wartość jest pusta.
FederalTaxID|IF_EMPTY|CONST("1")Jeśli FederalTaxID jest pusty → ustaw "1" (BrakID w KSeF).
IF_NOT_EMPTY
Dział zatytułowany „IF_NOT_EMPTY”Stosuje kolejne transformacje tylko jeśli bieżąca wartość NIE jest pusta.
FederalTaxID|IF_NOT_EMPTY|TRIMTrim stosowany tylko gdy pole ma wartość.
CONST(“wartość”)
Dział zatytułowany „CONST(“wartość”)”Stała wartość, niezależna od danych źródłowych.
CONST("FA") → zawsze "FA"CONST("3") → zawsze "3"Mapuje kod VAT z SAP na kategorię KSeF, korzystając z tabeli mapowania VAT.
"Dzw"|VATMAP → "23""E8"|VATMAP → "8"Więcej o mapowaniu VAT: Mapowanie VAT.
Wyrażenia matematyczne
Dział zatytułowany „Wyrażenia matematyczne”EXPR(“wyrażenie”)
Dział zatytułowany „EXPR(“wyrażenie”)”Wyrażenie matematyczne NCalc. W nawiasach kwadratowych pola ze źródła danych.
EXPR("[VisualOrder] + 1") → numer wiersza + 1EXPR("[GrossTotal] - [LineTotal]") → kwota VATEXPR("[Quantity] * [Price]") → wartość nettoObsługiwane operatory: +, -, *, /, %, nawiasy.
Transformacje agregatowe
Dział zatytułowany „Transformacje agregatowe”Stosowane na źródłach tablicowych (np. lines, vat_summary).
Filtrowanie wierszy tablicy na podstawie warunku.
VATFILTER(“kategoria”)
Dział zatytułowany „VATFILTER(“kategoria”)”Filtrowanie wierszy po kategorii VAT KSeF.
VATFILTER("23") → tylko wiersze z VAT 23%VATFILTER("8") → tylko wiersze z VAT 8%Sumowanie wartości po filtrowaniu.
LineTotal|VATFILTER("23")|SUM → suma netto pozycji z VAT 23%Zliczanie wierszy po filtrowaniu.
lines|VATFILTER("23")|COUNT → liczba pozycji z VAT 23%EXPR_AGGREGATE
Dział zatytułowany „EXPR_AGGREGATE”Wyrażenie matematyczne na zagregowanych danych.
EXPR_AGGREGATE("[SumGross] - [SumNet]") → suma VATŁączenie transformacji — przykłady
Dział zatytułowany „Łączenie transformacji — przykłady”Pełny NIP (usuń myślniki, przytnij)
Dział zatytułowany „Pełny NIP (usuń myślniki, przytnij)”FederalTaxID|REGEX("[^0-9]","")|TRIMKwota netto z VAT 23% (suma, 2 miejsca po przecinku)
Dział zatytułowany „Kwota netto z VAT 23% (suma, 2 miejsca po przecinku)”LineTotal|VATFILTER("23")|SUMNumer wiersza faktury (VisualOrder + 1)
Dział zatytułowany „Numer wiersza faktury (VisualOrder + 1)”EXPR("[VisualOrder] + 1")Warunkowy wybór kwoty (PLN vs waluta obca)
Dział zatytułowany „Warunkowy wybór kwoty (PLN vs waluta obca)”// Pole P_15: kwota bruttoDocTotal|IF_FIELD_EQ("DocCurrency","PLN")DocTotalFC|IF_FIELD_NEQ("DocCurrency","PLN")BrakID gdy brak NIPu
Dział zatytułowany „BrakID gdy brak NIPu”FederalTaxID|IF_EMPTY|CONST("1")