svn path=/Customer/trunk/; revision=12603

This commit is contained in:
Richard Derks
2004-04-29 08:06:50 +00:00
parent 1cb3ca554b
commit 426bf49a65
25 changed files with 1253 additions and 0 deletions

Binary file not shown.

View File

@@ -0,0 +1,20 @@
@echo off
IF NOT EXIST telefoon100.txt GOTO nofile
Splitter.exe 304 <telefoon100.txt> telefoon100.imp
del telefoon100.txt
start /w C:\orant\BIN\PLUS33W.EXE cgey/c @Y:\PROJECT\cgey_sap\Fip_perslid_sap_del.sql
C:\orant816\bin\SQLLDR.EXE cgey@dit05/c control=fip_perslid_sap.ctl log=fip_perslid_sap.log
start /w C:\orant\BIN\PLUS33W.EXE cgey/c @Y:\PROJECT\cgey_sap\Fip_perslid_sap.sql
date2file sap.log
del telefoon100.imp
goto end
:nofile
Echo De file telefoon100.txt is niet aanwezig.
goto end
:end

View File

@@ -0,0 +1,30 @@
-- 20030912 FSN#523
LOAD DATA
INFILE 'telefoon100.imp'
INTO TABLE fip_perslid_sap
FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '"' TRAILING NULLCOLS
(
ALG_LOCATIE_CODE POSITION(999:1000)
,ALG_GEBOUW_CODE POSITION(999:1000)
,ALG_VERDIEPING_VOLGNR POSITION(999:1000)
,ALG_RUIMTE_NR POSITION(999:1000)
,PRS_WERKPLEK_VOLGNR POSITION(999:1000)
,PRS_WERKPLEK_OMSCHRIJVING POSITION(999:1000)
,PRS_AFDELING_NAAM POSITION(189:192)
,PRS_PERSLID_NAAM POSITION(12:35)
,TUSSENVOEGSEL POSITION(46:60)
,PRS_PERSLID_VOORLETTERS POSITION(36:45)
,PRS_PERSLID_VOORNAAM POSITION(61:85)
,PRS_PERSLID_INITIALEN POSITION(999:1000)
,PRS_PERSLID_TELEFOONNR POSITION(275:279)
,PRS_SRTPERSLID_OMSCHRIJVING POSITION(999:1000)
,PRS_PERSLID_NR POSITION(6:11)
,PRS_PERSLID_TITEL POSITION(999:1000)
,PRS_PERSLID_OSLOGIN POSITION(253:260)
,PRS_PERSLID_WACHTWOORD POSITION(999:1000)
,PERSLID_EMAIL POSITION(193:242)
,KAMERNUMMER POSITION(243:252)
,IMPORTROW POSITION(1:304)
)

View File

