Nachrichtensteuerung: Bestellung via eMail ersenden (ME21N)

Nachrichtensteuerung: Bestellung via eMail ersenden (ME21N)

Postby Marah983 » Thu Dec 11, 2008 3:58 pm

Hallo zusammen,

aus der ME21N ist es ja möglich die Bestellung mittels eMail zu versenden. Im Customizing ist für das externe Senden das Programm SAPFM06P, Form-Routine ENTRY_NEU und Formular MEDRUCK hinterlegt. Durch diese Standardeinstellungen wird die Bestellung als PDF-Anhang in einer eMail verschickt. Soweit so gut.

Die Anforderung sieht nun wie folgt aus: es soll ein Bestell-Avis erzeugt werden. Der Lieferant erhält eine eMail mit angepassten Betreff und Inhalt. Die Mail enthält nur Text, es wird kein PDF mit angehangen.

Leider finde ich nicht die Stelle wo die eMail aufgebaut wird bzw. das PDF angehangen wird. Kann ich mich irgendwo mit einem Enhancement hinstellen, oder muss ich gleich das ganze Programm SAPFM06P kopieren? Dabei bleibt jedoch immernoch die Frage wo die Mail aufgebaut und verschickt wird.

Ich hoffe mir kann diesbezgl. jemand weiterhelfen!

Dies ist der Code der Standard-Formroutine. Versendet der Funktionsbaustein ME_PRINT_PO bereits die Mail??
Code: [Select all] [Expand/Collapse] [Download] (Untitled.txt)
  1. form entry_neu using ent_retco ent_screen.
  2.   data: l_druvo like t166k-druvo,
  3.         l_nast  like nast,
  4.         l_from_memory,
  5.         l_doc   type meein_purchase_doc_print.
  6.  
  7.   clear ent_retco.
  8.   if nast-aende eq space.
  9.     l_druvo = '1'.
  10.   else.
  11.     l_druvo = '2'.
  12.   endif.
  13.  
  14.   call function 'ME_READ_PO_FOR_PRINTING'
  15.        exporting
  16.             ix_nast        = nast
  17.             ix_screen      = ent_screen
  18.        importing
  19.             ex_retco       = ent_retco
  20.             ex_nast        = l_nast
  21.             doc            = l_doc
  22.        changing
  23.             cx_druvo       = l_druvo
  24.             cx_from_memory = l_from_memory.
  25.   check ent_retco eq 0.
  26.   call function 'ME_PRINT_PO'
  27.        exporting
  28.             ix_nast        = l_nast
  29.             ix_druvo       = l_druvo
  30.             doc            = l_doc
  31.             ix_screen      = ent_screen
  32.             ix_from_memory = l_from_memory
  33.             ix_toa_dara    = toa_dara
  34.             ix_arc_params  = arc_params
  35.             ix_fonam       = tnapr-fonam          "HW 214570
  36.        importing
  37.             ex_retco       = ent_retco.
  38.  
GeSHi ©


Vielen Dank und viele Grüße,
Florian
Marah983
.
.
 
Posts: 9
Joined: Thu Aug 14, 2008 11:37 am

Postby Jamila5201 » Thu Dec 11, 2008 7:25 pm

Hallo, nur ein kleiner Hinweis: Die PDF Datei wird im Prinzip erst in der Schnittstelle SCOT/SOST erzeugt.
Jamila5201
...
...
 
Posts: 179
Joined: Thu Dec 05, 2002 10:55 am

Postby Tron » Fri Dec 12, 2008 2:06 pm

Moin,
lies doch mal die SAP-Hinweise 786847 ( Nachrichtenfindung und Druck ) und
vor allem Sapnote 191470 (Bestellung als Email).

gruß Tron
Tron
.....
.....
 
Posts: 1112
Joined: Sat Aug 04, 2007 10:21 pm

Postby Marah983 » Fri Dec 12, 2008 5:35 pm

Hallo!

