EMail mit Rechnungsanhang aus Standard-Faktura versenden

Alles rund um die Sprache ABAP®: Funktionsbausteine, Listen, ALV
13 Beiträge • Seite 1 von 1
13 Beiträge Seite 1 von 1

EMail mit Rechnungsanhang aus Standard-Faktura versenden

Beitrag von deejey (Specialist / 422 / 129 / 45 ) »
Ich kenne hauptsächlich den Weg über eine eigene flexible Mailabwicklungslösung incl. Subject, Mailbody, Empfänger, Anhänge usw. Nun habe ich zum ersten mal die Anforderung die SAP-Standardmaillösung über Medum glaube "5 Externes Senden" das hier eingesetzt wird zusätzlich zur Rechnung ein weiteres PDF-Dokument aus einem Serververzeichnis angehängt und mitversandt werden.

Mir ist zwar bekannt, dass dieser Weg Einschränkungen hat, habe aber nie gerafft was genau die Einschränkungen sind.

Kann ein separates Dokument irgendwie (Exit ...) bei der SAP-Standardlösung mit angehängt werden?

gesponsert
Stellenangebote auf ABAPforum.com schalten
kostenfrei für Ausbildungsberufe und Werksstudenten


Re: EMail mit Rechnungsanhang aus Standard-Faktura versenden

Beitrag von Lucyalison (Specialist / 262 / 51 / 26 ) »
Hallo,

ich fürchte da musst Du das Badi BADI_SD_SLS_EMAIL verwenden und in der Methode PROCESS_DOCUMENT Dein Attachment mitgeben.

Viele Grüsse
Nicola

Folgende Benutzer bedankten sich beim Autor Lucyalison für den Beitrag:
deejey


Re: EMail mit Rechnungsanhang aus Standard-Faktura versenden

Beitrag von deejey (Specialist / 422 / 129 / 45 ) »
wow, hab das Teil noch nie gesehen, eben bei mehreren Kunden nachgeschaut, wird nirgendwo eingesetzt, vlt weiß keiner was davon und alle bauen sich eigene Lösungen. Es gibt auch eine Beispielimplementierung als Hilfestellung, was ich bisher gesehen habe ist genau das was ich brauche, muss nur mit dem Kunden klären dass er 1-2 Tage für die Porbiererei rausrückt.

Re: EMail mit Rechnungsanhang aus Standard-Faktura versenden

Beitrag von Lucyalison (Specialist / 262 / 51 / 26 ) »
Ich schicke Dir mal ein Beispiel - ich habe jetzt ein paar Abfrage rausgenommen, die Rückschlüsse auf den Kunden zulassen, ich hoffe es funktioniert trotzdem. Hier wird auch ein Mail-Bodytext inklusive eines Logos mitgegeben. Die Attachments stehen in der t_files.

Code: Alles auswählen.

  
METHOD if_badi_sd_sls_email~process_document.

    DATA:
      v_langu             TYPE ssfrlang,
      t_text              TYPE tsftext,
      s_text              TYPE LINE OF tsftext,
      t_soli              TYPE soli_tab,
      t_solix             TYPE solix_tab,
      s_soli              TYPE soli,
      t_query             TYPE TABLE OF w3query,
      s_query             TYPE w3query,
      t_pick              TYPE TABLE OF w3mime,
      t_html              TYPE TABLE OF w3html,
      v_returncode        TYPE  w3param-ret_code,
      v_contenttype       TYPE  w3param-cont_type,
      v_contentlength     TYPE  w3param-cont_len,
      v_len               TYPE so_obj_len,
      v_subject           TYPE so_obj_des,
      lo_exc_send_req_bcs TYPE REF TO cx_send_req_bcs,
      lo_exc_doc_bcs      TYPE REF TO cx_document_bcs,
      lo_doc_bcs          TYPE REF TO cl_document_bcs,
      lo_send_request     TYPE REF TO cl_bcs,
      lo_mime_helper      TYPE REF TO cl_gbt_multirelated_service,
      t_files             TYPE file_attributes_t,
      s_file              TYPE file_attributes_s,
      v_sent_to_all       TYPE os_boolean.

    CONSTANTS: c_name    TYPE w3_qname      VALUE '_OBJECT_ID',
               c_value   TYPE w3_qvalue     VALUE 'Z_LOGO_MAIL',
               c_mail_zt TYPE tdsfname      VALUE 'ZSD_ZT_MAIL'.

    DATA go_cl_helper_obj TYPE REF TO cl_sd_email_helper .
    CREATE OBJECT go_cl_helper_obj TYPE cl_sd_email_helper.


    TRY.
        lo_send_request = cl_bcs=>create_persistent( ).

        IF is_file_attribs-pdf_file IS NOT INITIAL.
          MOVE is_file_attribs TO s_file.
          IF s_file-iv_file_subject IS INITIAL.
*Append incoing file structure to table type
            APPEND s_file TO t_files.

