- Die Anwendung Space&Time mit den Standardkomponenten installieren, die das Installationsprogramm anbietet,
- Eine vorgefertigte Datenbank installieren, die von der genannten Anwendung verwendet wird (empfohlen mit dem Namen TSSPICA),
- Ein neues 'Login' mit der Standarddatenbank TSSPICA erstellen (empfohlen, dies über die Anwendung Enterprise Manager->Neu Login zu tun;)
- Mit Hilfe des Query Analyzers 'verbinden' wir uns mit der Datenbank, die von der Anwendung Pantheon verwendet wird (z.B.: Datalab) und starten nacheinander die für den Datentransfer vorbereiteten Prozesse oder führen das folgende Verfahren aus, in dem die genannten SQL-Prozesse zusammengefasst sind:
 |
Im Code verwenden wir die folgenden Bezeichner (Variablen), die bei der Installation durch die entsprechenden Namen ersetzt werden müssen:
- #STREZNIK# ersetzen durch den Namen des Servers, auf dem die Datenbank für Zeit&Raum läuft
- #tsspica# ersetzen durch den Namen der Datenbank die von der Anwendung Zeit&Raum verwendet wird
|
Zuerst löschen wir eventuell vorhandene Trigger (Auslöser)
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
Der erste Trigger ändert bei einer Änderung des Berufsbezeichners in Pantheon auch den Bezeichner in Zeit&Raum.
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
Der zweite Trigger löscht den Mitarbeiter in Pantheon auch in Zeit&Raum.
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
Der dritte Trigger fügt einen neuen Mitarbeiter in Pantheon auch in Zeit&Raum ein.
create trigger [dbo].[pHR_Prsn2TSUsers_Insert] on tHR_Prsn
for insert as
set nocount on
set xact_abort on
-- Host: 1 - Angestellter 2 - Besucher
insert into #STREZNIK#.[#tsspica#].[dbo].USERS (HOST, ID)
select 1, (select acRegNo collate SQL_Slovenian_CP1250_CI_AS from inserted)
set xact_abort off
Der vierte Trigger ändert die Mitarbeiterdaten (Nachname, Vorname, Adresse,
Telefon, Geburtsdatum, Abteilung, E-Mail) in Pantheon auch in Zeit&Raum.
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
Der fünfte Trigger ändert bei einer Änderung des Namens unseres Unternehmens in Pantheon auch den Namen in Zeit&Raum.
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
Der sechste Trigger ändert bei einer Änderung der Abteilung des Mitarbeiters in Pantheon auch die Abteilung in Zeit&Raum.
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
Die erste SQL-Anweisung, die dokumentiert/inaktiv ist (aktivieren wir, wenn wir die ersten beiden Zeichen -- entfernen) löscht die vorhandenen Mitarbeiter in Zeit&Raum. WARNUNG!!! Wenn Sie diese Anweisung ausführen, werden alle Mitarbeiter gelöscht und diese Daten können nicht wiederhergestellt werden.
--delete from #STREZNIK#.[#tsspica#].[dbo].USERS
Die zweite SQL-Anweisung fügt die Benutzer aus Pantheon in Zeit&Raum ein. WARNUNG!!! Bei jedem Ausführen dieser Anweisung werden alle Mitarbeiter aus Pantheon in Zeit&Raum übertragen, d.h. bei mehrfacher Ausführung werden die Mitarbeiter mehrfach eingegeben.
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
Nach der Durchführung der Verfahren folgt der erste Start der Anwendung Zeit&Raum, bei dem der zuvor erstellte Benutzername (Login): TSSPICA und das zugehörige Passwort eingegeben werden müssen;