IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

E-Business Oracle Discussion :

Envoyer un report standard par mail


Sujet :

E-Business Oracle

  1. #1
    Candidat au Club
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 3
    Points : 2
    Points
    2
    Par défaut Envoyer un report standard par mail
    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.

  2. #2
    Membre à l'essai
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    29
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 29
    Points : 24
    Points
    24
    Par défaut envoi de report
    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

  3. #3
    Candidat au Club
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 3
    Points : 2
    Points
    2
    Par défaut


    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

Discussions similaires

  1. [Mail] envoyer ma page courante par mail
    Par karimphp dans le forum Langage
    Réponses: 5
    Dernier message: 09/06/2006, 13h09
  2. [VBA-W]Envoyer le document actif par mail
    Par zemeilleurofgreg dans le forum VBA Word
    Réponses: 6
    Dernier message: 13/04/2006, 12h59
  3. [Mail] envoyer une page web par mail
    Par Zen_Fou dans le forum Langage
    Réponses: 8
    Dernier message: 06/04/2006, 18h06
  4. [Mail] Envoyé des caractères spéciaux par mail
    Par Oberown dans le forum Langage
    Réponses: 1
    Dernier message: 17/03/2006, 00h55
  5. Envoyer plusieurs états filtrés par mail...
    Par Thierry'' dans le forum IHM
    Réponses: 8
    Dernier message: 20/09/2005, 13h02

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo