Integracja Comarch BPM z KSeF

Wdrożenie Krajowego Systemu e-Faktur to nie tylko odpowiedź na nowe regulacje, ale przede wszystkim szansa na pełną automatyzację procesów zakupowych, w której Comarch BPM zamienia technologiczne wyzwanie w standard realnie optymalizujący codzienną pracę.

Dzięki gotowym mechanizmom integracji wyeliminują Państwo manualne wprowadzanie danych i skrócą proces akceptacji kosztów do minimum.

Sprawdź, jak wdrożyć usprawnienia krok po kroku

Zapraszamy do skorzystania z przygotowanych instrukcji i materiałów, które pomogą Państwu wdrożyć te usprawnienia w krótkim czasie. Pełen zakres wsparcia technicznego znajdą Państwo również w naszej dedykowanej bazie wiedzy:

Obsługa Krajowego Systemu e-Faktur (KSeF) w Comarch BPM

Instrukcje i konfiguracja:

 

  • Konfiguracja połączenia z KSeF – Jak bezpiecznie autoryzować system Comarch BPM do komunikacji z serwerami rządowymi.

Zobacz instrukcję konfiguracji

  • Automatyczne pobieranie dokumentów (Punkt ACD) – Jak skonfigurować mechanizm, który samoczynnie monitoruje skrzynkę KSeF i przesyła faktury do obiegu bez angażowania pracownika.

Dowiedz się więcej o automatyzacji

  • Mapowanie danych i obieg faktury – Jak sprawić, by dane z pliku XML automatycznie uzupełniały się w Comarch BPM.

Sprawdź zasady mapowania danych z dokumentów

Zobacz system w akcji – praktyczne przykłady

Teoria to nie wszystko. Przygotowaliśmy dla Państwa zestawienie konkretnych scenariuszy współpracy Comarch BPM z KSeF, które pokazują, jak system radzi sobie w realnych sytuacjach biznesowych.

Przykłady współpracy i obsługa KSeF – sprawdź szczegóły

Wiemy, że wdrożenie KSeF budzi wiele pytań, szczególnie w obliczu zmian związanych z wersją 2.0. Przygotowaliśmy dla Państwa listę najczęściej zadawanych pytań technicznych.

Najczęściej zadawane pytania

Zapraszamy do wdrożenia tych usprawnień już teraz. Wykorzystanie Comarch BPM jako centralnego punktu obsługi KSeF to najprostsza droga do pełnej optymalizacji obiegu faktur w Państwa firmie.




Przykłady zapytań SQL w zakładce Kontrolki dla punktu ACD „Import dokumentów zakupu z KSeF”

W ramach zakładki „Kontrolki”  w przypadku typu punktu ACD „Import dokumentów zakupu z KSeF” (zob. Definiowanie punktu konfiguracyjnego (Import dokumentów zakupu z KSeF)) można zastosować szereg zapytań SQL, aby z pliku został zmapowany określony rodzaj danych. Poniżej przedstawiono przykłady takich zapytań:

  • Załącznik – opcja dostępna od wersji 2024.3.0; użytkownik wybiera kontrolkę typu Załącznik, znajdującą się w danym typie obiegu (w poniższym przykładzie nazwą pliku będzie nazwa faktury)
Select KSD_SourceContent,

CASE

WHEN KSD_NumerFaktury LIKE '%/%' THEN CONCAT(REPLACE(KSD_NumerFaktury, '/', '_'), '.pdf')

ELSE CONCAT(KSD_NumerFaktury, '.pdf')

END AS modified_column

from do.KS_Documents

where KSD_ID=@Id1@

 

Uwaga
W przypadku zastosowania powyższego zapytania jeżeli w nazwie faktury występuje znak /, zostanie zamieniony na _ .

 

Uwaga
Należy pamiętać, że w odróżnieniu od innych zapytań SQL w przypadku wprowadzania zapytania dla kontrolki typu Załącznik w ramach zakładki „Kontrolki” podczas konfiguracji punktu ACD typu „Import dokumentów zakupu z KSeF” konieczne jest dodanie frazy ‘.pdf’, tak, jak przedstawiono w powyższym przykładzie.

 

  • Numer dokumentu – użytkownik wybiera kontrolkę typu Tekst, znajdującą się w danym typie obiegu
select KSD_NumerFaktury

from do.KS_Documents

where KSD_ID=@Id1@
  • Data wystawienia – użytkownik wybiera kontrolkę typu Data i godzina, znajdującą się w danym typie obiegu
Select KSD_DataWystawienia

from do.KS_Documents

where KSD_ID=@Id1@
  • Miejsce wystawienia – użytkownik wybiera kontrolkę typu Tekst, znajdującą się w danym typie obiegu
Select KSD_MiejsceWystawienia

from do.KS_Documents

where KSD_ID=@Id1@
  • Kontrahent – użytkownik wybiera kontrolkę typu Tekst, znajdującą się w danym typie obiegu
select KSC_PodatnikNazwa from do.KS_DocumentContractors p

join do.KS_Documents d on p.KSC_DocumentID=d.KSD_Id

where KSD_Id=@Id1@
  • Kontrahent (dla współpracy z Comarch ERP Optima) – użytkownik wybiera kontrolkę typu Kontrahent, znajdującą się w danym typie obiegu
select top 1 Knt_KntId, Knt_Kod

from [Nazwa_bazy_DMS].[do].[KS_DocumentContractors]

join [Nazwa_bazy_ERPOptima].[cdn].[Kontrahenci] on Knt_Nip = KSC_PodatnikNIP

where KSC_DocumentId=@Id1@
  • Kontrahent (dla współpracy z Comarch ERP XL) – użytkownik wybiera kontrolkę typu Kontrahent, znajdującą się w danym typie obiegu
select top 1 Knt_gidnumer, knt_akronim

from [Nazwa_bazy_DMS].[do].[KS_DocumentContractors]

join [Nazwa_bazy_ERPXL].[cdn].[KntKarty] on Knt_Nip = KSC_PodatnikNIP

where KSC_DocumentId=@Id1@
  • Towar – użytkownik wybiera kontrolkę typu Tekst, znajdującą się w danym typie obiegu
select KSI_ElementNazwa from do.KS_DocumentItems c

join do.KS_Documents d on c.KSI_DocumentID=d.KSD_Id

where KSD_Id=@Id1@
  • Termin płatności – użytkownik wybiera kontrolkę typu Data i godzina, znajdującą się w danym typie obiegu
select KSP_TerminPlatnosci from do.KS_PaymentDates
where KSP_DocumentId=@Id1@
  • Kod waluty – użytkownik wybiera kontrolkę typu Tekst, znajdującą się w danym typie obiegu
Select KSD_KodWaluty

from do.KS_Documents

where KSD_ID=@Id1@
  • Suma wartości sprzedaży objętej stawką 0% w przypadku wewnątrzwspólnotowej dostawy towarów – użytkownik wybiera kontrolkę typu Liczba stałoprzecinkowa, znajdującą się w danym typie obiegu
Select KSD_SumaNetto0_WDT

from do.KS_Documents

where KSD_ID=@Id1@
  • Suma wartości sprzedaży objętej stawką 0% w przypadku eksportu – użytkownik wybiera kontrolkę typu Liczba stałoprzecinkowa, znajdującą się w danym typie obiegu
Select KSD_SumaNetto0_Export

from do.KS_Documents

where KSD_ID=@Id1@
  • Suma wartości sprzedaży zwolnionej od podatku – użytkownik wybiera kontrolkę typu Liczba stałoprzecinkowa, znajdującą się w danym typie obiegu
Select KSD_SumaNettoZW

from do.KS_Documents

where KSD_ID=@Id1@
  • Suma wartości sprzedaży w przypadku dostawy towarów oraz świadczenia usług poza terytorium kraju, z wyłączeniem kwot wykazanych w polach P_13_5 i P_13_9 – użytkownik wybiera kontrolkę typu Liczba stałoprzecinkowa, znajdującą się w danym typie obiegu
Select KSD_SumaNettoInna

from do.KS_Documents

where KSD_ID=@Id1@
  • Suma wartości świadczenia usług, o których mowa w art. 100 ust. 1 pkt 4 ustawy – użytkownik wybiera kontrolkę typu Liczba stałoprzecinkowa, znajdującą się w danym typie obiegu
Select KSD_SumaNettoRS

from do.KS_Documents

where KSD_ID=@Id1@
  • Suma wartości sprzedaży w procedurze odwrotnego obciążenia, dla której podatnikiem jest nabywca zgodnie z art. 17 ust. 1 pkt 7 i 8 ustawy oraz innych przypadków odwrotnego obciążenia występujących w obrocie krajowym – użytkownik wybiera kontrolkę typu Liczba stałoprzecinkowa, znajdującą się w danym typie obiegu
Select KSD_SumaNettoOOKraj

from do.KS_Documents

where KSD_ID=@Id1@
  • Suma wartości sprzedaży w procedurze marży, o której mowa w art. 119 i art. 120 ustawy – użytkownik wybiera kontrolkę typu Liczba stałoprzecinkowa, znajdującą się w danym typie obiegu
Select KSD_SumaNettoMarza

from do.KS_Documents

where KSD_ID=@Id1@
  • Kwota należności ogółem – użytkownik wybiera kontrolkę typu Liczba stałoprzecinkowa, znajdującą się w danym typie obiegu
Select KSD_SumaBrutto

from do.KS_Documents

where KSD_ID=@Id1@
  • Kurs waluty stosowany do wyliczenia kwoty podatku w przypadkach, o których mowa w przepisach Działu VI ustawy na fakturach, o których mowa w art. 106b ust. 1 pkt 4 ustawy – użytkownik wybiera kontrolkę typu Liczba stałoprzecinkowa, znajdującą się w danym typie obiegu
Select KSD_KursWalutyZ

from do.KS_Documents

where KSD_ID=@Id1@
  • Przepis ustawy albo aktu wydanego na podstawie ustawy, na podstawie którego podatnik stosuje zwolnienie od podatku – użytkownik wybiera kontrolkę typu Tekst, znajdującą się w danym typie obiegu
Select KSD_SprzedazZWUstawa

from do.KS_Documents

where KSD_ID=@Id1@
  • Przepis dyrektywy 2006/112/WE, który zwalnia od podatku taką dostawę towarów lub takie świadczenie usług – użytkownik wybiera kontrolkę typu Tekst, znajdującą się w danym typie obiegu
Select KSD_SprzedazZWDyrektywa

from do.KS_Documents

where KSD_ID=@Id1@
  • Inna podstawa prawna wskazująca na to, że dostawa towarów lub świadczenie usług korzysta ze zwolnienia – użytkownik wybiera kontrolkę typu Tekst, znajdującą się w danym typie obiegu
Select KSD_SprzedazZWPodstawa

from do.KS_Documents

where KSD_ID=@Id1@
  • Data dopuszczenia nowego środka transportu do użytku – użytkownik wybiera kontrolkę typu Data i godzina, znajdującą się w danym typie obiegu
Select KSD_NSTWDT

from do.KS_Documents

where KSD_ID=@Id1@
  • Dane dla przypadków, gdy pole RodzajFaktury przyjmuje wartości KOR, KOR_ZAL lub KOR_ROZ – użytkownik wybiera kontrolkę typu Tekst, znajdującą się w danym typie obiegu
Select KSD_RodzajFaktury

from do.KS_Documents

where KSD_ID=@Id1@
  • Przyczyna korekty dla faktur korygujących – użytkownik wybiera kontrolkę typu Tekst, znajdującą się w danym typie obiegu
Select KSD_PrzyczynaKorekty

from do.KS_Documents

where KSD_ID=@Id1@
  • Data wystawienia faktury korygowanej – użytkownik wybiera kontrolkę typu Data i godzina, znajdującą się w danym typie obiegu
Select KSD_DataWystFaKorygowanej
from do.KS_Documents
where KSD_ID=@Id1@

 

  • Numer faktury korygowanej – użytkownik wybiera kontrolkę typu Tekst, znajdującą się w danym typie obiegu
Select KSD_NrFaKorygowanej

from do.KS_Documents

where KSD_ID=@Id1@
  • Numer identyfikujący fakturę korygowaną w Krajowym Systemie e-Faktur (KSeF) – użytkownik wybiera kontrolkę typu Tekst, znajdującą się w danym typie obiegu
Select KSD_NrKSeFFaKorygowanej

from do.KS_Documents

where KSD_ID=@Id1@
  • Dla faktury korygującej – okres, do którego odnosi się udzielany opust lub obniżka, w przypadku gdy podatnik udziela opustu lub obniżki ceny w odniesieniu do wszystkich dostaw towarów lub usług dokonanych lub świadczonych na rzecz jednego odbiorcy w danym okresie – użytkownik wybiera kontrolkę typu Tekst, znajdującą się w danym typie obiegu
Select KSD_OkresFaKorygowanej

from do.KS_Documents

where KSD_ID=@Id1@
  • Poprawny numer faktury korygowanej w przypadku, gdy przyczyną korekty jest błędny numer faktury korygowanej – użytkownik wybiera kontrolkę typu Tekst, znajdującą się w danym typie obiegu
Select KSD_NrFaKorygowany

from do.KS_Documents

where KSD_ID=@Id1@



Dlaczego podczas próby uruchomienia skryptu instalacyjnego (np. Install.bat) w oknie wiersza poleceń pojawia się komunikat błędu: Sqlcmd: Error: Microsoft ODBC Driver 17 for SQL Server: Login failed for user 'DOMENA\Uzytkownik’?

Przyczyna: Użytkownik domenowy, który jest aktualnie zalogowany w systemie Windows i uruchamia skrypt, nie posiada odpowiednich uprawnień w silniku bazy danych SQL Server. Skrypty wdrożeniowe wymagają najwyższego poziomu uprawnień, aby móc tworzyć tabele, procedury lub modyfikować strukturę bazy danych.

 

Rozwiązanie:

W celu umożliwienia poprawnego wykonania skryptów należy nadać odpowiedniemu kontu uprawnienia sysadmin. W tym celu zaleca się wykonanie następujących kroków:

  • Logowanie do SSMS: Należy zalogować się do SQL Server Management Studio przy użyciu konta z uprawnieniami administratora (np. konta sa).
  • Dodanie loginu: W folderze Security -> Logins należy dodać nowy login dla użytkownika wskazanego w treści błędu (np. SRV2026\SERW_O).
  • Konfiguracja uwierzytelniania: Podczas dodawania należy upewnić się, że wybrana jest opcja Windows authentication.
  • Nadanie uprawnień: W sekcji Server Roles (Role serwera) konieczne jest zaznaczenie roli sysadmin.
  • Finalizacja: Po zatwierdzeniu zmian przyciskiem OK, należy ponownie uruchomić skrypt instalacyjny.

 

Ważne
Rola sysadmin zapewnia pełną kontrolę nad serwerem SQL. Zaleca się nadawanie jej tylko na czas trwania prac serwisowych lub osobom odpowiedzialnym za administrację systemem.

 

Rozpoczynasz pracę z Comarch BPM (dawniej DMS) i chcesz dowiedzieć się, jak korzystać z programu? A może masz już podstawową wiedzę o Comarch BPM (dawniej DMS) i chcesz dowiedzieć się więcej?

Sprawdź Szkolenia Comarch BPM!

 




Pobieranie danych z KSeF do kontrolki tabelarycznej Elementy na Fakturze kosztowej przy współpracy z Comarch ERP Optima

Zastosowanie

Dzięki zastosowaniu tej zintegrowanej konfiguracji, proces obiegu faktur kosztowych w Comarch BPM zyskuje pełną automatyzację i spójność danych. Dane są pobierane bezpośrednio z systemu KSeF (poprzez BPM), a kontrolka tabelaryczna jest automatycznie wypełniana.

Głównym celem jest:

  • Eliminacja ręcznego wprowadzania pozycji dokumentów: Dane z faktury KSeF (pobrane do tabeli do.KS_DocumentItems) są automatycznie mapowane i wypełniają kontrolkę tabelaryczną na karcie obiegu.
  • Automatyczne kalkulowanie wartości: Kontrolka tabelaryczna uzyskuje zdolność automatycznego przeliczania wszędzie tam, gdzie zmienione zostaną dane wejściowe (np. Netto, Stawka VAT, Brutto) przez użytkownika.
  • Minimalizacja błędów i skrócenie czasu obsługi faktury: Proces akceptacji bazuje na poprawnych i spójnych danych, które są automatycznie kalkulowane i aktualizowane, zanim dokument zostanie zaksięgowany w Comarch ERP Optima.

Przykład jest oparty na definicji typu obiegu dostępnej na stronach walidowanych w sekcji ERP 5.0->Comarch BPM (dawniej DMS)->Przykłady->ERP Optima. Razem z przykładem udostępnione są pliki exe, które umożliwiają wygenerowanie dokumentu do Comarch ERP Optima. Aby skorzystać z tej funkcjonalności należy pobrać przykład adekwatny do wersji Comarch ERP Optima

 

