<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>topic Re: Attachment List in Application Development and Automation Discussions</title>
    <link>https://community.sap.com/t5/application-development-and-automation-discussions/attachment-list/m-p/3868245#M929670</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Try using fm 'SREL_GET_NEXT_RELATIONS' . Here is an example .&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;PRE&gt;&lt;CODE&gt;
REPORT z_send_gos_attachments. 

* Selection-screen. 
SELECTION-SCREEN BEGIN OF LINE. 
* Email address 
SELECTION-SCREEN COMMENT 2(20) v_text1 FOR FIELD p_email. 
PARAMETERS: p_email(50) OBLIGATORY. 
SELECTION-SCREEN END OF LINE. 

SELECTION-SCREEN BEGIN OF LINE. 
* Business object type 
SELECTION-SCREEN COMMENT 2(20) v_text2 FOR FIELD p_bo. 
PARAMETERS: p_bo     TYPE borident-objtype DEFAULT 'BUS2102'. 
SELECTION-SCREEN END OF LINE. 

SELECTION-SCREEN BEGIN OF LINE. 
* Business object ID 
SELECTION-SCREEN COMMENT 2(20) v_text3 FOR FIELD p_boid. 
PARAMETERS: p_boid   TYPE borident-objkey  DEFAULT '0060000717'. 
SELECTION-SCREEN END OF LINE. 


* Internal table declarations. 
DATA: lt_links            TYPE TABLE OF relgraphlk, 
      lv_document_id      TYPE sofolenti1-doc_id, 
      lt_plist            LIKE sopcklsti1 OCCURS 2 WITH HEADER LINE, 
      lt_soli             LIKE soli OCCURS 100 WITH HEADER LINE, 
      lt_rec_tab          LIKE somlreci1 OCCURS 1 WITH HEADER LINE, 
      lt_roles            TYPE STANDARD TABLE OF relroles, 
      lt_appllinks        TYPE STANDARD TABLE OF srl_aprel, 
      lt_object_content_l LIKE solisti1 OCCURS 0 WITH HEADER LINE, 
      lt_object_content   LIKE solisti1 OCCURS 0 WITH HEADER LINE, 
      lt_doc_dat          LIKE sofolenti1. 

* Variables. 
DATA: lv_objtp            LIKE soodk-objtp, 
      lv_lang             LIKE tst01-dlang, 
      lv_line_size        TYPE i VALUE 255, 
      lv_name             LIKE soextreci1-receiver. 


* Work areas 
DATA: lwa_doc_data        LIKE sodocchgi1, 
      lwa_document_data   LIKE sofolenti1, 
      lwa_links           LIKE LINE OF lt_links, 
      lwa_object          TYPE borident. 


* Initialization. 
INITIALIZATION. 

* Set the texts. 
  v_text1 = 'Email addr.'. 
  v_text2 = 'Business obj type'. 
  v_text3 = 'Business obj ID'. 

* Start-of-selection. 
START-OF-SELECTION. 

* Assign the values 
  lwa_object-objkey  = p_boid. 
  lwa_object-objtype = p_bo. 

* Get the attachment list for the input business object type 
* and name. 
  CALL FUNCTION 'SREL_GET_NEXT_RELATIONS' 
       EXPORTING 
            object         = lwa_object 
            relationtype   = 'ATTA' 
       TABLES 
            links          = lt_links 
            roles          = lt_roles 
            appllinks      = lt_appllinks 
       EXCEPTIONS 
            internal_error = 1 
            no_logsys      = 2 
            OTHERS         = 3. 

* Check the return code. 
  IF sy-subrc &amp;lt;&amp;gt; 0. 
    MESSAGE s208(00) WITH 'Error in FM SREL_GET_NEXT_RELATIONS'. 
  ENDIF. 

* Process the attachment list 
  LOOP AT lt_links INTO lwa_links. 

    MOVE lwa_links-objkey_b TO lv_document_id. 