@@ -0,0 +1,709 @@
-- Versie 2.1
SET ECHO ON
SET HEADING ON
SET LINESIZE 2048
SET TERMOUT ON
SET VERIFY ON
SET pagesize 0
SET FEEDBACK ON
set echo on
--connect cgey/c
set autocommit off
show user
update fip_perslid_sap
set fip_error = IMPORTROW
,ALG_LOCATIE_CODE = LTRIM(RTRIM(ALG_LOCATIE_CODE))
,ALG_GEBOUW_CODE = LTRIM(RTRIM(ALG_GEBOUW_CODE))
,ALG_RUIMTE_NR = LTRIM(RTRIM(ALG_RUIMTE_NR))
,PRS_WERKPLEK_OMSCHRIJVING = LTRIM(RTRIM(PRS_WERKPLEK_OMSCHRIJVING))
,PRS_AFDELING_NAAM = LTRIM(RTRIM(PRS_AFDELING_NAAM))
,PRS_PERSLID_NAAM = LTRIM(RTRIM(PRS_PERSLID_NAAM))
,TUSSENVOEGSEL = LTRIM(RTRIM(TUSSENVOEGSEL))
,PRS_PERSLID_VOORLETTERS = LTRIM(RTRIM(PRS_PERSLID_VOORLETTERS))
,PRS_PERSLID_VOORNAAM = LTRIM(RTRIM(PRS_PERSLID_VOORNAAM))
,PRS_PERSLID_INITIALEN = LTRIM(RTRIM(PRS_PERSLID_INITIALEN))
,PRS_PERSLID_TELEFOONNR = LTRIM(RTRIM(PRS_PERSLID_TELEFOONNR))
,PRS_SRTPERSLID_OMSCHRIJVING = LTRIM(RTRIM(PRS_SRTPERSLID_OMSCHRIJVING))
,PRS_PERSLID_NR = LTRIM(RTRIM(PRS_PERSLID_NR))
,PRS_PERSLID_TITEL = LTRIM(RTRIM(PRS_PERSLID_TITEL))
,PRS_PERSLID_OSLOGIN = LTRIM(RTRIM(PRS_PERSLID_OSLOGIN))
,PRS_PERSLID_WACHTWOORD = LTRIM(RTRIM(PRS_PERSLID_WACHTWOORD))
,PERSLID_EMAIL = LTRIM(RTRIM(PERSLID_EMAIL))
,KAMERNUMMER = LTRIM(RTRIM(KAMERNUMMER));
-- PRS_PERSLID
DECLARE
CURSOR c1 IS
SELECT *
FROM fip_perslid_sap
ORDER BY fip_perslid_sap_key;
rec c1%rowtype;
teller integer;
locatie_key number(10);
alg_gebouw number(10);
verdieping_key number(10);
afdeling_key number(10);
srtperslid_key number(10);
perslid_naam varchar2(30);
errormsg varchar2(1024);
errormsg2 varchar2(1024);
ccount number(10);
perslid_key number(10);
update_record number(1);
werkplek_key number(10);
werkplek_key_old number(10);
ncount number(10);
ruimte_key_new number(10);
ruimte_key_old number(10);
gebouw_code varchar2(10);
verdieping_code varchar2(10);
werkplek_volgnr number(3);
ruimte_nr varchar2(10);
update_action varchar2(3);
werkplek_new boolean;
update_msg varchar2(1024);
afdeling_naam_old varchar2(10);
afdeling_naam_new varchar2(10);
prs_perslid_naam_old varchar2(30);
prs_perslid_voorletters_old varchar2(10);
prs_perslid_voornaam_old varchar2(30);
prs_perslid_telefoonnr_old varchar2(15);
prs_perslid_oslogin_old varchar2(30);
kamernummer_old varchar(64);
kamernummer_new varchar(64);
email_old varchar2(50);
BEGIN
OPEN c1;
IF c1%ISOPEN THEN
teller := 0;
LOOP
BEGIN
-- insert into fip_sandra values('Volgende persoon ....',sysdate);
commit;
errorMsg := 'Volgende persoon ....';
errorMsg2 := '';
FETCH c1 INTO rec;
EXIT WHEN c1%NOTFOUND;
teller := teller + 1;
-- Insert or Update?
SELECT count(*)
INTO update_record
FROM prs_v_aanwezigperslid
WHERE upper(ltrim(rtrim(prs_perslid_nr))) = upper(ltrim(rtrim(rec.prs_perslid_nr)));
update_msg := 'Personeelsnummer<' || upper(ltrim(rtrim(rec.prs_perslid_nr))) || '>';
IF update_record = 0 THEN
-- Bij INSERT mag de oslogin nog niet voorkomen
select count(*)
into ncount
from prs_v_aanwezigperslid
where upper(prs_perslid_oslogin) = upper(rec.prs_perslid_oslogin);
errorMsg2 := ' (error : prs_perslid_oslogin niet uniek)';
END IF;
IF update_record = 1 THEN
SELECT prs_perslid_key
INTO perslid_key
FROM prs_v_aanwezigperslid
WHERE upper(ltrim(rtrim(prs_perslid_nr))) = upper(ltrim(rtrim(rec.prs_perslid_nr)));
update_msg := update_msg || ' UPDATE';
-- insert into fip_sandra values('Dit is een update ....',sysdate);
-- commit;
ELSE
perslid_key := 0;
update_msg := update_msg || ' INSERT';
-- insert into fip_sandra values('Dit is een insert ....',sysdate);
-- commit;
END IF;
errorMsg := ' (error : bepaling nieuwe afdeling)';
-- insert into fip_sandra values('bepaling nieuwe afdeling ....',sysdate);
-- commit;
SELECT prs_afdeling_key, upper(prs_afdeling_naam)
INTO afdeling_key, afdeling_naam_new
FROM prs_v_aanwezigafdeling
WHERE UPPER(PRS_AFDELING_NAAM) = UPPER(rec.PRS_AFDELING_NAAM);
errorMsg := ' (error : bepaling oude afdeling)';
-- insert into fip_sandra values('bepaling oude afdeling ....',sysdate);
-- commit;
IF perslid_key = 0 THEN
afdeling_naam_old := '';
ELSE
SELECT upper(prs_afdeling_naam)
INTO afdeling_naam_old
FROM prs_v_aanwezigperslid A, prs_afdeling B
WHERE A.prs_afdeling_key = B.prs_afdeling_key
AND A.prs_perslid_key = perslid_key;
END IF;
IF afdeling_naam_old <> afdeling_naam_new THEN
update_msg := update_msg || ' ***Practice:<' || afdeling_naam_old || '> wordt <' || afdeling_naam_new || '>';
END IF;
-- insert into fip_sandra values('bepalen ruimte a.d.h.v. KAMERNUMMER t.b.v. werkplek ....',sysdate);
-- commit;
errorMsg := ' (error : bepalen ruimte a.d.h.v. KAMERNUMMER t.b.v. werkplek)';
IF rec.KAMERNUMMER IS NULL THEN
-- Personen zonder kamernummer --> srtfunctie == 'FlEXIBEL'
SELECT PRS_SRTPERSLID_KEY
INTO SRTPERSLID_KEY
FROM PRS_V_AANWEZIGSRTPERSLID
WHERE UPPER(PRS_SRTPERSLID_OMSCHRIJVING) = 'FLEXIBEL';
ruimte_key_new := 0;
ELSE
errorMsg := ' (error : bepalen functie van de persoon)';
-- Personen zonder kamernummer --> srtfunctie == 'VAST'
SELECT PRS_SRTPERSLID_KEY
INTO SRTPERSLID_KEY
FROM PRS_V_AANWEZIGSRTPERSLID
WHERE UPPER(PRS_SRTPERSLID_OMSCHRIJVING) = 'VAST';
gebouw_code := '';
verdieping_code := '';
ruimte_nr := '';
errorMsg := ' (error : bepalen gebouw/verdieping/ruimte a.d.h.v. KAMERNUMMER <' || rec.KAMERNUMMER || ')';
IF upper(SUBSTR(rec.KAMERNUMMER, 1, 1)) in ('1','2','G','V','W') THEN
-- Daltonlaan 200, 300
gebouw_code := upper(SUBSTR(rec.KAMERNUMMER, 1, 1));
verdieping_code := SUBSTR(rec.KAMERNUMMER, 2, 1);
ruimte_nr := SUBSTR(rec.KAMERNUMMER, 3, 2);
END IF;
IF upper(SUBSTR(rec.KAMERNUMMER, 1, 2)) in ('1.','2.') THEN
-- Daltonlaan 200, 300
gebouw_code := upper(SUBSTR(rec.KAMERNUMMER, 1, 1));
verdieping_code := SUBSTR(rec.KAMERNUMMER, 3, 2);
ruimte_nr := SUBSTR(rec.KAMERNUMMER, 6, 2);
END IF;
IF upper(SUBSTR(rec.KAMERNUMMER, 1, 1)) in ('A','B','C','M','N','Z') THEN
-- Hoofdgebouw toren A, B, Congres gebouw, Gebouw Midden, Gebouw Noord, Gebouw Zuid
gebouw_code := upper(SUBSTR(rec.KAMERNUMMER, 1, 1));
verdieping_code := SUBSTR(rec.KAMERNUMMER, 2, 2);
ruimte_nr := SUBSTR(rec.KAMERNUMMER, 4, 2);
END IF;
IF upper(SUBSTR(rec.KAMERNUMMER, 1, 2)) in ('A.','B.','C.','M.','N.','Z.') THEN
-- Daltonlaan 200, 300
gebouw_code := upper(SUBSTR(rec.KAMERNUMMER, 1, 1));
verdieping_code := SUBSTR(rec.KAMERNUMMER, 3, 2);
ruimte_nr := SUBSTR(rec.KAMERNUMMER, 6, 2);
END IF;
-- errorMsg := 'SELECT alg_ruimte_key FROM alg_v_allonrgoed_gegevens';
-- errorMsg := errorMsg || ' WHERE alg_gebouw_code = ' || gebouw_code || ' AND alg_verdieping_code = ' || verdieping_code || ' AND alg_ruimte_nr = ' || ruimte_nr;
--IF upper(SUBSTR(rec.KAMERNUMMER, 1, 1)) in ('1','2','3','4','5','6','7','8','9','G','V') THEN
-- -- Daltonlaan 100, 200 etc.
-- gebouw_code := upper(SUBSTR(rec.KAMERNUMMER, 1, 1));
-- verdieping_code := SUBSTR(rec.KAMERNUMMER, 2, 1);
-- ruimte_nr := SUBSTR(rec.KAMERNUMMER, 3, 2);
--END IF;
--IF SUBSTR(rec.KAMERNUMMER, 1, 1) = '0' THEN
-- -- Fultonbaan
-- gebouw_code := '10';
-- verdieping_code := SUBSTR(rec.KAMERNUMMER, 2, 1);
-- ruimte_nr := SUBSTR(rec.KAMERNUMMER, 3, 2);
--END IF;
--IF upper(SUBSTR(rec.KAMERNUMMER, 1, 1)) in ('A','B','C','D') AND (length(rec.KAMERNUMMER) = 4) THEN
-- -- Varrolaan
-- gebouw_code := '11' || upper(SUBSTR(rec.KAMERNUMMER, 1, 1));
-- verdieping_code := SUBSTR(rec.KAMERNUMMER, 2, 1);
-- ruimte_nr := SUBSTR(rec.KAMERNUMMER, 3, 2);
--END IF;
--IF upper(SUBSTR(rec.KAMERNUMMER, 1, 1)) = 'E' THEN
-- -- Euclideslaan
-- gebouw_code := '12';
-- verdieping_code := SUBSTR(rec.KAMERNUMMER, 2, 1);
-- ruimte_nr := SUBSTR(rec.KAMERNUMMER, 3, 2);
--END IF;
--IF upper(SUBSTR(rec.KAMERNUMMER, 1, 2)) in ('A0','B0','C0') AND (length(rec.KAMERNUMMER) = 5) THEN
-- -- Euclideslaan
-- gebouw_code := upper(SUBSTR(rec.KAMERNUMMER, 1, 1));
-- verdieping_code := SUBSTR(rec.KAMERNUMMER, 3, 1);
-- ruimte_nr := SUBSTR(rec.KAMERNUMMER, 4, 2);
--END IF;
--IF upper(SUBSTR(rec.KAMERNUMMER, 1, 2)) in ('M0','N0') THEN
-- -- Gebouw Midden, gebouw Noord
-- gebouw_code := upper(SUBSTR(rec.KAMERNUMMER, 1, 1));
-- verdieping_code := SUBSTR(rec.KAMERNUMMER, 3, 1);
-- ruimte_nr := SUBSTR(rec.KAMERNUMMER, 4, 2);
--END IF;
--IF upper(SUBSTR(rec.KAMERNUMMER, 1, 1)) = 'Z' THEN
-- -- Zoetemeer, Werklinq
-- gebouw_code := 'W';
-- verdieping_code := SUBSTR(rec.KAMERNUMMER, 2, 1);
-- ruimte_nr := SUBSTR(rec.KAMERNUMMER, 3, 2);
--END IF;
--IF upper(SUBSTR(rec.KAMERNUMMER, 1, 2)) = 'Z0' THEN
-- -- Gebouw Zuid
-- gebouw_code := upper(SUBSTR(rec.KAMERNUMMER, 1, 1));
-- verdieping_code := SUBSTR(rec.KAMERNUMMER, 3, 1);
-- ruimte_nr := SUBSTR(rec.KAMERNUMMER, 4, 2);
--END IF;
SELECT alg_ruimte_key
INTO ruimte_key_new
FROM alg_v_allonrgoed_gegevens
WHERE alg_gebouw_code = gebouw_code
AND alg_verdieping_code = verdieping_code
AND alg_ruimte_nr = ruimte_nr;
END IF;
-- insert into fip_sandra values('bepalen werkplek ....',sysdate);
-- commit;
errorMsg := ' (error : bepalen werkplek)';
werkplek_key := 0;
werkplek_key_old := 0;
werkplek_new := TRUE;
IF perslid_key = 0 THEN
-- Een toe te voegen persoon heeft nog geen werkplek
ruimte_key_old := 0;
ELSE
-- Heeft de te wijzigen persoon een werkplek?
SELECT count(*)
INTO nCount
FROM prs_v_aanwezigwerkplek
WHERE prs_werkplek_key in (
SELECT prs_werkplek_key
from prs_v_aanwezigperslidwerkplek
where prs_perslid_key = perslid_key);
IF nCount = 1 THEN
-- Persoon is gekoppeld aan 1 werkplek
SELECT prs_werkplek_key, prs_alg_ruimte_key
INTO werkplek_key_old, ruimte_key_old
FROM prs_v_aanwezigwerkplek
WHERE prs_werkplek_key in (
SELECT prs_werkplek_key
from prs_v_aanwezigperslidwerkplek
where prs_perslid_key = perslid_key)
AND prs_werkplek_module = 'PRR';
ELSE
IF nCount = 0 THEN
-- Persoon is gekoppeld aan 0 werkplekken
ruimte_key_old := 0;
ELSE
-- Persoon is gekoppled aan meer dan 1 werkplek
-- Centrale vraag: moet er een nieuwe werkplek aangemaakt worden?
SELECT count(*)
INTO nCount
FROM prs_v_aanwezigwerkplek
WHERE prs_werkplek_key in (
SELECT A.prs_werkplek_key
from prs_v_aanwezigperslidwerkplek A, prs_v_aanwezigwerkplek B
where A.prs_perslid_key = perslid_key
and A.prs_werkplek_key = B.prs_werkplek_key
and B.prs_alg_ruimte_key = ruimte_key_new)
AND prs_werkplek_module = 'PRR';
IF nCount > 0 THEN
-- Nee, er hoeft geen nieuwe werkplek aangemaakt te worden
ruimte_key_old := 0;
werkplek_new := FALSE;
ELSE
-- Ja, er moet een nieuwe werkplek aangemaakt worden
ruimte_key_old := 0;
END IF;
END IF;
END IF;
END IF;
-- insert into fip_sandra values('verwijderen oude werkplek indien van toepassing ....',sysdate);
-- commit;
errorMsg := ' (error : verwijderen oude werkplek indien van toepassing)';
IF (ruimte_key_old <> ruimte_key_new) AND (werkplek_key_old > 0) THEN
DELETE
FROM prs_v_aanwezigperslidwerkplek
WHERE prs_perslid_key = perslid_key
AND prs_werkplek_key = werkplek_key_old;
DELETE
FROM prs_v_aanwezigwerkplek
WHERE prs_werkplek_key = werkplek_key_old;
END IF;
errorMsg := ' (error : bepaling naam + tussenvoegsel)';
-- insert into fip_sandra values('bepaling naam + tussenvoegsel ....',sysdate);
-- commit;
IF rec.TUSSENVOEGSEL IS NULL THEN
PERSLID_NAAM := rec.PRS_PERSLID_NAAM;
ELSE
PERSLID_NAAM := rec.PRS_PERSLID_NAAM || ', ' || rec.TUSSENVOEGSEL;
END IF;
IF perslid_key = 0 THEN
prs_perslid_naam_old := '';
ELSE
SELECT prs_perslid_voorletters
INTO prs_perslid_voorletters_old
FROM prs_v_aanwezigperslid
WHERE prs_perslid_key = perslid_key;
END IF;
prs_perslid_voorletters_old := '';
prs_perslid_voornaam_old := '';
prs_perslid_telefoonnr_old := '';
prs_perslid_oslogin_old := '';
IF perslid_key = 0 THEN
-- insert into fip_sandra values('daadwerkelijk toevoegen {insert} persoon ....',sysdate);
-- commit;
IF errorMsg2 = '' THEN
errorMsg := ' (error : daadwerkelijk toevoegen {insert} persoon)';
ELSE
errorMsg := errorMsg2;
END IF;
insert into PRS_PERSLID
(PRS_PERSLID_MODULE
,PRS_SRTPERSLID_KEY
,PRS_AFDELING_KEY
,PRS_PERSLID_NAAM
,PRS_PERSLID_VOORLETTERS
,PRS_PERSLID_VOORNAAM
,PRS_PERSLID_INITIALEN
,PRS_PERSLID_TELEFOONNR
,PRS_PERSLID_NR
,PRS_PERSLID_TITEL
,PRS_PERSLID_OSLOGIN
,PRS_PERSLID_WACHTWOORD
)
values
('PRS'
,SRTPERSLID_KEY
,AFDELING_KEY
,PERSLID_NAAM
,rec.PRS_PERSLID_VOORLETTERS
,rec.PRS_PERSLID_VOORNAAM
,rec.PRS_PERSLID_INITIALEN
,rec.PRS_PERSLID_TELEFOONNR
,rec.PRS_PERSLID_NR
,rec.PRS_PERSLID_TITEL
,rec.PRS_PERSLID_OSLOGIN
,rec.PRS_PERSLID_WACHTWOORD
);
SELECT max(prs_perslid_key)
INTO perslid_key
FROM prs_perslid;
ELSE
-- insert into fip_sandra values('daadwerkelijk wijzigen {update} persoon ....',sysdate);
-- commit;
errorMsg := ' (error : daadwerkelijk wijzigen {update} persoon)';
SELECT prs_perslid_naam, prs_perslid_voorletters, prs_perslid_voornaam, prs_perslid_telefoonnr, prs_perslid_oslogin
INTO prs_perslid_naam_old, prs_perslid_voorletters_old, prs_perslid_voornaam_old, prs_perslid_telefoonnr_old, prs_perslid_oslogin_old
FROM PRS_V_AANWEZIGPERSLID
WHERE prs_perslid_key = perslid_key;
update PRS_V_AANWEZIGPERSLID
set
PRS_SRTPERSLID_KEY = SRTPERSLID_KEY
,PRS_AFDELING_KEY = AFDELING_KEY
,PRS_PERSLID_NAAM = PERSLID_NAAM
,PRS_PERSLID_VOORLETTERS = rec.PRS_PERSLID_VOORLETTERS
,PRS_PERSLID_VOORNAAM = rec.PRS_PERSLID_VOORNAAM
,PRS_PERSLID_INITIALEN = rec.PRS_PERSLID_INITIALEN
,PRS_PERSLID_TELEFOONNR = rec.PRS_PERSLID_TELEFOONNR
,PRS_PERSLID_NR = rec.PRS_PERSLID_NR
,PRS_PERSLID_TITEL = rec.PRS_PERSLID_TITEL
,PRS_PERSLID_OSLOGIN = rec.PRS_PERSLID_OSLOGIN
,PRS_PERSLID_WACHTWOORD = PRS_PERSLID_WACHTWOORD
where prs_perslid_key = perslid_key;
END IF;
-- insert into fip_sandra values('aanmaken gedeelte logging ....',sysdate);
-- commit;
errorMsg := ' (error : aanmaken gedeelte logging)';
IF upper(prs_perslid_naam_old) <> upper(PERSLID_NAAM) THEN
update_msg := update_msg || ' ***Achternaam+Tussenvoegsel:<' || prs_perslid_naam_old || '> wordt <' || PERSLID_NAAM || '>';
END IF;
IF upper(prs_perslid_voorletters_old) <> upper(rec.PRS_PERSLID_VOORLETTERS) THEN
update_msg := update_msg || ' ***Voorletters:<' || prs_perslid_voorletters_old || '> wordt <' || rec.PRS_PERSLID_VOORLETTERS || '>';
END IF;
IF upper(prs_perslid_voornaam_old) <> upper(rec.PRS_PERSLID_VOORNAAM) THEN
update_msg := update_msg || ' ***Voornaam:<' || prs_perslid_voornaam_old || '> wordt <' || rec.PRS_PERSLID_VOORNAAM || '>';
END IF;
IF prs_perslid_telefoonnr_old <> rec.PRS_PERSLID_TELEFOONNR THEN
update_msg := update_msg || ' ***Toestelnummer:<' || prs_perslid_telefoonnr_old || '> wordt <' || rec.PRS_PERSLID_TELEFOONNR || '>';
END IF;
IF upper(prs_perslid_oslogin_old) <> upper(rec.PRS_PERSLID_OSLOGIN) THEN
update_msg := update_msg || ' ***Loginid:<' || prs_perslid_oslogin_old || '> wordt <' || upper(rec.PRS_PERSLID_OSLOGIN) || '>';
END IF;
-- insert into fip_sandra values('aanmaken nieuwe werkplek indien van toepassing ....',sysdate);
-- commit;
errorMsg := ' (error : aanmaken nieuwe werkplek indien van toepassing)';
IF ((ruimte_key_old <> ruimte_key_new) AND (ruimte_key_new > 0) AND werkplek_new)
THEN
SELECT count(*)
INTO nCount
FROM prs_v_aanwezigwerkplek
WHERE PRS_ALG_RUIMTE_KEY = ruimte_key_new;
IF nCount = 0 THEN
WERKPLEK_VOLGNR := 1;
ELSE
SELECT max(prs_werkplek_volgnr) + 1
INTO WERKPLEK_VOLGNR
FROM prs_v_aanwezigwerkplek
WHERE PRS_ALG_RUIMTE_KEY = ruimte_key_new;
END IF;
insert into PRS_WERKPLEK
(PRS_WERKPLEK_MODULE
,PRS_WERKPLEK_VOLGNR
,PRS_WERKPLEK_OMSCHRIJVING
,PRS_ALG_RUIMTE_KEY
)
values
('PRR'
,WERKPLEK_VOLGNR
,SUBSTR(rec.KAMERNUMMER,1,30)
,ruimte_key_new
);
SELECT max(prs_werkplek_key)
INTO werkplek_key
FROM prs_werkplek;
insert into PRS_PERSLIDWERKPLEK
(prs_perslid_key
,prs_werkplek_key)
values
(PERSLID_KEY
,WERKPLEK_KEY);
END IF;
IF ruimte_key_old <> ruimte_key_new THEN
IF ruimte_key_old > 0 THEN
SELECT alg_gebouw_code || '-' || alg_verdieping_code || '-' || alg_ruimte_nr
INTO kamernummer_old
FROM alg_gebouw A, alg_verdieping B, alg_v_aanwezigruimte C
WHERE C.alg_ruimte_key = ruimte_key_old
AND B.alg_verdieping_key = C.alg_verdieping_key
AND A.alg_gebouw_key = B.alg_gebouw_key;
ELSE
kamernummer_old := '';
END IF;
IF ruimte_key_new > 0 THEN
SELECT alg_gebouw_code || '-' || alg_verdieping_code || '-' || alg_ruimte_nr
INTO kamernummer_new
FROM alg_gebouw A, alg_verdieping B, alg_v_aanwezigruimte C
WHERE C.alg_ruimte_key = ruimte_key_new
AND B.alg_verdieping_key = C.alg_verdieping_key
AND A.alg_gebouw_key = B.alg_gebouw_key;
ELSE
kamernummer_new := '';
END IF;
IF werkplek_new = TRUE THEN
update_msg := update_msg || ' ***Kamernummer:<' || kamernummer_old || '> wordt <' || kamernummer_new || '>';
END IF;
END IF;
SELECT count(*)
INTO nCount
FROM prs_v_aanwezigkenmerklink
WHERE prs_kenmerk_key = 5
AND prs_link_key = perslid_key
AND prs_kenmerklink_niveau = 'P';
IF nCount = 1 THEN
SELECT PRS_KENMERKLINK_WAARDE
INTO email_old
FROM prs_v_aanwezigkenmerklink
WHERE prs_kenmerk_key = 5
AND prs_link_key = perslid_key;
ELSE
email_old := '';
END IF;
-- insert into fip_sandra values('Tenslotte: Kenmerken ....',sysdate);
-- commit;
-- Email kenmerk
IF rec.PERSLID_EMAIL IS NOT NULL THEN
errorMsg := ' (error : insert email for prs_perslid_key = [' || to_char(perslid_key) || '])';
IF nCount = 0 THEN
INSERT INTO prs_kenmerklink
(PRS_LINK_KEY
,PRS_KENMERKLINK_NIVEAU
,PRS_KENMERK_KEY
,PRS_KENMERKLINK_WAARDE)
values
(perslid_key
,'P'
,5
,rec.PERSLID_EMAIL);
ELSE
UPDATE prs_v_aanwezigkenmerklink
SET PRS_KENMERKLINK_WAARDE = rec.PERSLID_EMAIL
WHERE prs_kenmerk_key = 5
AND prs_link_key = perslid_key
AND prs_kenmerklink_niveau = 'P';
END IF;
ELSE
DELETE
FROM prs_v_aanwezigkenmerklink
WHERE prs_kenmerk_key = 5
AND prs_link_key = perslid_key
AND prs_kenmerklink_niveau = 'P';
END IF;
IF upper(email_old) <> upper(rec.PERSLID_EMAIL) THEN
update_msg := update_msg || ' ***Emailadres:<' || email_old || '> wordt <' || rec.PERSLID_EMAIL || '>';
END IF;
IF update_msg = '' OR update_msg is null THEN
update_msg := '*UPDATE*!' || 'perslid_key = <' || to_char(perslid_key) || '>';
END IF;
update fip_perslid_sap
set fip_error = update_msg
where fip_perslid_sap_key = rec.fip_perslid_sap_key;
commit; -- Geen zijn fouten opgetreden, rollback niet meer nodig
EXCEPTION WHEN OTHERS THEN
BEGIN
rollback; -- Eventueel verwijderde werkplek herstellen indien fout is opgestreden
update fip_perslid_sap
set fip_error = importrow
where fip_perslid_sap_key = rec.fip_perslid_sap_key;
update fip_perslid_sap
set fip_error2 = errorMsg
where fip_perslid_sap_key = rec.fip_perslid_sap_key;
commit; -- Opslaan logging!!
END;
END;
END LOOP;
END IF;
CLOSE c1;
commit;
END;
/
SET ECHO OFF
SET HEADING OFF
SET LINESIZE 2048
SET TERMOUT OFF
SET VERIFY OFF
SET pagesize 0
SET FEEDBACK OFF
--SPOOL &1\sap.log APP
SPOOL D:\Websites\Facilitor\sapkoppeling\sapbestanden\sap.log
SELECT TO_CHAR(sysdate, 'YYYY-MM-DD HH:MM') AS
FROM DUAL;
SELECT fip_error
FROM fip_perslid_sap
ORDER BY fip_perslid_sap_key;
--SELECT prs_perslid_naam
--FROM prs_perslid
--WHERE prs_perslid_key > 123892;
SPOOL OFF
commit;
exit;