*Helper class method to convert binary string to PDF.
            CALL METHOD go_cl_helper_obj->add_attachment
              CHANGING
                ct_file_attribs = t_files.

          ENDIF.
        ENDIF.

        CLASS cl_sapuser_bcs DEFINITION LOAD.

        v_langu-langu1 = iv_language.
 
          CALL FUNCTION 'SSFRT_READ_TEXTMODULE'
            EXPORTING
              i_textmodule       = c_mail_zt
              i_languages        = v_langu
            IMPORTING
              o_text             = t_text
            EXCEPTIONS
              error              = 1
              language_not_found = 2
              OTHERS             = 3.
          IF sy-subrc <> 0.
* Implement suitable error handling here
          ENDIF.

        LOOP AT t_text INTO s_text.
          MOVE s_text-tdline TO s_soli-line.
          APPEND s_soli TO t_soli.
        ENDLOOP.

        CREATE OBJECT lo_mime_helper.
        CALL METHOD lo_mime_helper->set_main_html
          EXPORTING
            content     = t_soli
            filename    = 'filenamehtml'
            description = 'descriptionhtml'.

        REFRESH t_query.
        s_query-name = c_name.
        s_query-value = c_value.
        APPEND s_query TO t_query.


        CALL FUNCTION 'WWW_GET_MIME_OBJECT'
          TABLES
            query_string        = t_query
            html                = t_html
            mime                = t_pick
          CHANGING
            return_code         = v_returncode
            content_type        = v_contenttype
            content_length      = v_contentlength
          EXCEPTIONS
            invalid_table       = 1
            parameter_not_found = 2
            OTHERS              = 3.
        IF sy-subrc = 0.
          v_len = v_contentlength.
        ENDIF.

        t_solix[] = t_pick[].
        CALL METHOD lo_mime_helper->add_binary_part
          EXPORTING
            content      = t_solix   " lt_part_bin
            content_type = ''
            length       = v_len
            content_id   = 'content_id_3'.

*To modify email subject
          SET LANGUAGE iv_language.
          CONCATENATE text-001 zcl_ca_forms_enh=>mv_bstkd ')' INTO v_subject.
          SET LANGUAGE sy-langu.

        CALL METHOD cl_document_bcs=>create_from_multirelated
          EXPORTING
            i_subject          = v_subject
            i_multirel_service = lo_mime_helper
          RECEIVING
            result             = lo_doc_bcs.

          LOOP AT t_files  INTO s_file.
*--- Add the document as an attachment
            CALL METHOD lo_doc_bcs->add_attachment
              EXPORTING
                i_attachment_type     = s_file-iv_file_type
                i_attachment_size     = s_file-iv_file_size
                i_attachment_subject  = s_file-iv_file_subject
                i_attachment_language = iv_language
                i_att_content_hex     = s_file-iv_file_content_hex.

          ENDLOOP.

        CALL METHOD io_cl_bcs->set_document
          EXPORTING
            i_document = lo_doc_bcs.

      CATCH cx_send_req_bcs INTO lo_exc_send_req_bcs.
      CATCH cx_document_bcs INTO lo_exc_doc_bcs.
      CATCH cx_root.
        RAISE exc_send_req_bcs.
    ENDTRY.

  ENDMETHOD.

Folgende Benutzer bedankten sich beim Autor Lucyalison für den Beitrag:
deejey



Re: EMail mit Rechnungsanhang aus Standard-Faktura versenden

Beitrag von Tron (Top Expert / 1327 / 35 / 332 ) »
Moin.
Danke Nicola.
Eine Universal Lösung bietet https://abapforum.com/forum/viewtopic.php?f=18&t=24149
mit der option alle nicht vorhandenen features (eigener Email Betreff/mehrere Empfänger ...)
anzubieten.
br Jens

Folgende Benutzer bedankten sich beim Autor Tron für den Beitrag:
deejey

<:: XING-Gruppe Tricktresor::>
Die deutsche Rechtschreibung ist Freeware, du darfst sie kostenlos nutzen –
Aber sie ist nicht Open Source, d. h. du darfst sie nicht verändern oder in veränderter Form veröffentlichen.

Re: EMail mit Rechnungsanhang aus Standard-Faktura versenden

Beitrag von Lucyalison (Specialist / 262 / 51 / 26 ) »
Hallo Jens,

das ist dann aber halt kein Standard ;-)

Viele Grüsse
Nicola

Re: EMail mit Rechnungsanhang aus Standard-Faktura versenden

Beitrag von Tron (Top Expert / 1327 / 35 / 332 ) »
@Nicola.
Was ist denn beim Customizen eines eigenen Druckprogramms, kein Standard ? 😇
gruß Jens
<:: XING-Gruppe Tricktresor::>
Die deutsche Rechtschreibung ist Freeware, du darfst sie kostenlos nutzen –
Aber sie ist nicht Open Source, d. h. du darfst sie nicht verändern oder in veränderter Form veröffentlichen.

Re: EMail mit Rechnungsanhang aus Standard-Faktura versenden