* Read the data 
    CALL FUNCTION 'SO_DOCUMENT_READ_API1' 
         EXPORTING 
              document_id                = lv_document_id 
         IMPORTING 
              document_data              = lwa_document_data 
         TABLES 
              object_content             = lt_object_content_l 
         EXCEPTIONS 
              document_id_not_exist      = 1 
              operation_no_authorization = 2 
              x_error                    = 3 
              OTHERS                     = 4. 


* Prepare the data. 
    lt_plist-transf_bin = 'X'. 
    lt_plist-head_start = 0. 
    lt_plist-head_num = 0. 
    lt_plist-body_start = 0. 
    lt_plist-body_num = 0. 
    lt_plist-doc_type = 'RAW'. 
    lt_plist-obj_descr = lwa_document_data-obj_descr. 
    APPEND lt_plist. 

    lt_plist-transf_bin = 'X'. 
    lt_plist-head_start = 0. 
    lt_plist-head_num = 0. 

    IF sy-tabix = 1. 
      lt_plist-body_start = 1. 
    ELSE. 
      DESCRIBE TABLE lt_object_content. 
      lt_plist-body_start = sy-tfill + 1. 
    ENDIF. 

    DESCRIBE TABLE lt_object_content_l LINES lt_plist-body_num. 
    lt_plist-doc_type = lwa_document_data-obj_type. 

* Get the size. 
    READ TABLE lt_object_content_l INDEX lt_plist-body_num. 
    lt_plist-doc_size = ( lt_plist-body_num - 1 ) * lv_line_size 
                     + STRLEN( lt_object_content_l ). 
    APPEND lt_plist. 

* Move the values to the main internal table. 
    APPEND LINES OF lt_object_content_l TO lt_object_content. 

  ENDLOOP. 


* Move the receiver address. 
  MOVE: p_email  TO lt_rec_tab-receiver, 
        'U'      TO lt_rec_tab-rec_type. 
  APPEND lt_rec_tab. 

* Set the language. 
  lwa_doc_data-obj_langu = sy-langu. 

* Email subject. 
  CONCATENATE 'GOS ' 
              p_boid 
              'attachments' 
              INTO lwa_doc_data-obj_descr 
              SEPARATED BY space. 

* Set the user name. 
  lv_name = sy-uname. 

* Send the email. 
  CALL FUNCTION 'SO_DOCUMENT_SEND_API1' 
       EXPORTING 
            document_data              = lwa_doc_data 
            sender_address             = lv_name 
            sender_address_type        = 'B' 
       TABLES 
            packing_list               = lt_plist 
            contents_bin               = lt_object_content 
            receivers                  = lt_rec_tab 
       EXCEPTIONS 
            too_many_receivers         = 1 
            document_not_sent          = 2 
            document_type_not_exist    = 3 
            operation_no_authorization = 4 
            parameter_error            = 5 
            x_error                    = 6 
            enqueue_error              = 7 
            OTHERS                     = 8. 
  IF sy-subrc &amp;lt;&amp;gt; 0. 
    MESSAGE e208(00) WITH 'Error in sending email'. 
  ENDIF. 

  COMMIT WORK. 

* Send the email immediately. 
  SUBMIT rsconn01 
  WITH mode = 'INT' 
  AND RETURN. 


* Success message. 
  MESSAGE s208(00) WITH 'Email sent'. 

&lt;/CODE&gt;&lt;/PRE&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Regards,&lt;/P&gt;&lt;P&gt;Bert&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Fri, 16 May 2008 21:06:17 GMT</pubDate>
    <dc:creator>b_deterd2</dc:creator>
    <dc:date>2008-05-16T21:06:17Z</dc:date>
    <item>
      <title>Attachment List</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/attachment-list/m-p/3868244#M929669</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Hw to retireve attachment list for the object ? (Im talking about the Object Service toolbox list...)&lt;/P&gt;&lt;P&gt;From the forum i found there is a package SGOS and the report RSGOSRE01 to achieve this functionality.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;But ended in vain. I have a object id ( 50003630 Coursetype D)  and some docus are attached to this course object.I need to retieve the attached document and send mail with atttachments retrieved. &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Any idea will be appreicted greatly.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Thanks,&lt;/P&gt;&lt;P&gt;SAPUSER&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 16 May 2008 10:11:27 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/attachment-list/m-p/3868244#M929669</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2008-05-16T10:11:27Z</dc:date>
    </item>
    <item>
      <title>Re: Attachment List</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/attachment-list/m-p/3868245#M929670</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Try using fm 'SREL_GET_NEXT_RELATIONS' . Here is an example .&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;PRE&gt;&lt;CODE&gt;
REPORT z_send_gos_attachments. 

* Selection-screen. 
SELECTION-SCREEN BEGIN OF LINE. 
* Email address 
SELECTION-SCREEN COMMENT 2(20) v_text1 FOR FIELD p_email. 
PARAMETERS: p_email(50) OBLIGATORY. 
SELECTION-SCREEN END OF LINE. 

SELECTION-SCREEN BEGIN OF LINE. 
* Business object type 
SELECTION-SCREEN COMMENT 2(20) v_text2 FOR FIELD p_bo. 
PARAMETERS: p_bo     TYPE borident-objtype DEFAULT 'BUS2102'. 
SELECTION-SCREEN END OF LINE. 

SELECTION-SCREEN BEGIN OF LINE. 
* Business object ID 
SELECTION-SCREEN COMMENT 2(20) v_text3 FOR FIELD p_boid. 
PARAMETERS: p_boid   TYPE borident-objkey  DEFAULT '0060000717'. 
SELECTION-SCREEN END OF LINE. 


* Internal table declarations. 
DATA: lt_links            TYPE TABLE OF relgraphlk, 
      lv_document_id      TYPE sofolenti1-doc_id, 
      lt_plist            LIKE sopcklsti1 OCCURS 2 WITH HEADER LINE, 
      lt_soli             LIKE soli OCCURS 100 WITH HEADER LINE, 
      lt_rec_tab          LIKE somlreci1 OCCURS 1 WITH HEADER LINE, 
      lt_roles            TYPE STANDARD TABLE OF relroles, 
      lt_appllinks        TYPE STANDARD TABLE OF srl_aprel, 
      lt_object_content_l LIKE solisti1 OCCURS 0 WITH HEADER LINE, 
      lt_object_content   LIKE solisti1 OCCURS 0 WITH HEADER LINE, 
      lt_doc_dat          LIKE sofolenti1. 

* Variables. 
DATA: lv_objtp            LIKE soodk-objtp, 
      lv_lang             LIKE tst01-dlang, 
      lv_line_size        TYPE i VALUE 255, 
      lv_name             LIKE soextreci1-receiver. 


* Work areas 
DATA: lwa_doc_data        LIKE sodocchgi1, 
      lwa_document_data   LIKE sofolenti1, 
      lwa_links           LIKE LINE OF lt_links, 
      lwa_object          TYPE borident. 


* Initialization. 
INITIALIZATION. 

* Set the texts. 
  v_text1 = 'Email addr.'. 
  v_text2 = 'Business obj type'. 
  v_text3 = 'Business obj ID'. 

* Start-of-selection. 
START-OF-SELECTION. 

* Assign the values 
  lwa_object-objkey  = p_boid. 
  lwa_object-objtype = p_bo. 

* Get the attachment list for the input business object type 
* and name. 
  CALL FUNCTION 'SREL_GET_NEXT_RELATIONS' 
       EXPORTING 
            object         = lwa_object 
            relationtype   = 'ATTA' 
       TABLES 
            links          = lt_links 
            roles          = lt_roles 
            appllinks      = lt_appllinks 
       EXCEPTIONS 
            internal_error = 1 
            no_logsys      = 2 
            OTHERS         = 3. 

* Check the return code. 
  IF sy-subrc &amp;lt;&amp;gt; 0. 
    MESSAGE s208(00) WITH 'Error in FM SREL_GET_NEXT_RELATIONS'. 
  ENDIF. 

