Baza wiedzy LINKSPOT › Wskazówki

Akceptacja Faktury kosztowej w Comarch BPM pobranej z Comarch ERP Optima

Wskazówki · Opublikowano 2026-01-22

Zastosowanie

Scenariusz opisuje proces akceptacji dokumentów w systemie Comarch BPM, które zostały uprzednio pobrane z Krajowego Systemu e-Faktur (KSeF) do systemu Comarch ERP Optima. Głównym celem rozwiązania jest automatyzacja obiegu faktur kosztowych poprzez wyeliminowanie konieczności ręcznego przepisywania danych. Dzięki wykorzystaniu unikalnego identyfikatora dokumentu z bazy Comarch ERP Optima (VaN_VaNID), system Comarch BPM dynamicznie zaczytuje szczegółowe informacje bezpośrednio do kontrolek na karcie obiegu oraz kontrolki tabelarycznej ‘Elementy’.

Zawartość przykładu

Kliknij, aby pobrać przykład

Zasada działania

Proces automatyzacji opiera się na integracji bazy danych Comarch ERP Optima z procesem BPM:

Konfiguracja Punktu ACD

W celu umożliwienia akceptacji dokumentów pobranych z Comarch ERP Optima w systemie Comarch BPM skonfigurowano punkt o trybie współpracy: Współpraca z dowolnym programem OCR .

Tryb współpracy – Współpraca z dowolnym programem OCR

  1. Zakładka Ogólne: Skonfigurowano połączenie do bazy Comarch ERP Optima, z której będą pobierane dokumenty.

Zakładka ogólna

W polu Połączenie do bazy po kliknięciu opcji Zmień, należy uzupełnić:

Połączenie do bazy

Login i hasło administratora bazy danych MS SQL

  1. Zakładka Lista: Wprowadzono poniższe zapytanie, które pobiera listę dokumentów gotowych do akceptacji oraz ich unikalne ID (VaN_VaNID):
BEGIN TRY
SELECT
V.VaN_VaNID,
V.VaN_Typ,
CONCAT(
V.VaN_Dokument, /*Numer dokumentu z rejestru */
' | ',
V.VaN_KntNazwa1,  /* Nazwa kontrahenta */
' | ',
CONVERT(VARCHAR(10), V.VaN_DataZap, 104),  /* Data wpływu */
' | KSeF: ',K.DKF_NumerKSeF  /*Numer KSeF pobrany z tabeli DokumentyKSeF */
) AS [InformacjeWyswietlaneNaLiscie]

FROM
CDN.VatNag AS V

INNER JOIN
CDN.DokumentyKSeF AS K ON V.VaN_VaNID = K.DKF_VaNId

LEFT JOIN
dbo.DF_WorkAPProcess AS B1
ON B1.APW_DocumentID1 = V.VaN_Typ   /*Rejestr zakupu w Optimie to 1 */
AND B1.APW_DocumentID2 = V.VaN_VaNID   /*Mapowanie po VaNID */
AND B1.APW_APDId =  @PointId@ /*ID punktu ACD z tabeli do.DF_ConfAPDictionary pobierany dynamicznie*/
WHERE
V.VaN_Typ = 1  /*Filtr: Rejestr Zakupów */
AND K.DKF_Typ = 1  /*Dokumenty KSeF typu zakupowego*/
AND B1.APW_ID IS NULL  /*Wykluczamy już przeprocesowane */

ORDER BY
V.VaN_DataZap DESC;

END TRY
BEGIN CATCH
DECLARE @ErrorMessage varchar(max) = 'W zapytaniu wystąpił błąd: ' + ERROR_MESSAGE();
THROW 50001, @ErrorMessage ,1;
END CATCH
  1. Zakładka Kontrolki: Dodano kontrolkę ID_VanID (ID_Optima) i przypisano jej zapytanie, które pobiera VANID dokumentu z  Comarch ERP Optima:

Zakładka Kontrolki

Konfiguracja kontrolek na karcie obiegu

W definicji dokumentu, do każdej kontrolki przypisano zapytanie SQL, które na podstawie pobranego ID (przekazanego do parametru @ID_OPTIMA@) pobiera konkretne dane z bazy.

Przykładowe zapytania dla kontrolek:

select VaN_DataZap from CDN.VatNag where VaN_VaNID = @ID_OPTIMA@
select VaN_DataOpe from CDN.VatNag where VaN_VaNID = @ID_OPTIMA@
select VaN_DataWys FROM CDN.VatNag where VaN_VaNID = @ID_OPTIMA@
select VaN_Dokument from CDN.VatNag where VaN_VaNID = @ID_OPTIMA@
select VaN_PodID from CDN.VatNag where VaN_VaNID = @ID_OPTIMA@
select W.WNa_WNaID , W.WNa_Symbol, W.WNa_WNaID

from CDN.VatNag AS V

JOIN CDN_KNF_KONFIGURACJA.CDN.WalNazwy as W /* Należy wskazać właściwą nazwę bazy konfiguracyjnej */

on ISNULL(NULLIF(V.VaN_Waluta, ''), 'PLN') = W.WNa_Symbol

where V.VaN_VaNID = @ID_OPTIMA@
select F.FPl_FPlId, F.FPl_Nazwa, F.FPl_FPlId from CDN.VatNag as V JOIN CDN.FormyPlatnosci as F ON

V.VAN_FPLID = F.FPL_FPLID where V.VaN_VaNID = @ID_OPTIMA@
select VaN_Termin from CDN.VatNag where VaN_VaNID = @ID_OPTIMA@
select Van_PlatnikRachunekNr from CDN.VatNag where VaN_VaNID = @ID_OPTIMA@
select VaN_Opis from CDN.VatNag where VaN_VaNID = @ID_OPTIMA@
select G.Gru_GruID, G.Gru_Nazwa,G.Gru_GruID from CDN.VatNag as V JOIN CDN.Grupy as G on V.VaN_Rejestr =

G.Gru_Nazwa where V.VaN_VaNID = @ID_OPTIMA@ AND G.Gru_Typ = 1
select K.Kat_KatID, K.Kat_KodSzczegol, K.Kat_KatID from CDN.VatNag as V JOIN CDN.Kategorie as K on V.VaN_KatID = K.Kat_KatID

where V.VaN_VaNID = @ID_OPTIMA@
select K.Kat_Opis from CDN.VatNag as V JOIN CDN.Kategorie as K on V.VaN_KatID = K.Kat_KatID where

V.VaN_VaNID = @ID_OPTIMA@
select DKF_NumerKSeF from CDN.DokumentyKSeF where DKF_VaNId = @ID_OPTIMA@
select DKF_DataPozyskania from CDN.DokumentyKSeF where DKF_VaNId = @ID_OPTIMA@
select VaN_VaNID from cdn.VatNag where VaN_VaNID = @ID_OPTIMA@
select VaN_VaNID from cdn.VatNag where VaN_VaNID = @ID_OPTIMA@
IF @^SenderControlName@ = 'ID_OPTIMA' /*Identyfikator kontrolki do której pobierane jest ID dokumentu z Comarch ERP Optima */

BEGIN

SELECT

V.VaT_KatID AS [KategoriaID],

V.VaT_KatOpis AS [Kategoria],

V.VaT_Kat2ID AS [Kategoria2ID],

V.VaT_Kat2Opis AS [Kategoria2],

/* Pobieramy ID stawki ze słownika */

(SELECT TOP 1 K.Kon_KonId

FROM CDN_KNF_Konfiguracja.cdn.Konfig AS K

WHERE K.Kon_Numer = 301

AND K.Kon_Wartosc LIKE V.VaT_StawkaSymbol + '%') AS [StawkaID],

V.VaT_Netto AS [Netto],

V.VaT_VATWal,

(V.VaT_Netto + V.VaT_VAT) AS [Brutto],

V.VaT_RodzajZakupu AS [Rodzaj],

V.VaT_Odliczenia AS [Odliczenia]

FROM CDN.VatTab AS V

WHERE V.VaT_VaNID = @ID_OPTIMA@

END

Uzupełniony dokument w Comarch BPM

Dokumenty z Comarch ERP Optima zostały pobrane do punktu ACD i poprawnie zainicjowane w Comarch BPM.

Pobrane dokumenty w punkcie ACD

Dane na karcie obiegu zostały zaczytane dynamicznie z bazy Comarch ERP Optima na podstawie unikalnego identyfikatora ID__OPTIMA (VaN_VaNID). System wykorzystał ten klucz, aby wykonać zapytania SQL przypisane do poszczególnych kontrolek, co wyeliminowało konieczność ręcznego przepisywania danych z faktury.

Karta obiegu

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!

Powrót do początku artykułu

+ Mam problem z tym tematem Otwórz w portalu bazy wiedzy »