View File

@@ -0,0 +1,8 @@
show user
DELETE FROM fip_perslid_sap;
commit;
exit;

BIN
CAPG/Sap2FCLT/Splitter.exe Normal file

Binary file not shown.

View File

@@ -0,0 +1,34 @@
========================================================================
CONSOLE APPLICATION : Splitter
========================================================================
AppWizard has created this Splitter application for you.
This file contains a summary of what you will find in each of the files that
make up your Splitter application.
Splitter.dsp
This file (the project file) contains information at the project level and
is used to build a single project or subproject. Other users can share the
project (.dsp) file, but they should export the makefiles locally.
Splitter.cpp
This is the main application source file.
/////////////////////////////////////////////////////////////////////////////
Other standard files:
StdAfx.h, StdAfx.cpp
These files are used to build a precompiled header (PCH) file
named Splitter.pch and a precompiled types file named StdAfx.obj.
/////////////////////////////////////////////////////////////////////////////
Other notes:
AppWizard uses "TODO:" to indicate parts of the source code you
should add to or customize.
/////////////////////////////////////////////////////////////////////////////

View File

@@ -0,0 +1,34 @@
// Splitter.cpp : Defines the entry point for the console application.
//
#include "stdafx.h"
#include "stdlib.h"
#include "stdio.h"
int main(int argc, char* argv[])
{
if (argc != 2)
{
printf("\nUSAGE: splitter 256 <invoer >uitvoer");
return -1;
}
int i = 0;
int ch;
int linelen = atoi(argv[1]);
while ((ch = getchar()) != EOF)
{
if (i >= linelen)
{
putchar('\n');
i = 1;
}
else
i++;
putchar(ch);
}
return 0;
}

