Akceptacja Faktury kosztowej w Comarch BPM pobranej z Comarch ERP Optima

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

  • Definicja Typu Obiegu (Workflow): Wzorcowa ścieżka obiegu dokumentu kosztowego z krokami akceptacji, konfiguracją kontrolki Dane tabelaryczne.

Kliknij, aby pobrać przykład

 

Zasada działania

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

  • Pobranie i Rejestracja (Optima): Dokument zostaje pobrany z bramki KSeF do Comarch ERP Optima. Na jego podstawie tworzony jest dokument w Rejestrze VAT (tabela CDN.VatNag).
  • Pobranie dokumentów przez Comarh BPM: Poprzez punkt ACD (Współpraca z dowolnym programem OCR ) do Comarch BPM zostają pobrane dokumenty z systemu Comarch ERP Optima.
  • Pobranie ID dokumentu: W punkcie ACD pobierany jest unikalny identyfikator dokumentu z bazy Comarch ERP Optima (VaN_VaNID).
  • Tworzenie dokumentów w Comarch BPM: Na podstawie pobranych danych z poziomu punktu ACD tworzone są dokumenty w Comarch BPM, w celu ich akceptacji.
  • Automatyczne uzupełnianie danych: Informacje w poszczególnych kontrolkach karty obiegu są uzupełniane automatycznie na podstawie ID dokumentu, zaczytanego w punkcie ACD. Wykorzystując ten unikalny klucz, system za pomocą zapytań SQL zaczytuje szczegółowe dane bezpośrednio z bazy Comarch ERP Optima.

 

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ć:

  • Nazwę serwera, na którym jest podpięta baza Comarch ERP Optima
  • Nazwę bazy danych Comarch ERP Optima, z której mają być pobierane dokumenty
  • Użytkownika ODUSER zmapowanego z tą bazą
  • Hasło dla użytkownika ODUSER

 

Połączenie do bazy

 

  • Tworzenie tabeli: Utworzono tabelę poprzez kliknięcie opcji Utwórz tabelę, która przechowuje informacja o utworzonych dokumentach, podając login i hasło administratora bazy danych MS SQL.

 

Login i hasło administratora bazy danych MS SQL

 

2. 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

 

3. 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:

  • Data wpływu:

 

select VaN_DataZap from CDN.VatNag where VaN_VaNID = @ID_OPTIMA@

 

  • Data zakupu:

 

select VaN_DataOpe from CDN.VatNag where VaN_VaNID = @ID_OPTIMA@

 

  • Data wystawienia:

 

select VaN_DataWys FROM CDN.VatNag where VaN_VaNID = @ID_OPTIMA@

 

  • Dokument:

 

select VaN_Dokument from CDN.VatNag where VaN_VaNID = @ID_OPTIMA@

 

  • Kontrahent:

 

select VaN_PodID from CDN.VatNag where VaN_VaNID = @ID_OPTIMA@

 

  • Waluta:

 

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@

 

  • Forma płatności:

 

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@

 

  • Termin płatności:

 

select VaN_Termin from CDN.VatNag where VaN_VaNID = @ID_OPTIMA@

 

  • Numer rachunku bankowego:

 

select Van_PlatnikRachunekNr from CDN.VatNag where VaN_VaNID = @ID_OPTIMA@

 

  • Notatka:

 

select VaN_Opis from CDN.VatNag where VaN_VaNID = @ID_OPTIMA@

 

  • Rejestr:

 

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

 

  • Kategoria:

 

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@

 

  • Opis Kategorii:

 

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@

 

  • Numer KSeF:

 

select DKF_NumerKSeF from CDN.DokumentyKSeF where DKF_VaNId = @ID_OPTIMA@

 

  • Data przyjęcia z KSeF:

 

select DKF_DataPozyskania from CDN.DokumentyKSeF where DKF_VaNId = @ID_OPTIMA@

 

  • Walidator:

 

select VaN_VaNID from cdn.VatNag where VaN_VaNID = @ID_OPTIMA@

 

  • Rejestr VAT zakupu:

 

select VaN_VaNID from cdn.VatNag where VaN_VaNID = @ID_OPTIMA@

 

  • Zapytanie do kontrolki Dane tabelaryczne Elementy:

 

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!