- Instalați aplicația Space&Time cu componentele implicite oferite de programul de instalare,
- Instalați baza de date preconfigurată, pe care aplicația menționată o folosește (recomandat cu numele TSSPICA),
- Creați un nou 'Login' cu baza de date implicită TSSPICA (recomandat să fie creat prin aplicația Enterprise Manager->New
Login;)
- Cu ajutorul Quary Analyzer ne 'conectăm' la baza de date utilizată de aplicația Pantheon (de exemplu: Datalab) și lansăm în ordine procesele pregătite pentru transferul de date sau lansăm următoarea procedură în care sunt combinate procesele SQL menționate:
 |
În cod folosim următoarele etichete (variabile), care trebuie înlocuite cu numele corespunzătoare la instalare:
- #STREZNIK# înlocuiți cu numele serverului, pe care rulează baza de date
pentru Time&Space
- #tsspica# înlocuiți cu numele bazei pe care o folosește aplicația Time&Space
|
Mai întâi ștergem eventualele trigger-e existente (declanșatoare)
drop trigger dbo.pHR_Occup2TSUsers
drop trigger dbo.pHR_Prsn2TSUsers_Delete
drop trigger dbo.pHR_Prsn2TSUsers_Insert
drop trigger dbo.pHR_Prsn2TSUsers_Update
drop trigger dbo.pHR_Param2TSUsers
Primul trigger, la schimbarea denumirii ocupației în Pantheon, schimbă denumirea
și în Time&Space.
create trigger [dbo].[pHR_Occup2TSUsers] on tHR_SetOccup
for update as
set nocount on
set xact_abort on
if Update(acName)
begin
update #STREZNIK#.[#tsspica#].[dbo].USERS
set Occupation = (select acName from vHR_SetOccup where acOccup = (select acOccup from inserted))
where ID in (select acRegNo collate SQL_Slovenian_CP1250_CI_AS from vHR_Prsn where acOccup = (select acOccup from deleted))
end
set xact_abort off
Al doilea trigger, la ștergerea unui angajat în Pantheon, șterge angajatul și în
Time&Space.
create trigger [dbo].[pHR_Prsn2TSUsers_Delete] on tHR_Prsn
for delete as
set nocount on
set xact_abort on
delete #STREZNIK#.[#tsspica#].[dbo].USERS
from #STREZNIK#.[#tsspica#].[dbo].USERS, Deleted
where Id = Deleted.acRegNo collate SQL_Slovenian_CP1250_CI_AS
set xact_abort off
Al treilea trigger, la introducerea unui nou angajat în Pantheon, introduce angajatul și în Time&Space.
create trigger [dbo].[pHR_Prsn2TSUsers_Insert] on tHR_Prsn
for insert as
set nocount on
set xact_abort on
-- Host: 1 - Angajat 2 - Vizitator
insert into #STREZNIK#.[#tsspica#].[dbo].USERS (HOST, ID)
select 1, (select acRegNo collate SQL_Slovenian_CP1250_CI_AS from inserted)
set xact_abort off
Al patrulea trigger, la schimbarea datelor despre angajat (nume de familie, prenume, adresă,
telefon, dată naștere, departament, e-mail) în Pantheon, schimbă aceste valori
și în Time&Space.
create trigger [dbo].[pHR_Prsn2TSUsers_Update] on tHR_Prsn
for update as
set xact_abort on
set nocount on
if Update(acSurname) or Update(acName) or Update(acStreet) or Update(acCity) or Update(acCountry)
or Update(acPhone) or Update(adDateBirth) or Update(acDept) or Update(acEmail)
begin
update #STREZNIK#.[#tsspica#].[dbo].USERS
set LASTNAME = RTrim(acSurname),
FIRSTNAME = RTrim(acName),
ADDRESS = acStreet,
CITY = acCity,
STATE = acCountry,
PHONE = acPhone,
BIRTH = adDateBirth,
EMAIL = Inserted.acEmail
from Inserted
where ID = Inserted.acRegNo collate SQL_Slovenian_CP1250_CI_AS
end
if Update(acPicture)
begin
update #STREZNIK#.[#tsspica#].[dbo].USERS
set PICTURE = vHR_Prsn.acPicture
from #STREZNIK#.[#tsspica#].[dbo].USERS, vHR_Prsn, inserted, deleted
where vHR_Prsn.acRegNo = inserted.acRegNo
and ID = deleted.acRegNo collate SQL_Slovenian_CP1250_CI_AS
and vHR_Prsn.acWorker = inserted.acWorker
and vHR_Prsn.acWorker = deleted.acWorker
end
if Update(acOccup)
begin
update #STREZNIK#.[#tsspica#].[dbo].USERS
set OCCUPATION = vHR_SetOccup.acName
from vHR_SetOccup, Inserted, Deleted
where vHR_SetOccup.acOccup = Inserted.acOccup
and ID = Deleted.acRegNo collate SQL_Slovenian_CP1250_CI_AS
and Inserted.acWorker = Deleted.acWorker
end
if Update(acRegNo)
begin
update #STREZNIK#.[#tsspica#].[dbo].USERS
set ID = Inserted.acRegNo
from Inserted, Deleted
where ID = Deleted.acRegNo collate SQL_Slovenian_CP1250_CI_AS
and Inserted.acWorker = Deleted.acWorker
end
set xact_abort off
Al cincilea trigger, la schimbarea denumirii companiei noastre în Pantheon, schimbă denumirea
și în Time&Space.
create trigger [dbo].[pHR_Param2TSUsers] on tPA_SysParam
for update as
set nocount on
set xact_abort on
if Update(acOurCompany)
begin
update #STREZNIK#.[#tsspica#].[dbo].USERS
set COMPANY = (select acOurCompany from Inserted)
where COMPANY = (select acOurCompany from Deleted) collate SQL_Slovenian_CP1250_CI_AS
end
set xact_abort off
Al șaselea trigger, la schimbarea departamentului angajatului în Pantheon, schimbă departamentul
și în Time&Space.
create trigger [dbo].[pHR_Prsnjob2TSUsers_UpdIns] on
tHR_Prsnjob
for update, insert as
set xact_abort on
set nocount on
if Update(acDept) or Update(acActive)
begin
update #STREZNIK#.[tsspica].[dbo].USERS
set DEPARTMENT = I.acDept
from Inserted I
join vHR_Prsn D on D.acWorker = I.acWorker
where I.acActive = 'T'
and ID = D.acRegNo collate
SQL_Slovenian_CP1250_CI_AS
end
Primul SQL, care este documentat/inactiv (activăm, dacă eliminăm primele două
caractere --) șterge angajații existenți în Time& Space. ATENȚIE!!! În cazul în care
rulați această instrucțiune, toți angajații vor fi șterși și aceste date nu vor putea
fi recuperate.
--delete from #STREZNIK#.[#tsspica#].[dbo].USERS
Al doilea SQL introduce utilizatorii din Pantheon în Time&Space. ATENȚIE!!! La
fiecare execuție a acestei instrucțiuni, toți angajații din Pantheon sunt transferați în Time&Space,
deci la execuții multiple, angajații vor fi introduși de mai multe ori.
insert into #STREZNIK#.[#tsspica#].[dbo].USERS (Lastname, Firstname, Address, City, State, Phone, Fax, ID, Birth,
Occupation, Bdgno, Company, Department, Subdepartment, Host, Picture, EMail, Pin, BdgChangedOn, Other)
select RTrim(cast(acSurname as VarChar(40))) as LastName,
RTrim(cast(acName as VarChar(25))) as FirstName,
cast(acStreet as VarChar(50)) as Address,
cast(acCity as VarChar(50)) as City,
cast(acCountry as VarChar(50)) as State,
cast(acPhone as VarChar(15)) as Phone,
cast('' as VarChar(15)) as Fax,
cast(acRegNo as VarChar(13)) as ID,
adDateBirth as Birth,
cast((select acName from vHR_SetOccup where acOccup = D.acOccup) as VarChar(50)) as Occupation,
null as Bdgno,
cast((select acOurCompany from tPA_SysParam) as VarChar(50)) as Company,
cast(acDept as VarChar(50)) as Department,
cast('' as VarChar(50)) as SubDepartment,
cast(1 as SmallInt) as Host,
acPicture as Picture,
cast(acEmail as VarChar(30)) as EMail,
cast('' as VarChar(6)) as Pin,
null as BdgChangedOn,
null as Other
from vHR_Prsn D
După executarea procedurilor, urmează prima rulare a aplicației Time &Space, în care
este necesar să introduceți numele de utilizator creat anterior (login): TSSPICA și parola corespunzătoare;