113 lines
3.7 KiB
SQL
113 lines
3.7 KiB
SQL
/* Formatted on 1/12/2023 21:56:05 (QP5 v5.381) */
|
|
--
|
|
-- $Id$
|
|
--
|
|
-- CSUN#68556 Ondersteuning bij vervanging koppeling AS400
|
|
-- Er wordt een omzetting gemaakt van aanlevering van de projecten (locaties in Facilitor) van AS400 naar AFAS.
|
|
-- Sommige projecten hebben echter in Afas een ander nummer gekregen en moeten worden omgenummerd.
|
|
-- De reden om dit met een once-script te doen is de omvang. Er is een was-wordt lijst waarin 2000 projectnummers moeten worden omgenummerd,
|
|
-- daarbij moet zowel locatiecode als een kenmerk worden aangepast.
|
|
-- Niet alle projectnummers staan ook echt in Facilitor, dus de cursor zal minder dan 2000 projectnummers opleveren
|
|
-- Reden om dit via een script te doen: dit scheelt enorm veel tijd en er is een minder grote foutkans dan bij handmatig typen.
|
|
-- Voordat het once-script wordt uitgevoerd, moet de locatie-import worden ingelezen (niet uitvoeren).
|
|
|
|
DEFINE thisfile = 'CSUN#68556.SQL'
|
|
DEFINE dbuser = '^CSUN'
|
|
|
|
SET ECHO ON
|
|
SET DEFINE ON
|
|
COLUMN fcltlogfile NEW_VALUE fcltlogfile NOPRINT;
|
|
COLUMN fcltcusterr NEW_VALUE fcltcusterr NOPRINT;
|
|
WHENEVER SQLERROR CONTINUE;
|
|
|
|
SELECT adm.getscriptspoolfile ('&thisfile') AS fcltlogfile FROM DUAL;
|
|
|
|
SPOOL &fcltlogfile
|
|
WHENEVER SQLERROR EXIT;
|
|
|
|
SELECT adm.checkscriptcust ('&dbuser') AS fcltcusterr FROM DUAL;
|
|
|
|
WHENEVER SQLERROR CONTINUE;
|
|
PROMPT &fcltcusterr
|
|
SET DEFINE OFF
|
|
|
|
------ payload begin ------
|
|
|
|
DECLARE
|
|
CURSOR project IS
|
|
SELECT l.alg_locatie_key,
|
|
aogkm.alg_onrgoedkenmerk_key,
|
|
l.alg_locatie_code,
|
|
REGEXP_REPLACE (l.alg_locatie_code, '[^0-9]', '')
|
|
project,
|
|
aogkm.alg_onrgoedkenmerk_waarde
|
|
projectcode_kenmerk,
|
|
wordt.alg_gebouw_naam
|
|
code_new,
|
|
wordt.alg_gebouw_code
|
|
project_new
|
|
FROM alg_locatie l,
|
|
alg_onrgoedkenmerk aogkm,
|
|
fac_imp_onrgoed1 wordt
|
|
WHERE l.alg_locatie_verwijder IS NULL
|
|
AND SUBSTR (l.alg_locatie_code, 0, 1) = 'P'
|
|
AND SUBSTR (REGEXP_REPLACE (l.alg_locatie_code, '[^0-9]', ''),
|
|
1,
|
|
1)
|
|
IS NOT NULL
|
|
AND l.alg_locatie_key = alg_onrgoed_key(+)
|
|
AND aogkm.alg_onrgoed_niveau = 'L'
|
|
AND aogkm.alg_kenmerk_key = 1040
|
|
AND aogkm.alg_onrgoedkenmerk_verwijder IS NULL
|
|
AND wordt.alg_gebouw_naam NOT IN
|
|
(SELECT alg_locatie_code
|
|
FROM alg_locatie
|
|
WHERE alg_locatie_verwijder IS NULL)
|
|
AND REGEXP_REPLACE (l.alg_locatie_code, '[^0-9]', '') =
|
|
wordt.alg_locatie_code;
|
|
BEGIN
|
|
FOR rec IN project
|
|
LOOP
|
|
UPDATE alg_locatie
|
|
SET alg_locatie_code = rec.code_new
|
|
WHERE alg_locatie_key = rec.alg_locatie_key;
|
|
|
|
UPDATE alg_onrgoedkenmerk
|
|
SET alg_onrgoedkenmerk_waarde = rec.project_new
|
|
WHERE alg_onrgoedkenmerk_key = rec.alg_onrgoedkenmerk_key;
|
|
|
|
fac.trackaction (
|
|
'ALGLUP',
|
|
rec.alg_locatie_key,
|
|
4,
|
|
NULL,
|
|
'Locatiecode: '
|
|
|| rec.alg_locatie_code
|
|
|| ' --> '
|
|
|| rec.code_new
|
|
|| CHR (10)
|
|
|| 'Projectnummer: '
|
|
|| rec.project
|
|
|| ' --> '
|
|
|| rec.project_new);
|
|
END LOOP;
|
|
END;
|
|
/
|
|
|
|
|
|
------ payload end ------
|
|
|
|
SET DEFINE OFF
|
|
|
|
BEGIN
|
|
adm.systrackscriptId (
|
|
'$Id$',
|
|
1);
|
|
END;
|
|
/
|
|
|
|
COMMIT;
|
|
SET ECHO OFF
|
|
SPOOL OFF
|
|
SET DEFINE ON
|
|
PROMPT Logfile of this upgrade is: &fcltlogfile |