* Process the attachment list 
  LOOP AT lt_links INTO lwa_links. 

    MOVE lwa_links-objkey_b TO lv_document_id. 

* Read the data 
    CALL FUNCTION 'SO_DOCUMENT_READ_API1' 
         EXPORTING 
              document_id                = lv_document_id 
         IMPORTING 
              document_data              = lwa_document_data 
         TABLES 
              object_content             = lt_object_content_l 
         EXCEPTIONS 
              document_id_not_exist      = 1 
              operation_no_authorization = 2 
              x_error                    = 3 
              OTHERS                     = 4. 


* Prepare the data. 
    lt_plist-transf_bin = 'X'. 
    lt_plist-head_start = 0. 
    lt_plist-head_num = 0. 
    lt_plist-body_start = 0. 
    lt_plist-body_num = 0. 
    lt_plist-doc_type = 'RAW'. 
    lt_plist-obj_descr = lwa_document_data-obj_descr. 
    APPEND lt_plist. 

    lt_plist-transf_bin = 'X'. 
    lt_plist-head_start = 0. 
    lt_plist-head_num = 0. 

    IF sy-tabix = 1. 
      lt_plist-body_start = 1. 
    ELSE. 
      DESCRIBE TABLE lt_object_content. 
      lt_plist-body_start = sy-tfill + 1. 
    ENDIF. 

    DESCRIBE TABLE lt_object_content_l LINES lt_plist-body_num. 
    lt_plist-doc_type = lwa_document_data-obj_type. 

* Get the size. 
    READ TABLE lt_object_content_l INDEX lt_plist-body_num. 
    lt_plist-doc_size = ( lt_plist-body_num - 1 ) * lv_line_size 
                     + STRLEN( lt_object_content_l ). 
    APPEND lt_plist. 

* Move the values to the main internal table. 
    APPEND LINES OF lt_object_content_l TO lt_object_content. 

  ENDLOOP. 


* Move the receiver address. 
  MOVE: p_email  TO lt_rec_tab-receiver, 
        'U'      TO lt_rec_tab-rec_type. 
  APPEND lt_rec_tab. 

* Set the language. 
  lwa_doc_data-obj_langu = sy-langu. 

* Email subject. 
  CONCATENATE 'GOS ' 
              p_boid 
              'attachments' 
              INTO lwa_doc_data-obj_descr 
              SEPARATED BY space. 

* Set the user name. 
  lv_name = sy-uname. 

* Send the email. 
  CALL FUNCTION 'SO_DOCUMENT_SEND_API1' 
       EXPORTING 
            document_data              = lwa_doc_data 
            sender_address             = lv_name 
            sender_address_type        = 'B' 
       TABLES 
            packing_list               = lt_plist 
            contents_bin               = lt_object_content 
            receivers                  = lt_rec_tab 
       EXCEPTIONS 
            too_many_receivers         = 1 
            document_not_sent          = 2 
            document_type_not_exist    = 3 
            operation_no_authorization = 4 
            parameter_error            = 5 
            x_error                    = 6 
            enqueue_error              = 7 
            OTHERS                     = 8. 
  IF sy-subrc &amp;lt;&amp;gt; 0. 
    MESSAGE e208(00) WITH 'Error in sending email'. 
  ENDIF. 

  COMMIT WORK. 

* Send the email immediately. 
  SUBMIT rsconn01 
  WITH mode = 'INT' 
  AND RETURN. 


* Success message. 
  MESSAGE s208(00) WITH 'Email sent'. 

&lt;/CODE&gt;&lt;/PRE&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Regards,&lt;/P&gt;&lt;P&gt;Bert&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 16 May 2008 21:06:17 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/attachment-list/m-p/3868245#M929670</guid>
      <dc:creator>b_deterd2</dc:creator>
      <dc:date>2008-05-16T21:06:17Z</dc:date>
    </item>
  </channel>
</rss>

