Modernisation Oracle Forms

Comment envoyer un courriel depuis Forms avec Run_report_object et web.show_document

S'APPLIQUE À :

Oracle Reports Developer - Version 9.0.4.0 à 11.1.1.6.0 [Version Oracle9i à 11g]
Oracle Forms - Version 9.0.4.0.19 à 11.1.1.6.0 [Version 9.0.4.0 à 11g]
Les informations de ce document s'appliquent à toutes les plateformes.

OBJECTIF

Comment envoyer un courriel depuis Forms avec Run_Report_Object, à l'aide d'une liste de paramètres, et avec web.show_document, en utilisant des valeurs de la forme pour remplir Subject, To, From, CC et Bcc.

On suppose que le serveur Reports est déjà configuré pour utiliser un serveur de messagerie au moyen de son fichier CONF, p. ex. :

<pluginParam name="mailServer">mail.oracle.com</pluginParam>

CORRECTIF

Les instructions ci-dessous permettent de créer une forme simple avec des champs servant à envoyer un courriel.

Les champs créés sont To, From, Subject, CC et Bcc.

1. Créez une forme avec un bloc de contrôle et des champs

p. ex.

Nom du bloc :email

noms des champs : To, From, CC, BCC, Subject, reportserver

2. Créez deux boutons :

p. ex.

Send email via run_report_object

Send email via web.show_document.

Créez dans la forme un nœud de rapport qui contient un rapport ; voir :
Note 207396.1 How to Run Reports From Forms 9i / 10g Using RUN_REPORT_OBJECT?:

Créez des déclencheurs when-button-pressed sur les boutons

3. Pour le bouton "Send email via run_report_object"

Ajoutez le code

--Ce code envoie directement le rapport par EMAIL"

declare
v_rep varchar2(1000):='a';
v_rep_status varchar2(1000):='a';
v_url varchar2(1000):='';
--v_rep_server varchar2(1000):='';
repid REPORT_OBJECT;
thelist paramlist;
begin

thelist := get_parameter_list('rep_paramlist'); 
if not id_null(thelist) then 
destroy_parameter_list(thelist); 
end if; 
thelist := CREATE_PARAMETER_LIST('rep_paramlist');

ADD_PARAMETER(thelist, 'FROM',TEXT_PARAMETER, :email.from);
ADD_PARAMETER(thelist, 'BCC',TEXT_PARAMETER, :email.bcc);
ADD_PARAMETER(thelist, 'CC',TEXT_PARAMETER, :email.cc);
ADD_PARAMETER(thelist, 'SUBJECT',TEXT_PARAMETER, :email.subject);
repid := find_report_object('REPORT30');
set_report_object_property(repid,REPORT_SERVER,:email.repserver);
--v_rep_server := get_report_object_property(repid,report_server);
set_report_object_property(repid,REPORT_DESTYPE,MAIL);
set_report_object_property(repid,REPORT_DESFORMAT,'html');
set_report_object_property(repid,REPORT_DESNAME,:email.too);
v_rep:=run_report_object(repid,thelist);
end;

4. Pour le bouton "Send email via web.show_document"

Ajoutez le code :

--This trigger calls the reports server directly without using run_report_object
declare
vc_url varchar2(1000):='a';
begin
vc_url:=('/reports/rwservlet?server='||:email.repserver||'&report=test.rdf&destype=mail&desformat=html&desname='||:email.too||'&from='||:email.from||'&subject='||:email.subject||'&cc='||:email.cc||'&bcc='||:email.bcc);
web.show_document(vc_url,'_blank');
end;