ApiAutomator przykład 4 - generator sprzedaży

Program do automatyzacji pracy administratora i użytkowników systemu ERP XL
Awatar użytkownika
mikey
Site Admin
Posty: 97
Rejestracja: 25 lis 2007, 23:42
Rola: Administrator CDN XL
Wersja: 2016
Lokalizacja: Wielkopolska

ApiAutomator przykład 4 - generator sprzedaży

Post autor: mikey »

W tym przykładzie (generowanie dokumentów ZS) pokażę zastosowanie kolumny _log w procedurze danych, pozwala ona przekazać do AA informacje, które pojawiają się w logu, co ułatwia proces debugowania api i procedur sql.
Najpierw tworzymy zamówienia sprzedaży ZS:

Kod: Zaznacz cały

create procedure [aa].[RandomZSDane] @Gid int = 0
as
begin

declare @MagNr int; -- losowy magazyn
declare @KliNr int; -- losowy klient
declare @RndNr int; -- losowa ilość pozycji

select	top 1 @MagNr=mag_gidnumer from cdn.magazyny order by newid();
select	top 1 @KliNr=knt_gidnumer from cdn.kntkarty order by newid();
set @RndNr = abs(checksum(newid()) % 50) + 1

	-- **************** nagłówek ****************	
select
	top 1
	'XLNowyDokumentZam' as _komenda, /* _komenda API którą trzeba wywołać */
	knt_akronim as _log, /* informacja (tu kod klienta) jaką pokazujemy w logu aa */
	6 as Typ,
	knt_gidtyp as KntTyp,
	knt_gidnumer as KntNumer,
	mag_kod as Magazyn
from
	cdn.kntkarty
inner join
	cdn.magazyny
on
	knt_gidnumer=@KliNr and
	mag_gidnumer=@MagNr
	-- **************** pozycje ****************
select
	top (@RndNr)
	'XLDodajPozycjeZam' as _komenda, /* _komenda API którą trzeba wywołać */
	twr_kod as _log, /* informacja (tu kod towaru) jaką pokazujemy w logu aa */
	format(abs(checksum(newid()) % 240) + 12,'G','pl-PL') as Ilosc,
	format(TwC_Wartosc,'G','pl-PL') as CenaKatalogowa,
	twr_gidtyp as TwrTyp,
	twr_gidnumer as TwrNumer
from
	cdn.twrkarty
inner join
	cdn.twrceny
on
	TwC_TwrNumer = Twr_GIDNumer
where
	twc_twrlp=1 and
	twc_wartosc > 0
order by
	newid()
	-- **************** zamknięcie ****************
select
	'XLZamknijDokumentZam' as _komenda, /* _komenda API którą trzeba wywołać */
	2 as TrybZamkniecia
end
Kolumna _log może zawierać dowolny ciąg znaków, który zostanie później zalogowany w trakcie pracy AA, w powyższym przykładzie logujemy dla każdego nowego zamówienia ZS informacje o kontrahencie na którego to ZS jest wystawiane, natomiast przy pozycjach wyświetlamy kody towarów jakie są aktualnie przetwarzane.
Dzięki temu zabiegowi szybciej możemy odnaleźć problemy przetwarzania lub wydajności API. Czasem zdarza się, że to konkretne uprawnienia związane z daną kartoteką klienta blokują przetwarzanie, lub warunki cenowe i promocje wpływają na wydajność dodawania konkretnej kartoteki towaru, takie problemy łatwiej można "wyłapać" wyświetlając sobie odpowiednie dane w trakcie pracy AA.
Na poniższym przykładzie widać, przy każdym wierszu związanym z wykonaniem funkcji XLNowyDokumentZam akronim kontrahenta, a przy każdym dodaniu pozycji funkcją ZLDodajPozycjeZam kod towaru, którego dotyczy zamówienie.
Logowanie - przykład wykorzystania kolumny _log
Logowanie - przykład wykorzystania kolumny _log
źródła skryptów dostępne są tutaj
bazę danych zawierającą podstawowe dane przydatne do testowania funkcjonalności można pobrać tutaj
darmową wersję ApiAutomatora tutaj

ODPOWIEDZ