Danke für die Antworten, aber leider bin ich noch keinen Schritt weiter. Die SAP beschreibt in Hinweis 786847 das sie Kopien des Programms SAPFM06P bzw. Funktionsbausteins ME_PRINT_PO anlegen und diese anpassen. Dabei ist auch die Rede von einer neuen Versenderroutine am Ende des Programms, in welcher die E-Mail aufbereitet wird. D.h., es müsste bereits irgendwo eine Routine geben oder zumindest die Informationen für die E-Mail (Empfänger, etc). Ich habe den Code debugged, aber leider nichts dergleichen gefunden.

Leider kenne ich mich auch mit der Nachrichtensteuerung nicht aus. Werde heute Abend mal versuchen dies grundsätzlich zu verstehen.

Für weitere Tips wäre ich aber wirklich dankbar!

@Wolfgang: Meinst du die komplette Mail wird dort erst aufbereitet, d.h. wenn ich Einfluss auch Inhalt, Attachents (löschen) und Empfänger haben möchte muss ich mich dort irgendwo reinstellen??
Viele Grüße und ein schönes Wochenende!
Marah983
.
.
 
Posts: 9
Joined: Thu Aug 14, 2008 11:37 am

Postby Jamila5201 » Fri Dec 12, 2008 8:51 pm

Hallo ich hab's mal aus der Einnerung zusammen geschrieben:

Nachrichtenart einstellen:
Z-B. NEU
Ersetzung der Textsymbole - SAPMM06E - TEXT_SYMBOL_REPLACE
Kommunikationsstrategie eintragen (separates Customizing)
Mailtitel und -Texte - z.B. &EKKO-EBELN& als Titel
Verarbeitungsroutien - Medium 5 muß möglich sein z.B. SAPFM06P mit ENTRY_NEU mit MEDRUCK
Partnerrollen ebenfalls für Medium 5

Schnittstelle (SCOT):
Knoten für Mail (Adreßtyp Internet) muß definiert sein (z.B. INT)
RFC Destination für SMTP Server definiern und zuordnen
irgendwo kann man dann die Konvertierungen einstellen von OTF nach PDF, von SCR nach PDF
und man muß noch zuordnen, welche Formate der Knoten veträgt
Jamila5201
...
...
 
Posts: 179
Joined: Thu Dec 05, 2002 10:55 am

Postby Marah983 » Tue Dec 16, 2008 5:25 pm

Hi!

Danke für eure Antworten! Ich bin schon mal einen Schritt weiter. Ich kann den Mailinhalt mit einem beliebigen text versehen. Ich habe dazu eine Kopie von ENTRY_NEU erstellt, in welcher ich den Mailtext aufbaue. Da ich ihn dort noch nicht in die Mail schreiben kann, lege ich ihn mir der Einfachheit in einer statischen Klasse ab. Diese Klasse wird später in einem Enhancement verwendet, welches sich im Funktionsbaustein SBCOMS_SEND_REQUEST_CREATE befindet. Dort kann ich den Mailtext der Email anpassen.

Jetzt müsste ich noch die Routine TEXT_SYMBOL_REPLACE im Programm SAPMM06E ändern. Egal ob ich eine neue anlege oder die Standardroutine verwende, keine der beiden wird vom System (SAP Basis 700, Release 0014) aufgerufen. Ich frage mich nur woran das liegen könnte?

Ich habe versucht was im OSS zu finden, leider hat keiner der Hinweise die ich gefunden habe wirklich weitergeholfen. Das Customizing sollte meiner Meinung nach jedoch sauber sein.
Marah983
.
.
 
Posts: 9
Joined: Thu Aug 14, 2008 11:37 am

Postby Jamila5201 » Wed Dec 17, 2008 6:28 pm

Dumme Frage von mir: Du denkst daran, daß das Ding im Hintergrund durchlaufen wird? Also ggfs. Verbuchungsdebugging aktivieren?
Jamila5201
...
...
 
Posts: 179
Joined: Thu Dec 05, 2002 10:55 am

Postby Tron » Wed Dec 17, 2008 7:27 pm

Moin ,
das Du nicht debuggen kannst liegt meiner Meinung an:
http://bb1.gate2app.com/viewtopic.php?t ... highlight=

Im Funktionsbaustein ME_READ_PO_FOR_PRINTING

