svn path=/Customer/trunk/; revision=30997
This commit is contained in:
150
AA/RABO/rabo.sql
150
AA/RABO/rabo.sql
@@ -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;
|
||||
Reference in New Issue
Block a user