<?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: SAPScript EMAIL Body Text in Application Development and Automation Discussions</title>
    <link>https://community.sap.com/t5/application-development-and-automation-discussions/sapscript-email-body-text/m-p/2228685#M479305</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi Surajit,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;check if this helps...&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;METHOD  SEND_PDF_ATTACHMENT .&lt;/P&gt;&lt;P&gt;   IF SY-BATCH EQ 'X'.&lt;/P&gt;&lt;P&gt;  CALL METHOD GET_JOB_DETAILS.&lt;/P&gt;&lt;P&gt;CALL METHOD OBTAIN_SPOOL_ID.&lt;/P&gt;&lt;P&gt;    ELSE.&lt;/P&gt;&lt;P&gt;      GD_SPOOL_NR = SY-SPONO.&lt;/P&gt;&lt;P&gt;    ENDIF.&lt;/P&gt;&lt;P&gt;CALL METHOD CONVERT_SPOOL_TO_PDF.&lt;/P&gt;&lt;P&gt;    &lt;/P&gt;&lt;P&gt;  ENDMETHOD. " SEND_PDF_ATTACHMENT&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;METHOD GET_JOB_DETAILS.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Get current job details&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;      CALL FUNCTION 'GET_JOB_RUNTIME_INFO'&lt;/P&gt;&lt;P&gt;        IMPORTING&lt;/P&gt;&lt;P&gt;          EVENTID                 = GD_EVENTID&lt;/P&gt;&lt;P&gt;          EVENTPARM               = GD_EVENTPARM&lt;/P&gt;&lt;P&gt;          EXTERNAL_PROGRAM_ACTIVE = GD_EXTERNAL_PROGRAM_ACTIVE&lt;/P&gt;&lt;P&gt;          JOBCOUNT                = GD_JOBCOUNT&lt;/P&gt;&lt;P&gt;          JOBNAME                 = GD_JOBNAME&lt;/P&gt;&lt;P&gt;          STEPCOUNT               = GD_STEPCOUNT&lt;/P&gt;&lt;P&gt;        EXCEPTIONS&lt;/P&gt;&lt;P&gt;          NO_RUNTIME_INFO         = 1&lt;/P&gt;&lt;P&gt;          OTHERS                  = 2.&lt;/P&gt;&lt;P&gt;  ENDMETHOD.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  METHOD OBTAIN_SPOOL_ID.&lt;/P&gt;&lt;P&gt;      CHECK NOT ( GD_JOBNAME IS INITIAL ).&lt;/P&gt;&lt;P&gt;      CHECK NOT ( GD_JOBCOUNT IS INITIAL ).&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;      SELECT * FROM  TBTCP&lt;/P&gt;&lt;P&gt;                     INTO TABLE IT_TBTCP&lt;/P&gt;&lt;P&gt;                     WHERE      JOBNAME     = GD_JOBNAME&lt;/P&gt;&lt;P&gt;                     AND        JOBCOUNT    = GD_JOBCOUNT&lt;/P&gt;&lt;P&gt;                     AND        STEPCOUNT   = GD_STEPCOUNT&lt;/P&gt;&lt;P&gt;                     AND        LISTIDENT   &amp;lt;&amp;gt; '0000000000'&lt;/P&gt;&lt;P&gt;                     AND        PDEST       = 'LOCL'&lt;/P&gt;&lt;P&gt;                     ORDER BY   JOBNAME&lt;/P&gt;&lt;P&gt;                                JOBCOUNT&lt;/P&gt;&lt;P&gt;                                STEPCOUNT.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;      READ TABLE IT_TBTCP INTO WA_TBTCP INDEX 1.&lt;/P&gt;&lt;P&gt;      IF SY-SUBRC = 0.&lt;/P&gt;&lt;P&gt;        MESSAGE S004(ZDD) WITH GD_SPOOL_NR.&lt;/P&gt;&lt;P&gt;        GD_SPOOL_NR = WA_TBTCP-LISTIDENT.&lt;/P&gt;&lt;P&gt;        MESSAGE S004(ZDD) WITH GD_SPOOL_NR.&lt;/P&gt;&lt;P&gt;      ELSE.&lt;/P&gt;&lt;P&gt;        MESSAGE S005(ZDD).&lt;/P&gt;&lt;P&gt;      ENDIF.&lt;/P&gt;&lt;P&gt;    ENDMETHOD.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  METHOD CONVERT_TO_PDF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  &lt;/P&gt;&lt;P&gt;    CALL FUNCTION 'CONVERT_ABAPSPOOLJOB_2_PDF'&lt;/P&gt;&lt;P&gt;      EXPORTING&lt;/P&gt;&lt;P&gt;        SRC_SPOOLID              = GD_SPOOL_NR&lt;/P&gt;&lt;P&gt;        NO_DIALOG                = C_NO&lt;/P&gt;&lt;P&gt;        DST_DEVICE               = C_DEVICE&lt;/P&gt;&lt;P&gt;      IMPORTING&lt;/P&gt;&lt;P&gt;        PDF_BYTECOUNT            = GD_BYTECOUNT&lt;/P&gt;&lt;P&gt;      TABLES&lt;/P&gt;&lt;P&gt;        PDF                      = IT_PDF_OUTPUT&lt;/P&gt;&lt;P&gt;      EXCEPTIONS&lt;/P&gt;&lt;P&gt;        ERR_NO_ABAP_SPOOLJOB     = 1&lt;/P&gt;&lt;P&gt;        ERR_NO_SPOOLJOB          = 2&lt;/P&gt;&lt;P&gt;        ERR_NO_PERMISSION        = 3&lt;/P&gt;&lt;P&gt;        ERR_CONV_NOT_POSSIBLE    = 4&lt;/P&gt;&lt;P&gt;        ERR_BAD_DESTDEVICE       = 5&lt;/P&gt;&lt;P&gt;        USER_CANCELLED           = 6&lt;/P&gt;&lt;P&gt;        ERR_SPOOLERROR           = 7&lt;/P&gt;&lt;P&gt;        ERR_TEMSEERROR           = 8&lt;/P&gt;&lt;P&gt;        ERR_BTCJOB_OPEN_FAILED   = 9&lt;/P&gt;&lt;P&gt;        ERR_BTCJOB_SUBMIT_FAILED = 10&lt;/P&gt;&lt;P&gt;        ERR_BTCJOB_CLOSE_FAILED  = 11&lt;/P&gt;&lt;P&gt;        OTHERS                   = 12.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    CHECK SY-SUBRC = 0.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Transfer the 132-long strings to 255-long strings&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;    LOOP AT IT_PDF_OUTPUT INTO WA_PDF_OUTPUT.&lt;/P&gt;&lt;P&gt;      TRANSLATE WA_PDF_OUTPUT USING ' ~'.&lt;/P&gt;&lt;P&gt;      CONCATENATE GD_BUFFER WA_PDF_OUTPUT INTO GD_BUFFER.&lt;/P&gt;&lt;P&gt;    ENDLOOP.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    TRANSLATE GD_BUFFER USING '~ '.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    DO.&lt;/P&gt;&lt;P&gt;      WA_MESS_ATT = GD_BUFFER.&lt;/P&gt;&lt;P&gt;      APPEND WA_MESS_ATT TO IT_MESS_ATT.&lt;/P&gt;&lt;P&gt;      SHIFT GD_BUFFER LEFT BY 255 PLACES.&lt;/P&gt;&lt;P&gt;      IF GD_BUFFER IS INITIAL.&lt;/P&gt;&lt;P&gt;        EXIT.&lt;/P&gt;&lt;P&gt;      ENDIF.&lt;/P&gt;&lt;P&gt;    ENDDO.&lt;/P&gt;&lt;P&gt;    DESCRIBE TABLE IT_MESS_ATT LINES GD_RECSIZE.&lt;/P&gt;&lt;P&gt;    CHECK GD_RECSIZE &amp;gt; 0.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    REFRESH IT_MESS_BOD.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Default subject matter&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;    GD_SUBJECT         = 'Subject'.&lt;/P&gt;&lt;P&gt;    GD_ATTACHMENT_DESC = 'Attachname'.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; CONCATENATE 'attach_name' ' ' INTO gd_attachment_name.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;    WA_MESS_BOD        = 'Message Body text, line 1'.&lt;/P&gt;&lt;P&gt;    APPEND WA_MESS_BOD TO IT_MESS_BOD.&lt;/P&gt;&lt;P&gt;    WA_MESS_BOD        = 'Message Body text, line 2...'.&lt;/P&gt;&lt;P&gt;    APPEND WA_MESS_BOD TO IT_MESS_BOD.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;If no sender specified - default blank&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;    IF P_SENDER EQ SPACE.&lt;/P&gt;&lt;P&gt;      GD_SENDER_TYPE  = SPACE.&lt;/P&gt;&lt;P&gt;    ELSE.&lt;/P&gt;&lt;P&gt;      GD_SENDER_TYPE  = 'INT'.&lt;/P&gt;&lt;P&gt;    ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    DATA: LD_ERROR    TYPE SY-SUBRC,&lt;/P&gt;&lt;P&gt;            LD_RECIEVER TYPE SY-SUBRC,&lt;/P&gt;&lt;P&gt;            LD_MTITLE TYPE SODOCCHGI1-OBJ_DESCR,&lt;/P&gt;&lt;P&gt;            LD_EMAIL TYPE  SOMLRECI1-RECEIVER,&lt;/P&gt;&lt;P&gt;            LD_FORMAT TYPE  SO_OBJ_TP ,&lt;/P&gt;&lt;P&gt;            LD_ATTDESCRIPTION TYPE  SO_OBJ_NAM ,&lt;/P&gt;&lt;P&gt;            LD_ATTFILENAME TYPE  SO_OBJ_DES ,&lt;/P&gt;&lt;P&gt;            LD_SENDER_ADDRESS TYPE  SOEXTRECI1-RECEIVER,&lt;/P&gt;&lt;P&gt;            LD_SENDER_ADDRESS_TYPE TYPE  SOEXTRECI1-ADR_TYP,&lt;/P&gt;&lt;P&gt;            LD_RECEIVER TYPE  SY-SUBRC.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    DATA:   T_PACKING_LIST TYPE TABLE OF SOPCKLSTI1,&lt;/P&gt;&lt;P&gt;            WA_PACKING_LIST TYPE SOPCKLSTI1,&lt;/P&gt;&lt;P&gt;            T_CONTENTS TYPE TABLE OF SOLISTI1 ,&lt;/P&gt;&lt;P&gt;            T_RECEIVERS TYPE TABLE OF SOMLRECI1 ,&lt;/P&gt;&lt;P&gt;            WA_RECEIVERS TYPE SOMLRECI1 ,&lt;/P&gt;&lt;P&gt;            T_ATTACHMENT TYPE TABLE OF SOLISTI1 ,&lt;/P&gt;&lt;P&gt;            T_OBJECT_HEADER TYPE TABLE OF SOLISTI1 ,&lt;/P&gt;&lt;P&gt;            W_CNT TYPE I,&lt;/P&gt;&lt;P&gt;            W_SENT_ALL(1) TYPE C,&lt;/P&gt;&lt;P&gt;            W_DOC_DATA TYPE SODOCCHGI1.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    LD_EMAIL   = give the email address here.&lt;/P&gt;&lt;P&gt;    LD_MTITLE = 'Example .xls documnet attachment'.&lt;/P&gt;&lt;P&gt;    LD_FORMAT              = 'PDF'.&lt;/P&gt;&lt;P&gt;    LD_ATTDESCRIPTION      = GD_ATTACHMENT_DESC.&lt;/P&gt;&lt;P&gt;    LD_ATTFILENAME         = GD_ATTACHMENT_NAME.&lt;/P&gt;&lt;P&gt;    LD_SENDER_ADDRESS      = P_SENDER.&lt;/P&gt;&lt;P&gt;    LD_SENDER_ADDRESS_TYPE = GD_SENDER_TYPE.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Fill the document data.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;    W_DOC_DATA-DOC_SIZE = 1.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Populate the subject/generic message attributes&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;    W_DOC_DATA-OBJ_LANGU = SY-LANGU.&lt;/P&gt;&lt;P&gt;    W_DOC_DATA-OBJ_NAME  = 'SAPRPT'.&lt;/P&gt;&lt;P&gt;    W_DOC_DATA-OBJ_DESCR = LD_MTITLE .&lt;/P&gt;&lt;P&gt;    W_DOC_DATA-SENSITIVTY = 'F'.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Fill the document data and get size of attachment&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;    CLEAR W_DOC_DATA.&lt;/P&gt;&lt;P&gt;    READ TABLE IT_MESS_ATT INTO WA_MESS_ATT&lt;/P&gt;&lt;P&gt;  INDEX W_CNT.&lt;/P&gt;&lt;P&gt;    W_DOC_DATA-DOC_SIZE =&lt;/P&gt;&lt;P&gt;       ( W_CNT - 1 ) * 255 + STRLEN( WA_MESS_ATT ).&lt;/P&gt;&lt;P&gt;    W_DOC_DATA-OBJ_LANGU  = SY-LANGU.&lt;/P&gt;&lt;P&gt;    W_DOC_DATA-OBJ_NAME   = 'SAPRPT'.&lt;/P&gt;&lt;P&gt;    W_DOC_DATA-OBJ_DESCR  = LD_MTITLE.&lt;/P&gt;&lt;P&gt;    W_DOC_DATA-SENSITIVTY = 'F'.&lt;/P&gt;&lt;P&gt;    CLEAR T_ATTACHMENT.&lt;/P&gt;&lt;P&gt;    REFRESH T_ATTACHMENT.&lt;/P&gt;&lt;P&gt;    T_ATTACHMENT[] = IT_MESS_ATT[].&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Describe the body of the message&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;    CLEAR T_PACKING_LIST.&lt;/P&gt;&lt;P&gt;    REFRESH T_PACKING_LIST.&lt;/P&gt;&lt;P&gt;    WA_PACKING_LIST-TRANSF_BIN = SPACE.&lt;/P&gt;&lt;P&gt;    WA_PACKING_LIST-HEAD_START = 1.&lt;/P&gt;&lt;P&gt;    WA_PACKING_LIST-HEAD_NUM = 0.&lt;/P&gt;&lt;P&gt;    WA_PACKING_LIST-BODY_START = 1.&lt;/P&gt;&lt;P&gt;    DESCRIBE TABLE IT_MESS_BOD LINES WA_PACKING_LIST-BODY_NUM.&lt;/P&gt;&lt;P&gt;    WA_PACKING_LIST-DOC_TYPE = 'RAW'.&lt;/P&gt;&lt;P&gt;    APPEND  WA_PACKING_LIST TO T_PACKING_LIST.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Create attachment notification&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;    WA_PACKING_LIST-TRANSF_BIN = 'X'.&lt;/P&gt;&lt;P&gt;    WA_PACKING_LIST-HEAD_START = 1.&lt;/P&gt;&lt;P&gt;    WA_PACKING_LIST-HEAD_NUM   = 1.&lt;/P&gt;&lt;P&gt;    WA_PACKING_LIST-BODY_START = 1.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    DESCRIBE TABLE T_ATTACHMENT LINES WA_PACKING_LIST-BODY_NUM.&lt;/P&gt;&lt;P&gt;    WA_PACKING_LIST-DOC_TYPE   =  LD_FORMAT.&lt;/P&gt;&lt;P&gt;    WA_PACKING_LIST-OBJ_DESCR  =  LD_ATTDESCRIPTION.&lt;/P&gt;&lt;P&gt;    WA_PACKING_LIST-OBJ_NAME   =  LD_ATTFILENAME.&lt;/P&gt;&lt;P&gt;    WA_PACKING_LIST-DOC_SIZE   =  WA_PACKING_LIST-BODY_NUM * 255.&lt;/P&gt;&lt;P&gt;    APPEND WA_PACKING_LIST TO T_PACKING_LIST.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Add the recipients email address&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;    CLEAR T_RECEIVERS.&lt;/P&gt;&lt;P&gt;    REFRESH T_RECEIVERS.&lt;/P&gt;&lt;P&gt;    WA_RECEIVERS-RECEIVER = LD_EMAIL.&lt;/P&gt;&lt;P&gt;    WA_RECEIVERS-REC_TYPE = 'U'.&lt;/P&gt;&lt;P&gt;    WA_RECEIVERS-COM_TYPE = 'INT'.&lt;/P&gt;&lt;P&gt;    WA_RECEIVERS-NOTIF_DEL = 'X'.&lt;/P&gt;&lt;P&gt;    WA_RECEIVERS-NOTIF_NDEL = 'X'.&lt;/P&gt;&lt;P&gt;    APPEND WA_RECEIVERS TO T_RECEIVERS.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    CALL FUNCTION 'SO_DOCUMENT_SEND_API1'&lt;/P&gt;&lt;P&gt;      EXPORTING&lt;/P&gt;&lt;P&gt;        DOCUMENT_DATA              = W_DOC_DATA&lt;/P&gt;&lt;P&gt;        PUT_IN_OUTBOX              = 'X'&lt;/P&gt;&lt;P&gt;        SENDER_ADDRESS             = LD_SENDER_ADDRESS&lt;/P&gt;&lt;P&gt;        SENDER_ADDRESS_TYPE        = LD_SENDER_ADDRESS_TYPE&lt;/P&gt;&lt;P&gt;        COMMIT_WORK                = 'X'&lt;/P&gt;&lt;P&gt;      IMPORTING&lt;/P&gt;&lt;P&gt;        SENT_TO_ALL                = W_SENT_ALL&lt;/P&gt;&lt;P&gt;      TABLES&lt;/P&gt;&lt;P&gt;        PACKING_LIST               = T_PACKING_LIST&lt;/P&gt;&lt;P&gt;        CONTENTS_BIN               = T_ATTACHMENT&lt;/P&gt;&lt;P&gt;        CONTENTS_TXT               = IT_MESS_BOD&lt;/P&gt;&lt;P&gt;        RECEIVERS                  = T_RECEIVERS&lt;/P&gt;&lt;P&gt;      EXCEPTIONS&lt;/P&gt;&lt;P&gt;        TOO_MANY_RECEIVERS         = 1&lt;/P&gt;&lt;P&gt;        DOCUMENT_NOT_SENT          = 2&lt;/P&gt;&lt;P&gt;        DOCUMENT_TYPE_NOT_EXIST    = 3&lt;/P&gt;&lt;P&gt;        OPERATION_NO_AUTHORIZATION = 4&lt;/P&gt;&lt;P&gt;        PARAMETER_ERROR            = 5&lt;/P&gt;&lt;P&gt;        X_ERROR                    = 6&lt;/P&gt;&lt;P&gt;        ENQUEUE_ERROR              = 7&lt;/P&gt;&lt;P&gt;        OTHERS                     = 8.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Regards,&lt;/P&gt;&lt;P&gt;Vidya.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Tue, 08 May 2007 14:15:11 GMT</pubDate>
    <dc:creator>Former Member</dc:creator>
    <dc:date>2007-05-08T14:15:11Z</dc:date>
    <item>
      <title>SAPScript EMAIL Body Text</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/sapscript-email-body-text/m-p/2228684#M479304</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi All,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I am able to send mail through SAPScript with output through PDF ... but not able to attach text in the mail body text ... &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Is there any way to attach some text in the email body ... Please help&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Thanks &amp;amp; Regards&lt;/P&gt;&lt;P&gt;Surajit&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 08 May 2007 12:05:29 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/sapscript-email-body-text/m-p/2228684#M479304</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2007-05-08T12:05:29Z</dc:date>
    </item>
    <item>
      <title>Re: SAPScript EMAIL Body Text</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/sapscript-email-body-text/m-p/2228685#M479305</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi Surajit,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;check if this helps...&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;METHOD  SEND_PDF_ATTACHMENT .&lt;/P&gt;&lt;P&gt;   IF SY-BATCH EQ 'X'.&lt;/P&gt;&lt;P&gt;  CALL METHOD GET_JOB_DETAILS.&lt;/P&gt;&lt;P&gt;CALL METHOD OBTAIN_SPOOL_ID.&lt;/P&gt;&lt;P&gt;    ELSE.&lt;/P&gt;&lt;P&gt;      GD_SPOOL_NR = SY-SPONO.&lt;/P&gt;&lt;P&gt;    ENDIF.&lt;/P&gt;&lt;P&gt;CALL METHOD CONVERT_SPOOL_TO_PDF.&lt;/P&gt;&lt;P&gt;    &lt;/P&gt;&lt;P&gt;  ENDMETHOD. " SEND_PDF_ATTACHMENT&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;METHOD GET_JOB_DETAILS.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Get current job details&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;      CALL FUNCTION 'GET_JOB_RUNTIME_INFO'&lt;/P&gt;&lt;P&gt;        IMPORTING&lt;/P&gt;&lt;P&gt;          EVENTID                 = GD_EVENTID&lt;/P&gt;&lt;P&gt;          EVENTPARM               = GD_EVENTPARM&lt;/P&gt;&lt;P&gt;          EXTERNAL_PROGRAM_ACTIVE = GD_EXTERNAL_PROGRAM_ACTIVE&lt;/P&gt;&lt;P&gt;          JOBCOUNT                = GD_JOBCOUNT&lt;/P&gt;&lt;P&gt;          JOBNAME                 = GD_JOBNAME&lt;/P&gt;&lt;P&gt;          STEPCOUNT               = GD_STEPCOUNT&lt;/P&gt;&lt;P&gt;        EXCEPTIONS&lt;/P&gt;&lt;P&gt;          NO_RUNTIME_INFO         = 1&lt;/P&gt;&lt;P&gt;          OTHERS                  = 2.&lt;/P&gt;&lt;P&gt;  ENDMETHOD.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  METHOD OBTAIN_SPOOL_ID.&lt;/P&gt;&lt;P&gt;      CHECK NOT ( GD_JOBNAME IS INITIAL ).&lt;/P&gt;&lt;P&gt;      CHECK NOT ( GD_JOBCOUNT IS INITIAL ).&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;      SELECT * FROM  TBTCP&lt;/P&gt;&lt;P&gt;                     INTO TABLE IT_TBTCP&lt;/P&gt;&lt;P&gt;                     WHERE      JOBNAME     = GD_JOBNAME&lt;/P&gt;&lt;P&gt;                     AND        JOBCOUNT    = GD_JOBCOUNT&lt;/P&gt;&lt;P&gt;                     AND        STEPCOUNT   = GD_STEPCOUNT&lt;/P&gt;&lt;P&gt;                     AND        LISTIDENT   &amp;lt;&amp;gt; '0000000000'&lt;/P&gt;&lt;P&gt;                     AND        PDEST       = 'LOCL'&lt;/P&gt;&lt;P&gt;                     ORDER BY   JOBNAME&lt;/P&gt;&lt;P&gt;                                JOBCOUNT&lt;/P&gt;&lt;P&gt;                                STEPCOUNT.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;      READ TABLE IT_TBTCP INTO WA_TBTCP INDEX 1.&lt;/P&gt;&lt;P&gt;      IF SY-SUBRC = 0.&lt;/P&gt;&lt;P&gt;        MESSAGE S004(ZDD) WITH GD_SPOOL_NR.&lt;/P&gt;&lt;P&gt;        GD_SPOOL_NR = WA_TBTCP-LISTIDENT.&lt;/P&gt;&lt;P&gt;        MESSAGE S004(ZDD) WITH GD_SPOOL_NR.&lt;/P&gt;&lt;P&gt;      ELSE.&lt;/P&gt;&lt;P&gt;        MESSAGE S005(ZDD).&lt;/P&gt;&lt;P&gt;      ENDIF.&lt;/P&gt;&lt;P&gt;    ENDMETHOD.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  METHOD CONVERT_TO_PDF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  &lt;/P&gt;&lt;P&gt;    CALL FUNCTION 'CONVERT_ABAPSPOOLJOB_2_PDF'&lt;/P&gt;&lt;P&gt;      EXPORTING&lt;/P&gt;&lt;P&gt;        SRC_SPOOLID              = GD_SPOOL_NR&lt;/P&gt;&lt;P&gt;        NO_DIALOG                = C_NO&lt;/P&gt;&lt;P&gt;        DST_DEVICE               = C_DEVICE&lt;/P&gt;&lt;P&gt;      IMPORTING&lt;/P&gt;&lt;P&gt;        PDF_BYTECOUNT            = GD_BYTECOUNT&lt;/P&gt;&lt;P&gt;      TABLES&lt;/P&gt;&lt;P&gt;        PDF                      = IT_PDF_OUTPUT&lt;/P&gt;&lt;P&gt;      EXCEPTIONS&lt;/P&gt;&lt;P&gt;        ERR_NO_ABAP_SPOOLJOB     = 1&lt;/P&gt;&lt;P&gt;        ERR_NO_SPOOLJOB          = 2&lt;/P&gt;&lt;P&gt;        ERR_NO_PERMISSION        = 3&lt;/P&gt;&lt;P&gt;        ERR_CONV_NOT_POSSIBLE    = 4&lt;/P&gt;&lt;P&gt;        ERR_BAD_DESTDEVICE       = 5&lt;/P&gt;&lt;P&gt;        USER_CANCELLED           = 6&lt;/P&gt;&lt;P&gt;        ERR_SPOOLERROR           = 7&lt;/P&gt;&lt;P&gt;        ERR_TEMSEERROR           = 8&lt;/P&gt;&lt;P&gt;        ERR_BTCJOB_OPEN_FAILED   = 9&lt;/P&gt;&lt;P&gt;        ERR_BTCJOB_SUBMIT_FAILED = 10&lt;/P&gt;&lt;P&gt;        ERR_BTCJOB_CLOSE_FAILED  = 11&lt;/P&gt;&lt;P&gt;        OTHERS                   = 12.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    CHECK SY-SUBRC = 0.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Transfer the 132-long strings to 255-long strings&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;    LOOP AT IT_PDF_OUTPUT INTO WA_PDF_OUTPUT.&lt;/P&gt;&lt;P&gt;      TRANSLATE WA_PDF_OUTPUT USING ' ~'.&lt;/P&gt;&lt;P&gt;      CONCATENATE GD_BUFFER WA_PDF_OUTPUT INTO GD_BUFFER.&lt;/P&gt;&lt;P&gt;    ENDLOOP.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    TRANSLATE GD_BUFFER USING '~ '.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    DO.&lt;/P&gt;&lt;P&gt;      WA_MESS_ATT = GD_BUFFER.&lt;/P&gt;&lt;P&gt;      APPEND WA_MESS_ATT TO IT_MESS_ATT.&lt;/P&gt;&lt;P&gt;      SHIFT GD_BUFFER LEFT BY 255 PLACES.&lt;/P&gt;&lt;P&gt;      IF GD_BUFFER IS INITIAL.&lt;/P&gt;&lt;P&gt;        EXIT.&lt;/P&gt;&lt;P&gt;      ENDIF.&lt;/P&gt;&lt;P&gt;    ENDDO.&lt;/P&gt;&lt;P&gt;    DESCRIBE TABLE IT_MESS_ATT LINES GD_RECSIZE.&lt;/P&gt;&lt;P&gt;    CHECK GD_RECSIZE &amp;gt; 0.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    REFRESH IT_MESS_BOD.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Default subject matter&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;    GD_SUBJECT         = 'Subject'.&lt;/P&gt;&lt;P&gt;    GD_ATTACHMENT_DESC = 'Attachname'.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; CONCATENATE 'attach_name' ' ' INTO gd_attachment_name.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;    WA_MESS_BOD        = 'Message Body text, line 1'.&lt;/P&gt;&lt;P&gt;    APPEND WA_MESS_BOD TO IT_MESS_BOD.&lt;/P&gt;&lt;P&gt;    WA_MESS_BOD        = 'Message Body text, line 2...'.&lt;/P&gt;&lt;P&gt;    APPEND WA_MESS_BOD TO IT_MESS_BOD.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;If no sender specified - default blank&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;    IF P_SENDER EQ SPACE.&lt;/P&gt;&lt;P&gt;      GD_SENDER_TYPE  = SPACE.&lt;/P&gt;&lt;P&gt;    ELSE.&lt;/P&gt;&lt;P&gt;      GD_SENDER_TYPE  = 'INT'.&lt;/P&gt;&lt;P&gt;    ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    DATA: LD_ERROR    TYPE SY-SUBRC,&lt;/P&gt;&lt;P&gt;            LD_RECIEVER TYPE SY-SUBRC,&lt;/P&gt;&lt;P&gt;            LD_MTITLE TYPE SODOCCHGI1-OBJ_DESCR,&lt;/P&gt;&lt;P&gt;            LD_EMAIL TYPE  SOMLRECI1-RECEIVER,&lt;/P&gt;&lt;P&gt;            LD_FORMAT TYPE  SO_OBJ_TP ,&lt;/P&gt;&lt;P&gt;            LD_ATTDESCRIPTION TYPE  SO_OBJ_NAM ,&lt;/P&gt;&lt;P&gt;            LD_ATTFILENAME TYPE  SO_OBJ_DES ,&lt;/P&gt;&lt;P&gt;            LD_SENDER_ADDRESS TYPE  SOEXTRECI1-RECEIVER,&lt;/P&gt;&lt;P&gt;            LD_SENDER_ADDRESS_TYPE TYPE  SOEXTRECI1-ADR_TYP,&lt;/P&gt;&lt;P&gt;            LD_RECEIVER TYPE  SY-SUBRC.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    DATA:   T_PACKING_LIST TYPE TABLE OF SOPCKLSTI1,&lt;/P&gt;&lt;P&gt;            WA_PACKING_LIST TYPE SOPCKLSTI1,&lt;/P&gt;&lt;P&gt;            T_CONTENTS TYPE TABLE OF SOLISTI1 ,&lt;/P&gt;&lt;P&gt;            T_RECEIVERS TYPE TABLE OF SOMLRECI1 ,&lt;/P&gt;&lt;P&gt;            WA_RECEIVERS TYPE SOMLRECI1 ,&lt;/P&gt;&lt;P&gt;            T_ATTACHMENT TYPE TABLE OF SOLISTI1 ,&lt;/P&gt;&lt;P&gt;            T_OBJECT_HEADER TYPE TABLE OF SOLISTI1 ,&lt;/P&gt;&lt;P&gt;            W_CNT TYPE I,&lt;/P&gt;&lt;P&gt;            W_SENT_ALL(1) TYPE C,&lt;/P&gt;&lt;P&gt;            W_DOC_DATA TYPE SODOCCHGI1.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    LD_EMAIL   = give the email address here.&lt;/P&gt;&lt;P&gt;    LD_MTITLE = 'Example .xls documnet attachment'.&lt;/P&gt;&lt;P&gt;    LD_FORMAT              = 'PDF'.&lt;/P&gt;&lt;P&gt;    LD_ATTDESCRIPTION      = GD_ATTACHMENT_DESC.&lt;/P&gt;&lt;P&gt;    LD_ATTFILENAME         = GD_ATTACHMENT_NAME.&lt;/P&gt;&lt;P&gt;    LD_SENDER_ADDRESS      = P_SENDER.&lt;/P&gt;&lt;P&gt;    LD_SENDER_ADDRESS_TYPE = GD_SENDER_TYPE.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Fill the document data.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;    W_DOC_DATA-DOC_SIZE = 1.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Populate the subject/generic message attributes&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;    W_DOC_DATA-OBJ_LANGU = SY-LANGU.&lt;/P&gt;&lt;P&gt;    W_DOC_DATA-OBJ_NAME  = 'SAPRPT'.&lt;/P&gt;&lt;P&gt;    W_DOC_DATA-OBJ_DESCR = LD_MTITLE .&lt;/P&gt;&lt;P&gt;    W_DOC_DATA-SENSITIVTY = 'F'.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Fill the document data and get size of attachment&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;    CLEAR W_DOC_DATA.&lt;/P&gt;&lt;P&gt;    READ TABLE IT_MESS_ATT INTO WA_MESS_ATT&lt;/P&gt;&lt;P&gt;  INDEX W_CNT.&lt;/P&gt;&lt;P&gt;    W_DOC_DATA-DOC_SIZE =&lt;/P&gt;&lt;P&gt;       ( W_CNT - 1 ) * 255 + STRLEN( WA_MESS_ATT ).&lt;/P&gt;&lt;P&gt;    W_DOC_DATA-OBJ_LANGU  = SY-LANGU.&lt;/P&gt;&lt;P&gt;    W_DOC_DATA-OBJ_NAME   = 'SAPRPT'.&lt;/P&gt;&lt;P&gt;    W_DOC_DATA-OBJ_DESCR  = LD_MTITLE.&lt;/P&gt;&lt;P&gt;    W_DOC_DATA-SENSITIVTY = 'F'.&lt;/P&gt;&lt;P&gt;    CLEAR T_ATTACHMENT.&lt;/P&gt;&lt;P&gt;    REFRESH T_ATTACHMENT.&lt;/P&gt;&lt;P&gt;    T_ATTACHMENT[] = IT_MESS_ATT[].&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Describe the body of the message&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;    CLEAR T_PACKING_LIST.&lt;/P&gt;&lt;P&gt;    REFRESH T_PACKING_LIST.&lt;/P&gt;&lt;P&gt;    WA_PACKING_LIST-TRANSF_BIN = SPACE.&lt;/P&gt;&lt;P&gt;    WA_PACKING_LIST-HEAD_START = 1.&lt;/P&gt;&lt;P&gt;    WA_PACKING_LIST-HEAD_NUM = 0.&lt;/P&gt;&lt;P&gt;    WA_PACKING_LIST-BODY_START = 1.&lt;/P&gt;&lt;P&gt;    DESCRIBE TABLE IT_MESS_BOD LINES WA_PACKING_LIST-BODY_NUM.&lt;/P&gt;&lt;P&gt;    WA_PACKING_LIST-DOC_TYPE = 'RAW'.&lt;/P&gt;&lt;P&gt;    APPEND  WA_PACKING_LIST TO T_PACKING_LIST.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Create attachment notification&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;    WA_PACKING_LIST-TRANSF_BIN = 'X'.&lt;/P&gt;&lt;P&gt;    WA_PACKING_LIST-HEAD_START = 1.&lt;/P&gt;&lt;P&gt;    WA_PACKING_LIST-HEAD_NUM   = 1.&lt;/P&gt;&lt;P&gt;    WA_PACKING_LIST-BODY_START = 1.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    DESCRIBE TABLE T_ATTACHMENT LINES WA_PACKING_LIST-BODY_NUM.&lt;/P&gt;&lt;P&gt;    WA_PACKING_LIST-DOC_TYPE   =  LD_FORMAT.&lt;/P&gt;&lt;P&gt;    WA_PACKING_LIST-OBJ_DESCR  =  LD_ATTDESCRIPTION.&lt;/P&gt;&lt;P&gt;    WA_PACKING_LIST-OBJ_NAME   =  LD_ATTFILENAME.&lt;/P&gt;&lt;P&gt;    WA_PACKING_LIST-DOC_SIZE   =  WA_PACKING_LIST-BODY_NUM * 255.&lt;/P&gt;&lt;P&gt;    APPEND WA_PACKING_LIST TO T_PACKING_LIST.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Add the recipients email address&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;    CLEAR T_RECEIVERS.&lt;/P&gt;&lt;P&gt;    REFRESH T_RECEIVERS.&lt;/P&gt;&lt;P&gt;    WA_RECEIVERS-RECEIVER = LD_EMAIL.&lt;/P&gt;&lt;P&gt;    WA_RECEIVERS-REC_TYPE = 'U'.&lt;/P&gt;&lt;P&gt;    WA_RECEIVERS-COM_TYPE = 'INT'.&lt;/P&gt;&lt;P&gt;    WA_RECEIVERS-NOTIF_DEL = 'X'.&lt;/P&gt;&lt;P&gt;    WA_RECEIVERS-NOTIF_NDEL = 'X'.&lt;/P&gt;&lt;P&gt;    APPEND WA_RECEIVERS TO T_RECEIVERS.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    CALL FUNCTION 'SO_DOCUMENT_SEND_API1'&lt;/P&gt;&lt;P&gt;      EXPORTING&lt;/P&gt;&lt;P&gt;        DOCUMENT_DATA              = W_DOC_DATA&lt;/P&gt;&lt;P&gt;        PUT_IN_OUTBOX              = 'X'&lt;/P&gt;&lt;P&gt;        SENDER_ADDRESS             = LD_SENDER_ADDRESS&lt;/P&gt;&lt;P&gt;        SENDER_ADDRESS_TYPE        = LD_SENDER_ADDRESS_TYPE&lt;/P&gt;&lt;P&gt;        COMMIT_WORK                = 'X'&lt;/P&gt;&lt;P&gt;      IMPORTING&lt;/P&gt;&lt;P&gt;        SENT_TO_ALL                = W_SENT_ALL&lt;/P&gt;&lt;P&gt;      TABLES&lt;/P&gt;&lt;P&gt;        PACKING_LIST               = T_PACKING_LIST&lt;/P&gt;&lt;P&gt;        CONTENTS_BIN               = T_ATTACHMENT&lt;/P&gt;&lt;P&gt;        CONTENTS_TXT               = IT_MESS_BOD&lt;/P&gt;&lt;P&gt;        RECEIVERS                  = T_RECEIVERS&lt;/P&gt;&lt;P&gt;      EXCEPTIONS&lt;/P&gt;&lt;P&gt;        TOO_MANY_RECEIVERS         = 1&lt;/P&gt;&lt;P&gt;        DOCUMENT_NOT_SENT          = 2&lt;/P&gt;&lt;P&gt;        DOCUMENT_TYPE_NOT_EXIST    = 3&lt;/P&gt;&lt;P&gt;        OPERATION_NO_AUTHORIZATION = 4&lt;/P&gt;&lt;P&gt;        PARAMETER_ERROR            = 5&lt;/P&gt;&lt;P&gt;        X_ERROR                    = 6&lt;/P&gt;&lt;P&gt;        ENQUEUE_ERROR              = 7&lt;/P&gt;&lt;P&gt;        OTHERS                     = 8.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Regards,&lt;/P&gt;&lt;P&gt;Vidya.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 08 May 2007 14:15:11 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/sapscript-email-body-text/m-p/2228685#M479305</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2007-05-08T14:15:11Z</dc:date>
    </item>
    <item>
      <title>Re: SAPScript EMAIL Body Text</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/sapscript-email-body-text/m-p/2228686#M479306</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi Surajit,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;lt;b&amp;gt;Good ... check out the following solutions&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;U want send output of script right? After developing the script you need to use 2 FMs,&lt;/P&gt;&lt;P&gt;'CONVERT_OTF' this is for convert the output into PDF&lt;/P&gt;&lt;P&gt;'SO_NEW_DOCUMENT_ATT_SEND_API1' this is for send output to mail. &lt;/P&gt;&lt;P&gt;Just execute SE37 and enter each function module and press 'where used list' then select programs check box then it will display all the programs where those FMs are used. You may get some idea about how to use these FMs.&lt;/P&gt;&lt;P&gt;Hope this helps you, reply for queries,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;when u r callin the FM'SO_NEW_DOCUMENT_ATT_SEND_API1'.. points to remember&lt;/P&gt;&lt;P&gt;1.u have to pass the body of content in table CONTENTS_TXT(ia m using I_OBJBIN) (each line a record) then. suppose i ahve appended 11 records to the table CONTENTS_TXT .&lt;/P&gt;&lt;P&gt;2.PACKING_LIST(iam usign I_OBJPACK) table u ahve to append a redord as follows&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt; I_OBJPACK-TRANSF_BIN   = ' '.&lt;/P&gt;&lt;P&gt;I_OBJPACK-HEAD_START  = 000000000000001.&lt;/P&gt;&lt;P&gt;I_OBJPACK-HEAD_NUM     = 000000000000001.&lt;/P&gt;&lt;P&gt;I_OBJPACK-BODY_START  = 000000000000002&lt;/P&gt;&lt;P&gt;I_OBJPACK-BODY_NUM     = 000000000000010.&lt;/P&gt;&lt;P&gt;I_OBJPACK-DOC_TYPE      = 'RAW'.&lt;/P&gt;&lt;P&gt;append I_OBJPACK-.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;in the above system treat the first line in table I_OBJBIN as header and the 2nd line to 10 lines tread as body.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;CALL FUNCTION 'SO_NEW_DOCUMENT_ATT_SEND_API1'&lt;/P&gt;&lt;P&gt;  EXPORTING&lt;/P&gt;&lt;P&gt;    DOCUMENT_DATA              = WA_DOC_CHNG&lt;/P&gt;&lt;P&gt;    PUT_IN_OUTBOX              = 'X'&lt;/P&gt;&lt;P&gt;  TABLES&lt;/P&gt;&lt;P&gt;    PACKING_LIST               = I_OBJPACK&lt;/P&gt;&lt;P&gt;    OBJECT_HEADER              = WA_OBJHEAD&lt;/P&gt;&lt;P&gt;    CONTENTS_BIN               = I_OBJBIN&lt;/P&gt;&lt;P&gt;    CONTENTS_TXT               = I_OBJTXT&lt;/P&gt;&lt;P&gt;    RECEIVERS                  = I_RECLIST&lt;/P&gt;&lt;P&gt;  EXCEPTIONS&lt;/P&gt;&lt;P&gt;    TOO_MANY_RECEIVERS         = 1&lt;/P&gt;&lt;P&gt;    DOCUMENT_NOT_SENT          = 2&lt;/P&gt;&lt;P&gt;    DOCUMENT_TYPE_NOT_EXIST    = 3&lt;/P&gt;&lt;P&gt;    OPERATION_NO_AUTHORIZATION = 4&lt;/P&gt;&lt;P&gt;    PARAMETER_ERROR            = 5&lt;/P&gt;&lt;P&gt;    X_ERROR                    = 6&lt;/P&gt;&lt;P&gt;    ENQUEUE_ERROR              = 7&lt;/P&gt;&lt;P&gt;    OTHERS                     = 8.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I hope it clear lem know any concerns&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;smartform to MAIL&lt;/P&gt;&lt;P&gt;&lt;A href="https://wiki.sdn.sap.com/wiki/x/a0w" target="test_blank"&gt;https://wiki.sdn.sap.com/wiki/x/a0w&lt;/A&gt;&lt;/P&gt;&lt;P&gt;&lt;A href="https://wiki.sdn.sap.com/wiki/display/Snippets/Smartform" target="test_blank"&gt;https://wiki.sdn.sap.com/wiki/display/Snippets/Smartform&lt;/A&gt;&lt;EM&gt;to&lt;/EM&gt;Mail&lt;EM&gt;as&lt;/EM&gt;PDF+attachment&amp;lt;/b&amp;gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Good Luck and thanks&lt;/P&gt;&lt;P&gt;AK&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 09 May 2007 11:38:05 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/sapscript-email-body-text/m-p/2228686#M479306</guid>
      <dc:creator>ashok_kumar24</dc:creator>
      <dc:date>2007-05-09T11:38:05Z</dc:date>
    </item>
    <item>
      <title>Re: SAPScript EMAIL Body Text</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/sapscript-email-body-text/m-p/2228687#M479307</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;hi,&lt;/P&gt;&lt;P&gt;scripts through email:&lt;/P&gt;&lt;P&gt;report  zsr_script_pdf&lt;/P&gt;&lt;P&gt;    message-id zz.&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; CONSTANTS                                                           *&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt; constants : c_x(1)      type c value 'X',      " For constant value&lt;/P&gt;&lt;P&gt;            c_otf(3)    type c value 'OTF',    " For format&lt;/P&gt;&lt;P&gt;            c_u(1)      type c value 'U'.      " Mail Option&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; VARIABLES                                                           *&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt; data : v_rqident  type tsp01-rqident,  " For Spool Number&lt;/P&gt;&lt;P&gt;       v_rqclient type tsp01-rqclient, " For Client&lt;/P&gt;&lt;P&gt;       v_rqo1name type tsp01-rqo1name, " For Object name&lt;/P&gt;&lt;P&gt;       v_spool    type tsp01-rqident,  " For Spool Number&lt;/P&gt;&lt;P&gt;       v_spool1   type tsp01-rqident.  " For Spool Number&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; FLAGS                                                               *&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt; data : f_spool type c.&lt;/P&gt;&lt;P&gt; &lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  INTERNAL TABLES                                                    *&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Internal table for sending mails&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;data: it_pdf          like tline      occurs 10 with header line,&lt;/P&gt;&lt;P&gt;      it_xi_pdf       like tline      occurs 0  with header line,&lt;/P&gt;&lt;P&gt;      it_html         like solisti1   occurs 0  with header line,&lt;/P&gt;&lt;P&gt;      it_xi_temp      like bapiqcmime occurs 0  with header line,&lt;/P&gt;&lt;P&gt;      it_xi_mime(255) type c          occurs 0  with header line.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;For sending mail&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;data: it_objpack like sopcklsti1 occurs 2 with header line.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Internal table for Single List with Column Length 255&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;data : it_objbin like solisti1 occurs 10 with header line.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Internal table for Single List with Column Length 255&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;data : it_objtxt like solisti1 occurs 10 with header line.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Internal table for Structure of the API Recipient List&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;data : it_reclist like somlreci1 occurs 5 with header line.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Structure of the API Recipient List&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;data: x_doc_chng like sodocchgi1.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Internal table for storing the variants&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;data : begin of it_variant1 occurs 0,&lt;/P&gt;&lt;P&gt;        variant like varid-variant,&lt;/P&gt;&lt;P&gt;       end   of it_variant1.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Internal table to store variants for the programs&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;data: it_variant2 like it_variant1 occurs 0 with header line.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Internal table for storing the selected values&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;data it_return type ddshretval occurs 0 with header line.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Internal table for storing the mail-ids&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;data : begin of it_mailid occurs 0,&lt;/P&gt;&lt;P&gt;        kokrs like csks-kokrs,&lt;/P&gt;&lt;P&gt;        kostl like csks-kostl,&lt;/P&gt;&lt;P&gt;        datbi like csks-datbi,&lt;/P&gt;&lt;P&gt;        telx1 like csks-telx1,&lt;/P&gt;&lt;P&gt;       end   of it_mailid.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Internal table for storing the mail-ids&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;data : it_mailid1 like it_mailid occurs 0 with header line.&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  SELECTION SCREEN                                                   *&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;data : v_char type char50.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;selection-screen begin of block b1 with frame title text-001.&lt;/P&gt;&lt;P&gt;select-options: s_email for v_char  no intervals&lt;/P&gt;&lt;P&gt;                lower case&lt;/P&gt;&lt;P&gt;                no-display.&lt;/P&gt;&lt;P&gt;select-options: s_email1 for v_char  no intervals&lt;/P&gt;&lt;P&gt;                lower case&lt;/P&gt;&lt;P&gt;                no-display.&lt;/P&gt;&lt;P&gt;selection-screen end of block b1.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;selection-screen begin of block a1 with frame title text-028.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;selection-screen begin of line.&lt;/P&gt;&lt;P&gt;parameters : p_c1 as checkbox.&lt;/P&gt;&lt;P&gt;selection-screen comment 3(66) text-026 for field p_c1.&lt;/P&gt;&lt;P&gt;selection-screen end of line.&lt;/P&gt;&lt;P&gt;parameters : p_set like tsp1d-papart matchcode object zh_tsp1d.&lt;/P&gt;&lt;P&gt;selection-screen skip 1.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;parameters : p_vara1 type rs38m-selset.&lt;/P&gt;&lt;P&gt;selection-screen end of block a1.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;selection-screen begin of block a2 with frame title text-029.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;selection-screen begin of line.&lt;/P&gt;&lt;P&gt;parameters : p_c2 as checkbox.&lt;/P&gt;&lt;P&gt;selection-screen comment 3(56) text-027 for field p_c1.&lt;/P&gt;&lt;P&gt;selection-screen end of line.&lt;/P&gt;&lt;P&gt;parameters : p_set1 like tsp1d-papart matchcode object zh_tsp1d.&lt;/P&gt;&lt;P&gt;selection-screen skip 1.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;parameters : p_vara2 type rs38m-selset.&lt;/P&gt;&lt;P&gt;selection-screen end of block a2.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;AT SELECTION SCREEN ON VALUE REQUEST&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;at selection-screen on value-request for p_vara1.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;For fetching the variants available for the program&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  perform fetch_variants.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;at selection-screen on value-request for p_vara2.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;For fetching the variants available for the program&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  perform fetch_variants1.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;AT SELECTION SCREEN&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;at selection-screen.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;For Validation&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  perform validation.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; START OF SELECTION                                                  *&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;start-of-selection.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;To get the output data and mail&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  perform fetch_data.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; END OF SELECTION                                                    *&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;end-of-selection.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;  if f_spool = c_x.&lt;/P&gt;&lt;P&gt;    message e000 with 'Spool Not Generated'(060).&lt;/P&gt;&lt;P&gt;  endif.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&amp;amp;      Form  fetch_data&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      To get the output data and mail&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;form fetch_data .&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;To send the output to spool&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  perform generate_spool.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;endform.                    " fetch_data&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&amp;amp;      Form  generate_spool&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      To send the output to spool&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;form generate_spool .&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;  data: l_params like pri_params,&lt;/P&gt;&lt;P&gt;        l_days(1)  type n value 2,&lt;/P&gt;&lt;P&gt;        l_count(3) type n value 1,&lt;/P&gt;&lt;P&gt;        l_valid    type c,&lt;/P&gt;&lt;P&gt;        l_valid1   type c,&lt;/P&gt;&lt;P&gt;        l_params1  like pri_params.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;  data: l_device type usr01-spld.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;*Get the printer name for the user&lt;/P&gt;&lt;P&gt;  select single spld into l_device from usr01 where bname = sy-uname.&lt;/P&gt;&lt;P&gt;  if l_device is initial.&lt;/P&gt;&lt;P&gt;    l_device = 'LOCL'.&lt;/P&gt;&lt;P&gt;  endif.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;For report-1&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  if p_c1 = 'X'.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Setting the print parameters&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;    call function 'GET_PRINT_PARAMETERS'&lt;/P&gt;&lt;P&gt;      exporting&lt;/P&gt;&lt;P&gt;        destination    = l_device&lt;/P&gt;&lt;P&gt;        copies         = l_count&lt;/P&gt;&lt;P&gt;        list_name      = sy-uname&lt;/P&gt;&lt;P&gt;        list_text      = 'SUBMIT ... TO SAP-SPOOL'(008)&lt;/P&gt;&lt;P&gt;        release        = c_x&lt;/P&gt;&lt;P&gt;        new_list_id    = c_x&lt;/P&gt;&lt;P&gt;        expiration     = l_days&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;       LINE_SIZE      = 255&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;       LINE_COUNT     = 65&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;        layout         = p_set&lt;/P&gt;&lt;P&gt;        sap_cover_page = space&lt;/P&gt;&lt;P&gt;        cover_page     = space&lt;/P&gt;&lt;P&gt;        receiver       = 'SAP*'(010)&lt;/P&gt;&lt;P&gt;        department     = 'System'(011)&lt;/P&gt;&lt;P&gt;        no_dialog      = c_x&lt;/P&gt;&lt;P&gt;      importing&lt;/P&gt;&lt;P&gt;        out_parameters = l_params&lt;/P&gt;&lt;P&gt;        valid          = l_valid.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;    if l_valid &amp;lt;&amp;gt; space.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;      clear v_spool.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Fetch the spool number b4 submit&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;      perform fetch_recent_spool using v_spool.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Submitting the program to spool&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;      submit rkaep000 to sap-spool&lt;/P&gt;&lt;P&gt;        using selection-set p_vara1&lt;/P&gt;&lt;P&gt;        spool parameters l_params&lt;/P&gt;&lt;P&gt;        without spool dynpro&lt;/P&gt;&lt;P&gt;        and return.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;      clear v_spool1.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Fetch the spool number after submit&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;      perform fetch_recent_spool using v_spool1.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;      if v_spool = v_spool1.&lt;/P&gt;&lt;P&gt;        f_spool = c_x.&lt;/P&gt;&lt;P&gt;        if p_c2 is initial.&lt;/P&gt;&lt;P&gt;          stop.&lt;/P&gt;&lt;P&gt;        endif.&lt;/P&gt;&lt;P&gt;      else.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Checking the format ( ABAP/OTF)&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;        perform format_check tables s_email.&lt;/P&gt;&lt;P&gt;      endif.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;    else.&lt;/P&gt;&lt;P&gt;      message e000 with 'Problem in print settings'(003).&lt;/P&gt;&lt;P&gt;      stop.&lt;/P&gt;&lt;P&gt;    endif.&lt;/P&gt;&lt;P&gt;  endif.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;For Report-2&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  if p_c2 = 'X'.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Setting the print parameters&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;    call function 'GET_PRINT_PARAMETERS'&lt;/P&gt;&lt;P&gt;      exporting&lt;/P&gt;&lt;P&gt;        destination    = l_device&lt;/P&gt;&lt;P&gt;        copies         = l_count&lt;/P&gt;&lt;P&gt;        list_name      = sy-uname&lt;/P&gt;&lt;P&gt;        list_text      = 'SUBMIT ... TO SAP-SPOOL'(008)&lt;/P&gt;&lt;P&gt;        release        = c_x&lt;/P&gt;&lt;P&gt;        new_list_id    = c_x&lt;/P&gt;&lt;P&gt;        expiration     = l_days&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;       LINE_SIZE      = 200&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;       LINE_COUNT     = 65&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;        layout         = p_set1&lt;/P&gt;&lt;P&gt;        sap_cover_page = space&lt;/P&gt;&lt;P&gt;        cover_page     = space&lt;/P&gt;&lt;P&gt;        receiver       = 'SAP*'(010)&lt;/P&gt;&lt;P&gt;        department     = 'System'(011)&lt;/P&gt;&lt;P&gt;        no_dialog      = c_x&lt;/P&gt;&lt;P&gt;      importing&lt;/P&gt;&lt;P&gt;        out_parameters = l_params1&lt;/P&gt;&lt;P&gt;        valid          = l_valid1.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;    if l_valid1 &amp;lt;&amp;gt; space.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;      clear v_spool.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Fetch the spool number b4 submit&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;      perform fetch_recent_spool using v_spool.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Submitting the program to spool&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;      submit gp3diehxy88snfj0391v7kf9ek7050 to sap-spool&lt;/P&gt;&lt;P&gt;        using selection-set p_vara2&lt;/P&gt;&lt;P&gt;        spool parameters l_params1&lt;/P&gt;&lt;P&gt;        without spool dynpro&lt;/P&gt;&lt;P&gt;        and return.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;      clear v_spool1.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Fetch the spool number after submit&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;      perform fetch_recent_spool using v_spool1.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;      if v_spool = v_spool1.&lt;/P&gt;&lt;P&gt;        message e000 with 'Spool Not Generated'(060).&lt;/P&gt;&lt;P&gt;        stop.&lt;/P&gt;&lt;P&gt;      endif.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Checking the format ( ABAP/OTF)&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;      perform format_check tables s_email1.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;    else.&lt;/P&gt;&lt;P&gt;      message e000 with 'Problem in print settings'(003).&lt;/P&gt;&lt;P&gt;      stop.&lt;/P&gt;&lt;P&gt;    endif.&lt;/P&gt;&lt;P&gt;  endif.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;endform.                    " generate_spool&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&amp;amp;      Form  fetch_recent_spool&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      Fetch the recent spool number generated&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;form fetch_recent_spool using p_v_spool type tsp01-rqident .&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;  data:  l_user like tsp01-rq2name.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;  clear : v_rqident,&lt;/P&gt;&lt;P&gt;          v_rqclient,&lt;/P&gt;&lt;P&gt;          v_rqo1name.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;  l_user = sy-uname.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Get latest Spool No&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  select single rqident&lt;/P&gt;&lt;P&gt;                rqclient&lt;/P&gt;&lt;P&gt;                rqo1name&lt;/P&gt;&lt;P&gt;         into (v_rqident , v_rqclient , v_rqo1name)&lt;/P&gt;&lt;P&gt;    from tsp01&lt;/P&gt;&lt;P&gt;   where rqcretime =   ( select max( rqcretime )&lt;/P&gt;&lt;P&gt;                                from tsp01&lt;/P&gt;&lt;P&gt;                               where rq2name eq l_user&lt;/P&gt;&lt;P&gt;                                 and rqfinal eq '.' ).&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;  if sy-subrc = 0 .&lt;/P&gt;&lt;P&gt;    p_v_spool = v_rqident.&lt;/P&gt;&lt;P&gt;  endif.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;endform.                    " fetch_recent_spool&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&amp;amp;      Form  format_check&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      Checking the format ( ABAP/OTF)&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;form format_check tables p_s_email structure s_email.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;  data : l_objtype    like rststype-type.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;  call function 'RSTS_GET_ATTRIBUTES'&lt;/P&gt;&lt;P&gt;    exporting&lt;/P&gt;&lt;P&gt;      authority     = 'SP01'(019)&lt;/P&gt;&lt;P&gt;      client        = v_rqclient&lt;/P&gt;&lt;P&gt;      name          = v_rqo1name&lt;/P&gt;&lt;P&gt;      part          = 1&lt;/P&gt;&lt;P&gt;    importing&lt;/P&gt;&lt;P&gt;      objtype       = l_objtype&lt;/P&gt;&lt;P&gt;    exceptions&lt;/P&gt;&lt;P&gt;      fb_error      = 1&lt;/P&gt;&lt;P&gt;      fb_rsts_other = 2&lt;/P&gt;&lt;P&gt;      no_object     = 3&lt;/P&gt;&lt;P&gt;      no_permission = 4.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;  if sy-subrc &amp;lt;&amp;gt; 0.&lt;/P&gt;&lt;P&gt;    message id sy-msgid type sy-msgty number sy-msgno&lt;/P&gt;&lt;P&gt;            with sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.&lt;/P&gt;&lt;P&gt;  endif.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;  if l_objtype(3) = c_otf.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Convert OTF Spool to PDF&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;    perform convert_otf2pdf tables p_s_email.&lt;/P&gt;&lt;P&gt;  else.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Convert ABAP Spool to PDF&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;    perform convert_abap2pdf tables p_s_email.&lt;/P&gt;&lt;P&gt;  endif.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;endform.                    " format_check&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&amp;amp;      Form  convert_otf2pdf&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      Convert OTF Spool to PDF&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;form convert_otf2pdf tables p_p_s_email structure s_email .&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;  clear   it_pdf.&lt;/P&gt;&lt;P&gt;  refresh it_pdf.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;  data : l_bytecount  type i.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Fn. to get the PDF format&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  call function 'CONVERT_OTFSPOOLJOB_2_PDF'&lt;/P&gt;&lt;P&gt;    exporting&lt;/P&gt;&lt;P&gt;      src_spoolid              = v_rqident&lt;/P&gt;&lt;P&gt;      no_dialog                = 'X'&lt;/P&gt;&lt;P&gt;    importing&lt;/P&gt;&lt;P&gt;      pdf_bytecount            = l_bytecount&lt;/P&gt;&lt;P&gt;    tables&lt;/P&gt;&lt;P&gt;      pdf                      = it_pdf&lt;/P&gt;&lt;P&gt;    exceptions&lt;/P&gt;&lt;P&gt;      err_no_otf_spooljob      = 1&lt;/P&gt;&lt;P&gt;      err_no_spooljob          = 2&lt;/P&gt;&lt;P&gt;      err_no_permission        = 3&lt;/P&gt;&lt;P&gt;      err_conv_not_possible    = 4&lt;/P&gt;&lt;P&gt;      err_bad_dstdevice        = 5&lt;/P&gt;&lt;P&gt;      user_cancelled           = 6&lt;/P&gt;&lt;P&gt;      err_spoolerror           = 7&lt;/P&gt;&lt;P&gt;      err_temseerror           = 8&lt;/P&gt;&lt;P&gt;      err_btcjob_open_failed   = 9&lt;/P&gt;&lt;P&gt;      err_btcjob_submit_failed = 10&lt;/P&gt;&lt;P&gt;      err_btcjob_close_failed  = 11.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;  if sy-subrc = 0.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;For page format&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;    perform page_format tables p_p_s_email.&lt;/P&gt;&lt;P&gt;  else.&lt;/P&gt;&lt;P&gt;    message id sy-msgid type sy-msgty number sy-msgno&lt;/P&gt;&lt;P&gt;            with sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.&lt;/P&gt;&lt;P&gt;  endif.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;endform.                    " convert_otf2pdf&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&amp;amp;      Form  convert_abap2pdf&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;       Convert ABAP Spool to PDF&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;form convert_abap2pdf tables p_p_s_email structure s_email.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;  clear   it_pdf.&lt;/P&gt;&lt;P&gt;  refresh it_pdf.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;  data : l_bytecount  type i.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Fn. to convert to PDF format&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  call function 'CONVERT_ABAPSPOOLJOB_2_PDF'&lt;/P&gt;&lt;P&gt;    exporting&lt;/P&gt;&lt;P&gt;      src_spoolid              = v_rqident&lt;/P&gt;&lt;P&gt;      no_dialog                = 'X'&lt;/P&gt;&lt;P&gt;    importing&lt;/P&gt;&lt;P&gt;      pdf_bytecount            = l_bytecount&lt;/P&gt;&lt;P&gt;    tables&lt;/P&gt;&lt;P&gt;      pdf                      = it_pdf&lt;/P&gt;&lt;P&gt;    exceptions&lt;/P&gt;&lt;P&gt;      err_no_abap_spooljob     = 1&lt;/P&gt;&lt;P&gt;      err_no_spooljob          = 2&lt;/P&gt;&lt;P&gt;      err_no_permission        = 3&lt;/P&gt;&lt;P&gt;      err_conv_not_possible    = 4&lt;/P&gt;&lt;P&gt;      err_bad_destdevice       = 5&lt;/P&gt;&lt;P&gt;      user_cancelled           = 6&lt;/P&gt;&lt;P&gt;      err_spoolerror           = 7&lt;/P&gt;&lt;P&gt;      err_temseerror           = 8&lt;/P&gt;&lt;P&gt;      err_btcjob_open_failed   = 9&lt;/P&gt;&lt;P&gt;      err_btcjob_submit_failed = 10&lt;/P&gt;&lt;P&gt;      err_btcjob_close_failed  = 11.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;  if sy-subrc = 0.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;For page formatting&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;    perform page_format tables p_p_s_email.&lt;/P&gt;&lt;P&gt;  else.&lt;/P&gt;&lt;P&gt;    message id sy-msgid type sy-msgty number sy-msgno&lt;/P&gt;&lt;P&gt;            with sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.&lt;/P&gt;&lt;P&gt;  endif.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;endform.                    " convert_abap2pdf&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&amp;amp;      Form  send_mail&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      For sending mail&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;form send_mail tables mail structure s_email .&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Structures and internal tables for the send data&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  data: objpack like sopcklsti1 occurs 2  with header line,&lt;/P&gt;&lt;P&gt;        objhead like solisti1   occurs 1  with header line,&lt;/P&gt;&lt;P&gt;        objbin  like solisti1   occurs 0  with header line,&lt;/P&gt;&lt;P&gt;        objtxt  like solisti1   occurs 10 with header line,&lt;/P&gt;&lt;P&gt;        reclist like somlreci1  occurs 5  with header line.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;  data: doc_chng like sodocchgi1,&lt;/P&gt;&lt;P&gt;        tab_lines like sy-tabix.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Data for the status output after sending&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  data: sent_to_all like sonv-flag.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;  clear: it_reclist, it_reclist[],&lt;/P&gt;&lt;P&gt;         it_objtxt , it_objtxt[],&lt;/P&gt;&lt;P&gt;         it_objpack, it_objpack[],&lt;/P&gt;&lt;P&gt;         it_objbin , it_objbin[],x_doc_chng.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;  loop at it_html.&lt;/P&gt;&lt;P&gt;    objbin-line = it_html-line.&lt;/P&gt;&lt;P&gt;    append objbin.&lt;/P&gt;&lt;P&gt;    clear objbin.&lt;/P&gt;&lt;P&gt;  endloop.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Create the document which is to be sent&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  doc_chng-obj_name  = 'List'(012).&lt;/P&gt;&lt;P&gt;  doc_chng-obj_descr = 'Mail'(013).&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Heading&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  objtxt-line = 'Mail with pdf attachment'(014).&lt;/P&gt;&lt;P&gt;  append objtxt.&lt;/P&gt;&lt;P&gt;  clear objtxt.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Size&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  describe table objtxt lines tab_lines.&lt;/P&gt;&lt;P&gt;  read table objtxt index tab_lines.&lt;/P&gt;&lt;P&gt;  doc_chng-doc_size = ( tab_lines - 1 ) * 255 + strlen( objtxt ).&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Fill the fields of the packing_list for the main document:&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  clear objpack-transf_bin.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;The document needs no header (head_num = 0)&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  objpack-head_start = 1.&lt;/P&gt;&lt;P&gt;  objpack-head_num = 0.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Body&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  objpack-body_start = 1.&lt;/P&gt;&lt;P&gt;  objpack-body_num = tab_lines.&lt;/P&gt;&lt;P&gt;  objpack-doc_type = 'RAW'(015).&lt;/P&gt;&lt;P&gt;  append objpack.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Create the attachment (the list itself)&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  describe table objbin lines tab_lines.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Fill the fields of the packing_list for the attachment:&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  objpack-transf_bin = 'X'.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Header&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  objpack-head_start = 1.&lt;/P&gt;&lt;P&gt;  objpack-head_num = 0.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Body&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  objpack-body_start = 1.&lt;/P&gt;&lt;P&gt;  objpack-body_num = tab_lines.&lt;/P&gt;&lt;P&gt;  objpack-doc_type = 'PDF'(016).&lt;/P&gt;&lt;P&gt;  objpack-obj_name = 'Attachment'(017).&lt;/P&gt;&lt;P&gt;  objpack-obj_descr = 'Mail with pdf Attachment'(018).&lt;/P&gt;&lt;P&gt;  objpack-doc_size = tab_lines * 255.&lt;/P&gt;&lt;P&gt;  append objpack.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;*-Fill the mail recipient list&lt;/P&gt;&lt;P&gt;  loop at mail.&lt;/P&gt;&lt;P&gt;    reclist-receiver = mail-low.&lt;/P&gt;&lt;P&gt;    reclist-rec_type = c_u.&lt;/P&gt;&lt;P&gt;    append reclist.&lt;/P&gt;&lt;P&gt;    clear: reclist,&lt;/P&gt;&lt;P&gt;           mail.&lt;/P&gt;&lt;P&gt;  endloop.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;*-Send the document by calling the SAPoffice API1 module for sending&lt;/P&gt;&lt;P&gt;*-documents with attachments&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;  call function 'SO_NEW_DOCUMENT_ATT_SEND_API1'&lt;/P&gt;&lt;P&gt;    exporting&lt;/P&gt;&lt;P&gt;      document_data              = doc_chng&lt;/P&gt;&lt;P&gt;      put_in_outbox              = c_x&lt;/P&gt;&lt;P&gt;      commit_work                = c_x&lt;/P&gt;&lt;P&gt;    importing&lt;/P&gt;&lt;P&gt;      sent_to_all                = sent_to_all&lt;/P&gt;&lt;P&gt;    tables&lt;/P&gt;&lt;P&gt;      packing_list               = objpack&lt;/P&gt;&lt;P&gt;      object_header              = objhead&lt;/P&gt;&lt;P&gt;      contents_bin               = objbin&lt;/P&gt;&lt;P&gt;      contents_txt               = objtxt&lt;/P&gt;&lt;P&gt;      receivers                  = reclist&lt;/P&gt;&lt;P&gt;    exceptions&lt;/P&gt;&lt;P&gt;      too_many_receivers         = 1&lt;/P&gt;&lt;P&gt;      document_not_sent          = 2&lt;/P&gt;&lt;P&gt;      operation_no_authorization = 4&lt;/P&gt;&lt;P&gt;      others                     = 99.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;  case sy-subrc .&lt;/P&gt;&lt;P&gt;    when 0.&lt;/P&gt;&lt;P&gt;      message i000 with 'Mail has been sent successfully'(006).&lt;/P&gt;&lt;P&gt;    when others.&lt;/P&gt;&lt;P&gt;      message e000 with 'Problem in sending the mail'(023).&lt;/P&gt;&lt;P&gt;  endcase.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;endform.                    " send_mail&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&amp;amp;      Form  page_format&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;       For page foramtting&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;form page_format tables email structure s_email .&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;  data : l_lines       type i,&lt;/P&gt;&lt;P&gt;         l_temp(500)   type c,&lt;/P&gt;&lt;P&gt;         l_offset      type p,&lt;/P&gt;&lt;P&gt;         l_lineslen(2) type p,&lt;/P&gt;&lt;P&gt;         l_mimelen(2)  type p,&lt;/P&gt;&lt;P&gt;         l_tabix       like sy-tabix.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;  clear : it_xi_pdf,&lt;/P&gt;&lt;P&gt;          it_xi_temp.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;  refresh : it_xi_pdf,&lt;/P&gt;&lt;P&gt;            it_xi_temp.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;  it_xi_pdf[] = it_pdf[].&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Reformat the line to 255 characters wide (&lt;DEL&gt;code from SAP&lt;/DEL&gt;)&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  clear: l_temp, l_offset, it_xi_temp.&lt;/P&gt;&lt;P&gt;  describe table it_xi_pdf   lines  l_lines.&lt;/P&gt;&lt;P&gt;  describe field it_xi_pdf   length l_lineslen in character mode.&lt;/P&gt;&lt;P&gt;  describe field it_xi_temp  length l_mimelen in character mode.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;  loop at it_xi_pdf.&lt;/P&gt;&lt;P&gt;    l_tabix = sy-tabix.&lt;/P&gt;&lt;P&gt;    move it_xi_pdf to l_temp+l_offset.&lt;/P&gt;&lt;P&gt;    if l_tabix = l_lines.&lt;/P&gt;&lt;P&gt;      l_lineslen = strlen( it_xi_pdf ).&lt;/P&gt;&lt;P&gt;    endif.&lt;/P&gt;&lt;P&gt;    l_offset = l_offset + l_lineslen.&lt;/P&gt;&lt;P&gt;    if l_offset ge l_mimelen.&lt;/P&gt;&lt;P&gt;      clear it_xi_temp.&lt;/P&gt;&lt;P&gt;      it_xi_temp = l_temp(l_mimelen).&lt;/P&gt;&lt;P&gt;      append it_xi_temp.&lt;/P&gt;&lt;P&gt;      shift l_temp by l_mimelen places.&lt;/P&gt;&lt;P&gt;      l_offset = l_offset - l_mimelen.&lt;/P&gt;&lt;P&gt;    endif.&lt;/P&gt;&lt;P&gt;    if l_tabix = l_lines.&lt;/P&gt;&lt;P&gt;      if l_offset gt 0.&lt;/P&gt;&lt;P&gt;        clear it_xi_temp.&lt;/P&gt;&lt;P&gt;        it_xi_temp = l_temp(l_offset).&lt;/P&gt;&lt;P&gt;        append it_xi_temp.&lt;/P&gt;&lt;P&gt;      endif.&lt;/P&gt;&lt;P&gt;    endif.&lt;/P&gt;&lt;P&gt;  endloop.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;  clear : it_xi_mime,&lt;/P&gt;&lt;P&gt;          it_xi_mime[].&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;  loop at it_xi_temp.&lt;/P&gt;&lt;P&gt;    it_xi_mime(255) = it_xi_temp-line.&lt;/P&gt;&lt;P&gt;    append it_xi_mime.&lt;/P&gt;&lt;P&gt;    clear  it_xi_mime.&lt;/P&gt;&lt;P&gt;  endloop.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Final Data&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  clear : it_html,&lt;/P&gt;&lt;P&gt;          it_html[].&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;  it_html[] = it_xi_mime[].&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;For sending mail&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  perform send_mail tables email.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;endform.                    " page_format&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&amp;amp;      Form  fetch_variants&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      For fetching the variants available for the program&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;form fetch_variants .&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;  data : l_program like rs38m-programm value 'RKAEP000',&lt;/P&gt;&lt;P&gt;         l_vara1 type dfies-fieldname value 'P_VARA1'.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;  clear : it_variant1,&lt;/P&gt;&lt;P&gt;          it_variant1[].&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Get variants&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  perform get_variants tables it_variant1&lt;/P&gt;&lt;P&gt;                       using l_program.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;F4 Help&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  if not it_variant1[] is initial.&lt;/P&gt;&lt;P&gt;    perform get_f4_help tables it_variant1&lt;/P&gt;&lt;P&gt;                         using l_vara1&lt;/P&gt;&lt;P&gt;                        changing p_vara1.&lt;/P&gt;&lt;P&gt;  else.&lt;/P&gt;&lt;P&gt;    message e000 with 'No variants available for report1'(054).&lt;/P&gt;&lt;P&gt;  endif.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;endform.                    " fetch_variants&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&amp;amp;      Form  validation&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      For Validation&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;form validation .&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;  data : l_pro1 like rs38m-programm value 'RKAEP000',&lt;/P&gt;&lt;P&gt;         l_pro2 like rs38m-programm value 'GP3DIEHXY88SNFJ0391V7KF9EK7050',&lt;/P&gt;&lt;P&gt;         l_c1,&lt;/P&gt;&lt;P&gt;         l_c2.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;If both check-box are unchecked&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  if p_c1 is initial&lt;/P&gt;&lt;P&gt; and p_c2 is initial.&lt;/P&gt;&lt;P&gt;    message e000 with 'Check any one check-box'(049).&lt;/P&gt;&lt;P&gt;  endif.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;If checked without varaint&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  if not p_c1 is initial and p_vara1 is initial.&lt;/P&gt;&lt;P&gt;    message e000 with 'Please give any one of the variant for report1'(055).&lt;/P&gt;&lt;P&gt;  endif.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;If checked without varaint&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  if not p_c2 is initial and p_vara2 is initial.&lt;/P&gt;&lt;P&gt;    message e000 with 'Please give any one of the variant for report2'(061).&lt;/P&gt;&lt;P&gt;  endif.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Reading the variant and fetching the mail-ids&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  if p_c1 = c_x.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;    l_c1 = '1'.&lt;/P&gt;&lt;P&gt;    clear : s_email,&lt;/P&gt;&lt;P&gt;            s_email[].&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;    perform read_variants tables it_mailid&lt;/P&gt;&lt;P&gt;                                 s_email&lt;/P&gt;&lt;P&gt;                           using p_vara1&lt;/P&gt;&lt;P&gt;                                 l_pro1&lt;/P&gt;&lt;P&gt;                                 l_c1.&lt;/P&gt;&lt;P&gt;    if s_email[] is initial.&lt;/P&gt;&lt;P&gt;      message e000 with 'No Id available for given Cost report1'(066).&lt;/P&gt;&lt;P&gt;    else.&lt;/P&gt;&lt;P&gt;      sort s_email by low.&lt;/P&gt;&lt;P&gt;      delete adjacent duplicates from s_email comparing low.&lt;/P&gt;&lt;P&gt;    endif.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;  endif.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Reading the variant and fetching the mail-ids&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  if p_c2 = c_x.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;    clear : s_email1,&lt;/P&gt;&lt;P&gt;            s_email1[].&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;    l_c2 = '2'.&lt;/P&gt;&lt;P&gt;    perform read_variants tables it_mailid1&lt;/P&gt;&lt;P&gt;                                 s_email1&lt;/P&gt;&lt;P&gt;                           using p_vara2&lt;/P&gt;&lt;P&gt;                                 l_pro2&lt;/P&gt;&lt;P&gt;                                 l_c2.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;    if s_email1[] is initial.&lt;/P&gt;&lt;P&gt;      message e000 with 'No Id available for given Cost report2'(067).&lt;/P&gt;&lt;P&gt;    else.&lt;/P&gt;&lt;P&gt;      sort s_email1 by low.&lt;/P&gt;&lt;P&gt;      delete adjacent duplicates from s_email1 comparing low.&lt;/P&gt;&lt;P&gt;    endif.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;  endif.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;endform.                    " validation&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&amp;amp;      Form  GET_VARIANTS&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      Fetching Variants&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;form get_variants  tables   p_it_variant structure it_variant1&lt;/P&gt;&lt;P&gt;                   using    p_v_program  type rs38m-programm.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;  select variant&lt;/P&gt;&lt;P&gt;         from varid&lt;/P&gt;&lt;P&gt;         into table p_it_variant&lt;/P&gt;&lt;P&gt;         where report = p_v_program.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;endform.                    " GET_VARIANTS&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&amp;amp;      Form  GET_F4_HELP&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      text&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;form get_f4_help  tables   p_it_variant1 structure it_variant1&lt;/P&gt;&lt;P&gt;                   using   p_l_vara1 like dfies-fieldname&lt;/P&gt;&lt;P&gt;                  changing p_p_vara like p_vara1.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Fn. for Pop-Up&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  call function 'F4IF_INT_TABLE_VALUE_REQUEST'&lt;/P&gt;&lt;P&gt;    exporting&lt;/P&gt;&lt;P&gt;      retfield        = p_l_vara1&lt;/P&gt;&lt;P&gt;      value_org       = 'S'&lt;/P&gt;&lt;P&gt;      display         = ' '&lt;/P&gt;&lt;P&gt;    tables&lt;/P&gt;&lt;P&gt;      value_tab       = p_it_variant1&lt;/P&gt;&lt;P&gt;      return_tab      = it_return&lt;/P&gt;&lt;P&gt;    exceptions&lt;/P&gt;&lt;P&gt;      parameter_error = 1&lt;/P&gt;&lt;P&gt;      no_values_found = 2&lt;/P&gt;&lt;P&gt;      others          = 3.&lt;/P&gt;&lt;P&gt;  if sy-subrc = 0.&lt;/P&gt;&lt;P&gt;    p_p_vara = it_return-fieldval.&lt;/P&gt;&lt;P&gt;  else.&lt;/P&gt;&lt;P&gt;    message id sy-msgid type sy-msgty number sy-msgno&lt;/P&gt;&lt;P&gt;            with sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.&lt;/P&gt;&lt;P&gt;  endif.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;endform.                    " GET_F4_HELP&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&amp;amp;      Form  FETCH_VARIANTS1&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      text&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;form fetch_variants1 .&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;  data : v_program1 like rs38m-programm value 'GP3DIEHXY88SNFJ0391V7KF9EK7050',&lt;/P&gt;&lt;P&gt;         l_vara2  type dfies-fieldname value 'P_VARA2'.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;  clear : it_variant2,&lt;/P&gt;&lt;P&gt;          it_variant2[].&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Get Variants&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  perform get_variants tables it_variant2&lt;/P&gt;&lt;P&gt;                       using v_program1.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;F4 Help&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  if not it_variant2[] is initial.&lt;/P&gt;&lt;P&gt;    perform get_f4_help tables it_variant2&lt;/P&gt;&lt;P&gt;                        using  l_vara2&lt;/P&gt;&lt;P&gt;                      changing p_vara2.&lt;/P&gt;&lt;P&gt;  else.&lt;/P&gt;&lt;P&gt;    message e000 with 'No variants available for report2'(050).&lt;/P&gt;&lt;P&gt;  endif.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;endform.                    " FETCH_VARIANTS1&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&amp;amp;      Form  read_variants&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;       Reading the variant and fetching the mail-ids&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;form read_variants tables p_it_mailid structure it_mailid&lt;/P&gt;&lt;P&gt;                          p_s_email   structure s_email&lt;/P&gt;&lt;P&gt;                   using  p_p_vara1   like p_vara1&lt;/P&gt;&lt;P&gt;                          p_l_pro1    like rs38m-programm&lt;/P&gt;&lt;P&gt;                          p_l_c1      type c.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;  data : l_temp(44),&lt;/P&gt;&lt;P&gt;         it_valutab like rsparams occurs 0 with header line.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;  ranges : r_cocen for csks-kostl.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Function Module to get the variant contents&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  call function 'RS_VARIANT_CONTENTS'&lt;/P&gt;&lt;P&gt;    exporting&lt;/P&gt;&lt;P&gt;      report               = p_l_pro1&lt;/P&gt;&lt;P&gt;      variant              = p_p_vara1&lt;/P&gt;&lt;P&gt;    tables&lt;/P&gt;&lt;P&gt;      valutab              = it_valutab&lt;/P&gt;&lt;P&gt;    exceptions&lt;/P&gt;&lt;P&gt;      variant_non_existent = 1&lt;/P&gt;&lt;P&gt;      variant_obsolete     = 2&lt;/P&gt;&lt;P&gt;      others               = 3.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;  if sy-subrc &amp;lt;&amp;gt; 0.&lt;/P&gt;&lt;P&gt;    message id sy-msgid type sy-msgty number sy-msgno&lt;/P&gt;&lt;P&gt;            with sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.&lt;/P&gt;&lt;P&gt;  endif.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;  clear : r_cocen,&lt;/P&gt;&lt;P&gt;          r_cocen[].&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;  loop at it_valutab where selname = 'KOSTL'&lt;/P&gt;&lt;P&gt;                        or selname = '_C-CCTR'.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Getting the range of cost centers&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;    if it_valutab-option = 'BT'.&lt;/P&gt;&lt;P&gt;      r_cocen-low    = it_valutab-low.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;For Conversion Routine&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;      perform conversion using r_cocen-low.&lt;/P&gt;&lt;P&gt;      r_cocen-high   = it_valutab-high.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;For Conversion Routine&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;      perform conversion using r_cocen-high.&lt;/P&gt;&lt;P&gt;      r_cocen-option = 'BT'.&lt;/P&gt;&lt;P&gt;      r_cocen-sign   = 'I'.&lt;/P&gt;&lt;P&gt;      append r_cocen.&lt;/P&gt;&lt;P&gt;      clear  r_cocen.&lt;/P&gt;&lt;P&gt;    endif.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Getting the single cost centers&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;    if it_valutab-option = 'EQ'.&lt;/P&gt;&lt;P&gt;      r_cocen-low    = it_valutab-low.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;For Conversion Routine&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;      perform conversion using r_cocen-low.&lt;/P&gt;&lt;P&gt;      r_cocen-option = 'EQ'.&lt;/P&gt;&lt;P&gt;      r_cocen-sign   = 'I'.&lt;/P&gt;&lt;P&gt;      append r_cocen.&lt;/P&gt;&lt;P&gt;      clear  r_cocen.&lt;/P&gt;&lt;P&gt;    endif.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;  endloop.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;If no cost centers&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  if not r_cocen[] is initial.&lt;/P&gt;&lt;P&gt;    select kokrs&lt;/P&gt;&lt;P&gt;           kostl&lt;/P&gt;&lt;P&gt;           datbi&lt;/P&gt;&lt;P&gt;           telx1&lt;/P&gt;&lt;P&gt;      from csks&lt;/P&gt;&lt;P&gt;           into table p_it_mailid&lt;/P&gt;&lt;P&gt;     where kostl in r_cocen.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;    if p_it_mailid[] is initial.&lt;/P&gt;&lt;P&gt;      if p_l_c1 = '1'.&lt;/P&gt;&lt;P&gt;        message e000 with 'No IDs available for report1'(059).&lt;/P&gt;&lt;P&gt;      elseif p_l_c1 = '2'.&lt;/P&gt;&lt;P&gt;        message e000 with 'No IDs available for report2'(062).&lt;/P&gt;&lt;P&gt;      endif.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;    endif.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Deleting the blank entries&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;    delete p_it_mailid where telx1 = space.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;    clear l_temp.&lt;/P&gt;&lt;P&gt;    read table p_it_mailid index 1.&lt;/P&gt;&lt;P&gt;    l_temp = p_it_mailid-telx1.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;    data : l_check.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;    loop at p_it_mailid where telx1 &amp;lt;&amp;gt; l_temp.&lt;/P&gt;&lt;P&gt;      l_check = c_x.&lt;/P&gt;&lt;P&gt;    endloop.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;For checking the unique ids&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;    if l_check = c_x.&lt;/P&gt;&lt;P&gt;      if p_l_c1 = '1'.&lt;/P&gt;&lt;P&gt;        message e000 with 'No unique mail-ids for  report1'(058).&lt;/P&gt;&lt;P&gt;      elseif p_l_c1 = '2'.&lt;/P&gt;&lt;P&gt;        message e000 with 'No unique mail-ids for  report2'(065).&lt;/P&gt;&lt;P&gt;      endif.&lt;/P&gt;&lt;P&gt;    endif.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Populating the IDs for the cost centers&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;    loop at p_it_mailid.&lt;/P&gt;&lt;P&gt;      set locale language sy-langu.&lt;/P&gt;&lt;P&gt;      translate p_it_mailid-telx1 to lower case.&lt;/P&gt;&lt;P&gt;      set locale language space .&lt;/P&gt;&lt;P&gt;      concatenate p_it_mailid-telx1 '@allergan.com' into l_temp.&lt;/P&gt;&lt;P&gt;      p_s_email-low = l_temp.&lt;/P&gt;&lt;P&gt;      p_s_email-sign = 'I'.&lt;/P&gt;&lt;P&gt;      p_s_email-option = 'EQ'.&lt;/P&gt;&lt;P&gt;      append p_s_email.&lt;/P&gt;&lt;P&gt;      clear  p_s_email.&lt;/P&gt;&lt;P&gt;    endloop.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;  else.&lt;/P&gt;&lt;P&gt;    if p_l_c1 = '1'.&lt;/P&gt;&lt;P&gt;      message e000 with 'No Cost Center Available for report1'(057).&lt;/P&gt;&lt;P&gt;    elseif p_l_c1 = '2'.&lt;/P&gt;&lt;P&gt;      message e000 with 'No Cost Center Available for report2'(063).&lt;/P&gt;&lt;P&gt;    endif.&lt;/P&gt;&lt;P&gt;  endif.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;endform.                    " read_variants&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&amp;amp;      Form  CONVERSION&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      For Conversion Routine&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;form conversion  using    p_it_valutab_low type c.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;  call function 'CONVERSION_EXIT_ALPHA_INPUT'&lt;/P&gt;&lt;P&gt;    exporting&lt;/P&gt;&lt;P&gt;      input  = p_it_valutab_low&lt;/P&gt;&lt;P&gt;    importing&lt;/P&gt;&lt;P&gt;      output = p_it_valutab_low.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;endform.                    " CONVERSION&lt;/P&gt;&lt;P&gt;REPORT Z_RMTIWARI_SEND_SPOOL_MAIL_ATT .&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;PARAMETERS : P_SPOOL TYPE TSP01-RQIDENT OBLIGATORY .&lt;/P&gt;&lt;P&gt;PARAMETERS : P_MAIL TYPE char100 OBLIGATORY .&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;TYPES : TY_LINE type string.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;DATA: IT_ATTACHMENT TYPE soli OCCURS 0 WITH HEADER LINE.&lt;/P&gt;&lt;P&gt;DATA: IT_ATTACHMENT_LONG TYPE TY_LINE OCCURS 0 WITH HEADER LINE.&lt;/P&gt;&lt;P&gt;DATA: LV_PDF_SIZE type i.&lt;/P&gt;&lt;P&gt;DATA: LT_PDF type standard table of tline with header line.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;PERFORM SEND_EMAIL USING P_SPOOL P_MAIL.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;FORM send_email&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;--&amp;gt; X_SPOOL_ID&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;--&amp;gt; X_EMAIL&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;FORM send_email USING X_SPOOL_ID X_EMAIL.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;DATA: LT_OBJPACK LIKE sopcklsti1 OCCURS 2 WITH HEADER LINE,&lt;/P&gt;&lt;P&gt;LT_OBJHEAD LIKE solisti1 OCCURS 1 WITH HEADER LINE,&lt;/P&gt;&lt;P&gt;LT_OBJBIN LIKE solisti1 OCCURS 10 WITH HEADER LINE,&lt;/P&gt;&lt;P&gt;LT_OBJTXT LIKE solisti1 OCCURS 10 WITH HEADER LINE,&lt;/P&gt;&lt;P&gt;LT_RECLIST LIKE somlreci1 OCCURS 5 WITH HEADER LINE,&lt;/P&gt;&lt;P&gt;LV_DOCUMENT_DATA TYPE sodocchgi1.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;DATA: L_ATT_LINES TYPE i.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;DATA : LV_SPOOL_DESC(68) type c.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;CHECK NOT ( X_EMAIL IS INITIAL ).&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;CLEAR: LT_RECLIST, LT_RECLIST[],&lt;/P&gt;&lt;P&gt;LT_OBJHEAD, LT_OBJHEAD[],&lt;/P&gt;&lt;P&gt;LT_OBJTXT, LT_OBJTXT[],&lt;/P&gt;&lt;P&gt;LT_OBJBIN, LT_OBJBIN[],&lt;/P&gt;&lt;P&gt;LT_OBJPACK, LT_OBJPACK[].&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;CLEAR LV_DOCUMENT_DATA.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Read spool and get the pdf internal table and name of spool&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;PERFORM READ_SPOOL USING X_SPOOL_ID LV_SPOOL_DESC.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;CHECK NOT ( LT_PDF[] IS INITIAL ).&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Convert pdf itab to 255 line itab.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;data :LV_COUNTER type i.&lt;/P&gt;&lt;P&gt;data :LV_FROM type i.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;loop at LT_PDF.&lt;/P&gt;&lt;P&gt;translate LT_PDF using ' ~' .&lt;/P&gt;&lt;P&gt;concatenate IT_ATTACHMENT_LONG LT_PDF into it_attachment_long.&lt;/P&gt;&lt;P&gt;endloop.&lt;/P&gt;&lt;P&gt;translate IT_ATTACHMENT_LONG using '~ ' .&lt;/P&gt;&lt;P&gt;append IT_ATTACHMENT_LONG.&lt;/P&gt;&lt;P&gt;clear : LV_COUNTER.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;DO.&lt;/P&gt;&lt;P&gt;LV_COUNTER = strlen( IT_ATTACHMENT_LONG ).&lt;/P&gt;&lt;P&gt;if LV_COUNTER ge 255.&lt;/P&gt;&lt;P&gt;IT_ATTACHMENT = IT_ATTACHMENT_LONG(255).&lt;/P&gt;&lt;P&gt;append IT_ATTACHMENT.&lt;/P&gt;&lt;P&gt;SHIFT IT_ATTACHMENT_LONG by 255 places.&lt;/P&gt;&lt;P&gt;else.&lt;/P&gt;&lt;P&gt;IT_ATTACHMENT = IT_ATTACHMENT_LONG(lv_counter).&lt;/P&gt;&lt;P&gt;append IT_ATTACHMENT.&lt;/P&gt;&lt;P&gt;exit.&lt;/P&gt;&lt;P&gt;endif.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDDO.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Body of email&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;MOVE 'Email sent to you from SAP' TO LT_OBJTXT.&lt;/P&gt;&lt;P&gt;APPEND LT_OBJTXT.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;LV_DOCUMENT_DATA-obj_name = 'SpoolMail'.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Title of the email as spool name&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;LV_DOCUMENT_DATA-obj_descr = LV_SPOOL_DESC.&lt;/P&gt;&lt;P&gt;LV_DOCUMENT_DATA-sensitivty = 'O'.&lt;/P&gt;&lt;P&gt;LV_DOCUMENT_DATA-expiry_dat = SY-datum + 15.&lt;/P&gt;&lt;P&gt;LV_DOCUMENT_DATA-doc_size = STRLEN( LT_OBJTXT ).&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;e-mail body&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;CLEAR LT_OBJPACK.&lt;/P&gt;&lt;P&gt;LT_OBJPACK-head_start = 1.&lt;/P&gt;&lt;P&gt;LT_OBJPACK-head_num = 0.&lt;/P&gt;&lt;P&gt;LT_OBJPACK-body_start = 1.&lt;/P&gt;&lt;P&gt;LT_OBJPACK-body_num = 1.&lt;/P&gt;&lt;P&gt;LT_OBJPACK-doc_type = 'RAW'.&lt;/P&gt;&lt;P&gt;LT_OBJPACK-doc_size = STRLEN( LT_OBJTXT ).&lt;/P&gt;&lt;P&gt;APPEND LT_OBJPACK.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;For e-mail attachment&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;DESCRIBE TABLE IT_ATTACHMENT LINES L_ATT_LINES.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;READ TABLE IT_ATTACHMENT INDEX L_ATT_LINES.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;CLEAR LT_OBJPACK.&lt;/P&gt;&lt;P&gt;LT_OBJPACK-transf_bin = 'X'.&lt;/P&gt;&lt;P&gt;LT_OBJPACK-head_start = 1.&lt;/P&gt;&lt;P&gt;LT_OBJPACK-head_num = 1.&lt;/P&gt;&lt;P&gt;LT_OBJPACK-body_start = 1.&lt;/P&gt;&lt;P&gt;LT_OBJPACK-body_num = L_ATT_LINES.&lt;/P&gt;&lt;P&gt;LT_OBJPACK-doc_type = 'PDF'.&lt;/P&gt;&lt;P&gt;LT_OBJPACK-obj_name = 'email'.&lt;/P&gt;&lt;P&gt;LT_OBJPACK-obj_descr = LV_SPOOL_DESC.&lt;/P&gt;&lt;P&gt;LT_OBJPACK-doc_size = ( 255 * ( L_ATT_LINES - 1 ) ) + STRLEN( IT_ATTACHMENT-line ).&lt;/P&gt;&lt;P&gt;APPEND LT_OBJPACK.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;make recipient list&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;LT_RECLIST-receiver = X_EMAIL.&lt;/P&gt;&lt;P&gt;LT_RECLIST-rec_type = 'B'. "To external email id&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;APPEND LT_RECLIST.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;send mail with attachment&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;CALL FUNCTION 'SO_NEW_DOCUMENT_ATT_SEND_API1'&lt;/P&gt;&lt;P&gt;EXPORTING&lt;/P&gt;&lt;P&gt;document_data = LV_DOCUMENT_DATA&lt;/P&gt;&lt;P&gt;put_in_outbox = 'X'&lt;/P&gt;&lt;P&gt;TABLES&lt;/P&gt;&lt;P&gt;packing_list = LT_OBJPACK&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;object_header = LT_OBJHEAD&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;contents_bin = IT_ATTACHMENT&lt;/P&gt;&lt;P&gt;contents_txt = LT_OBJTXT&lt;/P&gt;&lt;P&gt;receivers = LT_RECLIST&lt;/P&gt;&lt;P&gt;EXCEPTIONS&lt;/P&gt;&lt;P&gt;too_many_receivers = 1&lt;/P&gt;&lt;P&gt;document_not_sent = 2&lt;/P&gt;&lt;P&gt;document_type_not_exist = 3&lt;/P&gt;&lt;P&gt;operation_no_authorization = 4&lt;/P&gt;&lt;P&gt;parameter_error = 5&lt;/P&gt;&lt;P&gt;x_error = 6&lt;/P&gt;&lt;P&gt;enqueue_error = 7&lt;/P&gt;&lt;P&gt;OTHERS = 8.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;If SY-subrc = 0.&lt;/P&gt;&lt;P&gt;write:/ 'Message sent'.&lt;/P&gt;&lt;P&gt;else.&lt;/P&gt;&lt;P&gt;write:/ 'Error encountered'.&lt;/P&gt;&lt;P&gt;endif.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDFORM. " send_email&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&amp;amp; Form read_spool&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;FORM read_spool USING X_SPOOL_ID Y_SPOOL_DESC.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;DATA : LV_SPOOL_TYPE TYPE TSP01-RQDOCTYPE.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;SELECT SINGLE RQDOCTYPE RQTITLE&lt;/P&gt;&lt;P&gt;INTO (lv_spool_type, y_spool_desc)&lt;/P&gt;&lt;P&gt;FROM TSP01&lt;/P&gt;&lt;P&gt;WHERE RQIDENT eq X_SPOOL_ID.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;IF Y_SPOOL_DESC IS INITIAL.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;concatenate 'Spool-' X_SPOOL_ID into Y_SPOOL_DESC.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;ENDIF.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;IF LV_SPOOL_TYPE eq 'LIST'. " If spool is a list&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;CALL FUNCTION 'CONVERT_ABAPSPOOLJOB_2_PDF'&lt;/P&gt;&lt;P&gt;EXPORTING&lt;/P&gt;&lt;P&gt;SRC_SPOOLID = X_SPOOL_ID&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;NO_DIALOG =&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;DST_DEVICE =&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;PDF_DESTINATION =&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;IMPORTING&lt;/P&gt;&lt;P&gt;PDF_BYTECOUNT = LV_PDF_SIZE&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;PDF_SPOOLID =&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;LIST_PAGECOUNT =&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;BTC_JOBNAME =&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;BTC_JOBCOUNT =&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;TABLES&lt;/P&gt;&lt;P&gt;PDF = LT_PDF&lt;/P&gt;&lt;P&gt;EXCEPTIONS&lt;/P&gt;&lt;P&gt;ERR_NO_ABAP_SPOOLJOB = 1&lt;/P&gt;&lt;P&gt;ERR_NO_SPOOLJOB = 2&lt;/P&gt;&lt;P&gt;ERR_NO_PERMISSION = 3&lt;/P&gt;&lt;P&gt;ERR_CONV_NOT_POSSIBLE = 4&lt;/P&gt;&lt;P&gt;ERR_BAD_DESTDEVICE = 5&lt;/P&gt;&lt;P&gt;USER_CANCELLED = 6&lt;/P&gt;&lt;P&gt;ERR_SPOOLERROR = 7&lt;/P&gt;&lt;P&gt;ERR_TEMSEERROR = 8&lt;/P&gt;&lt;P&gt;ERR_BTCJOB_OPEN_FAILED = 9&lt;/P&gt;&lt;P&gt;ERR_BTCJOB_SUBMIT_FAILED = 10&lt;/P&gt;&lt;P&gt;ERR_BTCJOB_CLOSE_FAILED = 11&lt;/P&gt;&lt;P&gt;OTHERS = 12&lt;/P&gt;&lt;P&gt;.&lt;/P&gt;&lt;P&gt;IF SY-SUBRC &amp;lt;&amp;gt; 0.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ELSE. " If spool is OTF&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;CALL FUNCTION 'CONVERT_OTFSPOOLJOB_2_PDF'&lt;/P&gt;&lt;P&gt;EXPORTING&lt;/P&gt;&lt;P&gt;SRC_SPOOLID = X_SPOOL_ID&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;NO_DIALOG =&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;DST_DEVICE =&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;PDF_DESTINATION =&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;IMPORTING&lt;/P&gt;&lt;P&gt;PDF_BYTECOUNT = LV_PDF_SIZE&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;PDF_SPOOLID =&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;OTF_PAGECOUNT =&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;BTC_JOBNAME =&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;BTC_JOBCOUNT =&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;TABLES&lt;/P&gt;&lt;P&gt;PDF = LT_PDF&lt;/P&gt;&lt;P&gt;EXCEPTIONS&lt;/P&gt;&lt;P&gt;ERR_NO_OTF_SPOOLJOB = 1&lt;/P&gt;&lt;P&gt;ERR_NO_SPOOLJOB = 2&lt;/P&gt;&lt;P&gt;ERR_NO_PERMISSION = 3&lt;/P&gt;&lt;P&gt;ERR_CONV_NOT_POSSIBLE = 4&lt;/P&gt;&lt;P&gt;ERR_BAD_DSTDEVICE = 5&lt;/P&gt;&lt;P&gt;USER_CANCELLED = 6&lt;/P&gt;&lt;P&gt;ERR_SPOOLERROR = 7&lt;/P&gt;&lt;P&gt;ERR_TEMSEERROR = 8&lt;/P&gt;&lt;P&gt;ERR_BTCJOB_OPEN_FAILED = 9&lt;/P&gt;&lt;P&gt;ERR_BTCJOB_SUBMIT_FAILED = 10&lt;/P&gt;&lt;P&gt;ERR_BTCJOB_CLOSE_FAILED = 11&lt;/P&gt;&lt;P&gt;OTHERS = 12&lt;/P&gt;&lt;P&gt;.&lt;/P&gt;&lt;P&gt;IF SY-SUBRC &amp;lt;&amp;gt; 0.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;ENDIF.&lt;/P&gt;&lt;P&gt;ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDFORM. " read_spool&lt;/P&gt;&lt;P&gt;&lt;A href="http://www.sap-img.com/abap/sending-fax-from-abap.htm" target="test_blank"&gt;http://www.sap-img.com/abap/sending-fax-from-abap.htm&lt;/A&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;A href="http://www.sap-img.com/abap/sending-email-with-attachment.htm" target="test_blank"&gt;http://www.sap-img.com/abap/sending-email-with-attachment.htm&lt;/A&gt;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 10 May 2007 05:00:17 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/sapscript-email-body-text/m-p/2228687#M479307</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2007-05-10T05:00:17Z</dc:date>
    </item>
  </channel>
</rss>

