KFHT#41490 data van overige wf-stappen in xml opnemen (met setting)

svn path=/Database/trunk/; revision=36189
This commit is contained in:
Peter Feij
2017-12-01 17:49:47 +00:00
parent 054b75d9d3
commit ca29e756bc
2 changed files with 46 additions and 9 deletions

View File

@@ -4544,6 +4544,7 @@ AS
v_rsv_ruimte_key mld_melding.res_rsv_ruimte_key%TYPE;
v_kto_type mld_melding.mld_melding_kto_type%TYPE;
v_kto_key mld_melding.mld_melding_kto_key%TYPE;
l_isrootmelding NUMBER(1);
CURSOR c1
IS
@@ -4561,6 +4562,17 @@ AS
SELECT bes_bestelling_key
FROM bes_bestelling
WHERE mld_melding_key = p_key;
-- De andere workflowstappen in deze workflow (if any)
CURSOR c4
IS
SELECT ms.mld_melding_key,
ms.mld_melding_start_key,
ms.mld_workflowstep_key
FROM mld_melding ms, mld_melding m1
WHERE ms.mld_workflowstep_key IS NOT NULL
AND ms.mld_melding_start_key = m1.mld_melding_start_key
AND ms.mld_melding_key <> p_key
AND m1.mld_melding_key = p_key;
BEGIN
IF p_key IS NOT NULL
THEN
@@ -4755,18 +4767,42 @@ AS
LOOP
create_bes_bestelling_node (rec3.bes_bestelling_key, FALSE); -- concise bevat geen artikelen
END LOOP;
-- Voor een workflow kunnen de andere stappen ook interessant zijn
-- Dit doen we niet voor adhoc vervolgmeldingen (daarom v_workflowstep_key is not null)
-- We nemen alle *andere* stappen hier op, afhankelijk van het moment kunnen daar ook
-- toekomstige meldingen bij zijn, het zijn alle meldingen met dezelfde root (incl. de root zelf).
-- Omdat dit tot veel balast kan leiden wat jammer is als je deze info toch niet
-- in je bonnen oid gebruikt, gebruiken we een setting die default uit staat(!).
-- We doen dit alleen indien p_withchildren anders worden we oneindig groot.
IF v_workflowstep_key IS NOT NULL AND fac.getsetting('mld_workflowstep_in_xml')= '1'
THEN
createopentag ('workflowsteps');
FOR rec4 IN c4
LOOP
IF rec4.mld_melding_start_key = rec4.mld_melding_key
THEN
l_isrootmelding := 1;
ELSE
l_isrootmelding := 0;
END IF;
createopentagattributes ('workflowstep',
'stepkey',
rec4.mld_workflowstep_key,
'root',
l_isrootmelding,
NULL,
NULL,
NULL,
NULL);
create_mld_melding_node (rec4.mld_melding_key, p_extra_key, FALSE); -- is die p_extra_key hier nog van belang??
createclosetag ('workflowstep');
END LOOP;
createclosetag ('workflowsteps');
END IF;
END IF;
create_mld_melding_node (v_parentkey, p_extra_key, p_withchildren); --Zou zomaar NULL kunnen zijn, geeft niks.
-- Voor een workflow kan de (ene) root interessant zijn
-- Dit doen we niet voor adhoc vervolgmeldingen
-- Er is geen aanduiding bij de tag dat dit de root is, mocht dat
-- nodig worden, dan tzt een attribuut-parameter introduceren bv.
IF v_workflowstep_key IS NOT NULL AND v_start_key <> p_key
THEN
createxmltagvalue ('workflowstep', v_workflowstep_key); -- als boolean te gebruiken
create_mld_melding_node (v_start_key, p_extra_key, FALSE);
END IF;
IF v_rsv_ruimte_key IS NOT NULL
THEN
create_res_rsv_ruimte_node (v_rsv_ruimte_key, TRUE);