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

This commit is contained in:
Arthur Egberink
2016-10-06 12:16:51 +00:00
parent 179131fbee
commit d4cc79cc43

View File

@@ -1,5 +1,4 @@
-- Script containing customer specific configuration sql statements for RABO: Rabobank
-- (c) 2005-2007 Dijkoraad IT bv
-- $Revision$
-- $Id$
--
@@ -103,15 +102,150 @@ END;
/
CREATE OR REPLACE VIEW rabo_v_export_status_axxerion (
result,
result_order
)
AS
SELECT fac_rapport_regel, fac_rapport_volgnr
FROM fac_rapport
WHERE fac_rapport_node = SUBSTR ('STATUS_AXXERION', 1, 12);
CREATE OR REPLACE PROCEDURE rabo_select_status_axxerion (p_applname IN VARCHAR2,
p_applrun IN VARCHAR2)
AS
CURSOR c (
p_from DATE,
p_to DATE)
IS
SELECT mld_melding_externnr,
fac_tracking_datum,
DECODE (sn.fac_srtnotificatie_code,
'MLDACP', 'ACCEPT',
'MLDREJ', 'REJECT',
'MLDAFM', 'CLOSE',
'MLDAFR', 'FINCLOSE',
'MLDUPD', 'UPDATE',
'Invalid')
status,
mld_melding_einddatum,
mld_melding_opmerking,
DECODE (fac_srtnotificatie_code, 'MLDUPD', 1, 0) volgorde
FROM fac_tracking t, fac_srtnotificatie sn, mld_melding m
WHERE fac_tracking_datum BETWEEN p_from AND p_to
AND t.fac_srtnotificatie_key = sn.fac_srtnotificatie_key
AND t.fac_tracking_refkey = m.mld_melding_key
AND m.mld_melding_externnr IS NOT NULL
AND (sn.fac_srtnotificatie_code = 'MLDACP'
OR sn.fac_srtnotificatie_code = 'MLDREJ'
OR sn.fac_srtnotificatie_code = 'MLDAFM'
OR sn.fac_srtnotificatie_code = 'MLDAFR'
OR sn.fac_srtnotificatie_code = 'MLDUPD')
ORDER BY mld_melding_externnr, volgorde, fac_tracking_datum;
v_from DATE;
v_to DATE;
v_count NUMBER;
v_externnr VARCHAR2 (10);
v_bestand VARCHAR2 (100);
v_empty NUMBER;
BEGIN
v_count := 0;
v_empty := 1;
v_externnr := '9999';
v_bestand := SUBSTR (p_applname, 1, 12);
-- de laatste synchronisatietijd wordt opgeslagen in fac_rapport met een speciale node naam eindigend op een 1.
-- mocht deze niet gevuld zijn (initieel) dan gebruiken we het huidige uur.
BEGIN
SELECT fac.safe_to_date (fac_rapport_regel, 'yyyy-mm-dd hh24:mi')
INTO v_from
FROM fac_rapport
WHERE SUBSTR (v_bestand, 1, 11) || '1' = fac_rapport_node;
EXCEPTION
WHEN NO_DATA_FOUND
THEN
v_from := TRUNC (SYSDATE, 'HH24');
END;
-- het einde van de periode mag niet verder liggen dan de huidige tijd
v_to := v_from + 1 / (24 * 4);
IF v_to > SYSDATE
THEN
v_to := v_from;
END IF;
-- Eerst opruiming
DELETE FROM imp_log
WHERE imp_log_applicatie = p_applname;
DELETE fac_rapport
WHERE fac_rapport_node = v_bestand;
-- als de export een tijdje niet gedraaid is dan halen we dit weer in door de periode groter te maken.
WHILE v_to + 1 / (24 * 4) < SYSDATE AND v_count < 10
LOOP
v_to := v_to + 1 / (24 * 4);
v_count := v_count + 1;
END LOOP;
-- header
aaxx_add_xml_row (v_bestand, '<?xml version="1.0" encoding="windows-1252"?>');
aaxx_add_xml_row (v_bestand, '<facilitor>');
aaxx_add_xml_row (v_bestand, '<meldingstatusses>');
FOR rec IN c (v_from, v_to)
LOOP
v_empty := 0;
IF NOT (rec.mld_melding_externnr = v_externnr AND rec.status = 'UPDATE')
THEN
v_externnr := rec.mld_melding_externnr;
aaxx_add_xml_row (v_bestand, '<meldingstatus key="' || rec.mld_melding_externnr || '">');
aaxx_add_xml_element (v_bestand,
'timestamp',
TO_CHAR (rec.fac_tracking_datum, 'dd-mm-yyyy hh24:mi'));
aaxx_add_xml_element (v_bestand, 'status', rec.status);
aaxx_add_xml_element (v_bestand, 'afhandeling', rec.mld_melding_opmerking);
aaxx_add_xml_element (v_bestand,
'oplosdatum',
TO_CHAR (rec.mld_melding_einddatum, 'dd-mm-yyyy hh24:mi'));
aaxx_add_xml_row (v_bestand, '</meldingstatus>');
END IF;
END LOOP;
aaxx_add_xml_row (v_bestand, '</meldingstatusses>');
aaxx_add_xml_row (v_bestand, '</facilitor>');
-- Als er niet geexporteerd is dan gaan we alle regels verwijderen
-- zodat er niet een leeg xml bestand komt te staan met alleen de facilitor tags.
IF v_empty = 1
THEN
DELETE fac_rapport
WHERE fac_rapport_node = v_bestand;
END IF;
DELETE fac_rapport
WHERE fac_rapport_node = SUBSTR (v_bestand, 1, 11) || '1';
INSERT INTO fac_rapport (fac_rapport_node, fac_rapport_regel)
VALUES (SUBSTR (v_bestand, 1, 11) || '1', TO_CHAR (v_to, 'yyyy-mm-dd hh24:mi'));
END;
/
BEGIN fac.registercustversion('RABO', 2); END;
/
BEGIN adm.systrackscriptId('$Id$', 0); END;
/
BEGIN fac.registercustversion('RABO', 1); END;
/
COMMIT;
SPOOL OFF
show errors;
commit;
spool off;