Files
Customer/onces/CSUN/CSUN#68556.sql
Sander Schepers a8e4679e3f CSUN#68556 Ondersteuning bij vervanging koppeling AS400
svn path=/Customer/; revision=62814
2023-12-04 09:41:31 +00:00

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