Przykłady generatorów do Comarch ERP Optima

Zawartość przykładu

  • Definicja Typu Obiegu (Workflow): Wzorcowa ścieżka obiegu Faktury kosztowej z krokami akceptacji, konfiguracją kontrolki Dane tabelaryczne i wygenerowaniem dokumentu do Comarch ERP Optima
  • Punkt konfiguracyjny ACD: Wzorcowa konfiguracja, która jest odpowiedzialna za pobranie ID dokumentu KSeF, Załącznika oraz wszystkich kluczowych danych nagłówkowych (Numer dokumentu, Kontrahent, Data zakupu, Data wystawienia, Data wpływu Termin płatności, Forma płatności, Waluta, Wartość Netto, Wartość Brutto, Numer KSeF, Data przyjęcia z KSeF) oraz utworzenie dokumentu obiegowego.

W przypadku kontrolki Kontrahent w zapytaniu przed nazwą tabeli CDN.Kontrahenci należy wskazać właściwą nazwę bazy Comarch ERP Optima.

Kliknij tutaj, aby pobrać przykład

Zasada działania

Mechanizm opiera się na dwóch trybach pracy zintegrowanych w kontrolce Dane Tabelaryczne (Elementy):

  • Tryb Inicjowania (Pobieranie z KSeF): Wyzwalany, gdy kontrolka ID_KSeF zostanie uzupełniona. System pobiera dane z tabeli do.KS_DocumentItems z bazy BPM i łączy je ze stawkami VAT z bazy konfiguracyjnej Comarch ERP Optima.
  • Konfiguracja wykorzystuje ID dokumentu KSeF (zapisane w dedykowanej kontrolce typu Liczba całkowita o nazwie np. ID_KSeF) jako identyfikator do pobrania danych.
  • Kontrolka tabelaryczna obserwuje pole ID_KSeF, 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_KSeF@, dzięki czemu pobiera ono wiersze z właściwego dokumentu KSeF z tabeli do.KS_DocumentItems w bazie BPM.
  • Tryb Edycji (Interaktywny): Kontrolka Dane Tabelaryczne (Elementy) obserwuje sama siebie (@^SenderControlName@ = ’Elementy’), co aktywuje logikę automatycznego przeliczania wartości w trybie edycji. Pozwala to na ręczne przypisanie stawki VAT oraz przeliczenie pozostałych wartości.

Konfiguracja przykładu

1. Utworzono kontrolkę ID_KSeF: Na karcie obiegu dodano kontrolkę typu Liczba całkowita o nazwie (identyfikatorze) ID_KSeF, do której będzie zapisywane ID dokumentu KSeF.

Kontrolka Liczba całkowita ID_KSeF

2. Utworzono kontrolkę Tabelaryczną: Dodano kontrolkę typu Dane tabelaryczne o nazwie (identyfikatorze) Elementy i skonfigurowano w niej następujące kolumny:

  • ”Kategoria” (identyfikator kolumny: Kategoria) – typ Lista
  • ”Opis” (identyfikator kolumny: Opis) – typ Tekst
  • ”Kategoria2” (identyfikator kolumny: Kategoria2) – typ Lista
  • ”Opis2” (identyfikator kolumny: Opis2) – typ Tekst
  • ”Stawka” (identyfikator kolumny: Stawka) – typ Lista
  • ”Netto” (identyfikator kolumny: Netto) – typ Liczba stałoprzecinkowa
  • ”VAT” (identyfikator kolumny: VAT) – typ Liczba stałoprzecinkowa
  • ”Brutto” (identyfikator kolumny: Brutto) – typ Liczba stałoprzecinkowa
  • ”Rodzaj” (identyfikator kolumny: Rodzaj) – typ Lista
  • ”Odliczenia” (identyfikator kolumny: Odliczenia) – typ Lista

Kolumny w kontrolce Dane tabelaryczne

3. W kontrolce typu Dane tabelaryczne  na zakładce Listy zdefiniowano zapytania pobierające dane:

  • Kategoria:

select Kat_KatID, Kat_KodSzczegol--, (select top 1 Kat_KatID from cdn.Kategorie order by 1)
from cdn.Kategorie where Kat_Typ=1

  • Stawka VAT:

SELECT Kon_KonId,
CASE
WHEN Kon_Opis='Stawka zwolniona' THEN 'ZW'
WHEN Kon_Opis='Nie podlega Vat' THEN 'NP'
WHEN Kon_Opis<>'Stawka zwolniona' and Kon_Opis<>'Nie podlega Vat' THEN CONCAT(LEFT(Kon_wartosc,6),' %')
END
FROM CDN_KNF_Konfiguracja.cdn.Konfig /* <<<<- Tu podmiana nazwy bazy>>>> */
where Kon_Numer=301 and Kon_wartosc like '%PL'

  • Rodzaj:

SELECT 1, 'Towary'
UNION
SELECT 2,'Inne'
UNION
SELECT 3,'Środki trwałe'
UNION
SELECT 4,'Usługi'
UNION
SELECT 5,'Środki transportu'
UNION
SELECT 6,'Nieruchomości'
UNION
SELECT 7,'Paliwo'

  • Odliczenia:

select 1, 'Nie'
union
select 2, 'Tak'
union
select 3, 'Warunkowo'

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

Dane tabelaryczna, zakładka Inicjowanie wartości

5. Dodano zapytanie SQL:W kontrolce Dane tabelaryczne, na zakładce Inicjowanie wartości w sekcji Wzór na wartość SQL ERP dodano zapytanie, które pobiera dane z tabeli do.KS_DocumentItems na podstawie przekazanego parametru @ID_KSeF@ (ID dokumentu KSeF).

Uwaga
W zapytaniu przed nazwą tabeli do.KS_DocumentItems należy wskazać właściwą nazwę bazy Comarch BPM

  • Ta sekcja jest wywoływana tylko raz, podczas inicjowania obiegu:

Pierwsza sekcja zapytania SQL, rozpoczynająca się od bloku IF @^SenderControlName@ = 'ID_KSeF’ pobiera dane szczegółowe pozycji faktury z KSeF, standaryzuje identyfikatory stawek VAT i mapuje je na wartości procentowe z konfiguracji Comarch ERP Optima. Zapytanie to wypełnia kolumny z kwotami Netto/VAT/Brutto i ustala poprawną Stawkę procentową, jednocześnie inicjując kolumny  (Kategoria, Opis) wartością NULL, ponieważ te dane muszą być uzupełnione ręcznie.

IF @^SenderControlName@ = 'ID_KSeF'  /*Identyfikator kontrolki do której pobierane jest ID dokumentu KSeF */

BEGIN

/* Tryb 1: Inicjowanie pozycji z dokumentu KSeF */

WITH ProcessedDocumentItems AS (
/* CTE 1: Ujednolicenie stawek VAT z KSeF i ujęcie kluczowych kolumn */
SELECT
di.KSI_DocumentId,
KSI_ElementNazwa,
KSI_ElementWartoscNetto AS KSI_ElementWartoscNetto,
KSI_ElementStawkaVAT,
/* Ustandaryzowanie stawki KSeF do formatu liczbowego/ZW/NP ('23', '8', 'ZW', itp.) */
CASE
WHEN di.KSI_ElementStawkaVAT LIKE 'Stawka%' THEN LTRIM(RTRIM(SUBSTRING(di.KSI_ElementStawkaVAT, 7, LEN(di.KSI_ElementStawkaVAT) - 6)))
WHEN di.KSI_ElementStawkaVAT IN ('zw', 'np', 'oo', 'np') THEN UPPER(di.KSI_ElementStawkaVAT)
ELSE di.KSI_ElementStawkaVAT
END AS StandardizedKSeFVAT_Text
FROM
[NAZWA_BAZY_BPM].do.KS_DocumentItems AS di  /*Należy wskazać nazwę bazy BPM*/
WHERE KSI_DocumentId =  @ID_KSeF@  /*Identyfikator kontrolki liczba całkowita, do której pobierane jest ID dokumentu KSeF*/
),
OptimaVATRates AS (
/* CTE 2: Przygotowanie stawek VAT z Konfiguracji Optima */
SELECT
Kon_KonId,
Kon_Wartosc,
/* Ekstrakcja wartości liczbowej stawki (Poprawne SUBSTRING od indeksu 1) */
ISNULL(CAST(REPLACE(RTRIM(SUBSTRING(Kon_Wartosc, 1, CHARINDEX(' ', Kon_Wartosc, 2))), ',', '.') AS REAL), 1) AS StawkaVatValue,
/* NORMALIZACJA: Konwersja stawki Optima ('23.00') na format KSeF ('23') dla poprawnego JOIN */
CASE
WHEN Kon_Wartosc LIKE '%ZW%' THEN 'ZW'
WHEN Kon_Wartosc LIKE '%NP%' THEN 'NP'
WHEN Kon_Wartosc LIKE '%OO%' THEN 'OO'
WHEN Kon_Wartosc LIKE '%NP%' THEN 'NP'
ELSE CAST(ISNULL(CAST(REPLACE(RTRIM(SUBSTRING(Kon_Wartosc, 1, CHARINDEX(' ', Kon_Wartosc, 2))), ',', '.') AS REAL), 0) AS VARCHAR(10))
END AS StandardizedOptimaVAT_Text
FROM
[CDN_KNF_Konfiguracja].cdn.Konfig
WHERE Kon_Numer = 301 AND Kon_Wartosc LIKE '%PL'
)

/* Końcowy SELECT: Zwraca żądany zestaw kolumn */
SELECT

-- Wymagane jawne CAST na INT dla NULL (usuwa błąd konwersji)
CAST(NULL AS INT) AS 'Kategoria',
NULL AS 'Opis', -- pi.KSI_ElementNazwa AS 'Opis',
CAST(NULL AS INT) AS 'Kategoria 2',
NULL AS 'Opis 2',
ovr.Kon_KonId AS 'Stawka', -- INT
pi.KSI_ElementWartoscNetto AS 'Netto',
pi.KSI_ElementWartoscNetto * (ovr.StawkaVatValue / 100.0) AS 'VAT',
pi.KSI_ElementWartoscNetto * (1 + ovr.StawkaVatValue / 100.0) AS 'Brutto',
1,--  CAST(NULL AS INT) AS 'Rodzaj',
1-- CAST(NULL AS INT) AS 'Odliczenia'
FROM
ProcessedDocumentItems AS pi
LEFT JOIN
OptimaVATRates AS ovr
ON
pi.StandardizedKSeFVAT_Text = ovr.StandardizedOptimaVAT_Text;
END;

  • Ta sekcja jest wywoływana przy każdej modyfikacji danych w kontrolce „Elementy” i wymaga użycia ELSE po sekcji KSeF:

Druga sekcja zapytania SQL, rozpoczynająca się od bloku ELSE IF @^SenderControlName@ = 'Elementy’, jest odpowiedzialna za całą logikę przeliczania, walidacji i uzupełniania danych w czasie rzeczywistym po ręcznej edycji wiersza w kontrolce Dane Tabelaryczne. Ponieważ kontrolka Elementy obserwuje sama siebie, każda zmiana w kolumnie wyzwala ten kod.

/*Przeliczanie Elementów*/
ELSE
IF @^SenderControlName@ = 'Elementy'
BEGIN

declare @stawkaVat real

IF @Elementy_Column@=1 /* Inicjowanie pozycji wiersza po wskazaniu kategorii */
BEGIN
UPDATE @Elementy@ set [Opis]= (SELECT Kat_opis from cdn.Kategorie where Kat_KatID=(SELECT [Kategoria] from @Elementy@ where POS=@Elementy_Row@)) WHERE POS=@Elementy_Row@
UPDATE @Elementy@ set [Stawka] = (
select Kon_KonId from
(
select Kon_KonId, flaga, stawka from
(
select Kon_KonId, cast (SUBSTRING (Kon_Wartosc, 7,  1) as int) flaga, cast (replace ( rtrim( SUBSTRING (Kon_Wartosc, 0,  charindex (' ', Kon_Wartosc , 2))),',','.') as real) stawka
from CDN_KNF_Konfiguracja.cdn.Konfig     /* <<<<---------------   Tu podmiana nazwy bazy     >>>> */
where kon_numer = 301 and Kon_wartosc like '%PL'
) insel1
join cdn.Kategorie on kat_stawka = stawka and kat_flaga = flaga and kat_katid = (SELECT [Kategoria] from @Elementy@ where POS=@Elementy_Row@)
) insel2
)  where POS=@Elementy_Row@

UPDATE @Elementy@ set [Rodzaj]=(SELECT Kat_RodzajZakupu from cdn.Kategorie where Kat_KatID=(SELECT [Kategoria] from @Elementy@ where POS=@Elementy_Row@)) where POS=@Elementy_Row@
UPDATE @Elementy@ set [Odliczenia]=(SELECT Kat_Odliczenia+1 from cdn.Kategorie where Kat_KatID=(SELECT [Kategoria] from @Elementy@ where POS=@Elementy_Row@)) where POS=@Elementy_Row@

END

ELSE IF @Elementy_Column@=3
BEGIN
UPDATE @Elementy@ set [Opis2]= (SELECT Kat_opis from cdn.Kategorie where Kat_KatID=(SELECT [Kategoria2] from @Elementy@ where POS=@Elementy_Row@)) WHERE POS=@Elementy_Row@

END

IF @Elementy_Column@=5 or @Elementy_Column@=6 /* Przeliczenie Brutto i wartości VAT po zmianie stawki VAT lub Netto */
BEGIN
declare @Netto decimal (22,4)
SELECT @Netto = [Netto] from @Elementy@ where POS=@Elementy_Row@

select  @stawkaVat = isnull (cast (replace ( rtrim( SUBSTRING (Kon_Wartosc, 0,  charindex (' ', Kon_Wartosc , 2))),',','.') as real) , 1)
from CDN_KNF_Konfiguracja.cdn.Konfig     /* <<<<---------------   Tu podmiana nazwy bazy     >>>> */
where kon_numer = 301 and Kon_KonId = (select  [Stawka] from @Elementy@ where POS=@Elementy_Row@) and Kon_wartosc like '%PL'

UPDATE @Elementy@ set [Brutto]= @Netto + (@Netto * (@stawkaVat / 100)) where POS=@Elementy_Row@
UPDATE @Elementy@ set [VAT]= @Netto * (@stawkaVat / 100) where POS=@Elementy_Row@
END

IF @Elementy_Column@=5 or @Elementy_Column@=8 /* Przeliczenie Netto i wartości VAT po zmianie stawki VAT lub Brutto */
BEGIN
declare @Brutto decimal (22,4)
SELECT @Brutto = [Brutto] from @Elementy@ where POS=@Elementy_Row@

select  @stawkaVat = isnull (cast (replace ( rtrim( SUBSTRING (Kon_Wartosc, 0,  charindex (' ', Kon_Wartosc , 2))),',','.') as real) , 1)
from CDN_KNF_Konfiguracja.cdn.Konfig     /* <<<<---------------   Tu podmiana nazwy bazy     >>>> */
where kon_numer = 301 and Kon_KonId = (select  [Stawka] from @Elementy@ where POS=@Elementy_Row@) and Kon_wartosc like '%PL'

UPDATE @Elementy@ set [Netto]= @Brutto / ((@stawkaVat/100) + 1)  where POS=@Elementy_Row@
UPDATE @Elementy@ set [VAT]= @Brutto / ((@stawkaVat/100) + 1) * (@stawkaVat / 100) where POS=@Elementy_Row@
END

SELECT * from @Elementy@

END

Zapytanie SQL w kontrolce Dane tabelaryczne na zakładce Inicjowanie wartości

Konfiguracja punktu ACD

1. W punkcie konfiguracyjnym ACD (Import dokumentów zakupu KSeF), na zakładce Lista dodano zapytanie, które pobiera pobiera listę faktur z tabel do.KS_Documents, do.KS_WorkAPProcess, do.KS_DocumentHeaders i do.KS_DocumentContractors, filtrując je m.in. po statusie przetworzenia (KSW_Status), operatorze, numerze faktury (KSD_NumerFaktury), NIP, dacie wystawienia (KSH_DataWytworzeniaFa), typie faktury i kwotach.

