Zastosowanie
Dzięki zastosowaniu tej konfiguracji, proces obiegu faktur kosztowych zyskuje pełną automatyzację. Głównym celem jest eliminacja ręcznego wprowadzania pozycji dokumentów — dane zaczytane przez Comarch OCR są automatycznie mapowane i wypełniają kontrolkę tabelaryczną na kacie obiegu. W efekcie skracamy czas obsługi faktury, minimalizujemy błędy przepisywania i zapewniamy, że proces akceptacji bazuje na poprawnych i spójnych danych przed ich zaksięgowaniem.
Zawartość przykładu
- Definicja Typu Obiegu (Workflow): Wzorcowa ścieżka obiegu dokumentu kosztowego z krokami akceptacji, konfiguracją kontrolki Dane tabelaryczne i wygenerowaniem dokumentu do Comarch ERPXL
- Punkt konfiguracyjny ACD: Wzorcowa konfiguracja, która jest odpowiedzialna za pobranie ID dokumentu OCR, Załącznika oraz wszystkich kluczowych danych nagłówkowych (NIP, Kontrahent, Dane kontrahenta, Data zakupu, Data wystawienia, Termin płatności, Forma płatności, Waluta) oraz inicjację dokumentu obiegowego.
Kliknij tutaj, aby pobrać przykład
Zasada działania
Mechanizm opiera się na pobieraniu danych z bazy Comarch BPM, które zostały zapisane po przetworzeniu ich przez Comarch OCR w punkcie ACD.
- Konfiguracja wykorzystuje ID dokumentu OCR (zapisane w dedykowanej kontrolce typu Liczba całkowita) jako identyfikator do pobrania danych. Kontrolka tabelaryczna obserwuje to pole, reagując na jego wypełnienie.
- Kluczowym elementem jest zapytanie SQL umieszczone na zakładce Inicjowanie Wartości kontrolki tabelarycznej. Zapytanie jest filtrowane za pomocą parametru @ID_OCR@, dzięki czemu pobiera ono wiersze z właściwego dokumentu OCR z tabeli do.OC_Document_Items w bazie BPM.
- Na podstawie zwróconych wierszy z tabeli do.OC_Document_Items, kontrolka Dane tabelaryczne jest automatycznie wypełniana pozycjami faktury (Nazwa, Cena, Ilość, Jednostka miary, Netto, Stawka VAT, Brutto, Kwota VAT).
- W zapytaniu SQL zawarta jest niezbędna logika CASE WHEN, która konwertuje wartości tekstowe (np. Stawki VAT oraz Jednostki miary) na identyfikatory liczbowe, których BPM wymaga do poprawnego działania mechanizmów systemowych i wyświetlania danych.
Konfiguracja przykładu
1.Utworzono kontrolkę ID_OCR : Na karcie obiegu dodano kontrolkę typu Liczba całkowita o nazwie (identyfikatorze) ID_OCR, do której będzie zapisywane ID OCR-owanego dokumentu.

2.Utworzono kontrolkę Tabelaryczną: Dodano kontrolkę typu Dane tabelaryczne o nazwie (identyfikatorze) Elementy i skonfigurowano w niej następujące kolumny:
- ”Nazwa” (identyfikator kolumny: Nazwa) – typ Tekst
- ”Cena” (identyfikator kolumny: Cena) – typ Liczba stałoprzecinkowa
- ”Ilość” (identyfikator kolumny: Ilosc) – typ Liczba stałoprzecinkowa
- ”Jednostka miary” (identyfikator kolumny: JM) – typ Lista
- ”Netto” (identyfikator kolumny: Netto) – typ Liczba stałoprzecinkowa
- ”Stawka VAT” (identyfikator kolumny: StawkaVAT) – typ Lista
- ”Brutto” (identyfikator kolumny: Brutto) – typ Liczba stałoprzecinkowa
- ”Kwota VAT” (identyfikator kolumny: KwotaVAT) – typ Liczba stałoprzecinkowa

3. W kontrolce typu Dane tabelaryczne na zakładce Listy zdefiniowano zapytanie pobierające:
- Stawki VAT:
select Naz_gidLp as Id, CASE WHEN Naz_Nazwa='A 23.00' THEN '23%' WHEN Naz_Nazwa='B 8.00' THEN '8%' WHEN Naz_Nazwa='C 0.00' THEN '0%' WHEN Naz_Nazwa='D 0.00' THEN 'ZW' WHEN Naz_Nazwa='E 0.00' THEN 'NP' WHEN Naz_Nazwa='F 7.00' THEN '7%' WHEN Naz_Nazwa='G 5.00' THEN '5%' END from CDN.Nazwy where Naz_GIDTyp = 624 AND trim(substring(Naz_Nazwa,9,2))=''

- Jednostki miary:
SELECT Naz_GIDLp,Naz_Nazwa from cdn.Nazwy where Naz_GIDTyp=144;

4.Dodano obserwację kontrolki: W kontrolce typu Dane tabelaryczne, na zakładce Inicjowanie wartości, dodano powiązanie do kontrolki ID_OCR.

5.Zapytanie SQL: W kontrolce typu Dane tabelaryczne, na zakładce Inicjowanie wartości w sekcji Wzór na wartość SQL OD dodano zapytanie, które pobiera dane z tabel do.OC_Document_Items oraz do.OC_Documents na podstawie przekazanego parametru @ID_OCR@ (ID dokumentu OCR). W zapytaniu SQL konieczne jest użycie logiki CASE WHEN do konwersji wartości tekstowych jednostek miary (’szt’) i stawek VAT (np. '23.00′) na odpowiednie identyfikatory liczbowe akceptowane przez Comarch BPM.
If @^SenderControlName@ = 'ID_OCR' Begin Select ODI_Name,/*Nazwa*/ ODI_NetUnitPrice, /*Cena netto*/ ODI_Count, /*Ilość*/ CASE WHEN ODI_Unit='szt.' THEN 1 WHEN ODI_Unit='l' THEN 2 WHEN ODI_Unit='kg' THEN 3 Else 0 END, /*Jednostka miary*/ ODI_NetValue, /* Wartość Netto*/ CASE WHEN ODI_VatRate='23.00' THEN 1 WHEN ODI_VatRate='8.00' THEN 2 WHEN ODI_VatRate='0.00' THEN 3 WHEN ODI_VatRate='5.00' THEN 7 Else 0 END, ODI_GrossValue, /*Wartość Brutto*/ [ODI_GrossValue]-[ODI_NetValue], -- kwota VAT 1 from do.OC_Document_Items I join do.OC_Documents D on D.OCD_Id=I.ODI_DocumentId where ODI_DocumentId=@ID_OCR@ END

6.Punkt ACD: W punkcie konfiguracyjnym ACD (Współpraca z Comarch OCR), wykorzystywanym do inicjowania obiegu, na zakładce Kontrolki dodano kontrolkę ID_OCR i przypisano jej odpowiednie zapytanie:
select @Id1@

Uzupełniona Kontrolka Dane Tabelaryczne
Po pomyślnym zainicjowaniu dokumentu z punktu ACD, kontrolka typu Dane Tabelaryczne została automatycznie wypełniona. Dla każdej pozycji dokumentu (faktury) odczytanej przez Comarch OCR i zapisanej w tabeli do.OC_Document_Items, na formularzu BPM pojawił się oddzielny, kompletny wiersz z uzupełnionymi danymi.
