Zaczniemy od procedury danych.
Kod: Zaznacz cały
if OBJECT_ID('aa.ZZtoPZDane') is not null drop procedure aa.ZZtoPZDane;
go
create procedure aa.ZZtoPzDane @Gid int = 0
as
begin
select
'XLNowyDokument' as _komenda, /* _komenda API którą trzeba wywołać */
1489 as Typ,
zan_gidtyp as ZamTyp, /* powiązanie PZ z ZZ */
zan_gidnumer as ZamNumer,
zan_gidlp as ZamLp
from
cdn.zamnag
where
zan_gidnumer=@Gid;
-- **************** pozycje ****************
select
'XLDodajPozycje' as _komenda, /* _komenda API którą trzeba wywołać */
zae_gidtyp as ZamTyp, /* powiązanie pozycji PZ z pozycją ZZ */
zae_gidnumer as ZamNumer,
zae_gidlp as ZamLp
from
cdn.zamelem
where
zae_gidnumer=@gid
-- **************** zamknięcie ****************
select
'XLZamknijDokument' as _komenda, /* _komenda API którą trzeba wywołać */
0 as Tryb /* Tryb 0 - to zatwierdzenie */
end
Następnie procedura kolejki. Tym razem jej zadaniem jest zwracanie kolejnych nagłówków zamowień zakupu, które aa przekonwertuje na PZty.
Kod: Zaznacz cały
if OBJECT_ID('aa.ZZtoPZKolejka') is not null drop procedure aa.zztopzkolejka;
go;
create procedure [aa].[ZZtoPZKolejka]
as
begin
declare @Gid as int;
select
top 1
@Gid=zan_gidnumer
from
cdn.zamnag
where
zan_gidtyp=960 and /* zamówienia */
ZaN_Stan=3 and /* potwierdzone */
ZaN_Aktywny=0 and /* nie jest w tej chwili edytowany */
ZaN_ZamTyp=1152 and /* ZZ */
zan_url not like 'aa start%' /* nie jest w tej chwili pobierany */
if(@Gid is not null)
update cdn.zamnag set zan_url='aa start ' + convert(varchar(20), getdate(),120) where zan_gidnumer=@Gid;
else
set @Gid=0;
select @Gid as gid, 'aa.ZZtoPZDane' as procedura
end
Następnie musimy wywołać aa.exe z odpowiednimi parametrami, aby wskazać na czerpanie danych z tej procedury kolejki, oczywiście ten element trzeba dostosować tak by podłączyć się do lokalnej bazy danych.
Kod: Zaznacz cały
@echo off
chcp 1250
aa.exe --zrodlo=n:35,aa.ZZtoPZDane ^
--dbUser=sa ^
--dbPass=aaaaaa ^
--cdnName=3lance ^
--cdnLogin=ADMIN ^
--cdnPass="" ^
--logInfo="*.debug=false;*.info=true" ^
--dbString="DRIVER={SQL Server};Server=cdnsrv\ex14;Database=ERPXL_3lance"
bazę danych zawierającą podstawowe dane przydatne do testowania funkcjonalności można pobrać tutaj
darmową wersję ApiAutomatora tutaj