BEGIN TRY
select d.KSD_ID, NULL, KSD_NumerFaktury, KSD_Tag1, KSD_Tag2, KSD_Tag3
from do.KS_Documents d
left join do.KS_WorkAPProcess W on d.KSD_ID = KSW_DocumentID  /*tabela przeprocesowanych dokumentów*/
left join do.KS_DocumentHeaders dh on d.KSD_ID = dh.KSH_DocumentId
left join do.KS_DocumentContractors dc on d.KSD_ID = dc.KSC_DocumentID
where KSW_APDId=@PointId@  /*id punktu ACD */
and KSW_OperatorID=@IdOperatorBPM@ /*dodatkowy warunek, aby na liście operator widział dokumenty przeprocesowane przez siebie*/
and ((@InvoiceStatus@ = 0 and KSW_Status <> 5 and KSW_Archival = 0) OR (@InvoiceStatus@ = 1 and KSW_Archival = 1) OR
(@InvoiceStatus@ = 2 and KSW_Status = 5) OR @InvoiceStatus@ = 3)
and (nullif(@SearchText@,'') is null OR (@SearchText@ <> '' and KSD_NumerFaktury LIKE '%' + @SearchText@ + '%'))
and (@Nip@ is null OR dc.KSC_PodatnikNIP = @Nip@)
and (@DateFrom@ is null or dh.KSH_DataWytworzeniaFa >= @DateFrom@)
and (@DateTo@ is null or dh.KSH_DataWytworzeniaFa <= @DateTo@)
and (@GrossAmountFrom@ is null or KSD_SumaBrutto >= @GrossAmountFrom@)
and (@GrossAmountTo@ is null or KSD_SumaBrutto <= @GrossAmountTo@)
and (@InvoiceType@ is null or KSD_RodzajFaktury = @InvoiceType@)
END TRY
BEGIN CATCH
DECLARE @ErrorMessage varchar(max) = 'W zapytaniu wystąpił błąd : ' + ERROR_MESSAGE();
THROW 50001,  @ErrorMessage ,1;
END CATCH

2. W zakładce Kontrolki dodano kontrolkę ID_KSeF, której przypisano zapytanie pobierające identyfikator dokumentu KSEF. Jednocześnie zdefiniowano odpowiednie zapytania SQL dla pozostałych kontrolek, które służą do automatycznego pobierania i wyświetlania danych bezpośrednio z systemu KSeF:

  • Załączniki

select KSD_SourceContent,CASEWHEN KSD_NumerFaktury LIKE '%/%' 
THEN CONCAT(REPLACE(KSD_NumerFaktury, '/', '_'), '.pdf')ELSE CONCAT(KSD_NumerFaktury, '.pdf')END AS modified_columnfrom do.KS_Documentswhere KSD_ID=@Id1@

  • Załącznik XML

select KSD_Xml,CASEWHEN KSD_NumerFaktury LIKE '%/%' 
THEN CONCAT(REPLACE(KSD_NumerFaktury, '/', '_'), '.xml')ELSE CONCAT(KSD_NumerFaktury, '.xml')END AS modified_columnfrom do.KS_Documentswhere KSD_ID=@Id1@

  • Dokument

select KSD_NumerFaktury from do.KS_Documents where KSD_ID=@Id1@

  • Kontrahent

select top 1 Knt_KntId, Knt_Kod
from [do].[KS_DocumentContractors]
join [CDN_Optima].[cdn].[Kontrahenci] on Knt_Nip = KSC_PodatnikNIP
where KSC_DocumentId=@Id1@

  • Data zakupu

SELECT CASE
WHEN KSD_DataDostawy IS NULL THEN KSD_DataWystawienia
ELSE KSD_DataDostawy
END
FROM do.KS_Documents WHERE KSD_ID=@id1@

  • Data wpływu

select KSH_DataWytworzeniaFa from do.KS_DocumentHeaders where KSH_DocumentID=@Id1@

  • Data wystawienia

select KSD_DataWystawienia from do.KS_Documents where KSD_ID=@Id1@

  • Forma płatności

SELECT
(
CASE
WHEN KSD_FormaPlatnosci = 1 THEN 'Gotówka'
WHEN KSD_FormaPlatnosci = 2 THEN 'Karta'
WHEN KSD_FormaPlatnosci = 3 THEN 'Bon'
WHEN KSD_FormaPlatnosci = 4 THEN 'Czek'
WHEN KSD_FormaPlatnosci = 5 THEN 'Kredyt'
WHEN KSD_FormaPlatnosci = 6 THEN 'Przelew'
WHEN KSD_FormaPlatnosci = 7 THEN 'Płatność Mobilna'
ELSE 'Inna'
END
) AS FormaPlatnosci
FROM
do.KS_DocumentsWHERE KSD_Id=@ID1@

  • Termin płatności

 select KSP_TerminPlatnosci from do.KS_PaymentDates where KSP_DocumentID=@Id1@

  • Numer KSeF

select KSH_NumerReferencyjnyKSeF 
from do.KS_DocumentHeaderswhere KSH_DocumentID=@Id1@

  • Waluta

select KSD_KodWaluty from do.KS_Documents where KSD_ID=@Id1@

  • IDKSeF

select @Id1@

  • Data przyjęcia KSeF

select KSH_DataWytworzeniaFa from do.KS_DocumentHeaders where KSH_DocumentID=@Id1@

  • Numer rachunku bankowego

select KSB_NrRachunku from do.KS_BankAccounts
join do.KS_Documents on ksb_documentId= KSD_Id where ksd_id=@Id1@

Kontrolka ID_KSeF w punkcie ACD

Uzupełnione dane w punkcie ACD

Po pomyślnym pobraniu dokumentu z KSeF w punkcie ACD (Import dokumentów zakupu z KSeF), dane nagłówkowe oraz identyfikator dokumentu uzupełniły się automatycznie w kontrolkach na podstawie danych odczytanych z pliku XML.

Dane pobrane z KSeF w punkcie ACD

Uzupełniona Kontrolka Dane Tabelaryczne

  • Na podstawie przetworzonych danych z KSeF, w systemie Comarch BPM są generowane dokumenty w ramach wskazanej definicji typu obiegu.
  • Po pomyślnym zainicjowaniu nagłówka dokumentu, system dokonuje pełnego uzupełnienia skonfigurowanych kontrolek na karcie obiegu.
  • Kontrolka typu Dane Tabelaryczne zostaje automatycznie wypełniona pozycjami odczytanymi z dokumentu. Wypełnienie to odbywa się z wykorzystaniem dedykowanego zapytania SQL, które dokonuje normalizacji stawek VAT oraz przeliczeń kwot (Netto/Brutto).
  • Kluczowe jest to, że kontrolka techniczna ID_KSeF (która przechowuje wewnętrzny identyfikator pobranego dokumentu KSeF) jest obserwowana przez kontrolkę Dane Tabelaryczne i na podstawie jej wartości (@ID_KSeF@ w zapytaniu SQL) kontrolka Danych Tabelarycznych jest uzupełniana danymi.

Uwaga

Kolumny Kategoria oraz Kategoria 2 w kontrolce dane tabelaryczne są inicjowane wartością null. Wynika to z faktu, że nazewnictwo pozycji na fakturach dostawców w systemie KSeF często nie jest tożsame z nazewnictwem w Comarch ERP Optima. Wymaga to od użytkownika świadomego, ręcznego przypisania odpowiedniej kategorii oraz kategorii pomocniczej (jeżeli jest taka potrzeba) przed zaksięgowaniem dokumentu, aby zapewnić poprawność analityczną zapisów.

Kontrolka Dane tabelaryczne uzupełniona pozycjami odczytanymi z KSeF

 

Pozostałe dane uzupełnione na karcie obiegu

Po pomyślnym zainicjowaniu dokumentu z poziomu ACD, pozostałe dane na karcie obiegu zostały prawidłowo uzupełnione. System automatycznie przypisał nie tylko dane podstawowe, takie jak numer dokumentu, czy dane kontrahenta, ale również precyzyjnie rozbił pozycje faktury na poszczególne stawki VAT (23% oraz 8%). Prawidłowo przeniesiono także numer rachunku bankowego oraz unikalny numer KSeF, co gwarantuje pełną spójność danych między obiegiem dokumentów, a systemem Comarch ERP Optima.

Uzupełnione dane na karcie obiegu pobrane z KSeF

Rozpoczynasz pracę z Comarch BPM (dawniej DMS) i chcesz dowiedzieć się, jak korzystać z programu? A może masz już podstawową wiedzę o Comarch BPM (dawniej DMS) i chcesz dowiedzieć się więcej?

Sprawdź Szkolenia Comarch BPM!

 




Definiowanie punktu konfiguracyjnego (Import dokumentów zakupu z KSeF)

W wersji 2024.0.0 został dodany nowy typ punktu ACD, który służy do współpracy z KSeF„Import dokumentów zakupu z KSeF”.

 

Uwaga

W wersji 2024.0.1 w pliku Web.config w folderze aplikacji serwerowej (dawnej web) dodano klucz add key=”KSeFWorkMode” value=”Demo” /> – klucz umozliwia określenie, czy Firma testuje funkcjonalność wysyłania faktur do KSeF, czy korzysta z niej produkcyjnie.

Klucz może przybierać jedną z następujących wartości:

1.Demo –  w przypadku wprowadzenia takiej wartości praca z systemem KSeF odbywa się w trybie Demo;

2.Productionwartość domyślna od wersji 2026.0.0; w przypadku wprowadzenia takiej wartości praca z systemem KSeF odbywa się w trybie Produkcyjnym, czyli wersji produkcyjnej systemu;

3.Test – w przypadku wprowadzenia takiej wartości praca z systemem KSeF odbywa się w trybie testowym.

Uwaga
W celu przetestowania współpracy z Comarch BPM na prawdziwych danych zalecamy korzystanie z trybu Demo.

W kwestii różnic pomiędzy powyższymi trybami zob. Przełączanie trybu pracy z KSeF

 

Uwaga

W wersji 2026.0.0 w pliku Web.config w folderze aplikacji serwerowej (dawnej web) wprowadzono nowy klucz “KSeFProdVersion“, który ma umożliwić zmianę wersji KSeF dla pracy w trybie produkcyjnym. Klucz może przyjmować jedną z następujących wartości:

  • 1 – wartość domyślna w wersji 2026.0.0; możliwa jest praca w trybie produkcyjnym KSeF 1.0
  • 2 – możliwa jest praca w trybie produkcyjnym KSeF 2.0

Praca w trybie produkcyjnym KSeF 2.0 będzie możliwa jedynie wtedy, gdy <add key=”KSeFWorkMode” value=”Production” /> oraz <add key=”KSeFProdVersion” value=”2″ /> – ten tryb pracy będzie aktywny dopiero po uruchomieniu przez Ministerstwo Finansów środowiska produkcyjnego KSeF 2.0, tj. po 01.02.2026.

Klucz “KSeFProdVersion“ nie wpływa na pracę w trybie „Test“ oraz „Demo“.

 

Zakładka Tryb współpracy

Aby utworzyć punkt konfiguracyjny typu „Import dokumentów zakupu z KSeF” należy w oknie „Automatyczne generowanie dokumentów” dodać nowy punkt konfiguracyjny za pomocą ikony , a następnie na liście trybów pracy punktu wybrać opcję „Import dokumentów zakupu z KSeF” .

 

Punkt konfiguracyjny typu „Import dokumentów zakupu z KSeF” , zakładka „Tryb współpracy”

 

Zakładka Ogólne

Wygląd zakładki „Ogólne” jest zależny od trybu pracy Comarch BPM (dawniej DMS).

W trybie jednospółkowym na zakładce należy w ramach pola:

  • Nazwa punktuokreślić nazwę pod jaką punkt konfiguracyjny będzie widoczny na liście punktów;
  • Typ obieguwskazać typ obiegu, w ramach którego będą generowane dokumenty zawierające dane z KSeF; od wersji 2026.0.0 należy dokonać wyboru jednego lub wielu typów obiegów – po kliknięciu w pole rozwijana jest lista wszystkich typów obiegów dostępnych w systemie, a administrator powinien zaznaczyć checkbox obok jednego lub więcej typu obiegu – liczba zaznaczonych typów obiegów może być dowolna. Jeśli lista jest długa, po prawej stronie dostępny jest suwak.

Gdy operator zaznaczy typy obiegów i kliknie obok listy, wówczas zostanie ona zamknięta, a w polu „Typ obiegu“ będzie widoczny napis „Wybrano: [liczba wybranych typów obiegów]“.

Jeżeli Comarch BPM (dawniej DMS) pracuje w trybie jednospółkowym, wówczas komunikacja z KSeF odbywa się na podstawie danych (numeru NIP firmy oraz tokena uwierzytelniającego), które zostały podane w ramach zakładki „KSeF” na zakładce [Ustawienia].(zob. Integracje (dawna zakładka „KSeF”)).

 

Widok zakładki „Ogólne” na definicji punktu ACD typu „Import dokumentów zakupu z KSeF” z polami atrybutów (przed uzupełnieniem, tryb jednofirmowy)

Widok zakładki „Ogólne” w ramach konfiguracji punktu ACD typu „Import dokumentów zakupu z KSeF”, gdy w polu „Typ obiegu“ jest wybieranych wiele typów obiegów

 

W trybie wielospółkowym na zakładce należy w ramach pola:

  • Nazwa punktuokreślić nazwę pod jaką punkt konfiguracyjny będzie widoczny na liście punktów;
  • Spółkawskazać spółkę, dla której będzie odbywać się komunikacja z KSeF – na podstawie numeru NIP oraz/albo tokenu, które zostały zapisane podczas konfiguracji danej spółki na zakładce „Połączenia z ERP” na zakładce [Ustawienia].(zob. Połączenia z ERP). Zapytania, które są wprowadzane na zakładkach „Lista” oraz „Kontrolki” również są wykonywane w kontekście bazy danej spółki;
  • Typ obieguwskazać typ obiegu, w ramach którego będą generowane dokumenty zawierające dane z KSEF; od wersji 2026.0.0 należy dokonać wyboru jednego lub wielu typów obiegów – po kliknięciu w pole rozwijana jest lista wszystkich typów obiegów dostępnych w systemie, a administrator powinien zaznaczyć checkbox obok jednego lub więcej typu obiegu – liczba zaznaczonych typów obiegów może być dowolna. Jeśli lista jest długa, po prawej stronie dostępny jest suwak.

Uwaga
Aby możliwy był zapis punktu konfiguracyjnego ACD, konieczne jest wybranie co najmniej jednego typu obiegu w polu „Typ obiegu”.

Gdy operator zaznaczy typy obiegów i kliknie obok listy, wówczas zostanie ona zamknięta, a w polu „Typ obiegu“ będzie widoczny napis „Wybrano: [liczba wybranych typów obiegów]“.

 

Widok zakładki „Ogólne” na definicji punktu ACD typu „Import dokumentów zakupu z KSeF” z polami atrybutów (przed uzupełnieniem, tryb wielofirmowy)

 

  • Nazwy atrybutów na liście dokumentów w punkcie ACD  – w wersji 2025.0.0 na zakładce „Ogólne” na punkcie konfiguracyjnym punktu ACD typu „Import dokumentów zakupu z KSeF” dodano pole Nazwy atrybutów na liście dokumentów w punkcie ACD”, w ramach którego dostępne są pola: „Atrybut 1”, Atrybut 2” i „Atrybut 3”.  Nowododane pola umożliwiają wprowadzenie dodatkowych informacji opisujących daną fakturę, co pozwala na bardziej szczegółową identyfikację i klasyfikację dokumentów w procesie ich przetwarzania.

W ramach pól „Atrybut 1”, „Atrybut 2” i „Atrybut 3” można zdefiniować maksymalnie 3 nazwy dodatkowych pól (atrybutów), które będą widoczne na liście dokumentów w punkcie ACD jako nazwy kolumn.

Informacje o nazwach atrybutów/kolumn są dostępne w tabeli do.DF_ConfAPDictionary.

Jeśli uprawniony operator nie wprowadzi żadnej nazwy atrybutu, wówczas kolumny z atrybutami nie zostaną utworzone, a na liście dokumentów będzie widoczna tylko jedna kolumna „Dokument”.

Jeżeli operator wprowadzi wartość w jednym z dodatkowych pól (atrybutów), wówczas na liście będzie widoczna jedna dodatkowa kolumna z taką nazwą, jaką wprowadzono w polu; analogicznie, jeśli uzupełniono dwa pola, będą widoczne dwie dodatkowe kolumny.

 

Widok zakładki „Ogólne” na definicji punktu ACD typu „Import dokumentów zakupu z KSeF” z polami atrybutów (z przykładowym uzupełnieniem, tryb jednofirmowy)

  • Zmiana wartości na podstawie kontrolek obserwowanych (Obserwatory) – pole dodane w wersji 2026.0.0; umożliwia wyłączenie obserwatorów, które wykonują się w czasie dodawania dokumentów do obiegu z punktu ACD. Jeśli w polu parametru:
    • Wybrano wartość „Włączona” – wartości kontrolek mogą zostać nadpisane podczas generowania dokumentu do obiegu, zgodnie z kontrolkami obserwowanymi; wartość domyślna;
    • Wybrano wartość „Wyłączona” – wartości kontrolek nie zostaną nadpisane zgodnie z kontrolkami obserwowanymi podczas generowania dokumentu do obiegu (wartości zgodne z podglądem w punkcie ACD).

 