Code: [Select all] [Expand/Collapse] [Download] (Untitled.txt)
  1. * Refresh internal partner tables,
  2. * not in PREVIEW case,
  3. * not in case the message is sent immediately
  4.   IF ix_screen EQ space AND ex_nast-vsztp NE 4.             "622813
  5.     CALL FUNCTION 'MM_REFRESH_PARTNERS'.
  6.   ENDIF.
  7.  
  8. * Witch tables will be filled
  9.   def_break '051 - Printing '.                              "#EC *
  10.  
  11. * docu: Daten beschaffen
  12.   PERFORM read_data_from_db TABLES doc-xekpo doc-xeket
  13.                                    doc-xekek doc-xekeh doc-xekkn
  14.                             USING  ix_nast
  15.                                    cx_druvo
  16.                             CHANGING cx_from_memory doc-xtkomv
  17.                                                     doc-xekko ex_retco.
  18.  
GeSHi ©

das Makro def_break '051 - Printing '.
verhindert jegliches Debugging :evil:


Hier die Makro Definition
Code: [Select all] [Expand/Collapse] [Download] (Untitled.txt)
  1. * Definition of the debug class to access components
  2. CLASS cl_mmme_debug_control DEFINITION LOAD.
  3.  
  4. * Macro with the intelligent break-point (see note 316105).
  5. DEFINE def_break.
  6.   if cl_mmme_debug_control=>gf_active = 'X'.
  7. *   Save SY-status as the coding within CHECK may manipulate it
  8.     cl_mmme_debug_control=>gs_sy = sy.
  9.     if cl_mmme_debug_control=>check( &1 ) = 'X'.
  10. *     Active break-point. Restore SY ***before***, so that on the
  11. *     point the fields can be evaluated and manipulated.
  12.       sy = cl_mmme_debug_control=>gs_sy.
  13.       break-point.
  14.     else.
  15.       sy = cl_mmme_debug_control=>gs_sy.
  16.     endif.
  17.   endif.
  18.  
GeSHi ©


(hat jemand mal ein vernüftiges Druckprogramm für mich ?)
gruß Tron
Tron
.....
.....
 
Posts: 1112
Joined: Sat Aug 04, 2007 10:21 pm

MEDRUCK PDF GOS EMAIL

Postby Tron » Sat Mar 28, 2009 6:58 pm

