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

SAP Discussion :

Envoi de mail à partir d'une BADI


Sujet :

SAP

  1. #1
    Candidat au Club
    Inscrit en
    Mars 2010
    Messages
    2
    Détails du profil
    Informations forums :
    Inscription : Mars 2010
    Messages : 2
    Points : 2
    Points
    2
    Par défaut Envoi de mail à partir d'une BADI
    Voila j'ai implémenté une BADI pour l'envoi d'émails automatique des lors qu'un ordre de transport est importer dans un système.

    la méthode utilisé est : FEEDBACK_AFTER_IMPORT
    interface: IF_EX_CTS_IMPORT_FEEDBACK

    j'ai bien mis un COMMIT WORK à la fin de la méthode mais rien y fait j'ai un code retour 9 sur mon module fonction SO_OBJECT_SEND. Ce code signifie: OBJECT_NOT_SENT .

    MERCI D'AVANCE POUR VOTRE AIDE.

    VOICI LE CODE DE LA BADI :


    method IF_EX_CTS_IMPORT_FEEDBACK~FEEDBACK_AFTER_IMPORT.

    ************************************************************************
    * Type Pools *
    ************************************************************************

    TYPE-POOLS: trwbo. "Required for the transport header(text)


    ************************************************************************
    * Variables *
    ************************************************************************


    DATA: WA_RECEIVER_LIST1 type SOOS1,
    WA_RECEIVER_LIST2 type SOMLRECI1,
    wa_SODOCCHGI1 type SODOCCHGI1.

    DATA: l_recipient TYPE string, "Recipients Work Area
    * lt_tab_soli TYPE soli_tab, "Body
    lt_tab_soli TYPE table of soli, "Body
    X_OBJHEAD TYPE soli_tab,
    WA_lt_tab_soli TYPE soli_tab,
    lt_result TYPE TABLE OF btcxpm, "Mail Result
    l_subject TYPE char255, "Temp Holder for Subject
    l_body TYPE char255, "Temp Holder for Body
    * lt_recipients TYPE TABLE OF zjobmail, "Recipient Table
    I_RECEIVER_LIST TYPE TABLE OF SOOS1 INITIAL SIZE 1,
    WA_RECEIVER_LIST TYPE SOOS1,
    receiver_list TYPE TABLE OF SOOS1 ,
    RECEIVER_LIST2 type TABLE OF SOMLRECI1,
    ls_request_header TYPE trwbo_request,
    test(50) type c,
    P_PATH type rlgrap-filename VALUE '/tmp/toto.txt', "Transport
    X_OBJCONT TYPE SOLI_TAB,
    SODOCCHGI1 type TABLE OF SODOCCHGI1.


    DATA: X_OBJECT_TYPE TYPE SOOD-OBJTP,
    WA_OBJECT_HD_CHANGE TYPE SOOD1.




    ************************************************************************
    * Field Symbols *
    ************************************************************************

    FIELD-SYMBOLS:
    *<fs_recipients> TYPE zjobmail, "Recipient Work Area
    <fs_requests> TYPE scts_imp. "Transport Work Area

    ************************************************************************
    * Initialize Variables *
    ************************************************************************
    * CLEAR: lt_tab_soli,
    * ls_request_header.
    ** lt_recipients.
    * REFRESH: lt_tab_soli.
    * lt_recipients.

    ************************************************************************
    * Main Program *
    ************************************************************************




    * Loop through the transports in the request table available in the BADI
    LOOP AT requests ASSIGNING <fs_requests>.

    * Get transport Text
    CALL FUNCTION 'TR_READ_REQUEST'
    EXPORTING
    iv_read_e07t = 'X'
    iv_trkorr = <fs_requests>-trkorr
    CHANGING
    cs_request = ls_request_header.

    * Build the body of the message


    CONCATENATE 'Transport:' <fs_requests>-trkorr INTO l_body SEPARATED
    BY space.
    APPEND l_body TO lt_tab_soli.
    CLEAR l_body.

    CONCATENATE 'Transport Text:' ls_request_header-h-as4text INTO
    l_body SEPARATED BY space.
    APPEND l_body TO lt_tab_soli.
    CLEAR l_body.

    APPEND INITIAL LINE TO lt_tab_soli.

    CONCATENATE 'Target System:' <fs_requests>-tarsystem INTO l_body
    SEPARATED BY space.
    APPEND l_body TO lt_tab_soli.
    CLEAR l_body.

    CONCATENATE 'Target Client:' <fs_requests>-tarclient INTO l_body
    SEPARATED BY space.
    APPEND l_body TO lt_tab_soli.
    CLEAR l_body.

    CONCATENATE 'Transport Owner:' <fs_requests>-owner INTO l_body
    SEPARATED BY space.
    APPEND l_body TO lt_tab_soli.
    CLEAR l_body.


    CONCATENATE 'Transport Completed With Return Code'
    <fs_requests>-retcode INTO l_body SEPARATED BY space.
    APPEND l_body TO lt_tab_soli.
    CLEAR l_body.



    WA_OBJECT_HD_CHANGE-OBJDES = 'ca marche hello world'.

    * General data
    WA_OBJECT_HD_CHANGE-OBJLA = SY-LANGU.
    * Mail type
    WA_OBJECT_HD_CHANGE-OBJSNS = 'F'.
    * Mail priority
    WA_OBJECT_HD_CHANGE-OBJPRI = '1'.
    * Receivers
    WA_RECEIVER_LIST-RECEXTNAM = 'FREDERIC.DECHANDAL-EXT@SANOFI-AVENTIS'.

    WA_RECEIVER_LIST-RECESC = 'E'.
    * WA_RECEIVER_LIST-rectp = 'EXT'.
    WA_RECEIVER_LIST-SNDART = 'INT'.
    WA_RECEIVER_LIST-SNDPRI = '1'.
    * Flag pour les accusés de réception
    WA_RECEIVER_LIST-DELIVER = 'X'.
    WA_RECEIVER_LIST-NOT_DELI = 'X'.
    WA_RECEIVER_LIST-MAILSTATUS = 'E'.
    APPEND WA_RECEIVER_LIST TO I_RECEIVER_LIST.

    CALL FUNCTION 'SO_OBJECT_SEND'
    EXPORTING
    OBJECT_HD_CHANGE = WA_OBJECT_HD_CHANGE
    OBJECT_TYPE = 'RAW'
    OUTBOX_FLAG = 'X'
    TABLES
    OBJCONT = lt_tab_soli
    RECEIVERS = I_RECEIVER_LIST
    EXCEPTIONS
    ACTIVE_USER_NOT_EXIST = 1
    COMMUNICATION_FAILURE = 2
    COMPONENT_NOT_AVAILABLE = 3
    FOLDER_NOT_EXIST = 4
    FOLDER_NO_AUTHORIZATION = 5
    FORWARDER_NOT_EXIST = 6
    NOTE_NOT_EXIST = 7
    OBJECT_NOT_EXIST = 8
    OBJECT_NOT_SENT = 9
    OBJECT_NO_AUTHORIZATION = 10
    OBJECT_TYPE_NOT_EXIST = 11
    OPERATION_NO_AUTHORIZATION = 12
    OWNER_NOT_EXIST = 13
    PARAMETER_ERROR = 14
    SUBSTITUTE_NOT_ACTIVE = 15
    SUBSTITUTE_NOT_DEFINED = 16
    SYSTEM_FAILURE = 17
    TOO_MUCH_RECEIVERS = 18
    USER_NOT_EXIST = 19
    ORIGINATOR_NOT_EXIST = 20
    X_ERROR = 21.

    MOVE SY-SUBRC TO TEST.

    COMMIT WORK.














    OPEN DATASET P_PATH FOR OUTPUT IN TEXT MODE .

    TRANSFER TEST TO P_PATH.

    LOOP AT lt_tab_soli INTO l_body .
    TRANSFER l_body TO P_PATH.
    ENDLOOP.

    LOOP AT I_RECEIVER_LIST INTO l_body .
    TRANSFER l_body TO P_PATH.
    ENDLOOP.

    CLOSE DATASET P_PATH.


    CLEAR: WA_RECEIVER_LIST.
    REFRESH: I_RECEIVER_LIST, lt_tab_soli.


    ENDLOOP. "Transports


    UNASSIGN <fs_requests>.
    * UNASSIGN <fs_recipients>.


    endmethod.

  2. #2
    Membre averti
    Inscrit en
    Octobre 2007
    Messages
    313
    Détails du profil
    Informations forums :
    Inscription : Octobre 2007
    Messages : 313
    Points : 375
    Points
    375
    Par défaut
    aie,
    as tu analysé l'impact de mettre un commit dans ta badi?
    ce n'est vraiment pas recommandé

    sinon as tu essayé ton code dans un programme de test?
    est ce que la paramétrie de Sap connect est OK? (transaction SCOT)
    vois tu ton message en erreur dans la transaction SCOT?

  3. #3
    Candidat au Club
    Inscrit en
    Mars 2010
    Messages
    2
    Détails du profil
    Informations forums :
    Inscription : Mars 2010
    Messages : 2
    Points : 2
    Points
    2
    Par défaut
    en le mettant dans un programme spécifique ca marche nickel, ca créé des mails dans la scot et ca les envois normal. mais c'est quand le flux passe par la badi que cette derniers ne veut rien créer en scot.
    Merci encor

  4. #4
    Membre averti
    Inscrit en
    Octobre 2007
    Messages
    313
    Détails du profil
    Informations forums :
    Inscription : Octobre 2007
    Messages : 313
    Points : 375
    Points
    375
    Par défaut
    Bonjour,

    désolé mais je ne vois pas
    soit tu debugges pour voire pourquoi la fct ne marche pas
    soit tu externalise dans une fonction en background ton envoi de mail

Discussions similaires

  1. Envoi de mail à partir d'une adresse yahoo
    Par kryptong dans le forum Développement Web avec .NET
    Réponses: 1
    Dernier message: 09/03/2013, 20h25
  2. Envoi de mails à partir d'une page web
    Par Torx26 dans le forum Balisage (X)HTML et validation W3C
    Réponses: 12
    Dernier message: 20/05/2012, 14h42
  3. Envoi de mails à partir d'un multifonction dans une messagerie
    Par valoche51_2 dans le forum Windows Serveur
    Réponses: 2
    Dernier message: 04/06/2008, 22h08
  4. [C++/CLI] [.NET 2.0] Envoi de mail à partir d'une application
    Par akrodev dans le forum Framework .NET
    Réponses: 1
    Dernier message: 09/10/2006, 13h42
  5. envoi automatisé de mails à partir d'une base postgresql
    Par youn608 dans le forum PostgreSQL
    Réponses: 11
    Dernier message: 15/02/2005, 09h06

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