ApiAutomator przykład 3 - masowe generowanie dokumentów PDF

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 3 - masowe generowanie dokumentów PDF

Post autor: mikey »

Czasem zachodzi potrzeba wygenerowania sporej ilości wydruków PDF, faktur, zamówień lub innych dokumentów. W naszej bazie po ostatniej operacji mamy sporo PZtów, aby je zapisać w plikach PDF można wykorzystać funkcję API - XLWykonajPodanyWydruk.
Wypełnienie odpowiednich danych w strukturze funkcji powierzymy procedurze danych:

Kod: Zaznacz cały

create procedure aa.WydrukPZDane @Gid int = 0
as
begin
select
	'XLWykonajPodanyWydruk' as _komenda,
	0 as Zrodlo,
	538 as Wydruk,
	1 as Format,
	'TrN_GIDTyp=1489 AND TrN_GIDNumer=' + cast(trn_gidnumer as varchar(10)) as FiltrSQL, 
	'e:\wydruki\' + replace(cdn.nazwaobiektu(1489,trn_gidnumer,0,2),'/','_')  + '.pdf' as PlikDocelowy, /*' katalog i nazwa plików docelowych */
	2 as Urzadzenie,
	1 as DrukujDoPliku
from
	cdn.TraNag
where
	trn_gidtyp = 1489
end
Pliki generujemy jako nazwa dokumentu z rozszerzeniem PDF. Funkcja replace zamienia nam znaki shlash '/' na podkreślenie, bo Windows nie pozwala by znajdowały się w nazwie pliku.
Należy też wskazać prawidłowy katalog (po stronie klienta) w którym mają utworzyć się wszystkie pdfy (w przykładzie jest e:\wydruki).
możemy sprawdzić co zwraca ta procedura wykonując komendę

Kod: Zaznacz cały

exec aa.WydrukPZDane
wynik jest następujący:
WydrukPZDane.png
wywołanie tej komendy z poziomu AA wygląda tak:

Kod: Zaznacz cały

aa.exe --zrodlo=n:1,aa.WydrukPZDane ^
	--dbUser=sa ^
	--dbPass=aaaaaa ^
	--cdnName=3lance ^
	--cdnLogin=ADMIN ^
	--cdnPass="" ^
	--logInfo="*.debug=false;*.info=true" ^
	--dbString="DRIVER={SQL Server};Server=cdnsrv\ex14;Database=ERPXL_3lance" 
ź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
jeśli zrobisz backup swojej bazy produkcyjnej i odtworzysz ją jako bazę testową, na której już nie będą realizowane procesy biznesowe to swobodnie możesz na niej wykorzystywać darmową licencję ApiAutomatora.

ODPOWIEDZ