KFSG#70358 -- aanpassing kfsg_exchange tbv Graph koppeling
svn path=/Customer/trunk/; revision=54443
This commit is contained in:
@@ -1,8 +1,8 @@
|
||||
--
|
||||
-- $Id$
|
||||
--
|
||||
-- Script containing customer specific db-configuration for KFSG.
|
||||
DEFINE thisfile = 'KFSG_EXCHANGE.SQL'
|
||||
-- Script containing customer specific db-configuration for KFSG
|
||||
DEFINE thisfile = 'kfsg_EXCHANGE_GRAPH.SQL'
|
||||
DEFINE dbuser = '^KFSG'
|
||||
|
||||
SET ECHO ON
|
||||
@@ -16,20 +16,6 @@ SET DEFINE OFF
|
||||
|
||||
------ payload begin ------
|
||||
|
||||
-- Soorten ruimtes:
|
||||
-- OF: office floor room; geen catering, geen bezoek
|
||||
-- MC: meeting center room; wel catering, wel bezoek
|
||||
-- EXCO: management ruimte; wel catering, wel bezoek
|
||||
|
||||
-- Soorten deelnemers (zie ook AKZA#55440, door splitsing AN/Nouryon ook Nouryon mailadressen toevoegen als interne medewerkers):
|
||||
-- AMS-mw: medewerkers locatie Amsterdam; zijn NOOIT een bezoeker
|
||||
-- e-mail @akzonobel.com, standplaats AMB
|
||||
-- e-mail @@nouryon.com, standplaats AMB
|
||||
-- AN-mw/ Nouryon: medewerkers overige AkzoNobel-locaties; zijn bezoeker, maar mogen geen parkeerplaats
|
||||
-- e-mail @akzonobel.com, overige standplaatsen
|
||||
-- e-mail @@nouryon.com, overige standplaatsen
|
||||
-- Gast: extern persoon; bezoeker met parkeerplaats
|
||||
-- alle andere e-mailadressen
|
||||
|
||||
-- modifiers:
|
||||
-- ADD: appointment is niew, dus ook een nieuwe reservering
|
||||
@@ -37,14 +23,14 @@ SET DEFINE OFF
|
||||
-- UPD: appointment is gewijzigd en kan daarmee effectief ook een ADD of DEL zijn
|
||||
|
||||
-- ***************************************************************************
|
||||
-- KFSG#57950: Bovenstaande nog even laten staan. Voor Schiphol geldt:
|
||||
-- - koppeling gerealiseerd voor alleen catalogus Vergaderruimtes Outlook-
|
||||
-- koppeling (key=1341) op locatie/gebouw SHG (key=41/48) en activiteit
|
||||
-- Vergadering (key=10).
|
||||
-- - Schiphol-genodigden in Genodigden-kenmerk (key=181).
|
||||
-- - eventuele andere genodigden bijwerken als afspraak/bezoeker.
|
||||
-- Bovenstaande nog even laten staan. Voor YKPN is de koppeling gerealiseerd voor:
|
||||
-- Catalogus Ruimtes te reserveren vanuit Exchange (key=1801)
|
||||
-- Activiteit Meeting vanuit Exchange (key=110).
|
||||
-- KPN eigen genodigden in Genodigden-kenmerk (key=261).
|
||||
-- Eventuele andere genodigden (externen) bijwerken als afspraak/bezoeker.
|
||||
-- ***************************************************************************
|
||||
|
||||
|
||||
--------------------------------------------------------------------------------------------------
|
||||
------------------------------- PACKAGE ----------------------------------------------------------
|
||||
--------------------------------------------------------------------------------------------------
|
||||
@@ -90,19 +76,10 @@ END;
|
||||
CREATE OR REPLACE PACKAGE BODY kfsg_exchange
|
||||
AS
|
||||
-- Zorg dat de bezoekers bij de deelreservering matchen met de genodigden bij de appointment
|
||||
-- - host niet toevoegen als bezoeker
|
||||
-- - AMB-en SSCA-medewerkers met een badgenummer alleen in een genodigdenlijst
|
||||
-- Host zelf niet toevoegen als bezoeker
|
||||
-- Afspraak aanmaken of verwijderen indien nodig
|
||||
-- Bezoekers aanmaken, bijwerken of verwijderen zoals nodig
|
||||
-- Als vergaderruimte op kantoorverdieping (OF-ruimte), dan geen bezoekers (alleen genodigdenlijst),
|
||||
-- noch voorzieningen
|
||||
-- - OF = res_disc 1485 "Vergaderruimtes nw A'dam"
|
||||
-- - EXCO = res_disc 1505 "Vergaderzalen 9de PA's"
|
||||
-- - MC = res_disc 1445 "Vergaderzalen NW Amsterdam"
|
||||
-- TODO: nu worden voor appointments met meerdere zalen waarschijnlijk de attendees bij iedere
|
||||
-- deelreservering toegevoegd.
|
||||
-- KFSG#57950: Voor Schiphol geldt (voor enige locatie/catalogus/activiteit) alleen externen als
|
||||
-- bezoeker (en eigen medewerkers in Genodigden-kenmerk?).
|
||||
-- Voor YKPN geldt alleen externen als bezoeker, eigen medewerkers in Genodigden-kenmerk
|
||||
PROCEDURE setBezoekers(p_import_key IN NUMBER,
|
||||
p_appt_id IN VARCHAR2,
|
||||
p_recur_id IN VARCHAR2,
|
||||
@@ -110,7 +87,7 @@ AS
|
||||
IS
|
||||
v_debug BOOLEAN := TRUE;
|
||||
v_count NUMBER (10);
|
||||
c_km_key_genodigden NUMBER (10) := 181;
|
||||
c_km_key_genodigden NUMBER (10) := 261;
|
||||
|
||||
v_genodigden VARCHAR2 (4000);
|
||||
v_afspraak_key NUMBER (10);
|
||||
@@ -127,33 +104,36 @@ AS
|
||||
IS
|
||||
-- Niet meer in de import
|
||||
SELECT a.res_rsv_ruimte_key,
|
||||
kw.bez_kenmerkwaarde_waarde bez_email,
|
||||
--kw.bez_kenmerkwaarde_waarde bez_email,
|
||||
b.bez_bezoekers_email bez_email,
|
||||
b.*
|
||||
FROM bez_afspraak a,
|
||||
bez_bezoekers b,
|
||||
bez_kenmerkwaarde kw
|
||||
bez_bezoekers b
|
||||
-- bez_kenmerkwaarde kw
|
||||
WHERE a.res_rsv_ruimte_key = p_rsv_ruimte_key
|
||||
AND b.bez_afspraak_key = a.bez_afspraak_key
|
||||
AND kw.bez_bezoekers_key = b.bez_bezoekers_key
|
||||
AND kw.bez_kenmerk_key = 1120 -- E-mailadres Exchange
|
||||
AND kw.bez_kenmerkwaarde_verwijder IS NULL
|
||||
-- AND kw.bez_bezoekers_key = b.bez_bezoekers_key
|
||||
-- AND kw.bez_kenmerk_key = 1300 -- E-mailadres Exchange
|
||||
-- AND kw.bez_kenmerkwaarde_verwijder IS NULL
|
||||
AND NOT EXISTS (SELECT 1
|
||||
FROM kfsg_imp_exchange
|
||||
WHERE UPPER(att_mail) = UPPER(kw.bez_kenmerkwaarde_waarde) )
|
||||
-- WHERE UPPER(att_mail) = UPPER(kw.bez_kenmerkwaarde_waarde) )
|
||||
WHERE UPPER(att_mail) = UPPER(b.bez_bezoekers_email) )
|
||||
UNION ALL
|
||||
-- Naam al aanwezig in lijst van genodigden
|
||||
SELECT a.res_rsv_ruimte_key,
|
||||
kw.bez_kenmerkwaarde_waarde bez_email,
|
||||
-- kw.bez_kenmerkwaarde_waarde bez_email,
|
||||
b.bez_bezoekers_email bez_email,
|
||||
b.*
|
||||
FROM bez_afspraak a,
|
||||
bez_bezoekers b,
|
||||
bez_kenmerkwaarde kw,
|
||||
-- bez_kenmerkwaarde kw,
|
||||
res_kenmerkwaarde rkw
|
||||
WHERE a.res_rsv_ruimte_key = p_rsv_ruimte_key
|
||||
AND b.bez_afspraak_key = a.bez_afspraak_key
|
||||
AND kw.bez_bezoekers_key = b.bez_bezoekers_key
|
||||
AND kw.bez_kenmerk_key = 1120 -- E-mailadres Exchange
|
||||
AND kw.bez_kenmerkwaarde_verwijder IS NULL
|
||||
-- AND kw.bez_bezoekers_key = b.bez_bezoekers_key
|
||||
-- AND kw.bez_kenmerk_key = 1300 -- E-mailadres Exchange
|
||||
-- AND kw.bez_kenmerkwaarde_verwijder IS NULL
|
||||
AND rkw.res_kenmerk_key = c_km_key_genodigden
|
||||
AND rkw.res_kenmerkwaarde_verwijder IS NULL
|
||||
AND rkw.res_rsv_ruimte_key = a.res_rsv_ruimte_key
|
||||
@@ -161,24 +141,26 @@ AS
|
||||
UNION ALL
|
||||
-- Mailadres bekend als extern ID van ruimte
|
||||
SELECT a.res_rsv_ruimte_key,
|
||||
kw.bez_kenmerkwaarde_waarde bez_email,
|
||||
-- kw.bez_kenmerkwaarde_waarde bez_email,
|
||||
b.bez_bezoekers_email bez_email,
|
||||
b.*
|
||||
FROM bez_afspraak a,
|
||||
bez_bezoekers b,
|
||||
bez_kenmerkwaarde kw
|
||||
bez_bezoekers b
|
||||
-- bez_kenmerkwaarde kw
|
||||
WHERE a.res_rsv_ruimte_key = p_rsv_ruimte_key
|
||||
AND b.bez_afspraak_key = a.bez_afspraak_key
|
||||
AND kw.bez_bezoekers_key = b.bez_bezoekers_key
|
||||
AND kw.bez_kenmerk_key = 1120 -- E-mailadres Exchange
|
||||
AND kw.bez_kenmerkwaarde_verwijder IS NULL
|
||||
-- AND kw.bez_bezoekers_key = b.bez_bezoekers_key
|
||||
-- AND kw.bez_kenmerk_key = 1300 -- E-mailadres Exchange
|
||||
-- AND kw.bez_kenmerkwaarde_verwijder IS NULL
|
||||
AND EXISTS (SELECT 1
|
||||
FROM res_ruimte
|
||||
WHERE UPPER(res_ruimte_extern_id) = UPPER(kw.bez_kenmerkwaarde_waarde));
|
||||
-- WHERE UPPER(res_ruimte_extern_id) = UPPER(kw.bez_kenmerkwaarde_waarde));
|
||||
WHERE UPPER(res_ruimte_extern_id) = UPPER(b.bez_bezoekers_email));
|
||||
|
||||
-- Voor iedere persoon kijken of dit een bekende AN-medewerker is en op welke locatie
|
||||
-- Voor iedere persoon kijken of dit een bekende YKPN medewerker is en op welke locatie
|
||||
-- Als mailadres deelnemer == mailadres organizer, dan negeren
|
||||
-- Group by, zodat we voor mensen op AMB/SSCA (en AHO) alleen die werkplek overhouden (overige locaties leveren NULL)
|
||||
-- AKZA#38968: ook badgenummer ophalen
|
||||
-- Group by ivm werkplekken
|
||||
|
||||
CURSOR c_attendees
|
||||
IS
|
||||
SELECT att_mail,
|
||||
@@ -217,8 +199,7 @@ AS
|
||||
alg_ruimte r,
|
||||
alg_verdieping v,
|
||||
alg_gebouw g,
|
||||
(SELECT * FROM alg_locatie
|
||||
WHERE alg_locatie_key = 41) l -- SHG - Schipholgebouw
|
||||
alg_locatie l
|
||||
WHERE p.prs_perslid_verwijder IS NULL
|
||||
AND p.prs_perslid_email IS NOT NULL
|
||||
--AND kl.prs_link_key(+) = p.prs_perslid_key
|
||||
@@ -234,15 +215,17 @@ AS
|
||||
ON UPPER(p.prs_perslid_email) = UPPER(att_mail)
|
||||
LEFT OUTER JOIN (
|
||||
SELECT b.bez_bezoekers_key,
|
||||
kw.bez_kenmerkwaarde_waarde email
|
||||
b.bez_bezoekers_email email
|
||||
-- kw.bez_kenmerkwaarde_waarde email
|
||||
FROM bez_afspraak a,
|
||||
bez_bezoekers b,
|
||||
bez_kenmerkwaarde kw
|
||||
bez_bezoekers b
|
||||
-- bez_kenmerkwaarde kw
|
||||
WHERE a.res_rsv_ruimte_key = p_rsv_ruimte_key
|
||||
AND b.bez_afspraak_key = a.bez_afspraak_key
|
||||
AND kw.bez_bezoekers_key = b.bez_bezoekers_key
|
||||
AND kw.bez_kenmerk_key = 1120 -- E-mailadres Exchange
|
||||
AND kw.bez_kenmerkwaarde_verwijder IS NULL) b
|
||||
-- AND kw.bez_bezoekers_key = b.bez_bezoekers_key
|
||||
-- AND kw.bez_kenmerk_key = 1300 -- E-mailadres Exchange
|
||||
-- AND kw.bez_kenmerkwaarde_verwijder IS NULL
|
||||
) b
|
||||
ON UPPER(b.email) = UPPER(att_mail)
|
||||
GROUP BY att_mail,
|
||||
att_name,
|
||||
@@ -290,8 +273,8 @@ AS
|
||||
fac.imp_writelog (p_import_key, 'D',
|
||||
p_rsv_ruimte_key, 'Bezoeker '||rec.bez_email||' verwijderen');
|
||||
END IF;
|
||||
DELETE bez_kenmerkwaarde
|
||||
WHERE bez_bezoekers_key = rec.bez_bezoekers_key;
|
||||
-- DELETE bez_kenmerkwaarde
|
||||
-- WHERE bez_bezoekers_key = rec.bez_bezoekers_key;
|
||||
|
||||
DELETE bez_bezoekers
|
||||
WHERE bez_bezoekers_key = rec.bez_bezoekers_key;
|
||||
@@ -299,7 +282,7 @@ AS
|
||||
|
||||
FOR rec IN c_attendees
|
||||
LOOP
|
||||
-- Bepalen om wat voor soort ruimte het gaat (OF vs MC/EXCO)
|
||||
-- Bepalen om wat voor soort ruimte het gaat
|
||||
IF (v_discipline_key IS NULL)
|
||||
THEN
|
||||
SELECT r.res_discipline_key
|
||||
@@ -316,20 +299,15 @@ AS
|
||||
END IF;
|
||||
END IF;
|
||||
|
||||
-- AMB- of SSCA-medewerker: alleen in tekstveld zetten
|
||||
-- YKPN medewerker: alleen in tekstveld zetten
|
||||
-- (Zowel bij create als update hele string weer opbouwen)
|
||||
-- Voor OF-ruimtes (res_disc 1485) behandelen we iedereen als AMB-/SSCA-medewerker
|
||||
-- AKZA#38968: badgenummer is voortaan vereist om genodigde te zijn
|
||||
-- AKZA#40274: bepaling van bezoekers/deelnemers voor ruimtes uit disc 1485 op dezelfde wijze als andere ruimtes / op verzoek van Andr<64> weer ongedaan gemaakt
|
||||
-- KFSG#57950: Bovenstaande nog even laten staan. Voor Schiphol geldt dat medewerkers (@schiphol in e-mail adres) in Genodigden-veld komen.
|
||||
-- TODO: Of Genodigden-veld helemaal weg???
|
||||
--IF (rec.alg_locatie_key IS NOT NULL AND rec.badgenr IS NOT NULL)
|
||||
IF (rec.alg_locatie_key IS NOT NULL AND INSTR (UPPER (rec.att_mail), '@SCHIPHOL.NL') > 0)
|
||||
-- Voor YKPN geldt dat medewerkers (@kpn.com in e-mail adres) in Genodigden-veld komen.
|
||||
-- Of dit klopt later bespreken
|
||||
IF (rec.alg_locatie_key IS NOT NULL AND INSTR (UPPER (rec.att_mail), '@KPN.COM') > 0)
|
||||
THEN
|
||||
v_genodigden := v_genodigden || rec.att_name || CHR(13);
|
||||
-- Overige AN-medewerkers en gasten aanmelden als bezoeker (of registratie bijwerken)
|
||||
-- Overige genodigen aanmelden als bezoeker (of registratie bijwerken)
|
||||
ELSE
|
||||
-- Er zijn niet-AMB-/SSCA-medewerker attendees, zorgen dat er een afspraak is
|
||||
IF (v_afspraak_key IS NULL)
|
||||
THEN
|
||||
v_afspraak_key := getAfspraak(p_rsv_ruimte_key, 1);
|
||||
@@ -371,7 +349,6 @@ AS
|
||||
END IF;
|
||||
|
||||
-- Opruiming: afspraken zonder bezoekers (kan gebeuren als er alleen nog interne deelnemers zijn,
|
||||
-- of de meeting is verplaatst naar een OF-ruimte)
|
||||
DELETE bez_afspraak a
|
||||
WHERE res_rsv_ruimte_key = p_rsv_ruimte_key
|
||||
AND NOT EXISTS (SELECT 1 FROM bez_bezoekers WHERE bez_afspraak_key = a.bez_afspraak_key);
|
||||
@@ -484,12 +461,18 @@ AS
|
||||
BEGIN
|
||||
v_bez_flags := 0;
|
||||
|
||||
-- AN-medewerkers op overige locaties:
|
||||
-- VOOR YKPN NOG NAVRAGEN, voorlopig parkeerplaatsen achterwege laten. Flags:
|
||||
-- +1 uit eigen locatie,
|
||||
-- +2 uit andere locatie,
|
||||
-- +4 komt niet fysiek,
|
||||
-- +8 komt niet aan balie,
|
||||
-- +16 geen parkeerplaats
|
||||
-- AN-medewerkers vanuit overige locaties:
|
||||
-- aanmelden als bezoeker (met perslid_key, als bekend), zonder (mogelijkheid tot) parkeerplaats
|
||||
-- flags (AKZA#34209)
|
||||
-- 2: andere locatie
|
||||
-- 16: geen parkeerplaats mogelijk
|
||||
IF (UPPER(p_att_mail) LIKE '%@SCHIPHOL.NL')
|
||||
IF (UPPER(p_att_mail) LIKE '%@KPN.COM')
|
||||
THEN
|
||||
IF (v_debug) THEN
|
||||
fac.imp_writelog (p_import_key, 'D',
|
||||
@@ -497,14 +480,14 @@ AS
|
||||
END IF;
|
||||
v_bez_flags := 2 + 16;
|
||||
|
||||
-- Gasten: aanmelden als gewone bezoeker (zonder perslid_key), met parkeerplaats
|
||||
-- flags = 0
|
||||
-- Gasten: aanmelden als gewone bezoeker (zonder perslid_key), voorlopig even zonder parkeerplaats
|
||||
-- flags dus even op 16 ipv 0
|
||||
ELSE
|
||||
IF (v_debug) THEN
|
||||
fac.imp_writelog (p_import_key, 'D',
|
||||
p_afspraak_key, 'Gast '||p_att_name|| ' ('||p_att_mail||')');
|
||||
END IF;
|
||||
v_bez_flags := 0;
|
||||
v_bez_flags := 16;
|
||||
END IF;
|
||||
|
||||
-- Bestaat bezoeker al bij deelreservering? Dan alleen basisgegevens bijwerken
|
||||
@@ -520,6 +503,8 @@ AS
|
||||
|
||||
-- Als deze bezoeker een parkeerplaats heeft, probeer dan een nieuwe te claimen
|
||||
-- alg_gebouw "SHG" 48
|
||||
-- Maar even op inactief voor YKPN
|
||||
/*
|
||||
IF ( bez.hasparking(p_bezoekers_key) = 1)
|
||||
THEN
|
||||
DELETE FROM res_rsv_deel
|
||||
@@ -530,6 +515,7 @@ AS
|
||||
END IF;
|
||||
-- TODO: track?
|
||||
END IF;
|
||||
*/
|
||||
|
||||
-- Nieuwe bezoeker: toevoegen, plus parkeerplaats en mailadres
|
||||
ELSE
|
||||
@@ -538,25 +524,31 @@ AS
|
||||
prs_perslid_key,
|
||||
bez_afspraak_naam,
|
||||
bez_afspraak_bedrijf,
|
||||
bez_bezoekers_flags)
|
||||
bez_bezoekers_flags,
|
||||
bez_bezoekers_email)
|
||||
VALUES (
|
||||
p_afspraak_key,
|
||||
p_perslid_key,
|
||||
SUBSTR(p_att_name, 1, 30),
|
||||
SUBSTR(p_afdeling_naam, 1, 60),
|
||||
v_bez_flags)
|
||||
v_bez_flags,
|
||||
p_att_mail)
|
||||
RETURNING bez_bezoekers_key INTO v_bezoekers_key;
|
||||
|
||||
-- Voor nieuwe gasten een parkeerplek claimen
|
||||
-- alg_gebouw "SHG" 48
|
||||
-- Voor YKPN maar even op inactief
|
||||
/*
|
||||
IF ( BITAND(v_bez_flags, 16) = 0)
|
||||
THEN
|
||||
bez.claim_parking(v_bezoekers_key, 48);
|
||||
END IF;
|
||||
|
||||
*/
|
||||
|
||||
-- Mailadres opslaan
|
||||
-- bez_kenmerk E-mail 1120
|
||||
upsertkenmerk_bez(1120, v_bezoekers_key, p_att_mail);
|
||||
-- bez_kenmerk E-mail 1300
|
||||
-- upsertkenmerk_bez(1300, v_bezoekers_key, p_att_mail);
|
||||
|
||||
END IF;
|
||||
|
||||
-- TODO: tracking; liefst geen aparte regel per bezoeker
|
||||
@@ -867,7 +859,7 @@ IS
|
||||
v_seq_nr VARCHAR2 (100);
|
||||
d_starttime DATE;
|
||||
d_endtime DATE;
|
||||
n_seq_nr NUMBER(10);
|
||||
n_seq_nr NUMBER(13);
|
||||
|
||||
CURSOR c
|
||||
IS
|
||||
@@ -885,7 +877,7 @@ BEGIN
|
||||
WHERE i.fac_import_key = p_import_key
|
||||
AND r.res_ruimte_verwijder IS NULL
|
||||
AND r.res_ruimte_extern_id IS NOT NULL
|
||||
AND UPPER(i.fac_import_filenaam) LIKE 'CALITEM_'||UPPER(r.res_ruimte_extern_id)||'_%.XML';
|
||||
AND UPPER(i.fac_import_filenaam) LIKE '%'||UPPER(r.res_ruimte_extern_id)||'%';
|
||||
|
||||
fac.imp_writelog (p_import_key, 'S',
|
||||
'Start inlezen importbestand in importtabel',
|
||||
@@ -913,7 +905,7 @@ BEGIN
|
||||
v_errorhint := 'Fout bij opvragen te importeren rij';
|
||||
|
||||
-- Lees alle veldwaarden
|
||||
--AKZA#36457: room ID wordt voortaan opgehaald uit de bestandsnaam van de import
|
||||
-- AKZA#36457: room ID wordt voortaan opgehaald uit de bestandsnaam van de import
|
||||
v_room_id := v_ruimte_id;
|
||||
fac.imp_getfield_nr (v_newline, c_fielddelimitor, 1, v_subject);
|
||||
fac.imp_getfield_nr (v_newline, c_fielddelimitor, 2, v_starttime);
|
||||
@@ -1145,7 +1137,7 @@ IS
|
||||
v_ongeldig NUMBER (1);
|
||||
v_debug BOOLEAN := TRUE;
|
||||
|
||||
c_activiteit_key NUMBER (10) := 10; -- Vergadering
|
||||
c_activiteit_key NUMBER (10) := 10; -- Vergadering
|
||||
v_reservering_key NUMBER (10);
|
||||
v_rsv_ruimte_volgnr res_rsv_ruimte.res_rsv_ruimte_volgnr%TYPE;
|
||||
v_ruimte_opstel_key NUMBER (10);
|
||||
@@ -1984,17 +1976,12 @@ BEGIN
|
||||
AND ro.res_ruimte_opstel_key = rr.res_ruimte_opstel_key
|
||||
AND r.res_ruimte_key = ro.res_ruimte_key;
|
||||
|
||||
-- Altijd tracken, maar alleen notificeren als niet discipline 1485
|
||||
-- AKZA#40274 ook notificeren als discipline = 1485 Mail Andr<64> 6-7: voorlopig terugdraaien
|
||||
-- KFSG#57950: Bovenstaande nog even laten staan. Voor Schiphol
|
||||
-- geldt altijd tracken <20>n notificeren!
|
||||
|
||||
-- Altijd tracken <20>n notificeren!
|
||||
v_errorhint := 'Tracking NEW';
|
||||
v_code := 'RESNEW';
|
||||
--IF (v_discipline_key = 1341)
|
||||
--THEN
|
||||
-- v_code := '#RESNEW';
|
||||
--END IF;
|
||||
fac.trackaction (v_code, v_rsv_ruimte_key, NULL, SYSDATE, 'Uw reservering '||TO_CHAR(v_reservering_key)||'/'||TO_CHAR(v_rsv_ruimte_volgnr)||' is geregistreerd');
|
||||
fac.trackaction (v_code, v_rsv_ruimte_key, NULL, SYSDATE, 'Booking confirmation meeting room, booking ref.: '||v_reservering_key||'/'||v_rsv_ruimte_volgnr);
|
||||
|
||||
-- Is er iets dirty?
|
||||
res.set_ruimte_dirty(v_rsv_ruimte_key);
|
||||
|
||||
@@ -2050,6 +2037,26 @@ EXCEPTION
|
||||
END kfsg_update_exchange;
|
||||
/
|
||||
|
||||
|
||||
CREATE OR REPLACE PROCEDURE kfsg_import_exchsync (
|
||||
p_import_key IN NUMBER
|
||||
)
|
||||
IS
|
||||
BEGIN
|
||||
kfsg_import_exchange(p_import_key);
|
||||
END;
|
||||
/
|
||||
|
||||
CREATE OR REPLACE PROCEDURE kfsg_update_exchsync (
|
||||
p_import_key IN NUMBER
|
||||
)
|
||||
IS
|
||||
BEGIN
|
||||
kfsg_update_exchange(p_import_key);
|
||||
END;
|
||||
/
|
||||
|
||||
|
||||
CREATE OR REPLACE PROCEDURE kfsg_import_exchfull (
|
||||
p_import_key IN NUMBER
|
||||
)
|
||||
@@ -2123,110 +2130,7 @@ BEGIN
|
||||
END LOOP;
|
||||
END;
|
||||
/
|
||||
/*
|
||||
-- MS-Exchange sync-import: onthoudt de laatste syncstate van een reserveerbare ruimte
|
||||
-- met betekenis: tot die markering ben ik bij.
|
||||
-- (tijdelijke) versie met een CLOB voor de syncstate, omdat die in de praktijk langer
|
||||
-- dan 4000 karakters blijkt te kunnen zijn. De XSL-stylesheet knipt de syncstate uit
|
||||
-- de XML op in stukken van max 4000 karakters -- deze import plakt die weer aan elkaar.
|
||||
CREATE OR REPLACE PROCEDURE kfsg_import_exchsync (p_import_key IN NUMBER)
|
||||
AS
|
||||
v_newline fac_imp_file.fac_imp_file_line%TYPE; -- Input line
|
||||
v_fielddelimitor VARCHAR2 (1);
|
||||
v_errormsg VARCHAR2 (200);
|
||||
oracle_err_mes VARCHAR2 (200);
|
||||
header_is_valid NUMBER;
|
||||
--
|
||||
v_res_ruimte_key res_ruimte.res_ruimte_key%TYPE;
|
||||
v_syncstate VARCHAR2 (4000);
|
||||
v_len NUMBER;
|
||||
|
||||
CURSOR c1
|
||||
IS
|
||||
SELECT *
|
||||
FROM fac_imp_file
|
||||
WHERE fac_import_key = p_import_key
|
||||
ORDER BY fac_imp_file_index;
|
||||
|
||||
rec1 c1%ROWTYPE;
|
||||
BEGIN
|
||||
v_fielddelimitor := ';';
|
||||
header_is_valid := 0;
|
||||
v_len := 0;
|
||||
|
||||
-- De res_ruimte_key waar we het over hebben zit in de refkey van de import
|
||||
SELECT fac_import_refkey
|
||||
INTO v_res_ruimte_key
|
||||
FROM fac_import
|
||||
WHERE fac_import_key = p_import_key;
|
||||
|
||||
-- Syncstate leegmaken, zodat we 'n append kunnen doen.
|
||||
UPDATE res_ruimte
|
||||
SET res_ruimte_syncstate = NULL
|
||||
WHERE res_ruimte_key = v_res_ruimte_key
|
||||
AND res_ruimte_extern_id IS NOT NULL;
|
||||
|
||||
FOR rec1 IN c1 LOOP
|
||||
BEGIN
|
||||
v_newline := rec1.fac_imp_file_line;
|
||||
fac.imp_getfield (v_newline, v_fielddelimitor, v_syncstate);
|
||||
|
||||
IF header_is_valid = 0
|
||||
THEN
|
||||
IF UPPER (TRIM (v_syncstate)) LIKE '%SYNCSTATE%'
|
||||
THEN
|
||||
header_is_valid := 1;
|
||||
--DBMS_OUTPUT.put_line ('goeie header');
|
||||
END IF;
|
||||
ELSE
|
||||
v_errormsg := 'Fout bij update van syncstate';
|
||||
--DBMS_OUTPUT.put_line ('echte data');
|
||||
|
||||
-- Stylesheet knipt syncstates langer dan 4000 karakters op in meerdere delen
|
||||
-- Hier weer aan elkaar plakken.
|
||||
UPDATE res_ruimte
|
||||
SET res_ruimte_syncstate = res_ruimte_syncstate || TRIM(v_syncstate)
|
||||
WHERE res_ruimte_key = v_res_ruimte_key
|
||||
AND res_ruimte_extern_id IS NOT NULL;
|
||||
END IF;
|
||||
END;
|
||||
END LOOP;
|
||||
|
||||
-- Lange syncstate? (>4000) Dat even loggen.
|
||||
v_errormsg := 'Fout bij bepalen lengte syncstate';
|
||||
SELECT LENGTH(res_ruimte_syncstate)
|
||||
INTO v_len
|
||||
FROM res_ruimte
|
||||
WHERE res_ruimte_key = v_res_ruimte_key
|
||||
AND res_ruimte_extern_id IS NOT NULL;
|
||||
|
||||
IF (v_len > 4000)
|
||||
THEN
|
||||
fac.imp_writelog (p_import_key,
|
||||
'I',
|
||||
'Lange syncstate, ' || v_len || ' karakters',
|
||||
'res_ruimte_key: ' || v_res_ruimte_key);
|
||||
END IF;
|
||||
|
||||
EXCEPTION
|
||||
WHEN OTHERS
|
||||
THEN
|
||||
oracle_err_mes := SUBSTR (SQLERRM, 1, 1000);
|
||||
v_errormsg := oracle_err_mes;
|
||||
fac.imp_writelog (p_import_key,
|
||||
'E',
|
||||
v_errormsg,
|
||||
'res_ruimte_key: ' || v_res_ruimte_key);
|
||||
END;
|
||||
/
|
||||
|
||||
CREATE OR REPLACE PROCEDURE kfsg_update_exchsync (p_import_key IN NUMBER)
|
||||
AS
|
||||
BEGIN
|
||||
NULL;
|
||||
END;
|
||||
/
|
||||
*/
|
||||
|
||||
--------------------------------------------------------------------------------------------------
|
||||
------------------------------- RAPPORTAGE-VIEWS -------------------------------------------------
|
||||
@@ -2253,7 +2157,7 @@ AS
|
||||
AND UPPER (p.prs_perslid_email) = UPPER (i.organizer(+))
|
||||
ORDER BY LOWER (p.prs_perslid_email), TRUNC (p.prs_perslid_aanmaak);
|
||||
|
||||
-- AKZA#33693: Overzicht van alle e-mailsadressen in de Exchange-import, die niet in FACILITOR voorkomen
|
||||
-- AKZA#33693: Overzicht van alle e-mailadressen in de Exchange-import, die niet in FACILITOR voorkomen
|
||||
CREATE OR REPLACE VIEW kfsg_v_rap_exchange_missing
|
||||
AS
|
||||
SELECT DISTINCT i.organizer
|
||||
@@ -2367,9 +2271,8 @@ CREATE OR REPLACE VIEW kfsg_v_noti_exchange_check
|
||||
)
|
||||
AS
|
||||
WITH recv AS (SELECT 'PRSINF' code, NULL sender, prs_perslid_key receiver
|
||||
FROM fac_gebruikersgroep
|
||||
--WHERE fac_groep_key = 2 AND prs_perslid_key != 3) -- _Admin en niet _FACILITOR!
|
||||
WHERE fac_groep_key = 2) -- _Admin en ook _FACILITOR!
|
||||
FROM fac_gebruikersgroep
|
||||
WHERE fac_groep_key = 2) -- _Admin
|
||||
SELECT r.code,
|
||||
r.sender,
|
||||
r.receiver,
|
||||
|
||||
Reference in New Issue
Block a user