View File

@@ -0,0 +1,113 @@
# Microsoft Developer Studio Project File - Name="Splitter" - Package Owner=<4>
# Microsoft Developer Studio Generated Build File, Format Version 6.00
# ** DO NOT EDIT **
# TARGTYPE "Win32 (x86) Console Application" 0x0103
CFG=Splitter - Win32 Debug
!MESSAGE This is not a valid makefile. To build this project using NMAKE,
!MESSAGE use the Export Makefile command and run
!MESSAGE
!MESSAGE NMAKE /f "Splitter.mak".
!MESSAGE
!MESSAGE You can specify a configuration when running NMAKE
!MESSAGE by defining the macro CFG on the command line. For example:
!MESSAGE
!MESSAGE NMAKE /f "Splitter.mak" CFG="Splitter - Win32 Debug"
!MESSAGE
!MESSAGE Possible choices for configuration are:
!MESSAGE
!MESSAGE "Splitter - Win32 Release" (based on "Win32 (x86) Console Application")
!MESSAGE "Splitter - Win32 Debug" (based on "Win32 (x86) Console Application")
!MESSAGE
# Begin Project
# PROP AllowPerConfigDependencies 0
# PROP Scc_ProjName ""
# PROP Scc_LocalPath ""
CPP=cl.exe
RSC=rc.exe
!IF "$(CFG)" == "Splitter - Win32 Release"
# PROP BASE Use_MFC 0
# PROP BASE Use_Debug_Libraries 0
# PROP BASE Output_Dir "Release"
# PROP BASE Intermediate_Dir "Release"
# PROP BASE Target_Dir ""
# PROP Use_MFC 0
# PROP Use_Debug_Libraries 0
# PROP Output_Dir "Release"
# PROP Intermediate_Dir "Release"
# PROP Target_Dir ""
# ADD BASE CPP /nologo /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /D "_MBCS" /Yu"stdafx.h" /FD /c
# ADD CPP /nologo /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /D "_MBCS" /Yu"stdafx.h" /FD /c
# ADD BASE RSC /l 0x413 /d "NDEBUG"
# ADD RSC /l 0x413 /d "NDEBUG"
BSC32=bscmake.exe
# ADD BASE BSC32 /nologo
# ADD BSC32 /nologo
LINK32=link.exe
# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /machine:I386
# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /machine:I386
!ELSEIF "$(CFG)" == "Splitter - Win32 Debug"
# PROP BASE Use_MFC 0
# PROP BASE Use_Debug_Libraries 1
# PROP BASE Output_Dir "Debug"
# PROP BASE Intermediate_Dir "Debug"
# PROP BASE Target_Dir ""
# PROP Use_MFC 0
# PROP Use_Debug_Libraries 1
# PROP Output_Dir "Debug"
# PROP Intermediate_Dir "Debug"
# PROP Target_Dir ""
# ADD BASE CPP /nologo /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /D "_MBCS" /Yu"stdafx.h" /FD /GZ /c
# ADD CPP /nologo /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /D "_MBCS" /Yu"stdafx.h" /FD /GZ /c
# ADD BASE RSC /l 0x413 /d "_DEBUG"
# ADD RSC /l 0x413 /d "_DEBUG"
BSC32=bscmake.exe
# ADD BASE BSC32 /nologo
# ADD BSC32 /nologo
LINK32=link.exe
# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /debug /machine:I386 /pdbtype:sept
# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /debug /machine:I386 /pdbtype:sept
!ENDIF
# Begin Target
# Name "Splitter - Win32 Release"
# Name "Splitter - Win32 Debug"
# Begin Group "Source Files"
# PROP Default_Filter "cpp;c;cxx;rc;def;r;odl;idl;hpj;bat"
# Begin Source File
SOURCE=.\Splitter.cpp
# End Source File
# Begin Source File
SOURCE=.\StdAfx.cpp
# ADD CPP /Yc"stdafx.h"
# End Source File
# End Group
# Begin Group "Header Files"
# PROP Default_Filter "h;hpp;hxx;hm;inl"
# Begin Source File
SOURCE=.\StdAfx.h
# End Source File
# End Group
# Begin Group "Resource Files"
# PROP Default_Filter "ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe"
# End Group
# Begin Source File
SOURCE=.\ReadMe.txt
# End Source File
# End Target
# End Project

View File

@@ -0,0 +1,29 @@
Microsoft Developer Studio Workspace File, Format Version 6.00
# WARNING: DO NOT EDIT OR DELETE THIS WORKSPACE FILE!
###############################################################################
Project: "Splitter"=.\Splitter.dsp - Package Owner=<4>
Package=<5>
{{{
}}}
Package=<4>
{{{
}}}
###############################################################################
Global:
Package=<5>
{{{
}}}
Package=<3>
{{{
}}}
###############################################################################

Binary file not shown.

Binary file not shown.

View File

@@ -0,0 +1,33 @@
<html>
<body>
<pre>
<h1>Build Log</h1>
<h3>
--------------------Configuration: Splitter - Win32 Release--------------------
</h3>
<h3>Command Lines</h3>
Creating temporary file "C:\DOCUME~1\jgl.DIT\LOCALS~1\Temp\RSP9A3.tmp" with contents
[
/nologo /ML /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /D "_MBCS" /Fp"Release/Splitter.pch" /Yu"stdafx.h" /Fo"Release/" /Fd"Release/" /FD /c
"C:\Temp\Splitter\Splitter.cpp"
]
Creating command line "cl.exe @C:\DOCUME~1\jgl.DIT\LOCALS~1\Temp\RSP9A3.tmp"
Creating temporary file "C:\DOCUME~1\jgl.DIT\LOCALS~1\Temp\RSP9A4.tmp" with contents
[
kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /incremental:no /pdb:"Release/Splitter.pdb" /machine:I386 /out:"Release/Splitter.exe"
.\Release\StdAfx.obj
.\Release\Splitter.obj
]
Creating command line "link.exe @C:\DOCUME~1\jgl.DIT\LOCALS~1\Temp\RSP9A4.tmp"
<h3>Output Window</h3>
Compiling...
Splitter.cpp
Linking...
<h3>Results</h3>
Splitter.exe - 0 error(s), 0 warning(s)
</pre>
</body>
</html>