Zakładka Lista

Na zakładce „Lista”, analogicznie do pozostałych trybów pracy punktów konfiguracyjnych, należy za pomocą zapytania SQL określić listę dokumentów, która będzie wyświetlana w oknie ACD po pobraniu plików z KSeF.

 

Uwaga
W wersji 2025.0.0 nastąpiła zmiana zapytania SQL wyświetlającego listę dokumentów (zob. poniższy przykład). Zapytanie można skopiować z sekcji „Przykład”, dostępnej w ramach zakładki „Lista”.

Zapytanie SQL wprowadzone na zakładce „Lista” w ramach konfiguracji punktu ACD typu „Import dokumentów zakupu z KSeF” jest odmienne od zapytań SQL dla innych typów punktów ACD, różni się także od zapytania SQL dotychczas wprowadzanego w ramach punktu ACD typu „Import dokumentów zakupu z KSeF”.

 

Przyklad

Przykład zapytania wyświetlającego listę dokumentów.

BEGIN TRY
select d.KSD_ID, NULL, KSD_NumerFaktury, KSD_Tag1, KSD_Tag2, KSD_Tag3
from do.KS_Documents d 
left join do.KS_WorkAPProcess W on d.KSD_ID = KSW_DocumentID /*tabela przeprocesowanych dokumentów*/ 
left join do.KS_DocumentHeaders dh on d.KSD_ID = dh.KSH_DocumentId
left join do.KS_DocumentContractors dc on d.KSD_ID = dc.KSC_DocumentID
where KSW_APDId=@PointId@ -- id punktu ACD 
and KSW_OperatorID=@IdOperatorBPM@ /*dodatkowy warunek, aby na liście operator widział dokumenty przeprocesowane przez siebie*/
and ((@InvoiceStatus@ = 0 and KSW_Status <> 5 and KSW_Archival = 0) OR (@InvoiceStatus@ = 1 and KSW_Archival = 1) OR
(@InvoiceStatus@ = 2 and KSW_Status = 5) OR @InvoiceStatus@ = 3)
and (nullif(@SearchText@,'') is null OR (@SearchText@ <> '' and KSD_NumerFaktury LIKE '%' + @SearchText@ + '%'))
and (@Nip@ is null OR dc.KSC_PodatnikNIP = @Nip@)
and (@DateFrom@ is null or dh.KSH_DataWytworzeniaFa >= @DateFrom@)
and (@DateTo@ is null or dh.KSH_DataWytworzeniaFa <= @DateTo@)
and (@GrossAmountFrom@ is null or KSD_SumaBrutto >= @GrossAmountFrom@)
and (@GrossAmountTo@ is null or KSD_SumaBrutto <= @GrossAmountTo@)
and (@InvoiceType@ is null or KSD_RodzajFaktury = @InvoiceType@)
END TRY
BEGIN CATCH
DECLARE @ErrorMessage varchar(max) = 'W zapytaniu wystąpił błąd : ' + ERROR_MESSAGE();
THROW 50001, @ErrorMessage ,1; 
END CATCH

 

Punkt konfiguracyjny typu „Import dokumentów zakupu z KSeF”, zakładka „Lista”

 

Można wprowadzić alternatywne wersje zapytania – w takim przypadku, jeśli wyszukiwanie na liście w punkcie ACD ma uwzględniać wszystkie dane, jakie są na niej widoczne, należy analogicznie zmodyfikować także warunki wyszukiwania – np. tak jak w poniższym przykładzie.

 

Przyklad
Przykład zapytania na zakładce Lista, w wyniku którego na liście dokumentów w punkcie ACD:

  • w ramach kolumny „Dokument” oprócz numeru dokumentu wyświetlane są dodatkowe dane: data wystawienia, nazwa kontrahenta i NIP kontrahenta
  • dostępne są kolumny 3 atrybutów (o nazwach określonych na zakładce „Ogólne”)
  • wyszukiwanie odbywa się w zakresie wszystkich czterech kolumn („Dokument” z dodatkowymi informacjami oraz w kolumnach atrybutów)
 BEGIN TRY
    SELECT d.KSD_Id, NULL, KSD_NumerFaktury + ' | ' + CONVERT(varchar, KSD_Datawystawienia, 104) + ' | ' + KSC_PodatnikNazwa + ' | ' + KSC_PodatnikNIP, KSD_Tag1, KSD_Tag2, KSD_Tag3
     from do.KS_Documents d 
     left join do.KS_WorkAPProcess W on d.KSD_ID = KSW_DocumentID  /*tabela przeprocesowanych dokumentów*/ 
     left join do.KS_DocumentHeaders dh on d.KSD_ID = dh.KSH_DocumentId
     left join do.KS_DocumentContractors dc on d.KSD_ID = dc.KSC_DocumentID
     where KSW_APDId=@PointId@ -- id punktu ACD 
     and KSW_OperatorID=@IdOperatorBPM@ /*dodatkowy warunek, aby na liście operator widział dokumenty przeprocesowane przez siebie*/
     and ((@InvoiceStatus@ = 0 and KSW_Status <> 5 and KSW_Archival = 0) OR (@InvoiceStatus@ = 1 and KSW_Archival = 1) OR
         (@InvoiceStatus@ = 2 and KSW_Status = 5) OR @InvoiceStatus@ = 3)
     and (nullif(@SearchText@,'') is null OR (@SearchText@ <> '' and KSD_NumerFaktury + ' | ' +CONVERT(varchar, KSD_Datawystawienia, 104) + ' | ' + KSC_PodatnikNazwa + ' | ' + KSC_PodatnikNIP LIKE '%' + @SearchText@ + '%'))
     OR (@SearchText@ <> '' and KSD_Tag1 LIKE '%' + @SearchText@ + '%') 
     OR (@SearchText@ <> '' and KSD_Tag2 LIKE '%' + @SearchText@ + '%') 
     OR (@SearchText@ <> '' and KSD_Tag3 LIKE '%' + @SearchText@ + '%')
     and (@Nip@ is null OR dc.KSC_PodatnikNIP = @Nip@)
     and (@DateFrom@ is null or dh.KSH_DataWytworzeniaFa >= @DateFrom@)
     and (@DateTo@ is null or dh.KSH_DataWytworzeniaFa <= @DateTo@)
     and (@GrossAmountFrom@ is null or KSD_SumaBrutto >= @GrossAmountFrom@)
     and (@GrossAmountTo@ is null or KSD_SumaBrutto <= @GrossAmountTo@)
     and (@InvoiceType@ is null or KSD_RodzajFaktury = @InvoiceType@)
 END TRY
 BEGIN CATCH
  DECLARE @ErrorMessage varchar(max) = 'W zapytaniu wystąpił błąd : ' + ERROR_MESSAGE();
  THROW 50001,  @ErrorMessage ,1;   
 END CATCH

 

Lista dokumentów w punkcie AC, jeśli zastosowano powyższe zapytanie na zakładce „Lista” – na liście widoczne są: kolumna „Dokument” z dodatkowymi informacjami i  oczekujące na uzupelnienie kolumny atrybutów (Towar, Wartość netto i Wartość brutto)

 

Uwaga
W kolumnach atrybutów znajdują się jedynie wartości tekstowe.

 

Wyszukiwanie po fragmencie tekstu dostępnym w kolumnie „Dokument”

 

Zakładka Kontrolki

Na zakładce „Kontrolki” za pomocą zapytań SQL należy wskazać wartości, które będą wyświetlane w poszczególnych kontrolkach po przeprocesowaniu dokumentu.

Przykłady zapytań SQL dla faktur pobranych z KSeF są dostępne w artykule: Przykłady zapytań SQL w zakładce Kontrolki dla punktu ACD „Import dokumentów zakupu z KSeF”

W wersji 2026.0.0 zmodyfikowano zakładkę „Kontrolki” w taki sposób, aby możliwe było odrębne definiowanie mapowania kontrolek dla każdego typu obiegu wybranego na zakładce „Ogólne”.

W tym celu w górnej części zakładki dodano pole, po kliknięciu w które rozwijana jest lista typów obiegów przypisanych do danego punktu ACD na zakładce „Ogólne“. Gdy zostanie wybrany typ obiegu, wówczas poniżej dostępny będzie obszar, w ramach którego można zdefiniować kontrolki dla danego typu obiegu. Pozostałe ustawienia dotyczące zakładki „Kontrolki“ nie ulegają zmianie – aby dodać kontrolkę do mapowania, należy kliknąć w przycisk [Dodaj], a następnie wprowadzić odpowiednie zapytanie SQL w polu znajdującym się po prawej stronie okna. Mapowanie danej kontrolki można usunąć, klikając w ikonę kosza na prawo od nazwy kontrolki

 

Uwaga
Jeśli dany typ obiegu zostanie odznaczony w polu „Typ obiegu” na zakładce „Ogólne” podczas konfiguracji punktu ACD, wówczas nie będzie również dostępny do wyboru na zakładce „Kontrolki”.

 

Widok zakładki „Kontrolki” w ramach konfiguracji punktu ACD typu „Import dokumentów zakupu z KSeF” przed wyborem typu obiegu

 

Widok zakładki „Kontrolki” w ramach konfiguracji punktu ACD typu „Import dokumentów zakupu z KSeF” z listą typów obiegów przypisanych do danego punktu ACD do wyboru

 

Widok zakładki „Kontrolki” w ramach konfiguracji punktu ACD typu „Import dokumentów zakupu z KSeF” po wyborze typu obiegu wraz ze zdefiniowanym mapowaniem kontrolek

 

Od wersji 2024.3.0 operator może dodawać plik pdf z dokumentem KSeF do kontrolki typu Załącznik. W tym celu powinien w ramach konfiguracji punktu ACD typu „Import dokumentów zakupu z KSeF” wykonać kolejno następujące czynności:

  • na zakładce „Ogólne” w polu „Typ obiegu” wybrać typ obiegu, w ramach którego znajduje się kontrolka typu Załącznik;
  • na zakładce „Kontrolki” wybrać dany typ obiegu (od wersji 2026.0.0),  następnie kontrolkę typu Załącznik i w ramach pola po prawej stronie okna wprowadzić zapytanie SQL – w poniższym przykładzie nazwą pliku będzie nazwa faktury:
Select KSD_SourceContent,

CASE

WHEN KSD_NumerFaktury LIKE '%/%' THEN CONCAT(REPLACE(KSD_NumerFaktury, '/', '_'), '.pdf')

ELSE CONCAT(KSD_NumerFaktury, '.pdf')

END AS modified_column

from do.KS_Documents

where KSD_ID=@Id1@

 

Uwaga
W przypadku zastosowania powyższego zapytania jeżeli w nazwie faktury występuje znak /, zostanie zamieniony na _ .

 

Uwaga
Należy pamiętać, że w odróżnieniu od innych zapytań SQL w przypadku wprowadzania zapytania dla kontrolki typu Załącznik w ramach zakładki „Kontrolki” podczas konfiguracji punktu ACD typu „Import dokumentów zakupu z KSeF” konieczne jest dodanie frazy ‘.pdf’, tak, jak przedstawiono w powyższym przykładzie.

 

Wprowadzanie zapytania dla kontrolki typu Załącznik w ramach zakładki „Kontrolki” podczas konfiguracji punktu ACD typu „Import dokumentów zakupu z KSeF”

 

Punkt konfiguracyjny typu „Import dokumentów zakupu z KSeF”, zakładka „Kontrolki”

 

Od wersji 2025.0.0 w ramach zakładki „Kontrolki” uprawniony operator może zdefiniować zapytanie SQL, które przeniesie dane z wybranego atrybutu na określoną kontrolkę typu Tekst.

 

Uwaga

Zapytania SQL dla poszczególnych atrybutów:

  • Dla pola „Atrybut 1”
select KSD_Tag1 from do.KS_Documents where KSD_ID=@Id1@
  • Dla pola „Atrybut 2”
select KSD_Tag2 from do.KS_Documents where KSD_ID=@Id1@
  • Dla pola „Atrybut 3”
select KSD_Tag3 from do.KS_Documents where KSD_ID=@Id1@

 

Wprowadzanie na zakładce „Kontrolki” zapytania, które przeniesie dane z pola „Atrybut 3” do kontrolki typu Tekst „Forma płatności”

 

Przyklad
Operator chce, aby kontrahent, NIP i data wystawienia faktury były mapowane na kontrolki w danym typie obiegu oraz aby na liście dokumentów w punkcie ACD typu „Import dokumentów zakupu z KSeF”  w ramach atrybutów „Kontrahent”, „NIP” i „Data wystawienia’ były wyświetlane odpowiednio: nazwa kontrahenta z Comarch ERP XL, numer NIP kontrahenta oraz data wystawienia faktury. W tym celu modyfikuje konfigurację punktu ACD w następujący sposób:

1. Na zakladce „Ogólne”  w polu „Typ obiegu” wybiera typ obiegu, w którym dostępne są nastepujące kontrolki:

  • kontrolka typu Kontrahent „Kontrahent”
  • kontrolka typu Tekst „NIP”
  • kontrolka typu Data i godzina „Data wystawienia”

W poniższym przykładzie jest to typ obiegu „Faktury zakupu KSeF”.

2. Na zakladce „Ogólne” w ramach pola „Nazwy atrybutów na liście dokumentów w punkcie ACD” wprowadza:

  • w polu „Atrybut 1” – Kontrahent
  • w polu „Atrybut 2” – NIP
  • w polu „Atrybut 3” – Data wystawienia

 

Przykładowa konfiguracja pól dostępnych w ramach pola „Nazwy atrybutów na liście dokumentów w punkcie ACD”

 

3. Na zakładce „Kontrolki” wybiera typ obiegu, w którym znajdują się kontrolki omówione w punkcie 1 (w tym przykladzie typ obiegu „Faktury zakupu KSeF”). Następnie za pomocą przycisku „Dodaj”  dodaje kolejne mapowania kontrolek, wprowadzając dla nich nastepujące zapytania SQL:

  • Kontrahent
 UPDATE [nazwa_bazy_Comarch_BPM].[do].[KS_Documents] 

SET KSD_Tag1 = CAST(KSC_PodatnikNazwa AS VARCHAR(255))

FROM [nazwa_bazy_Comarch_BPM].[do].[KS_Documents] 
JOIN [nazwa_bazy_Comarch_BPM].[do].[KS_DocumentContractors] on KSC_DocumentId = KSD_Id
WHERE KSD_Id = @Id1@;



-- 2. Pobranie danych do wyświetlenia w kontrolce

SELECT TOP 1 

   Knt_GidNumer, 

   Knt_Akronim

FROM [nazwa_bazy_Comarch_BPM].[do].[KS_DocumentContractors]

JOIN [nazwa_bazy_Comarch_ERP_XL].[cdn].[KntKarty]  ON Knt_Nip = KSC_PodatnikNIP

WHERE KSC_DocumentId = @Id1@;

 

  • NIP
  UPDATE [nazwa_bazy_Comarch_BPM].[do].[KS_Documents] 

SET KSD_Tag2 = CAST(KSC_PodatnikNIP AS VARCHAR(255))

FROM [nazwa_bazy_Comarch_BPM].[do].[KS_Documents] 
JOIN [nazwa_bazy_Comarch_BPM].[do].[KS_DocumentContractors] on KSC_DocumentId = KSD_Id

WHERE KSD_Id = @Id1@;



-- 2. Pobranie danych do wyświetlenia w kontrolce

SELECT KSC_PodatnikNIP
FROM [nazwa_bazy_Comarch_BPM].[do].[KS_DocumentContractors]
JOIN [nazwa_bazy_Comarch_BPM].[do].[KS_Documents] on KSC_DocumentId = KSD_Id

WHERE KSD_ID = @Id1@;

 

  • Data wystawienia
 -- 1. Aktualizacja pola KSD_Tag3 sformatowaną datą
UPDATE [nazwa_bazy_Comarch_BPM].[do].[KS_Documents]
SET KSD_Tag3 = CONVERT(varchar(10), KSD_Datawystawienia, 104)
WHERE KSD_Id = @Id1@;

-- 2. Pobranie danych do wyświetlenia w kontrolce
SELECT 
    KSD_Datawystawienia
FROM [nazwa_bazy_Comarch_BPM].[do].[KS_Documents]
WHERE KSD_Id = @Id1@;

 

Wprowadzanie zapytania  dla atrybutu „Kontrahent” na liście dokumentów i dla kontrolki „Kontrahent”

 