Moin,
ich weiss nicht, ob Deine Anfrage noch aktuell ist, aber folgendes:
Ich hatte vor kurzem die Anforderung eine Bestellung als PDF, mit allen Anlagen der Bestellung, via Email an den Einkäufer zu versenden.
Nachdem ich mir die Funktionsgruppe MEDRUCK noch einmal angeschaut habe :shock: ,
dachte ich sofort an diesen Beitrag. Ich habe nun eine Lösung, die OHNE Kopie der besagten FUGR auskommt. Zudem kann man das "Progrämmchen" nach ein paar Änderungen auch für jede andere Nachrichtenart verwenden. Es wird sowohl Sapscript, als auch Smartforms unterstützt. Viel Spass damit.
Code: [Select all] [Expand/Collapse] [Download] (Untitled.txt)
  1. *&---------------------------------------------------------------------*
  2. *& Subroutinepool YMEDRUCK_EMAIL_GOS by TRON                           *
  3. *&                                                                     *
  4. *&---------------------------------------------------------------------*
  5. *&                                                                     *
  6. *&                                                                     *
  7. *&---------------------------------------------------------------------*
  8.  
  9.  
  10. * WARNING : NO POPUPS - NO COMMIT WORK IN HERE !!!!!!!!!!!!!!!!!!!!!!!!!
  11.  
  12.  
  13. * How to do (i left some TODO-comments)
  14. * 1.) Change/verify the "PERFORM" so the "TRUE" Print Routine is called
  15. *     (only needed if you have an own ME_DRUCK) just look table TNAPR
  16. * 2.) Change the Receiver Email-adress.
  17. * 3.) Activate YMEDRUCK_EMAIL_GOS :-)
  18. * 4.) Customize (Tc NACE) the message-Type "NEU" and enter
  19. *     "YMEDRUCK_EMAIL_GOS" as Program and "ENTRY_NEU" as FORM
  20.  
  21. * How this works (short version)
  22. * by customizing, the original Print routine is substituted by this one
  23. * to retrieve the SpoolId, which we need for PDF generation and email.
  24. * YMEDRUCK_EMAIL_GOS calls the "Original" Print routine as a subroutine.
  25. * After this step the Program retrieves the Spool created.
  26. * Then the OTF is converted into PDF. In the third step
  27. * YMEDRUCK_EMAIL_GOS collects all Attachments of the Purchase Order and
  28. * sends everything to the assigned Email-Address..vamos
  29.  
  30.  
  31. REPORT  ymedruck_email_gos .
  32. DATA: retcode   LIKE sy-subrc.         "Returncode
  33. DATA: xscreen(1) TYPE c.               "Output on printer or screen
  34. TABLES: nast,                          "Messages
  35.         tnapr.                         "Programs & Forms
  36.  
  37. *&---------------------------------------------------------------------*
  38. *&      Form  ENTRY
  39. *&---------------------------------------------------------------------*
  40. *       text
  41. *----------------------------------------------------------------------*
  42. *      -->RETURN_CODE  text
  43. *      -->US_SCREEN    text
  44. *----------------------------------------------------------------------*
  45. FORM entry_neu USING return_code TYPE i
  46.                  us_screen TYPE c.
  47.  
  48.   FIELD-SYMBOLS: <f> TYPE itcpp,
  49.                  <p> TYPE  ssfcrescl.
  50.  
  51.   DATA pgnam TYPE na_pgnam." Programname
  52.   DATA ronam TYPE na_ronam."Formname
  53.   DATA fm_name TYPE rs38l_fnam. "genr.Druckbaustein
  54.   DATA lv_vec(80).
  55.   DATA spoolid TYPE rspoid.
  56.  
  57.   CLEAR retcode.
  58.   xscreen = us_screen.
  59.  
  60. *              Call the "Original" Printroutine
  61. ************************
  62. * @@@@ TODO !!!!!
  63. ************************
  64. *-real program---------+
  65. *                      |
  66. *-real Form---+        |
  67. *             |        |
  68.   PERFORM entry_neu(sapfm06p) USING return_code us_screen.
  69.  
  70. * Try Sapscript (take from mother)
  71.   ASSIGN ('(SAPLSTXC)ITCPP') TO <f>.
  72.   IF sy-subrc = 0 AND
  73.      NOT <f>-tdspoolid IS INITIAL AND
  74.      us_screen IS INITIAL.
  75.  
  76.     PERFORM processing USING <f>-tdspoolid.
  77.     UNASSIGN <f>.
  78.  
  79.   ELSE.
  80. * Try Smartforms (take from mother)
  81.     CALL FUNCTION 'SSF_FUNCTION_MODULE_NAME'
  82.       EXPORTING
  83.         formname           = tnapr-sform
  84.       IMPORTING
  85.         fm_name            = fm_name
  86.       EXCEPTIONS
  87.         no_form            = 1
  88.         no_function_module = 2
  89.         OTHERS             = 3.
  90.  
  91.     IF sy-subrc <> 0.
  92.       retcode = 1.
  93.       EXIT.
  94.     ENDIF.
  95.  
  96.     SELECT SINGLE pname FROM tfdir INTO lv_vec
  97.     WHERE funcname = fm_name.
  98.     IF sy-subrc = 0.
  99.  
  100.       CONCATENATE '(' lv_vec ')JOB_OUTPUT_INFO' INTO lv_vec.
  101.       ASSIGN (lv_vec) TO <p>.
  102.  
  103.       IF sy-subrc = 0 AND
  104.       NOT <p>-spoolids[] IS INITIAL AND
  105.       us_screen IS INITIAL.
  106.  
  107.         LOOP AT <p>-spoolids INTO spoolid.
  108.           PERFORM processing USING spoolid.
  109.           EXIT.
  110.         ENDLOOP.
  111.         UNASSIGN <p>.
  112.  
  113.       ENDIF. " have Ids
  114.  
  115.     ENDIF." tfdir entry
  116.  
  117.   ENDIF." sapscript/smartforms
  118.  
  119.  
  120.   IF retcode NE 0.
  121.     return_code = 1.
  122.   ELSE.
  123.     return_code = 0.
  124.   ENDIF.
  125.  
  126. ENDFORM.                    "ENTRY
  127.  
  128. *&---------------------------------------------------------------------*
  129. *&      Form  PROCESSING
  130. *&---------------------------------------------------------------------*
  131. *       text
  132. *----------------------------------------------------------------------*
  133. FORM processing USING spoolid TYPE itcpp-tdspoolid.
  134.   DATA: numbytes TYPE i,
  135.         pdfspoolid LIKE tsp01-rqident,
  136.         jobname LIKE tbtcjob-jobname,
  137.         jobcount LIKE tbtcjob-jobcount.
  138.  
  139.   DATA: BEGIN OF pdf OCCURS 0,
  140.         t(134),
  141.         END OF pdf.
  142.   DATA:
  143.         i TYPE i,
  144.         k TYPE i,
  145.         j TYPE i.
  146.  
  147.   DATA:   document_data LIKE sodocchgi1,
  148.           object_txt LIKE solisti1 OCCURS 10 WITH HEADER LINE,
  149.           object_pack LIKE sopcklsti1 OCCURS 1 WITH HEADER LINE,
  150.           object_bin LIKE solisti1 OCCURS 10 WITH HEADER LINE,
  151.           receiver_list LIKE somlreci1 OCCURS 1 WITH HEADER LINE,
  152.           tab_lines TYPE i.
  153.  
  154.  
  155.  
  156. ****  Main - Email  ****
  157.  
  158. * Title and Description
  159.   document_data-obj_name  = 'PURCHASE ORDER'.
  160.   document_data-obj_descr = nast-objky.
  161.  
  162. * Text of Email
  163.   CONCATENATE 'Bestellung' nast-objky INTO object_txt
  164.   SEPARATED BY space.
  165.   APPEND object_txt.
  166.  
  167. * Packing List(Main-Part)
  168.  
  169. * Calculate the contens length
  170.   DESCRIBE TABLE object_txt LINES tab_lines.
  171.   READ TABLE object_txt INDEX tab_lines.
  172.   document_data-doc_size = ( tab_lines - 1 ) * 255 +
  173.   STRLEN( object_txt ).
  174.  
  175. * generate the Packing List
  176.   CLEAR object_pack-transf_bin.
  177.   object_pack-head_start = 1.
  178.   object_pack-head_num   = 0.
  179.   object_pack-body_start = 1.
  180.   object_pack-body_num   = tab_lines.
  181.   object_pack-doc_type   = 'RAW'.
  182.   APPEND object_pack.
  183.  
  184.   CALL FUNCTION 'CONVERT_OTFSPOOLJOB_2_PDF'
  185.       EXPORTING
  186.         src_spoolid                    = spoolid
  187.         no_dialog                      = ' '
  188. *        DST_DEVICE                     =
  189. *       PDF_DESTINATION                =
  190.       IMPORTING
  191.         pdf_bytecount                  = numbytes
  192.         pdf_spoolid                    = pdfspoolid
  193. *       OTF_PAGECOUNT                  =
  194.         btc_jobname                    = jobname
  195.         btc_jobcount                   = jobcount
  196.       TABLES
  197.         pdf                            = pdf
  198.       EXCEPTIONS
  199.         err_no_otf_spooljob            = 1
  200.         err_no_spooljob                = 2
  201.         err_no_permission              = 3
  202.         err_conv_not_possible          = 4
  203.         err_bad_dstdevice              = 5
  204.         user_cancelled                 = 6
  205.         err_spoolerror                 = 7
  206.         err_temseerror                 = 8
  207.         err_btcjob_open_failed         = 9
  208.         err_btcjob_submit_failed       = 10
  209.         err_btcjob_close_failed        = 11.
  210.  
  211.   IF sy-subrc = 0.
  212.  
  213.     k = i = 0.
  214.     LOOP AT pdf.
  215.  
  216.       DO 134 TIMES.
  217.         j = sy-index - 1.
  218.         object_bin+i(1) = pdf+j(1).
  219.         i = i + 1.
  220.  
  221.         IF i > 254.
  222.           APPEND object_bin.
  223.           CLEAR i.
  224.         ENDIF.
  225.  
  226.         k = k + 1.
  227.         IF k GE numbytes.
  228.           IF i NE 0. APPEND object_bin.ENDIF.
  229.           EXIT.
  230.         ENDIF.
  231.       ENDDO.
  232.  
  233.     ENDLOOP.
  234.  
  235.   ELSE.
  236.     EXIT.
  237.   ENDIF.
  238.  
  239.  
  240. * Generate the Attachment
  241. *  Packing List(Att)
  242.   DESCRIBE TABLE object_bin LINES tab_lines.
  243.   READ TABLE object_bin INDEX tab_lines.
  244.  
  245.   object_pack-doc_size = ( tab_lines - 1 ) * 255 + STRLEN( object_bin ).
  246.   object_pack-transf_bin = 'X'.
  247.   object_pack-head_start = 1.
  248.   object_pack-head_num   = 0.
  249.   object_pack-body_start = 1.
  250.   object_pack-body_num   = tab_lines.
  251.   object_pack-doc_type   = 'PDF'.
  252.   object_pack-obj_name   = 'SPOOL'.
  253.   object_pack-obj_descr  = nast-objky.
  254.   APPEND object_pack.
  255.  
  256. * get all GOS - Attachments from Purchase Order
  257.   PERFORM get_gos_documents TABLES object_bin object_pack.
  258.  
  259. * generate the receiver list
  260.  
  261.  
  262.  
  263. * Internet User
  264. ************************
  265. * @@@@ TODO !!!!!
  266. ************************
  267. * Your Email Adress goes HERE
  268.   receiver_list-receiver = 'SAPUSER@LOCALHOST'.
  269.   receiver_list-rec_type = 'U'.
  270.   receiver_list-com_type ='INT'.
  271.   APPEND receiver_list.
  272.  
  273. * Send the mail
  274.   CALL FUNCTION 'SO_NEW_DOCUMENT_ATT_SEND_API1'
  275.     EXPORTING
  276.       document_data              = document_data
  277. *     put_in_outbox              = 'X' not really
  278.       commit_work                = ' '
  279.     TABLES
  280.       packing_list               = object_pack
  281.       contents_bin               = object_bin
  282.       contents_txt               = object_txt
  283.       receivers                  = receiver_list
  284.     EXCEPTIONS
  285.       too_many_receivers         = 1
  286.       document_not_sent          = 2
  287.       document_type_not_exist    = 3
  288.       operation_no_authorization = 4
  289.       parameter_error            = 5
  290.       x_error                    = 6
  291.       enqueue_error              = 7
  292.       OTHERS                     = 8.
  293.  
  294.   IF sy-subrc <> 0.
  295.     retcode = 1.
  296.   ENDIF.
  297.  
  298. ENDFORM.                    "PROCESSING
  299.  
  300. *&---------------------------------------------------------------------*
  301. *&      Form  Get_Gos_documents
  302. *&---------------------------------------------------------------------*
  303. *       text
  304. *----------------------------------------------------------------------*
  305. *      -->BIN_TAB    text
  306. *      -->PACK_TAB   text
  307. *----------------------------------------------------------------------*
  308. FORM get_gos_documents TABLES
  309.                        bin_tab STRUCTURE solisti1
  310.                        pack_tab STRUCTURE sopcklsti1.
  311.  
  312.   CONSTANTS: c_botype TYPE borident-objtype VALUE 'BUS2012',
  313.              c_reltyp TYPE breltyp-reltype  VALUE 'ATTA'.
  314.  
  315.   DATA: lo_is_object_a TYPE sibflporb,
  316.         lt_links TYPE obl_t_link,
  317.         ls_links TYPE LINE OF obl_t_link.
  318.  
  319.   DATA : lt_rel TYPE obl_t_relt,
  320.          wa_rel LIKE LINE OF lt_rel.
  321.  
  322.   DATA document_id TYPE sofolenti1-doc_id.
  323.   DATA document_data TYPE sofolenti1.
  324.   DATA object_content TYPE TABLE OF solisti1 WITH HEADER LINE.
  325.   DATA tlines TYPE i.
  326.   DATA i TYPE i.
  327.  
  328.   wa_rel-sign = 'I'.
  329.   wa_rel-option = 'EQ'.
  330.   wa_rel-low = c_reltyp.
  331.   APPEND wa_rel TO lt_rel.
  332.  
  333.   lo_is_object_a-instid = nast-objky.
  334.   lo_is_object_a-typeid = c_botype.
  335.   lo_is_object_a-catid = 'BO'.
  336.  
  337. * get all links to the attached PO documents
  338.   TRY.
  339.       CALL METHOD cl_binary_relation=>read_links
  340.         EXPORTING
  341.           is_object           = lo_is_object_a
  342.           it_relation_options = lt_rel
  343.         IMPORTING
  344.           et_links            = lt_links.
  345.  
  346.     CATCH cx_root .
  347.       retcode = 1.
  348.   ENDTRY.
  349.  
  350. * attach all GOS documents to the mail
  351.   LOOP AT lt_links INTO ls_links.
  352.  
  353.     document_id = ls_links-instid_b.
  354.  
  355.     CALL FUNCTION 'SO_DOCUMENT_READ_API1'
  356.       EXPORTING
  357.         document_id                = document_id
  358.       IMPORTING
  359.         document_data              = document_data
  360.       TABLES
  361.         object_content             = object_content
  362.       EXCEPTIONS
  363.         document_id_not_exist      = 1
  364.         operation_no_authorization = 2
  365.         x_error                    = 3
  366.         OTHERS                     = 4.
  367.  
  368.     IF sy-subrc = 0.
  369.  
  370.  
  371. *  Packing List(GOS-Att)
  372.       DESCRIBE TABLE bin_tab LINES i.
  373.       DESCRIBE TABLE object_content LINES tlines.
  374.       READ TABLE object_content INDEX tlines.
  375.  
  376. * calc the true length
  377.       pack_tab-doc_size = ( tlines - 1 ) * 255
  378.                           + STRLEN( object_content ).
  379.  
  380.       pack_tab-transf_bin = 'X'.
  381.       pack_tab-head_start = 1 + i .
  382.       pack_tab-head_num   = 0.
  383.       pack_tab-body_start = 1 + i .
  384.       pack_tab-body_num   = tlines.
  385.       pack_tab-doc_type   = document_data-obj_type.
  386.       pack_tab-obj_name   = document_data-obj_name.
  387.       pack_tab-obj_descr  = document_data-obj_descr.
  388.  
  389.       APPEND pack_tab.
  390.  
  391.       APPEND LINES OF object_content TO bin_tab.
  392.  
  393.     ENDIF.
  394.  
  395.  
  396. ENDFORM.                    "Get_Gos_documents
