HCAS#56970 Short description ook zichtbaar bij melding in het onderwerp

svn path=/Customer/trunk/; revision=42888
This commit is contained in:
Sander Schepers
2019-06-06 12:20:00 +00:00
parent 0fc33eda9a
commit c25bb22a7d

View File

@@ -182,6 +182,7 @@ END hcas_update_perslid;
-- Wanneer er een externnummer bij een opdracht bekend is, maar nog niet bij de melding, dan zetten we deze ook bij de melding (nodig voor aansturing naar Servicenow)
-- Wanneer de aanvragen een notitie bij de melding heeft gezet, moet deze naar Servicenow gestuurd worden. We zetten hem weer in de orderqueue.
-- Ook zetten we de synchronisatietijd bij de melding, zodat eerdere notities niet nogmaals gestuurd worden.
/* Formatted on 6-6-2019 14:13:13 (QP5 v5.136.908.31019) */
CREATE OR REPLACE PROCEDURE hcas_export_servicenow (p_applname IN VARCHAR2,
p_applrun IN VARCHAR2,
p_filedir IN VARCHAR2,
@@ -191,6 +192,7 @@ AS
oracle_err_mes VARCHAR2 (200);
v_errorhint VARCHAR2 (100);
v_locatie_key NUMBER;
v_lengte NUMBER;
--Onderstaande cursor verzamelt de meldingen die status 'Actie aanvrager' moeten krijgen. Dat is obv het binnenkomende opdrachtkenmerk 'Statusservicenow'.
CURSOR actie
@@ -397,8 +399,35 @@ AS
AND alg_onrgoed_key = m.mld_alg_locatie_key)
AND m.mld_alg_locatie_key <> 61) -- Wanneer er een onbekende omschrijving is en locatie bij de melding is al hoofdkantoor (61), dan niet in de cursor omdat anders bij iedere putorders de locatie wordt gewijzigd (voorkomt veel tracking)...
OR m.mld_alg_locatie_key IS NULL);
--Onderstaande cursor haalt de meldingen op waar er een short description is bij de opdracht, maar nog niet in de meldingsomschrijving.
CURSOR descr
IS
SELECT DISTINCT
m.mld_melding_key,
o.mld_opdr_key,
ko.mld_kenmerkopdr_waarde AS short_description,
fac.safe_to_number (LENGTH (ko.mld_kenmerkopdr_waarde))
AS lengte,
m.mld_melding_omschrijving
FROM mld_melding m,
mld_opdr o,
mld_stdmelding sm,
mld_kenmerkopdr ko,
mld_kenmerk km,
mld_srtkenmerk skm
WHERE m.mld_melding_key = o.mld_melding_key
AND sm.mld_stdmelding_key = m.mld_stdmelding_key
AND sm.mld_ins_discipline_key IN (321, 341, 342) -- Enkel voor de vakgroepen die met servicenow gekoppeld worden.
AND m.mld_melding_onderwerp IS NULL
AND o.mld_opdr_bedrijfopdr_volgnr = 1 -- Enkel voor de eerste opdracht, normaal ook altijd maar <20><>n opdracht per melding.
AND o.mld_opdr_key = ko.mld_opdr_key
AND km.mld_kenmerk_key = ko.mld_kenmerk_key
AND skm.mld_srtkenmerk_key = km.mld_srtkenmerk_key
AND skm.mld_srtkenmerk_key = 402; --Kenmerksoort 'Short_description'
BEGIN
v_errorhint := 'init';
v_lengte := 0;
-- We zetten de status van de melding nog op 'Actie aanvrager' indien Servicenow na laatste bericht vanuit Facilitor hierom vraag.
FOR rec IN actie
@@ -515,6 +544,42 @@ BEGIN
|| rec.locatie_opdracht);
END;
END LOOP;
-- We zetten de short description vanuit mld_opdr_kenmerk bij de melding in onderwerp/omschrijving (afhankelijk van lengte).
FOR rec IN descr
LOOP
BEGIN
v_errorhint :=
'Short description Servicenow bij melding '
|| rec.mld_melding_key
|| ' overnemen ';
v_lengte := rec.lengte;
UPDATE mld_melding
SET mld_melding_onderwerp = SUBSTR (rec.short_description, 1, 80)
WHERE mld_melding_key = rec.mld_melding_key;
--Indien short_description te lang voor mld_onderwerp (80), dan ook aanvullen bij omschrijving
IF v_lengte > 80
THEN
UPDATE mld_melding
SET mld_melding_omschrijving =
rec.mld_melding_omschrijving
|| CHR (10)
|| 'Short description Servicenow: '
|| rec.short_description
WHERE mld_melding_key = rec.mld_melding_key;
END IF;
fac.trackaction (
'MLDUPD',
rec.mld_melding_key,
NULL,
NULL,
'Onderwerp: (leeg) --> ' || SUBSTR (rec.short_description, 1, 80));
END;
END LOOP;
END;
/