4. Operator zapisuje zmiany wprowadzony w punkcie ACD, klikając w przycisk „Zapisz”.

Rezultat zmian w konfiguracji punktu ACD: Po pobraniu listy faktur w punkcie ACD dane – kontrahent, numer NIP i data wystawienia-  są widoczne na podglądzie kontrolek do zmapowania oraz w ramach atrybutów na liście dokumentów.

W przypadku problemów z wyświetleniem danych należy nacisnąć raz lub dwukrotnie przycisk „Odśwież”.

Należy pamiętać, że w przypadku ręcznej modyfikacji wartości atrybutów powrócą one do poprzednich, zmapowanych wartości, gdy lista będzie odświeżana.

 

Przykładowy widok listy z wypelnionymi automatycznie atrybutami w punkcie ACD

 

W wersji 2025.1.0 umożliwiono zapis pliku XML z KSeF do bazy Comarch BPM (dawniej DMS), tak, aby możliwe było dodanie go w ramach kontrolki typu Załącznik.

W tym celu podczas konfiguracji punktu ACD typu „Import dokumentów zakupu z KSeF” na zakładce „Kontrolki” należy po lewej stronie okna wybrać kontrolkę typu Załącznik, do której ma zostać dodany plik xml, a następnie po prawej stronie, w ramach edytora wprowadzić następujące zapytanie SQL:

Select KSD_Xml,

CASE

WHEN KSD_NumerFaktury LIKE '%/%' THEN CONCAT(REPLACE(KSD_NumerFaktury, '/', '_'), '.xml')

ELSE CONCAT(KSD_NumerFaktury, '.xml')

END AS modified_column

from do.KS_Documents

where KSD_ID=@Id1@

Definicja punktu ACD typu „Import dokumentów zakupu z KSeF”, zakładka „Kontrolki” – wprowadzanie zapytania dla kontrolki typu „Załącznik XML” (Zalacznikxml)

 

Gdy definicja punktu ACD została zapisana, wówczas podpięty plik załącznika XML można zobaczyć w oknie punktu ACD.

 

Punkt ACD typu „Import dokumentów zakupu z KSeF” z widoczną kontrolką „Załącznik XML” (Zalacznikxml) z podpiętym plikiem XML

 

Po wygenerowaniu dokumentu BPM (dawniej DMS) plik XML jest dostępny w ramach kontrolki typu Załącznik wybranej na definicji punktu ACD. Podobnie jak w przypadku innych plików dołączanych do kontrolki typu Załącznik, plik XML można usunąć za pomocą ikony lub zapisać na dysku, klikając w ikonę , a następnie wybierając odpowiednią lokalizację i naciskając „Zapisz”.

 

Dokument wygenerowany z punktu ACD typu „Import dokumentów zakupu z KSeF” z kontrolką „Załącznik XML” z podpiętym plikiem XML

 

Zakładka Uprawnienia

Na zakładce „Uprawnienia” należy wskazać pracowników, którzy będą mogli procesować dokumenty w ramach punktu.

Uprawnienia mogą być dodawane wyłącznie poprzez wskazanie pracowników, nie ma możliwości dodania uprawnień dla pracowników wskazanego działu czy pracowników zajmujących określone stanowisko.

Na zakładce „Uprawnienia” w ramach typu punktu konfiguracyjnego „Import dokumentów zakupu z KSeF” znajduje się także dodatkowa kolumna „Edycja dokumentu”.

Jeśli operator zaznaczy obok danego pracownika checkbox w ramach kolumny „Edycja dokumentu”, wówczas taki pracownik będzie mógł zmieniać wartości w kontrolkach bezpośrednio w punkcie ACD.

 

Punkt konfiguracyjny typu „Import dokumentów zakupu z KSeF”, zakładka „Uprawnienia”, tryb jednospółkowy

 

Punkt konfiguracyjny typu „Import dokumentów zakupu z KSeF”, zakładka „Uprawnienia”, tryb wielospółkowy

 

Uwaga
Dodanie operatora do uprawnień na punkcie konfiguracyjnym skutkuje nadaniem mu uprawnień do zakładki ACD (we właściwościach pracownika, na zakładce „Uprawnienia”, w sekcji „Funkcjonalności” zostaje zmieniona wartość parametr „Automatyczne generowanie dokumentów” na „TAK”)

Na każdej zakładce znajduje się ikona [Eksport], która umożliwia eksportowanie danego punktu ACD do zapisu na dysk (zob. Eksport punktu ACD). Istnieje również możliwość importu punktu konfiguracyjnego typu „Import dokumentów zakupu z KSeF”, podobnie jak w przypadku innych typów punktów ACD.( zob. Import punktu ACD).

 

Rozpoczynasz pracę z Comarch BPM (dawniej DMS) i chcesz dowiedzieć się, jak korzystać z programu? A może masz już podstawową wiedzę o Comarch BPM (dawniej DMS) i chcesz dowiedzieć się więcej?

Sprawdź Szkolenia Comarch BPM!

 




Własna akcja

Kontrolka typu „Własna akcja” umożliwia uruchomienie z poziomu karty obiegu:

  • programu (exe)
  • procedury SQL
  • pliku wykonywalnego na serwerze IIS
  • kodu w języku C#

Na właściwościach tej kontrolki dostępne są pola:

  • Nazwa wyświetlana – jest to pole, którego zawartość będzie widoczna na karcie obiegu, wartość pola nie musi być unikalna, dzięki temu możliwe jest dodanie kilku kontrolek, dla których wyświetlana jest taka sama nazwa.
  • Nazwa (identyfikator) – jest to pole, którego wartość widoczna jest wyłącznie we właściwościach kontrolki. Wartość tego pola musi być unikalna w ramach karty obiegu.
  • Prezentuj na całej szerokości – zaznaczenie tej właściwości spowoduje wyświetlenie kontrolki na całej szerokości okna „Karta obiegu”.
  • Ustaw kontrolkę na początku wiersza – parametr odpowiada za ustawienie kontrolki na początku nowego wiersza karty obiegu, bez konieczności dodawania separatorów pomiędzy kontrolką bieżącą, a kontrolką poprzednią. Możliwość użycia parametru „Ustaw kontrolkę na początku wiersza” uzależniona jest od wartości parametru „Prezentuj na całej szerokości”. Gdy zaznaczono parametr „Prezentuj na całej szerokości”, nie ma możliwości użycia parametru „Ustaw kontrolkę na początku wiersza”. Gdy parametr „Ustaw kontrolkę na początku wiersza” jest zaznaczony, parametr „Prezentuj na całej szerokości” jest dostępny, jego zaznaczenie spowoduje wyłączenie i dezaktywację parametru „Ustaw kontrolkę na początku wiersza”.
  • Plik wykonywalny – użytkownik może uruchomić aplikację typu exe. Aplikacja musi znajdować się na dysku komputera, na którym działa Comarch BPM (dawniej DMS) lub w udostępnionym udziale dyskowym, do którego ma dostęp użytkownik systemu. Ścieżkę do aplikacji należy umieścić w cudzysłowie, np. „c:\windows\system32\calc.exe”.
  • IIS – pole umożliwia uruchomienie plików wykonywalnych na serwerze IIS.
  • Procedura – możliwe jest uruchomienie procedury znajdującej się w bazie obiegu. Należy wpisać nazwę procedury.
  • Procedura ERP – możliwe jest uruchomienie procedury znajdującej się w bazie systemu ERP. Należy wpisać nazwę procedury.
  • C# Script – istnieje możliwość wywołania procesu zdefiniowanego za pomocą kodu w języku C#.
  • Nazwa spółki – opcja dostępna w trybie wielospółkowym. Operator może wybrać spółkę z rozwijanej listy.
  • Potwierdzenie wykonania akcji –  użytkownik może zdefiniować własny komunikat, który ma się wyświetlić na szczegółach dokumentu po wykonaniu akcji na przycisku.
  • Pytaj przed uruchomieniem – jeżeli parametru zostanie zaznaczony, po kliknięciu przycisku „własna akcja” system wyświetli komunikat „Czy uruchomić akcję?”.
  • Zapisz przed uruchomieniem – zaznaczenie parametru sprawia, że po kliknięciu w przycisk własnej akcji, dokument najpierw jest automatycznie zapisywany, a następnie wykonywane jest polecenie zapisane w konfiguracji kontrolki.
  • Odśwież po wykonaniu – parametr wprowadzony w wersji 2026.0.0; znajduje się na definicji kontrolki typu Własna akcja; jeśli checkbox „Odśwież po wykonaniu” jest zaznaczony, wówczas po wykonaniu akcji określonej w danej kontrolce karta obiegu zostanie przeładowana bez zapisywania obiegu.

 

Uwaga
Jeśli operator zaznaczył parametr „Odśwież po wykonaniu”, a nie zaznaczył parametru „Zapisz przed uruchomieniem”, wówczas zmiany, które wprowadzono w innych kontrolkach, nie zostaną zapisane, zaś uruchomienie własnej akcji spowoduje utratę niezapisanych zmian. Okno z pytaniem o zapis zmian nie jest wyświetlane.

Istnieje możliwość przekazywania parametrów dynamicznych do procedury lub programu skonfigurowanego dla kontrolki „Własna akcja”.

Parametry dynamiczne to nazwy (identyfikatory) kontrolek znajdujących się na karcie obiegu oznaczone znakami „@” na początku i na końcu nazwy.

 

Wskazówka
Przykład zastosowania pliku wykonywalnego:
plik.exe @Wartość netto@ @Wartość brutto@

 

Wskazówka
Przykład zastosowania procedury składowanej:
exec cdn.procedura @Parametr1@, @Parametr2@

 

Kontrolkę można również zainicjować kodem w języku C#. Od wersji 2024.3.0 zablokowano możliwość zmiany miejsca wykonywania skryptów C# – dostępna jest jedynie opcja Proces (exe).

 

Uwaga
W przypadku wcześniejszych wersji uruchomienie skryptu na niezależnym procesie exe jest zalecane w przypadku obsługi API, które nie powinno działać na procesach wielowątkowych takich jak proces IIS.

 

Okno definiowania procedury wywołania kontrolki typu Własna akcja w języku C#

 

Funkcjonalność obsługuje następujące kontrolki:

  • Data i godzina
  • Dokument elektroniczny
  • Kontrahent
  • Liczba rzeczywista
  • Liczba stałoprzecinkowa
  • Liczba całkowita
  • Lista
  • Tekst
  • Towar
  • Wartość logiczna

 

Kontrolka typu Własna akcja i jej właściwości

 

Uruchamianie plików wykonywalnych na serwerze IIS

Funkcjonalność dotyczy stacjonarnej wersji aplikacji Comarch BPM (dawniej DMS). Umożliwia operatorom uruchamianie tego samego pliku *.exe umieszczonego bezpośrednio na serwerze IIS.

Przygotowany plik *.exe, należy umieścić w katalogu \bin\exe w folderze, w którym zainstalowano aplikację webową. Konfigurując kontrolkę ‘Własna akcja’ należy w polu IIS wprowadzić nazwę i ścieżkę  do pliku, który wywoła przygotowaną aplikację.
Nazwę i ścieżkę do pliku należy wprowadzić w cudzysłowie.

 

Ustawienia kontrolki ‘Własna akcja’ po wyborze opcji „IIS”

 

Uruchamianie plików wykonywalnych

 

Przyklad

Przykład pokazuje definiowanie kontrolki typu Własna akcja jako plik wykonywalny w taki sposób, aby wywoływany był kalkulator systemu Windows.

 

Ustawienia kontrolki ‘Własna akcja’ po wyborze opcji 'Plik wykonywalny’, tak, aby na karcie obiegu wywoływany był kalkulator

 

Po takim zdefiniowaniu kontrolki oraz zapisaniu zmian i typu obiegu  po kliknięciu na nowym dokumencie kontrolki „Akcja” zostanie wywołany kalkulator.

 

Wywoływanie kalkulatora za pomocą kontrolki „Akcja”

 

Przyklad

Przykład pokazuje definiowanie kontrolki typu Własna akcja jako plik wykonywalny w taki sposób, aby wywoływany był notatnik.

 

Ustawienia kontrolki ‘Własna akcja’ po wyborze opcji 'Plik wykonywalny’, tak, aby na karcie obiegu wywoływany był notatnik

 

 

Po takim zdefiniowaniu kontrolki oraz zapisaniu zmian i typu obiegu  po kliknięciu na nowym dokumencie kontrolki „Akcja” zostanie wywołany notatnik.

 

Wywoływanie notatnika za pomocą kontrolki „Akcja”

 

Uruchomienie procedury z bazy Comarch BPM (dawniej DMS)

Aby uruchomić procedurę z bazy Comarch BPM (dawniej DMS), należy wybrać opcję „Procedura” i w otwartym oknie wpisać zapytanie według następującego wzoru:

exec nazwaprocedury
@pierwszy parametr z procedury = @identyfikator_kontrolki@,
@drugi parametr z procedury = @identyfikator_drugiej_kontrolki@,

itd.

Przyklad

Administrator dodał cztery kontrolki:

  • kontrolka typu tekst o nazwie „Nazwa działu” (identyfikator: Nazwa_dzialu)
  • kontrolka typu tekst o nazwie „Nazwa działu 2” (identyfikator: Nazwa_dzialu2)
  • kontrolka typu liczba całkowita o nazwie „Id spółki” (identyfikator: Id)
  • kontrolkę typu Własna akcja o nazwie  „Dodaj nowy dział” (identyfikator: Akcja)

Administrator chce, aby po wpisaniu danych do kontrolek „Nazwa działu”, „Nazwa działu 2”  i  „Id spółki”, a następnie kliknięciu w przycisk „Dodaj nowy dział” został dodany nowy dział w zakładce „Działy” w strukturze organizacyjnej wybranej spółki w Comarch BPM (dawniej DMS).

W tym celu wybrał procedurę do.AddDepartment, w której potrzebne są trzy parametry: @Name1 (varchar), @Name2 (varchar) i @CompanyId (int), jak jest widoczne na poniższej ilustracji.

 

Widok procedury do.AddDepartment w bazie Comarch BPM (dawniej DMS) – zaznaczono potrzebne parametry

 

Po utworzeniu wspomnianych czterech kontrolek administrator we właściwościach kontrolki „Dodaj nowy dział” klika w link „Ustaw” w polu „Procedura” i w otwartym oknie wprowadza nastepujące zapytanie:

exec do.AddDepartment
@Name1 = @Nazwa_dzialu@, 
@Name2 = @nazwa_dzialu2@,
@CompanyId = @Id@

 

Ustawienia kontrolki ‘Własna akcja’ po wyborze opcji 'Procedura’, tak, aby z poziomu dokumentu można było dodać nowy dział w strukturze organizacyjnej spółki w Comarch BPM (dawniej DMS)

 

Administrator zapisuje okno i typ obiegu. Od tej pory, kiedy operator BPM (dawniej DMS) wpisze wartości w kontrolkach „Nazwa działu”, „Nazwa działu 2”  i  „Id spółki”, a później kliknie w przycisk „Dodaj nowy dział” – zostanie dodany nowy dział w zakładce „Działy” w strukturze organizacyjnej wybranej spółki w Comarch BPM (dawniej DMS).

 

W konfiguracji kontrolki możliwe jest włączenie komunikatu z pytaniem, czy uruchomić daną akcję, pytanie wyświetlane jest po kliknięciu w przycisk wywołujący zdefiniowaną akcję.

 

Komunikat wyświetlany użytkownikowi, gdy na kontrolce zaznaczono parametr „Pytaj przed uruchomieniem”

 

 

W konfiguracji kontrolki można również  włączyć opcję wyświetlania  określonego komunikatu po wykonaniu akcji – w tym celu należy zaznaczyć checkbox w polu „Potwierdzenie wykonania akcji” i wpisać treść komunikatu w pustym polu poniżej. Wówczas po kliknięciu w przycisk akcji i po jej wykonaniu zostanie wyświetlony komunikat o określonej treści.

 

Włączanie opcji „Potwierdzenie wykonania akcji” i „Pytaj przed uruchomieniem”

 

Komunikat potwierdzający wykonanie akcji




Współpraca Comarch BPM z Comarch ERPXL – Rozwiązywanie problemów i komunikaty błędów


Jeśli wyszukiwanie nie reaguje, skorzystaj z funkcji „Znajdź na stronie” w menu Twojej przeglądarki.

Problem: Podczas generowania dokumentu do XL-a pojawia się komunikat:

Komunikat”Nie można dodać dokumentu. W funkcji XLNowyDokument wystąpił błąd nr 81: BŁĘDY: [Nie można wygenerować dokumentu – brak licencji. (NowyDokument-81)”

Przyczyna: Występowanie niespójności w konfiguracji odwołań do serwera klucza. Problem pojawia się najczęściej, gdy poszczególne moduły (Menadżer Kluczy, Menadżer Baz, ERP XL, BPM) korzystają z różnych formatów adresowania (np. mieszanie nazwy hosta z adresem IP).

Rozwiązanie:

Ujednolicenie odwołań do serwera klucza

Należy zweryfikować, czy we wszystkich miejscach konfiguracji widnieje identyczny wpis. Zaleca się stosowanie nazwy serwera zamiast adresu IP. Sprawdzenia wymagają:

  • Menadżer Kluczy: Pole Serwis zainstalowany jest na serwerze.
  • Menadżer Baz: Sposób podpięcia bazy XL-owej.
  • Plik konfiguracyjny BPM: W pliku Web.config należy sprawdzić klucz:
  • add key=”LicenceKeyServerERP” value=”NazwaSerwera::NumerKlucza”
  • System XL: Pole Klucz w konfiguracji.

Uwaga
Jeżeli w jednym miejscu widnieje adres IP (np. 192.168.1.100::12345), a w innym nazwa (np. SERWER-SQL::12345), należy ujednolicić wszystkie wpisy do formatu: NazwaSerwera::NumerKlucza.

Weryfikacja rejestru systemowego

W przypadku, gdy ujednolicenie wpisów nie rozwiąże problemu, należy sprawdzić obecność wpisu serwera HASP w rejestrze Windows pod ścieżką:

HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\CDN\CDNXL\MSSQL\Serwery

W przypadku braku stosownego wpisu z serwerem klucza, należy go dodać, a następnie ponownie zweryfikować proces generowania dokumentów.

Problem: Podczas generowania dokumentu do XL-a pojawia się komunikat:

„Nie można załadować biblioteki DLL 'cdn_api.dll’: Nie można odnaleźć określonego modułu. (Wyjątek od HRESULT: 0x8007007E)”

Przyczyna: Problem wynika z braku dostępu procesu do niezbędnych zmiennych środowiskowych lub plików profilu użytkownika, co uniemożliwia prawidłowe zainicjowanie bibliotek Comarch ERP XL przez serwer aplikacji.

Rozwiązanie

W celu wyeliminowania błędu należy dokonać zmiany w konfiguracji serwera IIS (Internet Information Services):

1. Uruchomić Menedżera Internetowych Usług Informacyjnych (IIS).

2. Przejść do sekcji Pule aplikacji (Application Pools).

3. Wybrać właściwą pulę: Należy odnaleźć pulę aplikacji serwerowej BPM.

4. Edytować ustawienia zaawansowane: Po kliknięciu prawym przyciskiem myszy na wybranej puli należy wybrać opcję Ustawienia zaawansowane (Advanced Settings).

5. Zmienić parametr profilu: W sekcji Model procesu (Process Model) należy odnaleźć funkcję Załaduj profil użytkownika (Load User Profile) i zmienić jej wartość na True.

6. Restartować usługę: Należy zrestartować pulę aplikacji lub całą usługę IIS, aby zmiany zostały zaktualizowane.

Ustawienia zaawansowane puli aplikacji serwerowej


Problem: Dlaczego podczas generowania dokumentu do Comarch ERPXL pojawia się komunikat:

„Błąd XL Api. W funkcji XLKSeFUstalStatusDokumentu wystąpił błąd nr -400:”

Rozwiązanie:

Użytkownik, który generuje dokument do XL-a musi mieć na swojej karcie operatora w XL-u na zakładce Ustawienia->Parametry zaznaczony parametr:

Edycja numeru KSeF na dok./Spinanie z KSeF na zatw. dok.

Problem: Podczas próby dowiązania dokumentu obiegowego z poziomu Comarch ERPXL pojawia się komunikat: „Odwołanie do obiektu nie zostało ustawione na wystąpienie obiektu”

Opis komunikatu:

Okno historia związanych w ERPXL

Rozwiązanie

Należy uruchomić RejestrOD spod prawego klawisza myszy z opcją ‘Uruchom jako administrator’. Plik znajduje się w katalogu z plikami wersji desktopowej.

Uruchamianie pliku RejestrOD

Problem: Podczas generowania dokumentu (A)FZ z kontrolki Dokument ERPXL pojawia się komunikat: „Nie można zamknąć dokumentu. W funkcji XLZamknijDokument wystąpił błąd nr -12: BŁĘDY:|Wystąpił niezidentyfikowany błąd.|Błąd najprawdopodobniej spowodowany złym działaniem otoczenia programu. () (ZamknijDokument–12)

Opis komunikatu:

 

Komunikat nr 12 podczas generowania dokumentu

 

Rozwiązanie

W przypadku kontrahenta Unijnego wymagane jest wskazanie kraju wysyłki.

W tym celu należy kolejno:

1. na definicji obiegu dodać kontrolkę np. typu Lista

2. na właściwościach Etapu, na którym będzie generowany dokument, na zakładce Kontrolki, zaznaczyć dla tej kontrolki  ’Wymagana’, aby kraj (prefix) zawsze został wskazany podczas tworzenia nowego dokumentu.

Ewentualnie prefiks kraju można pobierać z karty kontrahenta. Przykład zapytania poniżej:

If @Prefiks kraju_MODE@ = 0 --po dodaniu nowego dokumentu podstawi się kraj o id=17
 /*tryb inicjacji*/ 
select kpc_id, KPC_Kod, 17 FROM cdn.KrajeCelne else IF @Prefiks kraju_MODE@=1 
--po zmianie kontrolki zależnej (czyli kontrahenta) 
podstawi się prefiks kraju kontrahenta /*tryb obserwacji*/ 
begin select kpc_id, KPC_Kod,(SELECT top 1 kpc_Id 
from cdn.KntKarty join cdn.krajecelne on kpc_kod = Knt_kraj 
where Knt_GIDNumer =@Kontrahent_GIDNUMER@ ) as DefaultId from cdn.krajecelne

 

3. Kontrolkę należy zmapować, jak przedstawiono poniżej:

 

Ustawienia kontrolki Prefiks kraju.

 

Mapowanie kontrolki Prefiks kraju.

Problem: Podczas próby zaczytania dokumentów pojawia się komunikat: „Brak pakietu dla podanych danych Klienta”.

Opis komunikatu:

 

Punkt ACD- Comarch OCR

 

Rozwiązanie

W pliku Web.config w katalogu z aplikacją serwerową (dawna web) przy serwerze klucza należy wskazać pełną ścieżkę tzn. serwer klucza/nazwa instancji::numer klucza.

 

1. <!– „LicenceKeyServerDMS” – należy wpisać nazwę serwera licencji dla aplikacji Comarch BPM (dawniej DMS) –>
<add key=„LicenceKeyServerDMS” value=” serwer klucza/nazwa instancji::numer klucza ” />

2. <!– „LicenceKeyServerERP” – należy wpisać nazwę serwera licencji dla ERP XL lub ERP Optima. –>
<add key=„LicenceKeyServerERP” value=” serwer klucza/nazwa instancji::numer klucza ” />

Problem: Podczas próby generowania dokumentu z kontrolki Dokument ERPXL pojawia się komunikat: „Nie można zalogować się do ERPXL. Funkcja XLLogin zwróciła błąd nr -8”

Opis komunikatu:

 

Komunikat nr 8 podczas generowania dokumentu

 

Rozwiązanie

Należy sprawdzić czy:

1. baza, którą wskazano w pliku Web.config w katalogu z aplikacją serwerową (dawna web) Comarch BPM (dawniej DMS), została podłączona do systemu Comarch ERP XL w module Menedżer baz z włączonymi uprawnieniami administratora (w ramach aplikacji CDNMGR w katalogu Comarch ERP XL).

 

Uruchamianie CDNMGR

 

2. dla bazy wskazanej w pliku Web.config – znajdującym się w katalogu z aplikacją serwerową (dawną web) ComarchBPM (dawniej DMS) – podczas podłączania jej w module Menedżer baz wybrano sposób dostępu aplikacji do serwera SQL: Autoryzacja przez serwer SQL (krok 4 z 6),

 

Podłączanie Bazy ERPXL krok 4

 

3. dla bazy wskazanej w pliku Web.config – znajdującym się w katalogu z aplikacją serwerową (dawną web) Comarch BPM (dawniej DMS) – podczas podłączania jej w module Menedżer baz wybrano opcję Baza widoczna dla: Wszystkich użytkowników komputera (krok 6 z 6),

 

Podłączanie Bazy ERPXL krok 6

 

4.  W Zmiennych środowiskowych systemu Windows (Komputer -> ppm Właściwości -> Zaawansowane ustawienia systemu -> Zaawansowane -> Zmienne środowiskowe) dla zmiennej systemowej Path jako pierwsza ścieżka dla Comarch ERP XL podany jest katalog z wersją Comarch ERP XL współpracującą z wersja Comarch BPM (dawniej DMS) i w którym znajdują się właściwe dla tej wersji pliki biblioteki API.

Problem: Podczas próby generowania dokumentu z kontrolki Dokument ERPXL pojawia się komunikat: „Nie można zalogowac się doERPXL. Funkcja XLLogin zwróciła błąd nr -7”

Opis komunikatu:

 

Komunikat podczas generowania dokumentu

 

Rozwiązanie

Należy zweryfikować nazwę firmy na zakładce Autoryzacja API na zakładce Ustawienia w aplikacji desktop Comarch BPM (dawniej DMS) (por. Autoryzacja API).

Należy wpisać zmapowaną nazwę bazy, czyli wartość z kolumny Nazwa firmy z Menedżera baz.

 

Nazwa firmy z kolumny „Nazwa firmy” w Menedżerze baz

 

Uzupełnione pole „Nazwa firmy” na zakładce „Autoryzacja API” w ramach zakładki „Ustawienia”

Problem: Podczas próby generowania dokumentu z kontrolki Dokument ERPXL pojawia się komunikat: „Nie można dodać dokumentu. W funkcji XLNowyDokument wystąpił błąd nr 9: BŁĘDY:|Nie znaleziono formy płatności. (NowyDokument-9)”

Opis komunikatu:

 

Komunikat podczas generowania dokumentu

 

Rozwiązanie

W przypadku, jeśli kontrolka typu Lista z formami płatności jest powiązana (zmapowana) z kontrolką typu Dokument ERPXL, lista form płatności musi być zdefiniowana w oparciu o zapytanie SQL, a nie w oparciu o słownik.

Przykład zapytania, które pobiera formy płatności z systemu ERPXL:

select kon_lp,ltrim(rtrim(left(kon_wartosc,15))) from [Nazwa_bazy_ERPXL].[cdn].[Konfig] 
where kon_numer=736

 

Przykładowe zapytanie SQL w ramach definicji kontrolki typu Lista „Formy płatności” (formy_platnosci)

 

Wybór kontrolki „forma płatności” (forma_platnosci) do mapowania na dokument na kontrolce typu Dokument ERP XL

Problem: Podczas próby generowania dokumentu z kontrolki Dokument ERPXL pojawia się komunikat: „Nie można zalogowac się doERPXL. Funkcja XLLogin zwróciła błąd nr -1”

Opis komunikatu:

 

Komunikat podczas generowania dokumentu

Rozwiązanie

Należy kolejno:

1. sprawdzić, czy w Zmiennych środowiskowych systemu Windows (Komputer -> ppm Właściwości -> Zaawansowane ustawienia systemu -> Zaawansowane -> Zmienne środowiskowe) dla zmiennej systemowej Path jako pierwsza ścieżka dla Comarch ERP XL podany jest katalog z wersją Comarch ERP XL , która współpracuje z wersją Comarch BPM (dawniej DMS) i w którym znajdują się właściwe dla tej wersji pliki biblioteki API.

2. po modyfikacji ścieżki zrestartować komputer/serwer, aby zmiany zostały zaktualizowane.

Problem: Podczas próby dowiązania kontrahenta z systemu Comarch ERPXL do kontrolki Kontrahent, formatka z listą kontrahentów nie podnosi się

Opis komunikatu:

 

Dowiązywanie kontrahenta w Comarch BPM (dawniej DMS)

 

Rozwiązanie

Należy sprawdzić w pliku Web.config (znajduje się on w ścieżce: C:\inetpub\wwwroot\[folder zawierający pliki aplikacji serwerowej]) ustawienie współpracy w sekcji:

<!– „WorkMode” – określenie współpracy Comarch BPM (dawniej DMS) z ERP Optima – wartość = „Optima”, ERP XL – wartość = „XL”, bez współpracy z systemem EPR – wartość = „Standalone” –>
<add key=”WorkMode” value=”XL” />

W kwestii pliku Web.config – zobacz Plik Web.config

 

Klucz „WorkMode” w pliku Web.config

Problem: Podczas próby dowiązania kontrahenta z systemu Comarch ERPXL do kontrolki Kontrahent, pojawia się komunikat: „Baza nie jest zarejestrowana w systemie ERPXL”

Opis komunikatu:

 

Dowiązywanie kontrahenta w Comarch BPM (dawniej DMS)

 

Rozwiązanie

Należy sprawdzić, czy wskazano nazwę firmy na zakładce Autoryzacja API na zakładce Ustawienia w aplikacji desktop Comarch BPM (dawniej DMS) (por. Autoryzacja API).

Należy wpisać zmapowaną nazwę bazy, czyli wartość z kolumny Nazwa firmy z Menedżera baz.

 

Nazwa firmy z kolumny „Nazwa firmy” w Menedżerze baz

 

Uzupełnione pole „Nazwa firmy” na zakładce „Autoryzacja API” w ramach zakładki „Ustawienia”

Problem: Podczas dodawania nowej karty obiegu i kontrolki „Kontrahent” pojawia się komunikat: „Wybrany kontrahent ma zaznaczony parametr Archiwalny. Należy wskazać innego kontrahenta.”

Opis komunikatu:

Dowiązywanie kontrahenta w Comarch BPM (dawniej DMS)

Rozwiązanie

Przy dodawaniu kontrolki typu kontrahent podczas definiowania typu obiegu, domyślnie podpowiada się kontrahent jednorazowy.

Kontrahent ten w ERPXL został zarchiwizowany. Zostało to wykonane od strony bazy, ponieważ z poziomu interfejsu parametr ‘Archiwalny’ jest odznaczony i wyszarzony dla takiego typu kontrahenta. Należy przywrócić kontrahenta, wykonując update w bazie tabeli CDN.KntKarty w polu Knt_Archiwalny.

Problem: Podczas próby podłączenia dokumentu BPM (dawniej DMS) poprzez historię związanych pojawia się poniższy komunikat: ’’Ole Automation Error. Nie można załadować pliku lub zestawu’DocumentWorkflow.Types….’’

Opis komunikatu:

Okno historia związanych w ERPXL

 

Rozwiązanie

Należy zweryfikować, czy plik DMS.exe znajduje się tylko w podkatalogu z Comarch BPM (dawniej DMS).

Jeśli dodatkowo został wkopiowany do katalogu, gdzie jest zainstalowany ERPXL, należy go z niego usunąć.

Problem: Dlaczego w kontrolce Dokument ERP XL nie ma możliwości zmapowania załącznika?

Brak możliwości mapowania załącznika

 

Rozwiązanie

Aby można było zmapować załącznik na dokument ERP XL i przenieść do bazy Comarch ERP XL, należy odpowiednio skonfigurować ustawienia w BPM (dawniej DMS):

  • W przypadku pracy BPM-a (dawniej DMS) w trybie jednospółkowym w pliku Web.config w katalogu z plikami aplikacji serwerowej (dawna web) należy w kluczu <add key=”DestinationAttachmentsWorkflow” value=”XL” /> ustawić XL.
  • W przypadku pracy BPM-a (dawniej DMS)w trybie wielospółkowym należy skonfigurować zapisywanie załączników w definicji typu obiegu na właściwościach kontrolki Załącznik – w ramach pola „Nazwa spółki” trzeba wybrać bazę Comarch ERP XL.

Wybór bazy Comarch ERP XL w polu „Nazwa spółki”

Problem: Dlaczego po zmapowaniu wartości na kontrolkę typu Dokument ERP XL nie ma możliwości edycji danych z poziomu formatki?

 

Rozwiązanie

Na etapie, na którym ustawione jest mapowanie wartości  z kontrolki typu Dane tabelaryczne (DT), nie jest możliwe edytowanie wartości na Dokumencie ERP XL w elementach, gdyż wtedy występowała by różnica pomiędzy wartością mapowaną a zmapowaną.

Można na takim etapie edytować elementy w samej kontrolce typu Dane tabelaryczne i ta zmiana przeniesie się na dokument ERP XL.

Ewentualnie jeśli mapowanie odbywało się na wcześniejszym etapie, na etapach późniejszych możliwa jest edycja Elementów na Dokumencie ERP XL jeśli kontrolka nie jest w definicji ustawiona jako tylko do odczytu.

Problem: Podczas instalacji Comarch BPM przy użyciu Instalatora, w kroku Uruchom skrypty dla bazy ERP XL występuje błąd „Nie udało się wykonać skryptów SQL na wybranej bazie. Execution exception in script pGetDocumentsByNumbers.sql: Invalid column name ‘BON_OkrSymbol’.”

Okno „Baza danych Comarch ERP XL” z informacja o błędzie

 

Rozwiązanie

Powyższy błąd spowodowany jest odwołaniem w skrypcie do kolumny z komunikatu, która nie występuje w starszych wersjach ERP XL.

W takim wypadku rozwiązaniem może być aktualizacja ERP XL lub wykonanie instalacji BPM (dawniej DMS) w trybie Standalone i ręczne uruchomienie skryptów na bazie ERP XL, po wcześniejszym usunięciu linii kodu odwołującej się do nieistniejącej kolumny.

Ręczne podpięcie bazy XL i wykonanie skryptów opisane jest na stronach pomocowych: Instalacja początkowa Comarch BPM i instalacja aplikacji serwerowej (dawnej web) w trybie ręcznym

Problem: Błąd -12. Nie można zamknąć dokumentu. W funkcji XLZamknijDokumnet wystąpił błąd nr -12: Błędy:| Błąd generowania dokumentu stowarzyszonego lub błąd sprawdzania krajów, bonów itp. (ZamknijDokument –12) – co to za komunikat?

 

Rozwiązanie

błąd Api-12 pojawia się w przypadku, gdy na dokumencie w BPM (dawniej DMS) jest podpięty kontrahent Unijny, (czyli na karcie w XL-u na zakładce Księgowe ma zaznaczoną opcję Unijny) – należy dokonać weryfikacji.

W przypadku kontrahenta Unijnego wymagane jest wskazanie kraju wysyłki. W tym celu na definicji obiegu należy dodać kontrolkę np. typu Lista i na właściwościach Etapu, na którym będzie generowany dokument, na zakładce Kontrolki, zaznaczyć dla niej ’Wymagana’, aby kraj (prefix) zawsze został wskazany podczas tworzenia nowego dokumentu. Ewentualnie prefiks kraju można pobierać z karty kontrahenta.

Przykład zapytania poniżej:

If @Prefiks kraju_MODE@ = 0 --po dodaniu nowego dokumentu podstawi się kraj o id=17 /*tryb inicjacji*/

select kpc_id, KPC_Kod, 17 FROM cdn.KrajeCelne

else

IF @Prefiks kraju_MODE@=1 --po zmianie kontrolki zależnej (czyli kontrahenta) podstawi się prefiks kraju kontrahenta /*tryb obserwacji*/

begin

select kpc_id, KPC_Kod,(SELECT top 1 kpc_Id from cdn.KntKarty

join cdn.krajecelne on kpc_kod = Knt_kraj where Knt_GIDNumer =@Kontrahent_Id@

) as DefaultId

from cdn.krajecelne

 

Problem: Nie można dodać dokumentu. W funkcji XLNowyDokument wystąpił błąd nr -44: BŁĘDY: Obiekt Rabaty zwrócił błąd ADO-1 (NowyDokument–44) – co to za komunikat?

 

Rozwiązanie

ADO-1- To błąd ogólny i zależy od kontekstu.

We wszystkich zgłoszeniach proponuje się aktualizację ERP XL oraz instalację Cumulative Update (zbiorczej paczki poprawek i aktualizacji) dla użytkowanej wersji MS SQL Server. Są dostępne na stronach Microsoft.

Istnieje konieczność instalacji CU dla danej wersji MS SQL Server.

Dodatkowo proponujemy wykonanie poniższych instrukcji na bazie ERP XL:

ALTER DATABASE SCOPED CONFIGURATION SET TSQL_SCALAR_UDF_INLINING = OFF;

GO

EXEC sp_recompile N'CDN.MacierzRabatowa';

GO

 

Rozpoczynasz pracę z Comarch BPM (dawniej DMS) i chcesz dowiedzieć się, jak korzystać z programu? A może masz już podstawową wiedzę o Comarch BPM (dawniej DMS) i chcesz dowiedzieć się więcej?

Sprawdź Szkolenia Comarch BPM!

 




Uruchamianie pliku exe w punkcie ACD

W wersji 2023.1.0 umożliwiono uruchamianie pliku .exe w ramach punktu ACD. W tym celu w pliku dms.exe.config, znajdującym się w folderze z aplikacją desktopową Comarch DMS, dodano nowy klucz ACDExePath, w którym należy wprowadzić ścieżkę do pliku .exe, który ma zostać uruchomiony w punkcie ACD.

 

Klucz „ACDExePath” z przykładem ścieżki do pliku .exe

 

Kiedy użytkownik wprowadzi ścieżkę w ramach klucza „ACDExePath”, zapisze zmiany, a następnie zaloguje się do aplikacji desktop Comarch DMS i przejdzie na zakładkę [Automatyczne generowanie dokumentów], wówczas po prawej stronie okna widoczna będzie nowa ikona [Uruchom].

 

Okno „Automatyczne generowanie dokumentów” z widocznym przyciskiem „Uruchom”

 

Po kliknięciu w przycisk [Uruchom] zostanie uruchomiony plik .exe, do którego ścieżkę podano w pliku dms.exe.config.

Uwaga
Przycisk [Uruchom] jest widoczny tylko w przypadku, jeśli w pliku dms.exe.config w kluczu „ACDExePath” wprowadzono ścieżkę do pliku i zapisano zmiany.

 

Uwaga
Przycisk [Uruchom] jest dostępny dla wszystkich typów punktu konfiguracyjnego oprócz punktu konfiguracyjnego typu „Współpraca z Comarch OCR (przesyłanie skanów z kontrolki załącznik na dokumencie DMS)”oraz (aktualnie) punktów konfiguracyjnych typu: „Import dokumentów ze skrzynki e-Doręczenia”, „Import dokumentów zakupu z KSeF”, „Import e-faktur ZUGFeRD i XRechnung”.

 

Przykład uruchomienia pliku .exe w punkcie ACD

 

Przyklad

Uruchomienie Comarch ERP Optima w ramach punktu ACD

W ramach klucza „ACDExePath” użytkownik wprowadził wartość:

C:\Program Files (x86)\Comarch ERP Optima\Comarch OPT!MA.exe

i  zapisał zmiany.

Następnie użytkownik zalogował się do aplikacji desktop Comarch DMS i kliknął na ikonę [Uruchom] na zakładce [Automatyczne generowanie dokumentów].

Zostało otwarte okno Comarch ERP Optima, w którym użytkownik może się zalogować i np. przejrzeć listę kontrahentów.

Uruchamianie pliku przedstawiono na poniższym filmie:

 

 

Użytkownik sprawdza kontrahenta z faktury przetworzonej z OCR na liście kontrahentów w aplikacji Comarch ERP Optima, otwartej z poziomu punktu ACD

 

Rozpoczynasz pracę z Comarch BPM (dawniej DMS) i chcesz dowiedzieć się, jak korzystać z programu? A może masz już podstawową wiedzę o Comarch BPM (dawniej DMS) i chcesz dowiedzieć się więcej?

Sprawdź Szkolenia Comarch BPM!

 

 




Pierwsze kroki w konfiguracji integracji Comarch BPM z usługą e-Doręczenia – generowanie żądania certyfikatu CSR i zakup pieczęci elektronicznej

W systemie Comarch BPM (dawniej DMS) istnieje możliwość integracji z usługą e-Doręczenia.

Integracja polega na możliwości pobierania wiadomości przychodzących na skrzynkę oraz na możliwości wysyłania wiadomości w ramach usługi e-Doręczenia z poziomu systemu Comarch BPM (dawniej DMS).

Aby zintegrować system do zarządzania dokumentami (np. Comarch BPM) z usługą e-Doręczenia konieczne jest posiadanie kwalifikowanego certyfikatu. W związku z tym podmioty niepubliczne –  m.in. spółki, które chcą zintegrować Comarch BPM (dawniej DMS) z usługą e-Doręczenia – w celu pobierania i wysyłania wiadomości są zobligowane do zakupu pieczęci elektronicznej.

Do integracji Comarch BPM (dawniej DMS) z usługą e-Doręczenia, rekomendowany jest zakup Pieczęci elektronicznej Szafir wystawianej przez Krajową Izbę Rozliczeniową z wykorzystaniem żądania CSR.

Aby zakupić Pieczęć elektroniczną Szafir, należy:

1. Wygenerować żądanie certyfikatu CSR – poprzez wykorzystanie środowiska OpenSSL

  • OpenSSL to oprogramowanie open source, oferujące prosty interfejs wiersza polecenia służący do generowania kluczy. Oprogramowanie dostępne jest np. na stronie: https://slproweb.com/products/Win32OpenSSL.html
  • Do przygotowania żądania CSR potrzebny będzie klucz prywatny:
    • Aby wygenerować klucz prywatny, należy przejść do terminala i użyć polecenia:
openssl genrsa -out private_key.key 2048

 

    • Polecenie tworzy klucz prywatny o nazwie private_key.key o długości 2048

 

Wprowadzanie polecenia w terminalu

 

Nowoutworzony klucz prywatny o nazwie private_key.key

 

Uwaga

Plik private_key.key zostanie utworzony domyślnie w bieżącym katalogu roboczym, z którego uruchomiono polecenie.

Bezwzględnie należy zabezpieczyć klucz prywatny – nie może być udostępniany nikomu.

 

  • Następnie za pomocą klucza prywatnego zostanie utworzone żądanie(CSR): do konsoli należy wkleić i wykonać komendę:

 

openssl req -new -key private_key.key -out request.pem

 

W efekcie otrzymamy plik request.pem z zapisanym żądaniem CSR, wygenerowany za pomocą klucza prywatnego private_key.key

 

Wprowadzanie polecenia w termianlu, aby utworzyć żądanie CSR

  • W trakcie wykonywania komendy, w konsoli zostanie wyświetlony komunikat w którym trzeba będzie podać dodatkowe informacje:
    • CountryName(kod kraju w formacie dwuliterowym),
    • State or Province Name(województwo),
    • Locality Name(miasto),
    • Organization Name(pełna nazwa organizacji),
    • Organizational Unit Name(dział organizacji),
    • Common Name(nazwa lub domena dla której wystawiany jest certyfikat).

 

Nowoutworzone żądanie PEM

 

  • Po utworzeniu żądania CSR można zweryfikować jego zawartość za pomocą polecenia:

 

openssl req -text -noout -verify -in request.pem

 

Wyświetlony wynik powinien być zgodny z podanymi danymi

 

Wprowadzanie w terminalu polecenia weryfikującego żadanie PEM

 

Wyniki wyświetlone po wprowadzeniu polecenia weryfikującego żadanie PEM

  • Jeżeli dane są poprawne, plik request.pem można będzie przesłać do podmiotu certyfikującego w celu uzyskania kwalifikowanej pieczęci elektronicznej

 

Uwaga
Wygenerowany klucz prywatny należy zapisać i zabezpieczyć przed dostępem osób nieupoważnionych. Klucz prywatny, w pełnej jego formie, wraz z nagłówkami i stopką, będzie niezbędny do przeprowadzenia integracji z usługą e-Doręczenia.

 

2. Wygenerowane żądanie CSR request.pem przekazać do podpisu przy użyciu podpisu kwalifikowanego.

  • Żądanie CSR (plik request.pem) musi być podpisane podpisem kwalifikowanym w formacie CAdES – jeśli Twoja aplikacja do podpisywania nie pozwala na złożenie podpisu w tym formacie skorzystaj z aplikacji Szafir do składania i weryfikacji podpisu elektronicznego: https://www.elektronicznypodpis.pl/aplikacje-i-sterowniki.
  • Składanie i weryfikacja podpisu elektronicznego w aplikacji Szafir – w aplikacji Szafir należy kolejno:
    • przejść do sekcji Konfiguracja,
    • zmienić aktywną konfigurację,
    • ustawić format na CAdES (PKCS#7),
    • w sekcji Parametry podpisu zaznaczyć opcję Zapisz podpisywane dane razem z podpisem,
    • zapisać konfigurację i podpisać plik żądania certyfikatu, korzystając z aplikacji Szafir,

 

Zmiana formatu i zaznaczanie opcji  „Zapisz podpisywane dane razem z podpisem” w aplikacji Szafir

 

Podpisywanie pliku żądania certyfikatu w aplikacji Szafir

 

 Po podpisaniu żądania otrzymamy plik z rozszerzeniem .sig, który będzie można przekazać do KIR.

 

Okno aplikacji Szafir po podpisaniu żądania – w polu „Dane wyjściowe” widoczny jest plik z rozszerzeniem sig

 

3.  przejść do sklepu Krajowej Izby Rozliczeniowej i odszukać produkt Pieczęć elektroniczna Szafir. Można skorzystać z tego linku.

  • Na stronie sprzedawcy konieczne jest wybranie terminu ważności kwalifikowanej pieczęci elektronicznej. Dostępne opcje to: 1 rok lub 2 lata.
  • Należy wybrać właściwą dla swojej organizacji wersję pieczęci wśród wymienionych poniżej:
    • Pieczęć elektroniczna kwalifikowana z wgraniem żądania CSR online:
      • Rozwiązanie wymaga posiadania kwalifikowanego podpisu, który jest niezbędny do podpisania żądania CSR związanego z certyfikatem. Dzięki temu sprawę można załatwić w pełni online.
      • Jeżeli żądanie CSR zostało wygenerowane, wówczas powinno zostać podpisane podpisem kwalifikowanym Prezesa lub Prokurenta. Szczegóły procesu podpisywania znajdują się w poprzednich krokach,
    • Pieczęć elektroniczna z dostarczeniem żądania CSR do placówki KIR:
      • Żądanie nie wymaga posiadania podpisu kwalifikowanego, ale konieczna jest fizyczna wizyta Prezesa lub Prokurenta w jednym z dwunastu Regionalnych Centrów Sprzedaży KIR (Krajowa Izba Rozliczeniowa), aby dostarczyć wygenerowany CSR z żądaniem certyfikatu.
  • Nastepnie należy wykonać kolejno następujące kroki:
    • wybrać opcję Nowy zestaw, jeśli pieczęć kupujesz po raz pierwszy. Proszę NIE zaznaczać opcji Certyfikat do PSD2.
    • kliknąć Dodaj do koszyka,
    • przejść do koszyka i kliknąć Złóż zamówienie.
    • kliknąć Uzupełnij dane, w kolejnym kroku uzupełnić dane osoby upoważnionej do odebrania pieczęci elektronicznej,
    • przejść w dół do sekcji Dane do certyfikatu pieczęci elektronicznej i uzupełnić dane zgodnie z potrzebami organizacji oraz zgodnie z danymi przekazanymi w żądaniu CSR.
  • Później należy przejść niżej do ostatniej sekcji:
    • Certyfikat online: Wgram żądanie PKCS#10 – w tym kroku należy przesłać plik CSR w rozszerzeniu .sig, który został podpisany kwalifikowanym podpisem.
    • Certyfikat w placówce KIR: Dostarczę żądanie PKCS#10 do placówki KIR – w tym kroku należy wybrać oddział, do którego zostanie dostarczone żądanie certyfikatu CSR.
  • Następnie należy przejść do kroku 2 – Dane do zamówienia, a następnie do kroku 3 – Podsumowanie i płatność. W ramach wspomnianych kroków wykonać niezbędne działania opisane na stronie.
  • Należy pobrać wygenerowane zamówienie wraz z umową i przekazać je do podpisu.

Uwaga
Koniecznie trzeba upewnić się, że dokumenty zostaną podpisane przez osobę reprezentującą spółkę zgodnie z KRS lub przez osobę posiadającą odpowiednie pełnomocnictwo.

 




Import i eksport punktów ACD

 

Import punktu ACD

Od wersji 2023.0.0 użytkownik może importować punkty ACD. W tym celu w ramach zakładki [Automatyczne generowanie dokumentów] dodano ikonę [Importuj].

 

Okno „Automatyczne generowanie dokumentów” z zaznaczoną ikoną „Importuj”

 

Kiedy użytkownik naciśnie przycisk [Importuj], zostaje otwarte okno „Importuj punkt konfiguracyjny”, w ramach którego można:

  • Wybrać z listy dostępnej w polu „Z wzorca” wzorzec punktu konfiguracyjnego ACD do zaimportowania (wzorce to punkty konfiguracyjne wyeksportowane jako wzorce przez użytkowników – zob. Eksport punktu ACD)

 

lub

 

  • Wybrać punkt konfiguracyjny ACD zapisany w formie pliku na dysku, zaznaczając opcję „Z pliku”

 

Przycisk [Zapisz] jest nieaktywny aż do czasu, kiedy zostanie wybrany wzorzec lub plik z dysku.

 

Okno „Import punktu konfiguracyjnego” dla trybu jednofirmowego

 

Okno „Import punktu konfiguracyjnego” dla trybu wielofirmowego

 

Jeżeli wybrano wzorzec punktu konfiguracyjnego ACD, wówczas należy kliknąć przycisk [Zapisz], aby wzorzec został zaimportowany.

 

Wybór wzorca punktu konfiguracyjnego ACD do zaimportowania w trybie jednofirmowym

 

Istnieje możliwość usunięcia wzorca z listy zapisanych wzorców. W tym celu należy zaznaczyć opcję „Z wzorca”, wybrać z rozwijanej listy zapisanych wzorców dostępnej w ramach pola wzorzec, który ma zostać usunięty i kliknąć w ikonkę kosza . Wtedy wybrany wzorzec zostanie usunięty z listy zapisanych wzorców.

Jeśli natomiast wybrano opcję „Z pliku”, wówczas należy kliknąć w znajdujący się obok link [Otwórz plik]. Zostanie wówczas otwarte okno systemowe, w którym trzeba wybrać odpowiedni plik.

 

Wybór opcji zaimportowania punktu konfiguracyjnego ACD z pliku w trybie jednofirmowym

 

Wybór opcji zaimportowania punktu konfiguracyjnego ACD z pliku w trybie wielofirmowym

 

 

Wybór punktu konfiguracyjnego do importu

 

Po naciśnięciu przycisku [Otwórz] okno systemowe zostaje zamknięte, a w oknie importu punktu konfiguracyjnego widoczna jest ścieżka do wybranego pliku.

 

Okno „Import punktu konfiguracyjnego” ze ścieżką do wybranego pliku (tryb jednofirmowy)

 

Okno „Import punktu konfiguracyjnego” ze ścieżką do wybranego pliku (tryb wielofirmowy)

 

Jeśli użytkownik zaznaczy checkbox [Importuj zdefiniowane uprawnienia], wówczas uprawnienia, które zostały zapisane w oryginalnym punkcie konfiguracyjnym, będą dodane do zaimportowanego punktu. Istnieje możliwość importu uprawnień zarówno dla punktów importowanych ze wzorca, jak również dla punktów importowanych z pliku.

 

Okno „Import punktu konfiguracyjnego” – zaznaczono opcję „Importuj zdefiniowane uprawnienia

 

Uwaga
Export i import uprawnień są dostępne tylko dla użytkownika o uprawnieniach administratora.

 

Uwaga
Checkbox “Importuj zdefiniowane uprawnienia” nie jest dostępny w trybie wielospółkowym z powodu braku możliwości importu uprawnień przy takim ustawieniu.

 

W przypadku importu punktu konfiguracyjnego, w którego uprawnieniach dodano użytkownika, którego nie ma w systemie, do którego zaimportowano punkt, zostaje wyświetlony następujący komunikat:

 

Komunikat wyświetlany w przypadku importu punktu konfiguracyjnego wraz z uprawnieniami dla użytkownika, którego nie ma w systemie

 

Aby zaimportować wybrany punkt konfiguracyjny, należy kliknąć przycisk [Zapisz].

Punkt konfiguracyjny zostaje zaimportowany i otwiera się okno edycji konfiguracji punktu ACD, otwarte na zakładce „Ogólne”.

Konieczne jest, aby:

  • W polu „ Nazwa punktu” wpisać wybraną przez użytkownika nazwę punktu konfiguracyjnego
  • W polu „Typ obiegu” wybrać jeden z dostępnych typów obiegu (jeżeli w danym punkcie konfiguracyjnym występuje to pole)

 

Przykładowe okno edycji punktu konfiguracyjnego, otwarte po kliknięciu przycisku „Importuj”

 

Jeżeli użytkownik nadał punktowi konfiguracyjnemu taką samą nazwę, jaką nosi inny punkt konfiguracyjny, wówczas po kliknięciu przycisku [Zapisz] wyświetlony zostanie następujący komunikat:

 

Komunikat wyświetlany w przypadku próby zapisu punktu konfiguracyjnego, jeśli nazwa punktu jest jednakowa z istniejącą już w systemie

 

Zapytania służące do mapowania kontrolek i pochodzące z oryginalnego obiegu, które znajdują się na zakładce „Kontrolki”:

  • są automatycznie dopasowane do kontrolek na nowym typie obiegu tylko, jeżeli identyfikatory GUID tych kontrolek są zgodne.
  • nie są automatycznie dopasowane do kontrolek na nowym typie obiegu, jeżeli identyfikatory GUID tych kontrolek nie są zgodne – w tym przypadku konieczne jest dopasowanie ręczne dostępnych kontrolek danego typu z listy z danym zapytaniem albo napisanie nowego zapytania.

 

Aby dopasować daną kontrolkę do danego zapytania należy kliknąć w przycisk [Wybierz] znajdujący się obok typu kontrolki, a następnie wybrać kontrolkę danego typu z listy.

 

Wskazówka
Typ kontrolki widoczny jest w nawiasach kwadratowych.

 

Jeśli dane mapowanie nie jest potrzebne, można usunąć zapytanie, klikając na ikonkę kosza obok danej pozycji – wówczas takie mapowanie nie nastąpi.

 

Wybór kontrolki, na którą mają zostać zmapowane dane zgodnie z danym zapytaniem w ramach importowanego obiegu

 

Jeśli użytkownik spróbuje zapisać konfigurację importowanego punktu ACD, ale nie uzupełni wszystkich brakujących informacji, wówczas zostanie wyświetlony komunikat informujący o brakach.

 

 

Przyklad

Użytkownik importował punkt konfiguracyjny ACD, ale po zaimportowaniu:

  • Nie wpisał nazwy importowanego punktu ACD w polu „Nazwa punktu” na zakładce ogólne
  • Nie wybrał typu obiegu w polu „Typ obiegu” na zakładce „Ogólne”
  • Nie wybrał 2 kontrolek do mapowania danych dla importowanych zapytań na zakładce „Kontrolki”

 

Kiedy nacisnął przycisk [Zapisz], aby zapisać importowany obieg, wyświetlony został następujący komunikat:

 

Komunikat wyświetlony dla użytkownika, który nie uzupełnił nazwy punktu, typu obiegu i nie wybrał 2 kontrolek, na które mają być mapowane dane

 

Wskazówka
Liczba w nawiasie widoczna przy frazie „mapowanie kontrolek” w komunikacie o braku możliwości zaimportowania pliku, to liczba kontrolek, które nie zostały automatycznie połączone z właściwymi zapytaniami na podstawie GUID – w takim przypadku trzeba dopasować właściwą kontrolkę do danego zapytania, jak pokazano powyżej.

 

Aby możliwe było zapisanie zaimportowanego punktu ACD, konieczne jest uzupełnienie takich danych jak:

  • Nazwa punktu (pole „Nazwa punktu” na zakładce „Ogólne”)
  • Typ obiegu (pole „ Typ obiegu” na zakładce „Ogólne”)
  • Lista (numer id punktu ACD w bazie Comarch BPM (dawniej DMS) na zakładce „Lista”)
  • Mapowanie kontrolek (zakładka „Kontrolki”, patrz uwagi powyżej)
  • Ścieżka z punktu OCR (pole „ Zastosuj ścieżkę z punktu OCR” na zakładce „Ogólne” – w przypadku typu współpracy „Współpraca ze skrzynką pocztową (pobieranie załączników)”
  • Pole „Kontrolka” – dostępne na zakładce „Ogólne” w przypadku typu współpracy „Współpraca z Comarch OCR (przesyłanie skanów z kontrolki załącznik na dokumencie BPM (dawniej DMS))
  • Połączenie do bazy – w przypadku trybu współpracy z dowolnym programem OCR

 

Uwaga
 Współpraca z Saldeo nie jest wspierana.

 

W wersji 2023.0.1 został dodany predefiniowany wzorzec punktu ACD, który skonfigurowano do pracy z predefiniowanymi typami obiegu dla Comarch DMS we współpracy z Comarch ERP Optima.

Predefiniowany punkt ACD współpracuje z predefiniowanymi typami obiegu (*)(Optima) Faktura VAT oraz (*)(Optima) Faktura VAT + opis analityczny (zob. Eksport i import typu obiegu).

Na zakładce {Lista] znajduje się odpowiednie zapytanie do listy dokumentów.

Kiedy wybrano jeden z zaimportowanych predefiniowanych typów obiegu (*)(Optima) Faktura VAT lub (*)(Optima) Faktura VAT + opis analityczny w polu „Typ obiegu” na zakładce „Ogólne”, wówczas na zakładce [Kontrolki] predefiniowanego punktu ACD dostępne są następujące kontrolki wraz z odpowiednimi zakładkami:

  • Skan (Zalaczniki) lub Załącznik (Zalaczniki)
  • Data wpływu (Datawplywu)
  • Data wystawienia (Datawystawienia)
  • Data zakupu (Datazakupu)
  • Kontrahent(Kontrahent)
  • Dane kontrahenta (Danekontrahenta)
  • Wartość brutto (Brutto)
  • Numer dokumentu (Dokument)
  • Waluta (Waluta)
  • Numer rachunku bankowego (Numerrachunku_bankowego)
  • Forma płatności (Formaplatnosci)
  • Termin płatności (Terminplatnosci)
  • Wartość netto (Netto)

 

Zakładka [Kontrolki] w przypadku, jeśli w zakładce [Ogólne] wybrano typ obiegu zaimportowany wcześniej z wzorca „(*)(Optima) Faktura VAT”
 

W ramach zapytania SQL dla kontrolki Kontrahent należy zmienić frazę Nazwa_bazy_firmowej_Optima na nazwę bazy firmowej Comarch ERP Optima.

Po zaimportowaniu predefiniowanego punktu ACD okno konfiguracji punktu ACD otworzy się na zakładce [Ogólne] i wyświetlony zostanie komunikat informujący o konieczności uzupełnienia tej informacji. Aby możliwa była edycja definicji punktu ACD, użytkownik musi nacisnąć w ramach komunikatu przycisk   [Ok] lub znak X.

 

Okno konfiguracji punktu ACD z komunikatem informującym o konieczności uzupełnienia nazwy bazy firmowej Comarch ERP Optima

 

Eksport punktu ACD

Od wersji 2023.0.0 użytkownik może eksportować punkty ACD. W tym celu w ramach zakładki [Automatyczne generowanie dokumentów] w oknie „Punkt konfiguracyjny”, otwartym podczas dodawania lub edycji punktu konfiguracyjnego, dodano ikonę [Eksport].

 

Okno „Automatyczne generowanie dokumentów” z zaznaczona ikoną „Edytuj” i okno „Punkt konfiguracyjny” z zaznaczoną ikoną „Eksport”

 

Kiedy użytkownik naciśnie przycisk [Eksport], zostaje otwarte okno z dwiema opcjami do wyboru:

  • Jako wzorzec
  • Do pliku

 

 

Eksport punktu konfiguracyjnego ACD jako wzorzec

Zaznaczenie w ramach okna wyświetlanego po kliknięciu na ikonę [Eksport] opcji „Jako wzorzec” umożliwia zapis punktu ACD jako wzorzec, dostępny w oknie otwartym po kliknięciu ikony [Import] na zakładce [Automatyczne generowanie dokumentów]. Po wyborze tej opcji należy kliknąć przycisk  [Zapisz], aby wzorzec został zapisany. Przycisk jest wyszarzony, jeśli nie wprowadzono nazwy wzorca w polu tekstowym.

 

Wybór zapisu punktu konfiguracyjnego ACD jako wzorzec

 

Po kliknięciu przycisku [Zapisz] wzorzec danego punktu konfiguracyjnego zostanie zapisany w systemie. Jeżeli zapisywanie wzorca zakończyło się powodzeniem, wyświetlony zostaje następujący komunikat:

 

Komunikat informujący o poprawnym zapisie wzorca punktu konfiguracyjnego ACD

 

Jeśli w ramach pola dostępnego po zaznaczeniu opcji „Jako wzorzec” wprowadzono taką samą nazwę, jaką nadano już jednemu z istniejących wzorców, wówczas zostanie wyświetlony następujący komunikat:

 

Komunikat informujący o tym, że wprowadzona nazwa wzorca istnieje już w systemie

 

Eksport pliku konfiguracyjnego ACD do pliku

Zaznaczenie w ramach okna wyświetlanego po kliknięciu na ikonę [Eksport] opcji „Do pliku” umożliwia zapis punktu konfiguracyjnego ACD do pliku na dysk – taki plik może później zostać zaimportowany po kliknięciu ikony [Import] na zakładce [Automatyczne generowanie dokumentów].

 

Wybór zapisu punktu konfiguracyjnego ACD do pliku

 

Po wyborze opcji „Do pliku” należy kliknąć w link [Zapisz do pliku]. Zostanie wówczas otwarte okno, w ramach którego należy wybrać lokalizację na dysku, opcjonalnie zmienić nazwę pliku, a następnie kliknąć przycisk [Zapisz]. Punkt konfiguracyjny ACD jest wówczas importowany do pliku z rozszerzeniem *.acd i zapisany w wybranej lokalizacji.

 

Zapis punktu konfiguracyjnego do eksportu

 

Eksport zbiorowy wszystkich punktów konfiguracyjnych ACD

W wersji 2025.0.0 w ramach zakładki [Automatyczne generowanie dokumentów] w górnej części okna dodano przycisk [Eksport wszystkich punktów].

 

Przycisk „Eksport wszystkich punktów” na zakładce „Automatyczne generowanie dokumentów”

 

Uwaga
Niezależnie od tego, który punkt konfiguracyjny jest otwarty, kliknięcie w ikonę [Eksport wszystkich punktów] powoduje eksport wszystkich punktów konfiguracyjnych ACD znajdujących się na całej liście, nie konkretnego punktu konfiguracyjnego.

 

Gdy operator naciśnie ikonę [Eksport wszystkich punktów], wówczas zostanie otwarte okno „Eksport wszystkich punktów konfiguracyjnych ACD”.

 

Okno „Eksport wszystkich punktów konfiguracyjnych ACD”

 

Jeśli w ramach okna „Eksport wszystkich punktów konfiguracyjnych ACD” operator kliknie przycisk [Zatrzymaj], wówczas proces pobierania danych zostanie wstrzymany.

Jeśli nie zatrzymano procesu pobierania danych, w takim przypadku zostanie otwarte okno „Przeglądanie w poszukiwaniu folderu”, w ramach którego operator wybiera miejsce na dysku, gdzie mają zostać zapisane pliki, a następnie klika przycisk „Ok”.

 

Okno „Przeglądanie w poszukiwaniu folderu”

 

Po wyborze lokalizacji i kliknięciu w przycisk „Ok” pliki punktów konfiguracyjnych ACD zostają wyeksportowane i zapisane w wybranej lokalizacji. Każdy punkt konfiguracyjny ACD jest zapisywany jako osobny plik z rozszerzeniem .acd pod nazwą, jaką miał dany punkt konfiguracyjny ACD w Comarch BPM (dawniej DMS).

 

Uwaga
Jeśli w wybranej lokalizacji znajduje się już plik o danej nazwie, wówczas taki plik zostanie nadpisany podczas eksportu wszystkich punktów konfiguracyjnych ACD.

 

Jeżeli pomyślnie zapisano wyeksportowane pliki definicji obiegów dokumentów, otwarte zostaje okno „Wyeksportowano pomyślnie wszystkie zdefiniowane punkty konfiguracyjne ACD do wskazanej lokalizacji”. Okno można zamknąć, klikając w przycisk „Ok” albo znak X w prawym górnym rogu okna.

 

Widok wyeksportowanych punktów konfiguracyjnych ACD w wybranej lokalizacji

 

Okno wyświetlane w przypadku, jeśli eksport wszystkich punktów konfiguracyjnych ACD zakończył się powodzeniem

 

W przypadku, jeśli nie udało się wyeksportować wszystkich punktów konfiguracyjnych ACD, zostaje otwarte okno „Eksport wszystkich zdefiniowanych punktów konfiguracyjnych ACD nie może zostać wykonany. Zweryfikuj dane i spróbuj ponownie.”. Okno można zamknąć, klikając w przycisk „OK” albo znak X w prawym górnym rogu okna.

 

Okno wyświetlane w przypadku, jeśli eksport wszystkich punktów konfiguracyjnych ACD zakończył się niepowodzeniem

 

Rozpoczynasz pracę z Comarch BPM (dawniej DMS) i chcesz dowiedzieć się, jak korzystać z programu? A może masz już podstawową wiedzę o Comarch BPM (dawniej DMS) i chcesz dowiedzieć się więcej?

Sprawdź Szkolenia Comarch BPM!