|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
|
Invité de passage
![]() Inscription : mai 2008 Messages : 3 ![]() |
Bonjour,
Dans E-Business suite (V12), existe-t-il un moyen (simple) pour envoyer un report standard oracle par mail à la personne qui lance le report dans le concurrent program manager ? Existe-t-il une solution qui permette de ne pas devoir développer du spécifique pour chaque report standard oracle que l'on désire envoyer par mail et que l'on peut donc facilement transposer pour les autres reports standards ? D'avance merci pour votre réponse ! Meilleures salutations. |
|
|
00
|
|
|
#2 |
|
Candidat au titre de Membre du Club
![]() Inscription : octobre 2006 Messages : 30 ![]() |
Salut
moi j'utilise un script Shell pour envoyer le report et le log puis je les zippe avec gzip puis j'envoie par SENDMAIL ou MPack si tu a besoin du script complet je peux te l'envoyer. ![]() sinon je ne connais d'autre façon de l'envoi. si tu trouve une autre manière de faire fais moi signe
|
|
|
00
|
|
|
#3 |
|
Invité de passage
![]() Inscription : mai 2008 Messages : 3 ![]() |
![]() Merci pour ta réponse! Tes solutions sont les bienvenues, c'est toujours intéressant de connaitre la vision d'autres personnes sur une problématique donnée que l'on peut résoudre de X façons différentes..... En fait, j'ai trouvé un moyen de procéder, mais cela requiert un peu de configuration.... Comme je ne voulais pas modifier les reports standards, ni l'appel à ces reports, j'ai procédé comme suit : Step 1 Setup Printer Driver System Administrator -> Install -> Printer -> Driver Driver Name : Email PDF User Driver : e-Document Mail Description : This driver used to send output by mail attachament SRW Driver : HPA Driver Method : Program Driver Method Parameters : - Spool File = 'Y' - Standard input = 'N' - Program Name = '$XXFND_TOP/bin/eMailFile.sh' Arguments : $PROFILES$.CONC_REQUEST_ID $APPLCSF/$APPLOUT/*$PROFILES$.CONC_REQUEST_ID.out $PROFILES$.USER_ID $XXFND_TOP/log Step 2 Register Printer : Printer : Mail Output Type : Mail Output Description : File Tansfert by mail Step 3 Printer Types : Type : Mail Output Description : Mail Output Style : Mail Output Transfert Driver Name : Email PDF Step 4 Printer Styles : Style Name : Mail Output Seq : a valid free sequence number User Style : Mail Output Layout - Columns : 132 - Lines : 55 Ensuite j'ai mon programme Unix $XXFND_TOP/bin/eMailFile.sh Pour des raisons de pratiques entreprise, seules les personnes définies comme employé peuvent utiliser cette fonctionalité. Pour ce faire, il faut donc se définir comme employé AVEC ADRESSE MAIL dans avec une responsabilité "HRMS Manager". Step 5 Le shell script Unix est : LOGFILE=$XXFND_TOP/log/Mail_to_requestor_$1.log REQUEST_ID=$1 OUT_FILE=$2 USER_ID=$3 LOG_PATH=$4 #get the name and e-mail address of the requestor unixvar=`sqlplus -s apps/apps <<! set termout off set feedback off set pagesize 0 --# => this code to be used in case requestor is defined as an oracle user only --#SELECT USER_NAME||':'||EMAIL_ADDRESS --#FROM fnd_user --#WHERE user_id=${USER_ID}; --# => this code to be used in case requestor is defined as an oracle user AND as an employee select U.user_name||':'||U.email_address||':'||P.last_name||':'||P.first_name||':'||P.title||':'||P.email_address FROM FND_USER U, PER_PEOPLE_F P where U.employee_id = P.person_id (+) AND U.user_id = ${USER_ID}; exit !` # let's decompose query result into variables count=1 num_of_fields=`echo $unixvar | awk -F: '{print NF}'` echo "unixvar => $unixvar | awk -F: '{print NF}'" >> $LOGFILE echo "num_of_fields= $num_of_fields" >> $LOGFILE while [ $count -lt $num_of_fields+1 ] do test_var=`echo $unixvar | cut -d : -f $count` echo "test_var= $test_var" >> $LOGFILE if [[ $count -eq 1 ]];then P_USER_NAME=$test_var elif [[ $count -eq 2 ]];then P_MAIL_TO_USER=$test_var elif [[ $count -eq 3 ]];then P_LAST_NAME=$test_var elif [[ $count -eq 4 ]];then P_FIRST_NAME=$test_var elif [[ $count -eq 5 ]];then P_TITLE=$test_var elif [[ $count -eq 6 ]];then P_MAIL_TO_EMPLOYEE=$test_var fi count=`expr $count + 1` echo "count= $count" >> $LOGFILE echo "The value is : $test_var" >> $LOGFILE done #set up the sender of the mail => mail is not sent if sender not specific #if mail not sent, check for security reason #(1. sendmail command desactivated # 2. mail smtp restricted # 3. firewall settings) P_SENDER=$(whoami)@Mon_Entreprise.com #P_SENDER="no-reply@Mon_Entreprise.com" #create mail file MAILFILE=${XXFND_TOP}/bin/MailPDF_$1.txt #check if PDF file exists for this output MyCommand="ls $APPLCSF/$APPLOUT/*$REQUEST_ID*.PDF" echo "MyCommand= $MyCommand" >> $LOGFILE MyResult=`eval $MyCommand` echo "MyResult= $MyResult" >> $LOGFILE ATTACHMENT=`basename $MyResult` echo "ATTACHMENT= $ATTACHMENT" >> $LOGFILE touch $MAILFILE #create mail subject depending of the output file name to attach to mail if [[ -n $ATTACHMENT ]];then subject="Mail $ATTACHMENT from Oracle Applications" echo "subject is $subject" >> $LOGFILE echo "Subject : " $subject > $MAILFILE else subject="Mail $REQUEST_ID.txt from Oracle Applications" echo "subject is $subject" >> $LOGFILE echo "Subject : " $subject > $MAILFILE fi #write the french mail body depending of the output file name to attach to mail if [[ -n $ATTACHMENT ]];then echo "Veuillez trouver ci attaché le fichier $ATTACHMENT qui a été généré lors de l'execution du request_id $REQUEST_ID." >> $MAILFILE else echo "Veuillez trouver ci attaché le fichier $REQUEST_ID.txt qui a été généré lors de l'execution du request_id $REQUEST_ID." >> $MAILFILE fi echo "" >> $MAILFILE #affect the recipient of the mail if [[ $P_MAIL_TO_USER != "" ]];then P_MAIL_TO=$P_MAIL_TO_USER elif [[ $P_MAIL_TO_EMPLOYEE != "" ]];then P_MAIL_TO=$P_MAIL_TO_EMPLOYEE else #to be removed !!!!!!!!!! P_MAIL_TO="une_adress_defaut@Mon_Entreprise.com" fi G_SYSDATE=`date '+%Y/%M/%d %H:%M:%S'` #construct the subject of the mail depending of the output file name to attach to mail #sends the mail with the output file as an attachment if [[ -n $ATTACHMENT ]];then subject="Mail $ATTACHMENT from Oracle Applications" echo "subject is $subject" >> $LOGFILE echo "Mailing $subject to $P_MAIL_TO at $G_SYSDATE" >> $LOGFILE (cat $MAILFILE; uuencode $MyResult $ATTACHMENT) | sendmail -f $P_SENDER $P_MAIL_TO else subject="Mail $OUT_FILE_NAME from Oracle Applications" echo "subject is $subject" >> $LOGFILE #echo "Mailing $subject to $P_MAIL_TO at `date`" >> $LOGFILE echo "Mailing $subject to $P_MAIL_TO at $G_SYSDATE" >> $LOGFILE (cat $MAILFILE; uuencode $OUT_FILE $REQUEST_ID.txt) | sendmail -f $P_SENDER $P_MAIL_TO fi #remove the mailfile rm $MAILFILE echo "" >> $LOGFILE echo "Mail sent !" >> $LOGFILE exit 0 /*************************************/ Step 6 Une fois ceci implémenté, dans l'écran "Submit Request" on presse sur le bouton "Options..", puis sous "Print the Output To:" 1) champs "Style" sélectionner "Mail Output" 2) champs "Printer" sélectionne également "Mail Output" Voilà ! ![]() J'espère que ce post pourra également aider d'autres développeurs .... Meilleures salutations V2000 |
|
|
00
|
Copyright © 2000-2012 - www.developpez.com