In dit voorbeeld wordt aan de hand van ISP een nieuwsbrief samengesteld in de volgende stappen:
•Maak een profieloptie met daarin de layout van de nieuwsbrief.
•Maak een profieloptie met daarin de ISP.
•Verstuur nieuwsbrief: selecteer de gebruikers en maak e-mails aan voor de nieuwsbrief.
Merk op dat het mogelijk is om beide profielopties tot één profieloptie samen te voegen.
Het uiteindelijke resultaat is een nieuwsbrief in het volgende formaat:
Deze lokale profieloptie bevat de opmaak van de nieuwsbrief. De teksten ‘:PAYLOAD’ en ‘:FOOTER’ worden vervangen door de boodschap:
Deze lokale profieloptie bevat de ISP om de boodschap samen te stellen:
De code is:
<%@ page language="ISP" %>
<%
declare
l_gbr_aanhef varchar2(500);
l_template clob;
l_payload clob;
l_tak_found boolean;
begin
l_template := bubs#profiel_opties.get_value('xxinet-html-nieuwsbrief-template');
l_payload := '';
--
-- Determine greeting.
--
select 'Geachte '
|| case
when gbr.gbr_geslacht_ind = 'M'
then 'heer '
when gbr.gbr_geslacht_ind = ‘V’
then 'mevrouw '
else ''
end
|| gbr_naam
into l_gbr_aanhef
from bubs_gebruikers_v gbr
where gbr.gbr_id = l_parameters_map('GBR_ID')
;
l_payload := l_payload || l_gbr_aanhef || ‘,’;
l_payload := l_payload || '<br/>';
l_payload := l_payload || 'De processen die door u gemeld zijn:';
l_payload := l_payload || '<ul>';
l_tak_found := false;
--
for r_tak in
( select tak.code tak_code
, tak.omschrijving tak_omschrijving
from bubs_processen tak
where tak.gbr_id_melder = l_parameters_map('GBR_ID')
order
by tak.id desc
)
loop
l_payload := l_payload || '<li>Proces ' || r_tak.tak_code || ': ' || r_tak.tak_omschrijving || '</li>';
end loop;
--
if not l_tak_found
then
l_payload := l_payload || '<li>Geen meldingen.</li>';
end if;
--
l_payload := l_payload || '</ul>';
--
-- Merge both.
--
l_template := replace(l_template, ':PAYLOAD', l_payload);
l_template := replace
( l_template
, ':FOOTER'
, 'Deze e-mail is verzonden op '
|| to_char(sysdate, 'DD-MM-YYYY HH24:MI:SS')
|| ' aan '
|| l_parameters_map('GBR_EMAIL_ADRES')
|| '. Klik <a href="http://site/afmelden?GBR_ID='
|| to_char(l_parameters_map('GBR_ID'))
|| '">hier</a> om af te melden.'
);
itgen_isp.print_clob(l_template);
end;
%>
<!-- Aangemaakt met Invantive Estate -->
Na deze eenmalige activiteiten is het versturen van de nieuwsbrief eenvoudig met bijvoorbeeld:
begin
--
-- Log on to Invantive Estate
--
bubs_session.set_session_info
( 'toad.sql'
, 'install'
, 'system'
, 'Newsletter'
, coalesce(sys_context('userenv', 'ip_address'), '?')
, sys_context('userenv', 'host')
, 'n/a'
, 'TOAD ' || to_char(sysdate, 'YYYYMMDDHH24MISS')
);
end;
/
insert into bubs_berichten_v
( brt_afgehandeld_vlag
, brt_afzender
, brt_afzender_naam
, brt_boodschap_l
, brt_mime_type
, brt_onderwerp
, brt_ontvanger
, brt_ontvanger_naam
, brt_ref_tabel
, brt_ref_sleutel
, brt_vertalen_vlag
)
select 'N'
, 'info@acme.com'
, 'ACME'
, itgen_isp.run
( bubs#profiel_opties.get_value('xxacme-html-nieuwsbrief-isp')
, 'GBR_ID=' || itgen_url.escape_cached(to_char(gbr.gbr_id), 'Y')
|| '&' || 'GBR_NAAM=' || itgen_url.escape_cached(gbr.gbr_naam, 'Y')
|| '&' || 'GBR_EMAIL_ADRES=' || itgen_url.escape_cached(gbr.gbr_email_adres, 'Y')
)
, 'text/html'
, 'ACME nieuwsbrief november 2009'
, gbr.gbr_emil_adres
, gbr.gbr_naam
, 'GBR'
, gbr.gbr_id
, 'Y'
from bubs_gebruikers_v gbr
where 1=1
and gbr.gbr_email_adres is not null
/
commit
/