Beitrag von deejey (Specialist / 422 / 129 / 45 ) »
Lucyalison hat geschrieben:
02.03.2022 09:18
Ich schicke Dir mal ein Beispiel - ich habe jetzt ein paar Abfrage rausgenommen, die Rückschlüsse auf den Kunden zulassen, ich hoffe es funktioniert trotzdem. Hier wird auch ein Mail-Bodytext inklusive eines Logos mitgegeben. Die Attachments stehen in der t_files.
Hi Nicola,

es kam wie es kommen musste, ich hatte mit deiner Lösung Probleme, irgendwo in den Tiefen des SAP war irgendwas mit HTML not_allowed, das habe ich dann erstmal aufgegeben. Dann habe ich die SAP-Beispiellösung ausprobiert, und da scheitert es am Hinzufügen des Attachments cl_bcs_document->add_attachment: irgendwo werden Daten aus der Tabelle TSOCX mit Key "RAW" gelesen, die Tabelle ist aber leer und Programm nippelt mit Exception ab.

Zu TSOCX findet sich nix Brauchbares im web, auch nicht im OSS, kannst du bitte mal nachsehen ob sie bei dir Einträge hat bzw. ob "RAW" dabei ist?

Danke und lg
LG

Re: EMail mit Rechnungsanhang aus Standard-Faktura versenden

Beitrag von Lucyalison (Specialist / 262 / 51 / 26 ) »
Oh sorry - ich habe Deine Frage gerade erst gesehen. Was steht in der Tabelle t_files bei Dir? Dort müsste eigentlich das bzw. die PDFs stehen, die Du dem Mail als Attachment beifügen willst. Ich vermute dass die Methode im SAPoffice, also der Tabelle TSOCX nachschaut, wenn t_files leer ist. Ich habe jetzt nochmal in meinem Coding nachgeschaut - da wird aus dem Standard das PDF (is_file_attribs-pdf_file) an die Tabelle übergeben. Mehr passiert da nicht und das funktioniert. Wenn ich Dich richtig verstanden habe, dann würdest Du ja die Rechnung als PDF und noch ein weiteres File aus einem Verzeichnis mitsenden. Letzteres ist in meinem Coding nicht abgebildet.

Viele Grüsse
Nicola

Folgende Benutzer bedankten sich beim Autor Lucyalison für den Beitrag:
deejey


Re: EMail mit Rechnungsanhang aus Standard-Faktura versenden

Beitrag von deejey (Specialist / 422 / 129 / 45 ) »
Hattest du mal nachgesehen ob die Tabelle TSOCX bei dir Einträge enthält?

Re: EMail mit Rechnungsanhang aus Standard-Faktura versenden

Beitrag von Lucyalison (Specialist / 262 / 51 / 26 ) »
Ich bin nicht in mehr bei dem Kunden im Projekt wo ich diese Lösung verwendet hatte und kann dadurch nicht mehr nachschauen was in der Tabelle steht. Ich schliesse aber aus dass es da einen Eintrag gibt; ich könnte mich erinnern wenn ich da etwas im Customizing hätte einrichten müssen.


Seite 1 von 1

Vergleichbare Themen

0
Antw.
1906
Views
2
Antw.
3948
Views
EMail Versenden mit BCS mit Emfangsbestätigung
von Adrian » 04.06.2014 13:37 • Verfasst in ABAP® für Anfänger
5
Antw.
4848
Views
Email mit Anhang versenden
von funky_escobar » 27.08.2007 09:44 • Verfasst in ABAP® Core
5
Antw.
5164
Views
Email mit Exceldatei versenden
von hund555 » 14.07.2020 16:47 • Verfasst in ABAP Objects®
3
Antw.
4241
Views
Spool Auftrag als Email versenden
von dyv » 05.09.2014 09:18 • Verfasst in ABAP® für Anfänger

Über diesen Beitrag



Unterstütze die Community und teile den Beitrag für mehr Leser und Austausch

Aktuelle Forenbeiträge

Hilfe zum FB MATERIAL_MAINTAIN_DARK
vor 23 Stunden von black_adept gelöst 8 / 1734
HR-Entgeltnachweis
Gestern von ChrisB 4 / 2290

Newsletter Anmeldung

Keine Beiträge verpassen! Wöchentlich versenden wir lesenwerte Beiträge aus unserer Community.
Die letzte Ausgabe findest du hier.
Details zum Versandverfahren und zu Ihren Widerrufsmöglichkeiten findest du in unserer Datenschutzerklärung.

Aktuelle Forenbeiträge

Hilfe zum FB MATERIAL_MAINTAIN_DARK
vor 23 Stunden von black_adept gelöst 8 / 1734
HR-Entgeltnachweis
Gestern von ChrisB 4 / 2290

Unbeantwortete Forenbeiträge

Export von Spools in XLSX
vor 4 Tagen von abapamateur 1 / 265
Feldberechnung ME32K
vor einer Woche von ZF_SAPler 1 / 852
MS-Word als Editor
letzen Monat von tekko 1 / 4365