View File

@@ -0,0 +1,8 @@
// stdafx.cpp : source file that includes just the standard includes
// Splitter.pch will be the pre-compiled header
// stdafx.obj will contain the pre-compiled type information
#include "stdafx.h"
// TODO: reference any additional headers you need in STDAFX.H
// and not in this file

View File

@@ -0,0 +1,19 @@
// stdafx.h : include file for standard system include files,
// or project specific include files that are used frequently, but
// are changed infrequently
//
#if !defined(AFX_STDAFX_H__FCA4CF25_D257_46DC_BC84_978ED7723B97__INCLUDED_)
#define AFX_STDAFX_H__FCA4CF25_D257_46DC_BC84_978ED7723B97__INCLUDED_
#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000
// TODO: reference additional headers your program requires here
//{{AFX_INSERT_LOCATION}}
// Microsoft Visual C++ will insert additional declarations immediately before the previous line.
#endif // !defined(AFX_STDAFX_H__FCA4CF25_D257_46DC_BC84_978ED7723B97__INCLUDED_)

View File

@@ -0,0 +1,54 @@
set echo on
show user
--DROP SEQUENCE fip_s_fip_perslid_sap_key;
--DROP trigger fip_t_fip_prs_sap_B_IU;
--DROP table fip_perslid_sap;
CREATE TABLE fip_perslid_sap
(
ALG_LOCATIE_CODE VARCHAR2(5),
ALG_GEBOUW_CODE VARCHAR2(10),
ALG_VERDIEPING_VOLGNR NUMBER(3,0),
ALG_RUIMTE_NR VARCHAR2(10),
PRS_WERKPLEK_VOLGNR NUMBER (3),
PRS_WERKPLEK_OMSCHRIJVING VARCHAR2 (30),
PRS_AFDELING_NAAM VARCHAR2 (10),
PRS_PERSLID_NAAM VARCHAR2 (30),
TUSSENVOEGSEL VARCHAR2 (20),
PRS_PERSLID_VOORLETTERS VARCHAR2 (10),
PRS_PERSLID_VOORNAAM VARCHAR2 (30),
PRS_PERSLID_INITIALEN VARCHAR2 (10),
PRS_PERSLID_TELEFOONNR VARCHAR2 (15),
PRS_SRTPERSLID_OMSCHRIJVING VARCHAR2 (30),
PRS_PERSLID_NR VARCHAR2 (16),
PRS_PERSLID_TITEL VARCHAR2 (15),
PRS_PERSLID_OSLOGIN VARCHAR2 (30),
PRS_PERSLID_WACHTWOORD VARCHAR2 (30),
PERSLID_EMAIL VARCHAR2 (50),
KAMERNUMMER VARCHAR2 (10),
IMPORTROW VARCHAR2 (1024),
FIP_PERSLID_SAP_KEY NUMBER(10),
FIP_ERROR VARCHAR2 (2048),
FIP_ERROR2 VARCHAR2 (2048)
);
CREATE SEQUENCE fip_s_fip_perslid_sap_key minvalue 1;
CREATE OR REPLACE TRIGGER fip_t_fip_prs_sap_B_IU
BEFORE INSERT OR UPDATE ON fip_perslid_sap
FOR EACH ROW
BEGIN
IF :new.fip_perslid_sap_key IS NULL THEN
SELECT fip_s_fip_perslid_sap_key.nextval
INTO :new.fip_perslid_sap_key
FROM DUAL;
END IF;
END;
/
COMMIT;
SPOOL OFF

