

































Pantheon integracija se izvršava kroz SQL procedure. Omogućava insport i export definisanih podataka u dva smera.
Preporučeni model sinhronizacije je da se iz Pantheona sinhronizuju svi šifarnici. Dokumenti sinhronizuju kroz pravila na predmetima kako bi sinhronizacija bila u real-time-u, ili grupno sa liste dokumenata kada su grupna fakturisanja u pitanju. Identi, Subjekti i projekti takodje mogu biti sinhronizovani u real time-u kroz odgovarajuće procese.
Potrebni preduslovi za uspostavljanje integracije Elastyc - Pantheon jeste definicija korisničkog naloga u Pantheonu putem kojeg će Elastyc vršiti razmenu podataka. Osnovne autorizacije potrebne ovom nalogu su čitanje iz Pantheonovih tabela kako bi se mogao nesmetano obavljati import podatka iz Pantheon-a. Potrebne autorizacije za pisanje u Pantheon bazi zavise od nivoa primene. Ove autorizacije su potrebne za sledeće slučajeve.
Ulistavanje novih subjekata kroz proces subjekata u Elastycu u koliko je to predvidjeno postavkom sistema. Potrebne autorizacije se odnose na tabelu the_setsubj
Ulistavanje novih nosioca troškova sa strane Elastyca kroz predvidjene procese ukoliko je to predvidjeno postavkom sistema. Autorizacije se odnose na tabele: the_setcostdrv
Autorizacije nad dokumentima narudžbina, prometa, kao i tabela veza dokumenata:
Tabele dokumenata
the_order, the_orderitem, the_move,the_moveitem, the_movecash
Tabele veza
tPA_Link, tHE_LinkCashRegCashReg, tHE_LinkFinReportMoveInstPay, tHE_LinkMove, tHE_LinkMoveIntrestRate, tHE_LinkMoveItem, tHE_LinkMoveItemMove, tHE_LinkMoveItemMoveItem, tHE_LinkMoveItemOrderItem, tHE_LinkMoveMove,tHE_LinkOrder, tHE_LinkOrderItem, tHE_LinkOrderItemOrderItem,tHE_LinkPayFgnTransMove, tHE_LinkPayOrderPayOrder, tHE_LinkSADItemMoveItem, tHE_LinkSADMove, tHE_LinkSADMoveItem, tHE_LinkSADSAD, tHE_LinkSetOffAcctTrans, tHF_LinkMoveWOEx, tHF_LinkMoveMove, tHF_LinkWOExWOEx, tHF_LinkMoveItemWOExItem, tHF_LinkMoveItemMoveItem
Osnovnim podešavanjima se pristupa iz developer setupa , izborom menija ERP integracija i odabirom taba Setup. U definiciji se inicijelno definišu osnovni šifarnici.
Neophodno je da se izvrši inicijelna razmena podataka šifarnika, kako bi bila formirana struktura poslovnih dogadjaja dokumenata, kako bi se dodatno definisala njihova razmena.
Saznajte višeU tabeli definicija _el_ERP_Sync_API_Definitions su popunjene vrednosti iz setup-a import exporta za osnovne šifarnike i procedure koje će biti pozivane (kolona sqlProc) , kao i tip izvrašavanja Export/Import (kolona typeOfexec)
Kolona lastCH se popunjava nakon uspešne sinhronizacije sa vremenom kada je sinhronizacija pokrenuta, i prilikom sledeće sinhronizacije metode uzimaju to vreme za datume promene zapisa iz Pantheona , i sinhronizuju samo zapise od tog datuma.
Trajanje poziva jedne metode iz ručnog pokretanja import/exporta je vremenski ograničeno na 100 sekundi. Stoga je inicijelnu razmenu podataka pokrenuti direktno iz SQL-a, uz postvljanje automatskog job-a koji će raditi redovnu sinhronizaciju , a da ruča sinhronizacija služi kada ad-hoc treba pokre nuti import zbog nekih potrebnih izmena.
procedure [dbo].[_el_erp_pantheon_allformethod]
@method nvarchar(10)
Procedura izvršava kompletan importpodataka iz Pantheona na osnovu definicije.
U koliko je izvršavanje procedure sinhronizacije po ordredjenoj metodi bilo neuspešno , greške će se upisati u tabeli api_elastyc_error_log . Kada je sinhronizacija uspešna ona po toj metodi pobriše sve zapise iz ove tabele.
procedure [dbo].[erp_pantheon_CURR]
@server nvarchar(100),
@database nvarchar(100),
@method nvarchar(10)
Procedura izvršava import/export Valuta za definisani linkovani server i bazu podataka.
procedure [dbo].[erp_pantheon_AccountPlan]
@server varchar(100),
@database varchar(100),
@method varchar(10)
procedure [dbo].[erp_pantheon_AccountCode]
@server nvarchar(100),
@database nvarchar(100),
@method nvarchar(10)
procedure [dbo].[erp_pantheon_acStatement]
@server nvarchar(100),
@database nvarchar(100),
@method nvarchar(10)
procedure [dbo].[erp_pantheon_Drz]
@server nvarchar(100),
@database nvarchar(100),
@method nvarchar(10)
procedure erp_pantheon_DocN
@server nvarchar(100),
@database nvarchar(100),
@method nvarchar(10),
@posldog nchar(4)
procedure erp_pantheon_DocN_Idents
@server nvarchar(100),
@database nvarchar(100),
@method nvarchar(10),
@acKeyDoc nchar(13),
@posldog nchar(4),
@userID int
procedure [dbo].[erp_pantheon_insertkontakt]
@kontakt int,
@subjekt nvarchar(50),
@prefix nvarchar(10),
@kontime nchar(30),
@kontprezime nchar(30),
@funkcija nchar(30),
@mob nvarchar(20),
@tel nvarchar(50),
@email nvarchar(50),
@adresa nvarchar(100),
@posta nchar(13),
@pol nvarchar(1),
@napomena nvarchar(500),
@drzava nvarchar(20),
@jmbg nvarchar(20),
@rodj datetime,
@skola nvarchar(100),
@status nvarchar(30),
@fieldnames nvarchar(2000),
@fieldvalues nvarchar(2000),
@username nvarchar(30),
@password nvarchar(30),
@grupa nvarchar(1),
@usergroup nvarchar(40),
@subjinformed nvarchar(1),
@genpass nvarchar(200),
@userid int,
@subjectprice nchar(30),
@contid int,
@jezik nvarchar(30),
@db nvarchar(max)
procedure [dbo].[erp_pantheon_KLASIF]
@server nvarchar(100),
@database nvarchar(100),
@method nvarchar(10)
procedure [dbo].[erp_pantheon_MS]
@server nvarchar(100),
@database nvarchar(100),
@method nvarchar(10)
procedure [dbo].[erp_pantheon_PM]
@server nvarchar(100),
@database nvarchar(100),
@method nvarchar(10)
procedure [dbo].[erp_pantheon_posldog]
@server nvarchar(100),
@database nvarchar(100),
@method nvarchar(10)
procedure [dbo].[erp_pantheon_posldog_stat]
@server nvarchar(100),
@database nvarchar(100),
@method nvarchar(10)
procedure [dbo].[erp_pantheon_POST]
@server nvarchar(100),
@database nvarchar(100),
@method nvarchar(10)
procedure [dbo].[erp_pantheon_PRSN]
@server nvarchar(100),
@database nvarchar(100),
@method nvarchar(10),
@acWorker nvarchar(30)
procedure [dbo].[erp_pantheon_SetAccount]
@server nvarchar(100),
@database nvarchar(100),
@method nvarchar(10)
procedure [dbo].[erp_pantheon_SetParam]
@server varchar(100),
@database varchar(100),
@method varchar(10)
procedure [dbo].[erp_pantheon_SetTax]
@server nvarchar(100),
@database nvarchar(100),
@method nvarchar(10)
procedure [dbo].[erp_pantheon_SUBJ]
@server nvarchar(100),
@database nvarchar(100),
@method nvarchar(10)
Procedura importuje subjekte iz Pantheona. Po importu će biti kreiran predmet subjekta u koliko se taj proces koristi iz Elastyca. U koliko je potrebno kreirati predmet za već postojećeg subjekta potrebno je pokrenuti i sledeću procedure
procedure _el_create_case_from_subjekt_21S01005014]
@client nvarchar(30), -- šifra subjekta
@userid int, -- user koji postavlja predmet
@skipupdate char(1) = "" -- obavezno "T"
procedure [dbo].[erp_pantheon_tHE_CostDrv]
@server nvarchar(100),
@database nvarchar(100),
@method nvarchar(10)
procedure [dbo].[erp_pantheon_tHE_CostDrvStatus]
@server nvarchar(100),
@database nvarchar(100),
@method nvarchar(10)
procedure [dbo].[erp_pantheon_ToP]
@server nvarchar(100),
@database nvarchar(100),
@method nvarchar(10)
create procedure [dbo].[erp_pantheon_UM]
@server nvarchar(100),
@database nvarchar(100),
@method nvarchar(10)
procedure [dbo].[erp_pantheon_VMS]
@server nvarchar(100),
@database nvarchar(100),
@method nvarchar(10)
Kako bi se ispravno koristili podaci koji neće biti importovani u Elastyc , neophodno je na Pantheon bayi kreirati sledeće procedure
create procedure [dbo].[_el_debt_subject] @subjekt nvarchar(30), @konta nvarchar(200)
as
set nocount on
declare @nasavaluta nvarchar(5),@valutakupca nvarchar(10),
@dospelo money, @nedospelo money,
@dana int, @ukupno money,
@limit float, @dnizaplac float, @konto nvarchar(15)
set @nasavaluta = (select nasavaluta from param)
select @limit=limit, @dnizaplac=dnizaplac, @valutakupca = valuta from subjekt where naziv=@subjekt
if @nasavaluta = @valutakupca
begin
select
(select sum(debet-KREDIT) from TEMEPOZ where SUBJEKT=@subjekt and KONTO in (select * from dbo.[CsvToInt](@konta))) as dugukupno,
(select sum(debet-KREDIT) from TEMEPOZ where SUBJEKT=@subjekt and KONTO in (select * from dbo.[CsvToInt](@konta))) as dugdospelo,
@limit as limit,
@dnizaplac as dnizaplac
end
else
begin
select VEZNIDOK, sum(valdebet-VALKREDIT), sum(valdebet-VALKREDIT),N"",N"",N"" from TEMEPOZ where SUBJEKT=@subjekt and KONTO in (select * from dbo.[CsvToInt](@konta))
group by VEZNIDOK
having sum(valdebet-valkredit) > 0
end
create procedure [dbo].[_elastyc_kontokartica] @subjekt nvarchar(30),@konto varchar(10)
as
declare @nasavaluta nvarchar(5) = (select nasavaluta from param),
@valutakupca nvarchar(10) = (select valuta from subjekt where naziv = @subjekt),
@datum date
set @datum = (SELECT [GKZACSTANJE] FROM PARAM)
if @nasavaluta = @valutakupca
begin
select teme.datum,temepoz.DATUMDOK,VEZNIDOK,DATUMVAL,temepoz.DEBET,temepoz.KREDIT, VALUTA, SUM(temepoz.debet-temepoz.kredit) OVER (ORDER BY datumdok) AS total
from temepoz,teme
where konto = @konto and subjekt = @subjekt and TEME.KLJUC=TEMEPOZ.kljuc
and teme.datum>=@datum
order by datum asc
end
else
begin
select teme.datum,temepoz.DATUMDOK,VEZNIDOK,DATUMVAL,temepoz.VALDEBET as DEBET,temepoz.VALKREDIT as KREDIT, VALUTA, SUM(temepoz.valdebet-temepoz.valkredit) OVER (ORDER BY datumdok) AS total
from temepoz,teme
where konto = @konto and subjekt = @subjekt and TEME.KLJUC=TEMEPOZ.kljuc
and teme.datum>=@datum
order by datum asc
end
create procedure _elastyc_otvorene_stavke @subjekt nvarchar(60), @konta nvarchar(200)
as
set nocount on;
declare @nasavaluta nvarchar(5),@valutakupca nvarchar(10)
set @nasavaluta = (select nasavaluta from param)
set @valutakupca = (select valuta from subjekt where naziv = @subjekt)
create table #tmpdug
(subjekt nvarchar(60),
dokument nvarchar(100),
debit float,
credit float,
suma float,
datum datetime,
datumdok datetime,
dana int)
if @nasavaluta = @valutakupca
begin
insert into #tmpdug
select @subjekt, VEZNIDOK collate database_default, sum(debet), sum(KREDIT), sum(debet-kredit),N"",N"",N""
from TEMEPOZ
where SUBJEKT collate database_default = @subjekt and KONTO collate database_default in (select * from dbo.[CsvToInt](@konta))
and DATUMDOK>=(select GKZACSTANJE from param)
group by VEZNIDOK
having sum(debet-kredit) > 0
end
else
begin
insert into #tmpdug
select @subjekt, VEZNIDOK collate database_default, sum(valdebet), sum(VALKREDIT), sum(valdebet-VALKREDIT),N"",N"",N""
from TEMEPOZ
where SUBJEKT collate database_default = @subjekt and KONTO collate database_default in (select * from dbo.[CsvToInt](@konta))
and DATUMDOK>=(select GKZACSTANJE from param)
group by VEZNIDOK
having sum(valdebet-valkredit) > 0
end
update #tmpdug set datum=(select top 1 DATUMVAL from temepoz where VEZNIDOK collate database_default=#tmpdug.dokument and DEBET>0 and KONTO collate database_default in (select * from dbo.[CsvToInt](@konta)) and DATUMDOK>=(select GKZACSTANJE from param) order by datum asc)
update #tmpdug set datumdok=(select top 1 datumdok from temepoz where VEZNIDOK collate database_default=#tmpdug.dokument and DEBET>0 and KONTO collate database_default in (select * from dbo.[CsvToInt](@konta)) and DATUMDOK>=(select GKZACSTANJE from param) order by datum asc)
update #tmpdug set dana=datediff(day,datum,getdate())
select @valutakupca as valuta,* from #tmpdug where suma<>0 order by datum
drop table #tmpdug