RABO#62723 -- Uitbreiding Facilitor - Axxerion koppeling - Bijlage en M-meldingen naar Axxerion

svn path=/Customer/trunk/; revision=49276
This commit is contained in:
Jos Migo
2020-12-22 18:16:06 +00:00
parent 4353e226fd
commit c6ba385697

View File

@@ -417,40 +417,35 @@ BEGIN
END;
/
-- Bronview - ONDERHANDEN!!!!!
-- De SA en ST:
-- Bronview voor exportfunctie MELDING AXXERION - zie ticket 62723
-- 1. De SA- en ST-meldingen
---- Moeten bij aanmaken in Facilitor doorgestuurd worden naar Axxerion +
---- Krijgen terugkoppeling met Axxerion-nr omdat ze verder in status-updates (vanuit facilitor => axxerion) moeten meelopen
-- De MJOB-meldingen
---- Moeten pas doorgezet worden als een Offerte is goedgekeurd.
------ Proces: Rabo/Axxerion geeft dan namelijk nog een officieel akkoord, voordat men in Facilitor de werk-opdracht kan doorzetten
------ In eerste instantie gaat dit akkoord via mail/telefonisch.
------ Tzt in koppeling opnemen (echter dan dus wel buiten de andere updates houden...)
---- Krijgen terugkoppeling met Axxerion-nr omdat ze verder in status-updates (vanuit facilitor => axxerion) moeten meelopen - NOG INBOUWEN!
-- 2. De MJOB-meldingen
---- Moeten pas doorgezet worden als op MJP-meldingsniveau de Motivatie is ingevuld.
CREATE OR REPLACE VIEW rabo_v_melding_axxerion
(
MLD_MELDING_KEY,
STDMELDING2, -- mld_stdmelding_omschrijving
VAKGROEP, -- vakgroep DISCIPLINE_OMSCHRIJVING
KWIS, -- Vakgroeptype INS_SRTDISCIPLINE_OMSCHRIJVING
OPMERKING, -- korte omschrijving - wordt vaak niet gevuld bij RABO / uitgezet...
REF_KEY, -- Externe nummer - ref_key axxerion
STDMELDING2, -- mld_stdmelding_omschrijving
VAKGROEP, -- vakgroep DISCIPLINE_OMSCHRIJVING
KWIS, -- Vakgroeptype INS_SRTDISCIPLINE_OMSCHRIJVING
OPMERKING, -- korte omschrijving - wordt vaak niet gevuld bij RABO / uitgezet...
OMSCHRIJVING,
DATUM,
EINDDATUM,
LOCATIE_CODE,
LOCATIE,
MELDING,
MELDING, -- Voor prefix-xml
HOOFDMELDING,
RFQ_AANTAL, -- Aantal rfq's uitgezet....
RFQ_UITVOERDER, -- Partij waarbij Offerte is 'afgemeld' (waar men zaken mee gaat doen..)
RFQ_GEPLANDE_KOSTEN,
RFQ_AANTAL, -- Aantal rfq's uitgezet, zodat je weet hoeveel bijlagen je moet ontvangen....
RFQ_MOTIVATIE,
-- RFQ_BTW -- Deze ook nog meenemen?
RFQ_DATUMAKKOORD,
RFQ_NR,
RFQ_ID
RFQ_GEPLANDE_KOSTEN,
RFQ_FASE
)
AS
SELECT m.mld_melding_key,
m.mld_melding_externnr,
v.mld_stdmelding_omschrijving,
v.ins_discipline_omschrijving,
v.ins_srtdiscipline_omschrijving,
@@ -460,16 +455,13 @@ AS
m.mld_melding_einddatum,
'PR' || l.alg_locatie_code,
l.alg_locatie_code || ' - ' || l.alg_locatie_omschrijving,
sd.ins_srtdiscipline_prefix || to_char(m.mld_melding_key) as melding,
'MELDINGEN_' || sd.ins_srtdiscipline_prefix || '_'
melding,
m.mld_melding_mldgroup_key,
NULL rfq_aantal,
NULL rfq_uitvoerder,
NULL rfq_geplande_kosten,
NULL rfq_motivatie,
-- NULL rfq_btw
NULL rfq_datumakkoord,
NULL rfq_nr,
NULL rfq_id
NULL rfq_geplande_kosten,
NULL rfq_fase
FROM mld_melding m, alg_locatie l, aaxx_v_dwh_mld_stdmelding v, mld_stdmelding sm, mld_discipline d, ins_srtdiscipline sd
WHERE
m.mld_alg_locatie_key = l.alg_locatie_key
@@ -477,73 +469,73 @@ AS
AND v.mld_stdmelding_key = sm.mld_stdmelding_key
AND sm.mld_ins_discipline_key = d.ins_discipline_key
AND d.ins_srtdiscipline_key = sd.ins_srtdiscipline_key
-- AND (v.ins_srtdiscipline_omschrijving = 'Storing' OR v.ins_srtdiscipline_omschrijving = 'Service Aanvraag')
AND sd.ins_srtdiscipline_key in (4,5) -- ST en SA
-- AND m.mld_melding_mldgroup_key IS NULL - Deze uitsluiten OF juiste meetonen
AND m.mld_melding_key in (125397,125553,128132) -- Voor test xml ST, SA -- ON HOLD
-- AND m.mld_melding_key in (126909, 126055, 126912, 126911)
UNION
SELECT m.mld_melding_key,
m.mld_melding_externnr,
v.mld_stdmelding_omschrijving,
v.ins_discipline_omschrijving,
v.ins_srtdiscipline_omschrijving,
m.mld_melding_opmerking,
m.mld_melding_omschrijving,
rfq.fac_tracking_datum, -- m.mld_melding_datum,
rfq.datum_motivatie,
m.mld_melding_einddatum,
'PR' || l.alg_locatie_code,
l.alg_locatie_code || ' - ' || l.alg_locatie_omschrijving,
sd.ins_srtdiscipline_prefix || to_char(m.mld_melding_key) as melding,
'MELDINGEN_' || sd.ins_srtdiscipline_prefix || '_'
melding,
m.mld_melding_mldgroup_key,
rfq.aantal
(SELECT COUNT (*)
FROM mld_opdr o, mld_typeopdr ot
WHERE o.mld_melding_key = m.mld_melding_key
AND o.mld_typeopdr_key = ot.mld_typeopdr_key
AND o.mld_statusopdr_key not in (1,2) -- Afgekeurde en Afgewezen offertes hoeven niet naar Axxerion
AND ot.mld_typeopdr_isofferte = 1)
rfq_aantal,
rfq.prs_bedrijf_naam
rfq_uitvoerder,
rfq.geplande_kosten
rfq_geplande_kosten,
rfq.motivatie
rfq_motivatie,
-- NULL rfq_btw
rfq.fac_tracking_datum,
rfq.opdrachtnr,
rfq.mld_opdr_key
rfq.geplande_kosten
rfq_geplande_kosten,
NULL rfq_fase
FROM mld_melding m, alg_locatie l, aaxx_v_dwh_mld_stdmelding v, mld_stdmelding sm, mld_discipline d, ins_srtdiscipline sd,
(SELECT o.mld_melding_key,
o.mld_opdr_key,
TO_CHAR (o.mld_melding_key) || '/' || TO_CHAR (o.mld_opdr_bedrijfopdr_volgnr)
opdrachtnr,
o.mld_statusopdr_key,
v.mld_statusopdr_omschrijving,
(SELECT COUNT (*)
FROM mld_opdr o2, mld_typeopdr ot
WHERE o2.mld_melding_key = o.mld_melding_key
AND o2.mld_typeopdr_key = ot.mld_typeopdr_key
AND ot.mld_typeopdr_isofferte = 1)
aantal,
b.prs_bedrijf_naam,
ft.fac_tracking_datum,
(SELECT ko.mld_kenmerkopdr_waarde
FROM mld_kenmerkopdr ko, mld_kenmerk k
WHERE ko.mld_opdr_key = o.mld_opdr_key
AND ko.mld_kenmerk_key = k.mld_kenmerk_key
AND k.mld_srtkenmerk_key = 141) geplande_kosten,
(SELECT ko.mld_kenmerkopdr_waarde
FROM mld_kenmerkopdr ko, mld_kenmerk k
WHERE ko.mld_opdr_key = o.mld_opdr_key
AND ko.mld_kenmerk_key = k.mld_kenmerk_key
AND k.mld_srtkenmerk_key = 482) motivatie
FROM mld_opdr o,
mld_typeopdr ot,
prs_bedrijf b,
mld_statusopdr v,
fac_tracking ft
WHERE o.mld_typeopdr_key = ot.mld_typeopdr_key
AND mld_typeopdr_isofferte = 1
AND o.mld_statusopdr_key = v.mld_statusopdr_key
AND o.mld_statusopdr_key = 9
AND o.mld_opdr_key = ft.fac_tracking_refkey
AND ft.fac_srtnotificatie_key = 201 -- ORDOOK
AND o.mld_uitvoerende_keys = b.prs_bedrijf_key ) rfq
(SELECT mm.mld_melding_key,
km.mld_kenmerkmelding_aanmaak
datum_motivatie,
(SELECT max(km.mld_kenmerkmelding_waarde)
FROM mld_kenmerkmelding km
WHERE km.mld_melding_key = k_mot.mld_melding_key
AND km.mld_kenmerkmelding_key = k_mot.mld_kenmerkmelding_key
) motivatie,
(SELECT max(km.mld_kenmerkmelding_waarde)
FROM mld_kenmerkmelding km
WHERE km.mld_melding_key = k_kost.mld_melding_key
AND km.mld_kenmerkmelding_key = k_kost.mld_kenmerkmelding_key
) geplande_kosten,
(SELECT fac.safe_to_date(km.mld_kenmerkmelding_waarde,'DD-MM-YYYY')
FROM mld_kenmerkmelding km,
mld_kenmerk k
WHERE km.mld_melding_key = mm.mld_melding_key
AND km.mld_kenmerk_key = k.mld_kenmerk_key
AND k.mld_srtkenmerk_key = 485 -- Datum melding naar Axxerion
) datum_axxerion
FROM mld_melding mm, mld_kenmerkmelding km, mld_kenmerk k,
(SELECT mld_melding_key, max(km.mld_kenmerkmelding_key) mld_kenmerkmelding_key
FROM mld_kenmerkmelding km, mld_kenmerk k
WHERE km.mld_kenmerk_key = k.mld_kenmerk_key
AND k.mld_srtkenmerk_key = 502 -- Kenmerksoort naar Motivatie Axxerion
GROUP BY mld_melding_key) k_mot,
(SELECT mld_melding_key, max(km.mld_kenmerkmelding_key) mld_kenmerkmelding_key
FROM mld_kenmerkmelding km, mld_kenmerk k
WHERE km.mld_kenmerk_key = k.mld_kenmerk_key
AND k.mld_srtkenmerk_key = 503 -- Kenmerksoort naar Kostenraming naar Axxerion
GROUP BY mld_melding_key) k_kost
WHERE
mm.mld_melding_key = km.mld_melding_key
AND km.mld_kenmerk_key = k.mld_kenmerk_key
AND k.mld_srtkenmerk_key = 501 -- Checkbox MJOP-melding doorzetten naar Axxerion
AND mm.mld_melding_key = k_mot.mld_melding_key
AND mm.mld_melding_key = k_kost.mld_melding_key
ORDER BY mm.mld_melding_key, km.mld_kenmerkmelding_aanmaak) rfq
WHERE
m.mld_alg_locatie_key = l.alg_locatie_key
AND v.mld_stdmelding_key = m.mld_stdmelding_key
@@ -551,10 +543,9 @@ AS
AND sm.mld_ins_discipline_key = d.ins_discipline_key
AND d.ins_srtdiscipline_key = sd.ins_srtdiscipline_key
AND sd.ins_srtdiscipline_key in (61) -- MJOP
-- AND m.mld_melding_mldgroup_key IS NULL - Deze uitsluiten OF juiste meetonen
AND m.mld_melding_key = rfq.mld_melding_key
AND m.mld_melding_key in (126909, 126055, 126912, 126911)
;
AND m.mld_melding_key = rfq.mld_melding_key
AND (trunc(rfq.datum_motivatie) > rfq.datum_axxerion OR rfq.datum_axxerion IS NULL)
;
CREATE OR REPLACE VIEW rabo_v_export_melding_axxerion (
result,
@@ -576,20 +567,32 @@ AS
p_from DATE,
p_to DATE)
IS
SELECT melding
FROM rabo_v_melding_axxerion
WHERE datum BETWEEN p_from AND p_to
GROUP BY melding;
CURSOR c_mld (
p_from DATE,
p_to DATE,
p_melding VARCHAR2)
IS
SELECT *
FROM rabo_v_melding_axxerion
WHERE datum BETWEEN p_from AND p_to
AND melding = p_melding
ORDER BY mld_melding_key;
v_from DATE;
v_to DATE;
v_melding VARCHAR2 (20);
v_count NUMBER;
v_externnr VARCHAR2 (10);
v_bestand VARCHAR2 (100);
v_empty NUMBER;
v_mld_melding_key NUMBER (10);
v_mld_opdr_key NUMBER (10);
v_prefix VARCHAR2(10);
v_prefix VARCHAR2(20);
v_datum_axxerion VARCHAR2 (10) ;
BEGIN
@@ -633,20 +636,26 @@ BEGIN
v_count := v_count + 1;
END LOOP;
FOR rec IN c (v_from, v_to)
LOOP
v_empty := 0;
v_mld_melding_key := rec.mld_melding_key;
v_mld_opdr_key := rec.rfq_id;
v_datum_axxerion := TO_CHAR(TRUNC(sysdate),'DD-MM-YYYY');
v_prefix := rec.melding || '##' ;
v_melding := rec.melding ;
-- header
aaxx_add_xml_row_p (v_bestand, v_prefix, '<?xml version="1.0" encoding="windows-1252"?>');
aaxx_add_xml_row_p (v_bestand, v_prefix, '<facilitor>');
aaxx_add_xml_row_p (v_bestand, v_prefix, '<meldingnieuw>');
aaxx_add_xml_row_p (v_bestand, v_prefix, '<meldingennieuw>');
FOR rec IN c_mld (v_from, v_to, v_melding)
LOOP
v_mld_melding_key := rec.mld_melding_key;
aaxx_add_xml_row_p (v_bestand, v_prefix, '<melding key="' || rec.mld_melding_key || '">');
aaxx_add_xml_element_p (v_bestand, v_prefix, 'ref_key', rec.ref_key);
aaxx_add_xml_element_p (v_bestand, v_prefix,'timestamp', TO_CHAR (rec.datum, 'dd-mm-yyyy hh24:mi'));
aaxx_add_xml_element_p (v_bestand, v_prefix, 'stdmelding2', rec.stdmelding2);
aaxx_add_xml_element_p (v_bestand, v_prefix, 'kwis', rec.kwis);
@@ -662,28 +671,33 @@ BEGIN
IF rec.kwis = 'MJOP' THEN
aaxx_add_xml_element_p (v_bestand, v_prefix, 'aantal_rfqs', rec.rfq_aantal);
aaxx_add_xml_element_p (v_bestand, v_prefix, 'uitvoerder', rec.rfq_uitvoerder);
aaxx_add_xml_element_p (v_bestand, v_prefix, 'kosten_gepland', rec.rfq_geplande_kosten);
aaxx_add_xml_element_p (v_bestand, v_prefix, 'motivatie', rec.rfq_motivatie);
aaxx_add_xml_element_p (v_bestand, v_prefix, 'rfq_nr', rec.rfq_nr);
aaxx_add_xml_element_p (v_bestand, v_prefix, 'rfq_id', rec.rfq_id);
aaxx_add_xml_element_p (v_bestand, v_prefix, 'datumakkoord', TO_CHAR (rec.rfq_datumakkoord, 'dd-mm-yyyy hh24:mi'));
aaxx_add_xml_element_p (v_bestand, v_prefix, 'kosten_gepland', rec.rfq_geplande_kosten);
aaxx_add_xml_element_p (v_bestand, v_prefix, 'fase', rec.rfq_fase);
-- tracking toevoegen aan melding en opdracht
fac.trackaction ('#MLDINF', v_mld_melding_key, 4, NULL, 'Offerte ' || rec.rfq_nr || ' naar Axxerion doorgezet voor akkoord');
fac.trackaction ('#ORDUPD', v_mld_opdr_key, 4, NULL, 'Offerte naar Axxerion doorgezet voor akkoord');
-- OOK NOG DATUM-KENMERKVELD VULLEN voor/met DATUM NAAR AXXERION - Voor gebruikers + voor sturing BIJLAGEN avondrun
fac.trackaction ('#MLDINF', v_mld_melding_key, 4, NULL, 'Motivatie offerte-selectie naar Axxerion doorgezet voor akkoord');
-- Ook nog datum-kenmerkveld vullen, ter info voor gebruikers + voor sturing BIJLAGE_AXXERION (bij avondrun)
mld.upsertmeldingkenmerk (4785 , -- v_kenmerk_key,
v_mld_melding_key,
v_datum_axxerion);
END IF;
aaxx_add_xml_row_p (v_bestand, v_prefix, '</melding>');
aaxx_add_xml_row_p (v_bestand, v_prefix, '</meldingnieuw>');
aaxx_add_xml_row_p (v_bestand, v_prefix, '</facilitor>');
-- tracking op melding toevoegen
-- tracking op ST/SA-melding toevoegen
IF rec.kwis != 'MJOP' THEN
fac.trackaction ('#MLDINF', v_mld_melding_key, 4, NULL, 'Melding XML naar Axxerion verzonden');
END IF;
END LOOP;
aaxx_add_xml_row_p (v_bestand, v_prefix, '</meldingennieuw>');
aaxx_add_xml_row_p (v_bestand, v_prefix, '</facilitor>');
END LOOP;
@@ -704,6 +718,242 @@ BEGIN
END;
/
-- Voor export dagelijks van de bijlagen van de MJOP-RFQ's die voor akkoord naar Axxerion gaan/moeten
--- Zie ticket 62723
--- De M-melding (MJOP melding) wordt in de dag naar Axxerion verstuurd via exportfunctie MELDING_AXXERION
--- De bijlagen 'getekende offertes' die in de opdracht-folder 'Offerte_ondertekend' staan, moeten dook door naar Axxerion en onder die M-melding komen.
--- OPZET: 1. Een batfile maken om fysiek alle bestanden op de SFTP te krijgen.
---- 2. Een procedure die de bijbehorende XML ook op die SFTP map zet
-- Bronview
CREATE OR REPLACE VIEW rabo_v_bijlage_axxerion
(
MLD_MELDING_KEY,
FILENAME,
DATUM_EXPORT,
BIJLAGE -- Voor prefix XML
)
AS
SELECT
m.mld_melding_key,
b.fac_bijlagen_filename,
v.datum_export,
'BIJLAGEN_' || sd.ins_srtdiscipline_prefix || '_'
bijlage
FROM fac_v_bijlagen b,
mld_melding m,
mld_stdmelding sm,
mld_discipline d,
ins_srtdiscipline sd,
mld_opdr o,
mld_statusopdr so,
(SELECT km.mld_melding_key, fac.safe_to_date(km.mld_kenmerkmelding_waarde,'dd-mm-yyyy') datum_export
FROM mld_kenmerkmelding km,
mld_kenmerk k
WHERE km.mld_kenmerk_key = k.mld_kenmerk_key
AND k.mld_srtkenmerk_key = 485 -- Datum melding naar Axxerion
) v
WHERE
m.mld_melding_key = v.mld_melding_key
AND m.mld_melding_key = o.mld_melding_key
AND o.mld_statusopdr_key = so.mld_statusopdr_key
AND o.mld_opdr_key = b.fac_bijlagen_refkey
AND b.fac_bijlagen_module = 'MLD'
AND b.fac_bijlagen_kenmerk_key = 4783 -- folder_key voor ' Offerte_ondertekend (M)'
AND m.mld_stdmelding_key = sm.mld_stdmelding_key
AND sm.mld_ins_discipline_key = d.ins_discipline_key
AND d.ins_srtdiscipline_key = sd.ins_srtdiscipline_key
AND sd.ins_srtdiscipline_key in (61) -- MJOP
AND o.mld_statusopdr_key not in (1,2) -- Voor Afgewezen en Afgekeurde offertes worden geen bijlagen verstuurd.
;
CREATE OR REPLACE VIEW rabo_v_export_bijlage_axxerion (
result,
result_order,
bijlage
)
AS
SELECT SUBSTR (fac_rapport_regel, INSTR (fac_rapport_regel, '##') + 2),
fac_rapport_volgnr,
SUBSTR (fac_rapport_regel, 1, INSTR (fac_rapport_regel, '##') - 1)
FROM fac_rapport
WHERE fac_rapport_node = SUBSTR ('BIJLAGE_AXXERION', 1, 12) -- BIJLAGE_AXXE (12 posities is max voor fac_rappor_node)
;
CREATE OR REPLACE PROCEDURE rabo_select_bijlage_axxerion (p_applname IN VARCHAR2,
p_applrun IN VARCHAR2)
AS
CURSOR c (
p_from DATE,
p_to DATE)
IS
SELECT bijlage
FROM rabo_v_bijlage_axxerion
WHERE datum_export BETWEEN p_from AND p_to
GROUP BY bijlage ;
CURSOR c_mld (
p_from DATE,
p_to DATE,
p_bijlage VARCHAR2)
IS
SELECT mld_melding_key, datum_export
FROM rabo_v_bijlage_axxerion
WHERE datum_export BETWEEN p_from AND p_to
AND bijlage = p_bijlage
GROUP BY mld_melding_key, datum_export ;
CURSOR c_bijlage (
p_from DATE,
p_to DATE,
p_mld_melding_key NUMBER)
IS
SELECT filename
FROM rabo_v_bijlage_axxerion
WHERE datum_export BETWEEN p_from AND p_to
AND mld_melding_key = p_mld_melding_key ;
v_from DATE;
v_to DATE;
v_count NUMBER;
v_externnr VARCHAR2 (10);
v_bestand VARCHAR2 (100);
v_empty NUMBER;
v_mld_melding_key NUMBER (10);
v_prefix VARCHAR2(20);
v_bijlage VARCHAR2(20) ;
BEGIN
v_count := 0;
v_empty := 1;
v_bestand := SUBSTR (p_applname, 1, 12); -- BIJLAGE_AXXE
-- 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') + 1 -- Volgende dag gaan we pakken
INTO v_from
FROM fac_rapport
WHERE SUBSTR (v_bestand, 1, 11) || '1' = fac_rapport_node; -- BIJLAGE_AXX1
EXCEPTION
WHEN NO_DATA_FOUND
THEN
v_from := TRUNC (SYSDATE);
END;
-- We exporteren in principe 1 maal per dag, alles van die dag (avondrun)
v_to := v_from;
-- 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 < TRUNC(SYSDATE) AND v_count < 10
LOOP
v_to := v_to + 1;
v_count := v_count + 1;
END LOOP;
FOR rec IN c (v_from, v_to)
LOOP
v_empty := 0;
v_prefix := rec.bijlage || '##' ;
v_bijlage := rec.bijlage ;
-- header
aaxx_add_xml_row_p (v_bestand, v_prefix, '<?xml version="1.0" encoding="windows-1252"?>');
aaxx_add_xml_row_p (v_bestand, v_prefix, '<facilitor>');
aaxx_add_xml_row_p (v_bestand, v_prefix, '<bijlagen>');
FOR rec IN c_mld (v_from, v_to, v_bijlage)
LOOP
v_mld_melding_key := rec.mld_melding_key;
aaxx_add_xml_row_p (v_bestand, v_prefix, '<melding key="' || rec.mld_melding_key || '">');
FOR rec IN c_bijlage (v_from, v_to, v_mld_melding_key)
LOOP
aaxx_add_xml_element_p (v_bestand, v_prefix, 'filename', rec.filename);
END LOOP;
aaxx_add_xml_row_p (v_bestand, v_prefix, '</melding>');
-- tracking toevoegen aan melding
fac.trackaction ('#MLDINF', v_mld_melding_key, 4, NULL, 'Bijlagen uit offerte-folders naar Axxerion doorgezet');
END LOOP;
aaxx_add_xml_row_p (v_bestand, v_prefix, '</bijlagen>');
aaxx_add_xml_row_p (v_bestand, v_prefix, '</facilitor>');
END LOOP;
-- 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'));
END;
/
-- View om fysiek alle bestanden op de SFTP te krijgen.
---- Ps2. Het chcp statement (= change code page) aan begin batfile opnemen zodat de bestandsnamen met diacritic characters niet ge-encodeerd worden.
---- Ps2. Ik gebruik hieronder voor '\' de ASCII-code (=92) om in ultra-edit syntax-interpretatie goed te krijgen.
CREATE OR REPLACE VIEW rabo_v_export_bijlage_axxerion_pdf
(
result,
result_order
)
AS
SELECT
'chcp 1252>nul' result,
0 result_order
FROM DUAL
UNION
SELECT DISTINCT
'xcopy /y /S "'
|| 'd:\Apps\Facilitor\AAFM_DATA\RABO'
|| CHR(92)
|| b.fac_bijlagen_disk_directory
|| CHR(92)
|| b.fac_bijlagen_filename
|| '" "d:\Apps\Facilitor\ftp_sites\RABO\bijlagen_naar_axxerion'
|| '\"',
b.fac_bijlagen_key result_order
FROM fac_v_bijlagen b,
mld_melding m,
mld_opdr o,
(SELECT km.mld_melding_key, fac.safe_to_date(km.mld_kenmerkmelding_waarde,'dd-mm-yyyy') datum_export
FROM mld_kenmerkmelding km,
mld_kenmerk k
WHERE km.mld_kenmerk_key = k.mld_kenmerk_key
AND k.mld_srtkenmerk_key = 485 -- Datum melding naar Axxerion
AND fac.safe_to_date(km.mld_kenmerkmelding_waarde,'dd-mm-yyyy')=trunc(sysdate)) v
WHERE
m.mld_melding_key = v.mld_melding_key
AND m.mld_melding_key = o.mld_melding_key
AND o.mld_opdr_key = b.fac_bijlagen_refkey
AND b.fac_bijlagen_module = 'MLD'
AND b.fac_bijlagen_kenmerk_key = 4783 -- folder_key voor ' Offerte_ondertekend (M)'
ORDER BY result_order;
CREATE OR REPLACE PROCEDURE rabo_import_bijlagen (p_import_key IN NUMBER)
AS