BIN
CAPG/Sap2FCLT/date2file.exe Normal file

Binary file not shown.

View File

@@ -0,0 +1,36 @@
-$A8
-$B-
-$C+
-$D+
-$E-
-$F-
-$G+
-$H+
-$I+
-$J+
-$K-
-$L+
-$M-
-$N+
-$O+
-$P+
-$Q-
-$R-
-$S-
-$T-
-$U-
-$V+
-$W-
-$X+
-$YD
-$Z1
-cg
-AWinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE;
-H+
-W+
-M
-$M16384,1048576
-K$00400000
-E"Y:\Project\cgey_sap\Temp\Release"
-LE"c:\program files\borland\delphi6\Projects\Bpl"
-LN"c:\program files\borland\delphi6\Projects\Bpl"

View File

@@ -0,0 +1,93 @@
[FileVersion]
Version=6.0
[Compiler]
A=8
B=0
C=1
D=1
E=0
F=0
G=1
H=1
I=1
J=1
K=0
L=1
M=0
N=1
O=1
P=1
Q=0
R=0
S=0
T=0
U=0
V=1
W=0
X=1
Y=1
Z=1
ShowHints=1
ShowWarnings=1
UnitAliases=WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE;
[Linker]
MapFile=0
OutputObjs=0
ConsoleApp=1
DebugInfo=0
RemoteSymbols=0
MinStackSize=16384
MaxStackSize=1048576
ImageBase=4194304
ExeDescription=
[Directories]
OutputDir=Y:\Project\cgey_sap\Temp\Release
UnitOutputDir=
PackageDLLOutputDir=
PackageDCPOutputDir=
SearchPath=
Packages=Vcl50;Vclx50;VclSmp50;Vcldb50;vclado50;ibevnt50;Vclbde50;vcldbx50;Qrpt50;TeeUI50;TeeDB50;Tee50;Dss50;TeeQR50;VCLIB50;Vclmid50;vclie50;Inetdb50;Inet50;NMFast50;webmid50;dclocx50;dclaxserver50
Conditionals=
DebugSourceDirs=
UsePackages=0
[Parameters]
RunParams=
HostApplication=
Launcher=
UseLauncher=0
DebugCWD=
[Language]
ActiveLang=
ProjectLang=$00000413
RootDir=
[Version Info]
IncludeVerInfo=0
AutoIncBuild=0
MajorVer=1
MinorVer=0
Release=0
Build=0
Debug=0
PreRelease=0
Special=0
Private=0
DLL=0
Locale=1043
CodePage=1252
[Version Info Keys]
CompanyName=
FileDescription=
FileVersion=1.0.0.0
InternalName=
LegalCopyright=
LegalTrademarks=
OriginalFilename=
ProductName=
ProductVersion=1.0.0.0
Comments=
[HistoryLists\hlUnitAliases]
Count=1
Item0=WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE;
[HistoryLists\hlOutputDirectorry]
Count=1
Item0=Y:\Project\cgey_sap\Temp\Release