GeSHi ©


gruß Tron :wink:
Tron
.....
.....
 
Posts: 1112
Joined: Sat Aug 04, 2007 10:21 pm

Re: Nachrichtensteuerung: Bestellung via eMail ersenden (ME2

Postby Sandy2832 » Wed Aug 24, 2011 3:28 pm

Hallo Tron,
nach längerem Suchen bin ich auf Deinen Beitrag gestossen und der ist wirklich Gold wert.
Ich wollte schon fast die MEDRUCK kopieren mit allem Aufwand...

Nun habe ich noch eine Frage und ein Problem:
- Welches Medium stelle ich für die Nachricht ein, wenn ich nur email möchte? Bei 1 (Drucken) kommt ja zusätzlich ein Druck raus, bei 5 (mail) zieht ja zusätzlich die interne Maillogik. Bei 8 (Sonderfunktion) kommt ein Fehler?
- Das PDF-File in der mail lässt sich leider mit dem Acrobat Reader nicht öffen (Beim Öffnen des Dokuments ist ein Fehler aufgetreten...). Irgendwas scheint am Dateiformat fehlerhaft zu sein. Hast Du dazu eine Idee?

Danke!

Gruß
Magnum77
Sandy2832
.
.
 
Posts: 4
Joined: Wed Aug 24, 2011 3:28 pm

Next

Return to Material Management & Produktionsplanung

Who is online

Users browsing this forum: No registered users and 1 guest