View File

@@ -0,0 +1,33 @@
program date2file;
{$APPTYPE CONSOLE}
uses
SysUtils;
var paramFileName: string;
lNewFileName : string;
lsYear, lsMonth, lsDay, lsHour, lsMinute: string;
lYear, lMonth, lDay, lHour, lMinute, lSec, lMSec: word;
Present: TDateTime;
begin
paramFileName := 'Hello world!';
paramFileName := ParamStr(1);
// Bepaal filename
lNewFileName := '';
Present:= Now;
DecodeDate(Present, lYear, lMonth, lDay);
DecodeTime(Present, lHour, lMinute, lSec, lMSec);
lsYear := IntToStr(lYear);
lsMonth := IntToStr(lMonth); if length(lsMonth) < 2 then lsMonth := '0' + lsMonth;
lsDay := IntToStr(lDay); if length(lsDay) < 2 then lsDay := '0' + lsDay;
lsHour := IntToStr(lHour); if length(lsHour) < 2 then lsHour := '0' + lsHour;
lsMinute := IntToStr(lMinute); if length(lsMinute) < 2 then lsMinute := '0' + lsMinute;
// lNewFileName := lsYear + '_' + lsMonth + '_' + lsDay + '_' + lsHour + '' + lsMinute;
lNewFileName := lsYear + lsMonth + lsDay;
// lNewFileName := 'sap' + lNewFileName + ExtractFileExt(paramFileName);
lNewFileName := 'sap' + lNewFileName + '.log';
renameFile(paramFileName,lNewFileName);
// Writeln(lNewFileName);
end.