Error while sending PO output through mail in PDF format - Urgent

Dear friends,
Developed program to send sapscript output through mail in pdf format, the program running properly, even function module SO_NEW_DOCUMENT_ATT_SEND_API1 returning sy-subrc 0. But the external mail is not going to user lying in SAP outbox with message <b>"Wait for communications service"</b> . SCOT is properly configured, tested mails sending through SAP office.
Find below the source code:
REPORT  zmm_porder_gm
            NO STANDARD PAGE HEADING.
TABLES: ekko, ekpa, t161t, t052, komv, j_1imocomp, t001, esll.
Internal Tables
DATA : txt LIKE tline-tdline,  "HEADER LINE
       your_ref LIKE ekko-ihrez, "your ref
       our_ref  LIKE ekko-unsez, "our ref
       mcompname  LIKE  t001-butxt,
       itemname   LIKE  ekpo-txz01,
       del_text LIKE tline-tdline, "delivery text
       mat_po_text LIKE tline-tdline. "material po text
DATA: g_ind TYPE i.
DATA: it_esll LIKE esll OCCURS 0 WITH HEADER LINE.
DATA: sub_packno LIKE esll-sub_packno.
DATA : po_flag(1) TYPE c.
DATA : it_erev LIKE erev OCCURS 0 WITH HEADER LINE.
DATA : nmebeln LIKE thead-tdname,
       obj LIKE thead-tdname.
DATA : tline LIKE tline OCCURS 0 WITH HEADER LINE.  "HEADER TEXT
DATA  : it_ekko LIKE ekko OCCURS 0 WITH HEADER LINE.
DATA  : it_ekpo LIKE ekpo OCCURS 0 WITH HEADER LINE.
DATA  : it_zmm_porder  LIKE zmm_porder OCCURS 0 WITH HEADER LINE.
DATA  : it_konv        LIKE konv OCCURS 0 WITH HEADER LINE.
DATA  : it_konv_ftr    LIKE konv OCCURS 0 WITH HEADER LINE.
DATA  : it_konv_rate   LIKE konv OCCURS 0 WITH HEADER LINE.
DATA  : it_komv_tax    LIKE komv OCCURS 0 WITH HEADER LINE.           " For Tax Calculation
DATA  : it_zmm_house_bank LIKE zmm_house_bank OCCURS 0 WITH HEADER LINE.
*DATA  : mrate TYPE konv-kbetr VALUE 0, mrate1(15).  rmoved by ganes and added following logic
DATA  : mrate TYPE p VALUE 0 DECIMALS 2, mrate1(15).
DATA  : mrate_gm TYPE p  DECIMALS 2.
DATA  : BEGIN OF it_konv1 OCCURS 0,
              knumv LIKE konv-knumv,
              kschl LIKE konv-kschl,
END OF it_konv1.
DATA : BEGIN OF it_t052u OCCURS 0.
        INCLUDE STRUCTURE t052u.
DATA : END OF it_t052u.
DATA  : mpay_terms LIKE t052u-text1.
DATA  : mwaers     LIKE konv-waers.
DATA : BEGIN OF xt052 OCCURS 0.
        INCLUDE STRUCTURE t052.
DATA : END OF xt052.
DATA : it_t16ct LIKE t16ct OCCURS 0 WITH HEADER LINE.
DATA : BEGIN OF ztext OCCURS 0.
        INCLUDE STRUCTURE ttext.
DATA : END OF ztext.
DATA  : it_t001      LIKE t001 OCCURS 0 WITH HEADER LINE.
DATA  : mtext(15)    TYPE c.
DATA  : it_adrc      LIKE adrc OCCURS 0 WITH HEADER LINE.
DATA  : it_adrc_ven  LIKE adrc OCCURS 0 WITH HEADER LINE.
DATA  : it_adrc_plt  LIKE adrc OCCURS 0 WITH HEADER LINE.
DATA :  it_makt      LIKE makt OCCURS 0 WITH HEADER LINE.
DATA :  it_eket      LIKE eket OCCURS 0 WITH HEADER LINE.               " Schedulling
DATA :  it_eikp      LIKE eikp OCCURS 0 WITH HEADER LINE.               " Export
DATA :  it_t001w     LIKE t001w OCCURS 0 WITH HEADER LINE.
DATA  : it_t685t     LIKE t685t OCCURS 0 WITH HEADER LINE.
DATA  : it_t618t     LIKE t618t OCCURS 0 WITH HEADER LINE.
DATA  : it_t685t_ftr LIKE t685t OCCURS 0 WITH HEADER LINE.
DATA  : it_lfa1  LIKE lfa1 OCCURS 0 WITH HEADER LINE.
DATA : it_bapi_mltx_ga LIKE bapi_mltx_ga OCCURS 0 WITH HEADER LINE. "Material long text
DATA : mfirst   TYPE i  VALUE 0,
       mpay_flag(1) TYPE c VALUE 'X',
       mwerks   LIKE    t001w-werks,
       msr      TYPE i  VALUE 0,
       l_rate   TYPE p  DECIMALS 2  VALUE 0,
       l_amt    TYPE p  DECIMALS 2  VALUE 0,
       mflag(1) TYPE c,
       mlctr    TYPE i  VALUE 0,
       mfamt    TYPE p DECIMALS 2 VALUE 0,
       mcfamt(15) TYPE c,
       mfword(100) TYPE c,
       mkschl   LIKE konv-kschl,
       mchgamt  TYPE p  DECIMALS 2 VALUE 0,
       mkbetr   TYPE p  DECIMALS 2 VALUE 0,
       mkwert   TYPE p  DECIMALS 2 VALUE 0.
DATA : j_1iexcd     TYPE  j_1imocomp-j_1iexcd,
       j_1icstno    TYPE  j_1imocomp-j_1icstno,
       j_1ilstno    TYPE  j_1imocomp-j_1ilstno.
DATA : mjmop_r    TYPE p DECIMALS 2 VALUE 0,
       mjmoq_r    TYPE p DECIMALS 2 VALUE 0,
       mjecs_r    TYPE p DECIMALS 2 VALUE 0,
       mjvcs_r    TYPE p DECIMALS 2 VALUE 0,
       mjvrd_r    TYPE p DECIMALS 2 VALUE 0,
       mjsep_r    TYPE p DECIMALS 2 VALUE 0.
DATA : mjmop_a    TYPE p DECIMALS 2 VALUE 0,
       mjmoq_a    TYPE p DECIMALS 2 VALUE 0,
       mjecs_a    TYPE p DECIMALS 2 VALUE 0,
       mjvcs_a    TYPE p DECIMALS 2 VALUE 0,
       mjvrd_a    TYPE p DECIMALS 2 VALUE 0,
       mjsep_a    TYPE p DECIMALS 2 VALUE 0.
DATA  : mtitle   LIKE  t161t-batxt.
DATA :         no_ammend(10),request_by(50),ver_txt(100),ver_reason(100),stext(200).
begin of Email data declarations**************
DATA: BEGIN OF otf OCCURS 0.
        INCLUDE STRUCTURE itcoo .
DATA: END OF otf.
DATA: itcpo LIKE itcpo.
DATA: itcpp LIKE itcpp.
DATA: it_docs  TYPE STANDARD TABLE OF docs,
      v_bin_filesize          TYPE i,
      it_lines TYPE STANDARD TABLE OF tline,
      wa_lines TYPE tline.
DATA : i_pdf LIKE tline OCCURS 1000 WITH HEADER LINE,
v_pdf_bytecount TYPE i,
v_pdf_spoolid TYPE tsp01-rqident,
v_otf_pagecount TYPE i,
v_btc_jobname TYPE tbtcjob-jobname,
v_btc_jobcount TYPE tbtcjob-jobcount.
DATA: objpack LIKE sopcklsti1 OCCURS 0 WITH HEADER LINE.
DATA: objhead LIKE solisti1 OCCURS 1 WITH HEADER LINE.
DATA: objbin LIKE solisti1 OCCURS 0 WITH HEADER LINE.
DATA: objtxt LIKE solisti1 OCCURS 10 WITH HEADER LINE.
DATA: reclist LIKE somlreci1 OCCURS 0 WITH HEADER LINE.
DATA: doc_chng LIKE sodocchgi1.
DATA: tab_lines LIKE sy-tabix.
DATA: vafilename(100) VALUE 'po_output.pdf'.
DATA: jobdata TYPE sxjobdata.
DATA arc_params TYPE arc_params.
DATA print_params TYPE pri_params.
DATA g_send_prog TYPE syrepid VALUE 'ZVF03_TEST_PROG'.
DATA immediate TYPE btcchar1.
DATA: i_jobname TYPE tbtcp-jobname,
i_jobcount TYPE tbtcp-jobcount,
i_jobstepcount TYPE tbtcp-stepcount.
DATA recipient_obj LIKE swotobjid.
CONSTANTS: sx_true TYPE sx_boolean VALUE 'X'.
TABLES: tbtcp.
end of Email data declarations**************
SELECTION-SCREEN : BEGIN OF BLOCK block1 WITH FRAME TITLE text-001.
SELECT-OPTIONS   : mebeln FOR ekko-ebeln OBLIGATORY .               " 75
SELECTION-SCREEN BEGIN OF LINE.
SELECTION-SCREEN POSITION 12.
SELECTION-SCREEN COMMENT (20) text-b01.
PARAMETERS: b1 AS CHECKBOX DEFAULT 'X'.
SELECTION-SCREEN END OF LINE.
SELECTION-SCREEN : END OF BLOCK block1.
SELECTION-SCREEN: BEGIN OF SCREEN 200 TITLE text-001 AS WINDOW.
PARAMETERS :  p_email TYPE ad_smtpadr.     "E-Mail Address
SELECTION-SCREEN: END OF SCREEN 200.
INITIALIZATION.
  SET PF-STATUS 'ZMMPORD_STAT'.
AT SELECTION-SCREEN.
  CASE sy-ucomm.
    WHEN 'EMAIL'.
      PERFORM zemail.
    WHEN '&IC1'.
      PERFORM load_data.
      PERFORM process.
      IF NOT p_email IS INITIAL.
        PERFORM send_mail.
      ENDIF.
  ENDCASE.
*START-OF-SELECTION.
PERFORM load_data.
PERFORM process.
FORM load_data .
  DATA : gindex LIKE sy-tabix.
  SELECT * FROM t16ct INTO TABLE it_t16ct WHERE spras = 'EN'.
  SELECT * FROM ekko INTO TABLE it_ekko WHERE ebeln IN mebeln.
  IF sy-subrc EQ 0.
    SELECT * FROM erev INTO CORRESPONDING FIELDS OF TABLE it_erev FOR ALL ENTRIES IN it_ekko
    WHERE edokn = it_ekko-ebeln AND rscod <> '' .
    SORT it_erev BY edokn revno DESCENDING.
    LOOP AT it_ekko.
      IF NOT ( it_ekko-frgke EQ 'O'  OR it_ekko-frgke EQ '0' ) .
        MESSAGE e000(zsd) WITH 'Purchase Order is not Realeased'.
      ENDIF.
    ENDLOOP.
    SELECT * FROM ekpo INTO TABLE it_ekpo WHERE ebeln IN mebeln.
    IF sy-subrc EQ 0.
      SELECT * INTO TABLE it_makt
      FROM   makt
      FOR    ALL ENTRIES IN it_ekpo
      WHERE  matnr EQ it_ekpo-matnr.
      SELECT * INTO TABLE it_lfa1
      FROM   lfa1
      FOR    ALL ENTRIES IN it_ekko
      WHERE  lifnr EQ it_ekko-lifnr.
    ENDIF.
    SELECT *
      INTO TABLE it_t052u
      FROM t052u
       FOR ALL ENTRIES IN it_ekko
     WHERE zterm EQ it_ekko-zterm
      AND  spras EQ 'EN'.
    IF sy-subrc EQ 0.
      SORT it_t052u BY zterm.
    ENDIF.
    SELECT * FROM eket INTO TABLE it_eket WHERE ebeln IN mebeln.
    IF sy-subrc EQ 0.
      SORT it_eket BY ebeln ebelp.
    ENDIF.
    SELECT  *
      INTO TABLE it_eikp
      FROM eikp
       FOR ALL ENTRIES IN it_ekko
     WHERE exnum EQ it_ekko-exnum.
    IF sy-subrc EQ 0.
      SORT it_eikp BY exnum.
      SELECT  *
        INTO TABLE it_t618t
        FROM t618t
         FOR ALL ENTRIES IN it_eikp
       WHERE expvz EQ it_eikp-expvz
         AND spras EQ 'E'
         AND land1 EQ 'IN'.
      IF sy-subrc EQ 0.
        SORT it_t618t BY expvz.
      ENDIF.
    ENDIF.
    REFRESH : it_zmm_porder.
    CLEAR   : it_zmm_porder.
    SELECT * INTO TABLE it_zmm_porder
      FROM zmm_porder
     WHERE flag EQ 'L'.
    IF sy-subrc EQ 0.
      SORT it_zmm_porder BY kschl.
    ENDIF.
    SELECT * FROM konv INTO TABLE it_konv
    FOR ALL ENTRIES IN it_ekko
    WHERE knumv = it_ekko-knumv
      AND  kwert NE 0.
    LOOP AT it_konv.
      gindex = sy-tabix.
      READ TABLE it_zmm_porder WITH KEY kschl = it_konv-kschl BINARY SEARCH.
      IF sy-subrc NE 0.
        DELETE it_konv INDEX gindex.
      ENDIF.
    ENDLOOP.
    IF sy-subrc EQ 0.
      SORT it_konv BY knumv kherk kschl.
    ENDIF.
    REFRESH : it_zmm_porder.
    CLEAR   : it_zmm_porder.
    SELECT * INTO TABLE it_zmm_porder
      FROM zmm_porder
     WHERE flag EQ 'F'.
    IF sy-subrc EQ 0.
      SORT it_zmm_porder BY kschl.
    ENDIF.
   SELECT * INTO TABLE IT_KONV_FTR FROM KONV
      FOR ALL ENTRIES IN IT_EKKO
     WHERE KNUMV = IT_EKKO-KNUMV
       AND  ( KSCHL = 'ZIN1'
          OR  KSCHL = 'ZIN2'
          OR  KSCHL = 'ZINS'
          OR  KSCHL = 'ZPF1'
          OR  KSCHL = 'ZPF2'
          OR  KSCHL = 'ZPF3'
          OR  KSCHL = 'ZPKG'
          OR  KSCHL = 'ZPKF'
          OR  KSCHL = 'FRA1'
          OR  KSCHL = 'FRB1'
          OR  KSCHL = 'FRC1'
          OR  KSCHL = 'FRD1'
          OR  KSCHL = 'FRD2'
          OR  KSCHL = 'FRD3'
          OR  KSCHL = 'FRD4'
          OR  KSCHL = 'FRD5'
*****Added one condition type below ZFBC as on 05.06.2007 :Rajiv as per mail of Sadiq via mathew sir(RTDK906646)
          OR  KSCHL = 'ZFBC' )
       AND  KWERT NE 0
       AND  KPOSN GT '000000'.
      AND ( KRECH = 'B'                       " RTDK906167
       OR  KRECH = 'A' ).
    SELECT * INTO TABLE it_konv_ftr FROM konv
       FOR ALL ENTRIES IN it_ekko
      WHERE knumv = it_ekko-knumv
        AND  kwert NE 0
        AND  kposn GT '000000'.
    LOOP AT it_konv_ftr.
      gindex = sy-tabix.
      READ TABLE it_zmm_porder WITH KEY kschl = it_konv_ftr-kschl BINARY SEARCH.
      IF sy-subrc NE 0.
        DELETE it_konv_ftr INDEX gindex.
      ENDIF.
    ENDLOOP.
    IF it_konv_ftr[] IS NOT INITIAL.
      SORT it_konv_ftr BY knumv kschl.
    ENDIF.
   SELECT  KNUMV KSCHL INTO CORRESPONDING FIELDS OF TABLE IT_KONV1 FROM KONV
   FOR ALL ENTRIES IN IT_EKKO
   WHERE KNUMV = IT_EKKO-KNUMV
       and kherk = 'D'
     AND  ( KSCHL = 'ZIN1'
        OR  KSCHL = 'ZIN2'
        OR  KSCHL = 'ZINS'
        OR  KSCHL = 'ZPF1'
        OR  KSCHL = 'ZPF2'
        OR  KSCHL = 'ZPF3'
        OR  KSCHL = 'ZPKG'
        OR  KSCHL = 'ZPKF'
        OR  KSCHL = 'FRA1'
        OR  KSCHL = 'FRB1'
        OR  KSCHL = 'FRC1'
        OR  KSCHL = 'FRD1'
        OR  KSCHL = 'FRD2'
        OR  KSCHL = 'FRD3'
        OR  KSCHL = 'FRD4'
        OR  KSCHL = 'FRD5'
*****Added one condition type below ZFBC as on 05.06.2007 :Rajiv as per mail of Sadiq via mathew sir(RTDK906646)
        OR  KSCHL = 'ZFBC' )
     AND  KWERT NE 0.
       AND ( KRECH = 'B'                       RTDK906167
        OR  KRECH = 'A' ).
    SELECT  knumv kschl INTO CORRESPONDING FIELDS OF TABLE it_konv1 FROM konv
    FOR ALL ENTRIES IN it_ekko
    WHERE knumv = it_ekko-knumv
      AND  kwert NE 0.
    DELETE ADJACENT DUPLICATES FROM it_konv1 COMPARING knumv kschl.
    LOOP AT it_konv1.
      gindex = sy-tabix.
      READ TABLE it_zmm_porder WITH KEY kschl = it_konv1-kschl BINARY SEARCH.
      IF sy-subrc NE 0.
        DELETE it_konv1 INDEX gindex.
      ENDIF.
    ENDLOOP.
    IF sy-subrc EQ 0.
      SORT it_konv1 BY knumv kschl.
    ENDIF.
    SELECT * INTO TABLE it_t685t
    FROM   t685t
    FOR    ALL ENTRIES IN it_konv
    WHERE  kschl EQ it_konv-kschl
      AND  kappl EQ it_konv-kappl
      AND  spras EQ 'E'.
    SELECT * INTO TABLE it_t685t_ftr
    FROM   t685t
    FOR    ALL ENTRIES IN it_konv_ftr
    WHERE  kschl EQ it_konv_ftr-kschl
      AND  kappl EQ it_konv_ftr-kappl
      AND  spras EQ 'E'.
    it_t685t_ftr-kschl = 'JVCS'.
    it_t685t_ftr-vtext = 'IN CST in vat'.
    APPEND it_t685t_ftr.
    SELECT * INTO TABLE it_zmm_house_bank
      FROM zmm_house_bank
     WHERE ebeln IN mebeln.
  ELSE.
    MESSAGE e899(mm) WITH 'Data not found for selection criteria...'.
  ENDIF.
ENDFORM.                    " Load_data
FORM process .
  DATA : mctr   TYPE i VALUE 1.
  DATA : gindex LIKE sy-tabix.
  DATA : mline(75) TYPE c.
  DATA : mlifn2    LIKE ekpa-lifn2.
  DATA :  mv_name LIKE lfa1-name1,
         madrnr  LIKE lfa1-adrnr.
  CLEAR itcpo.
  itcpo-tdgetotf = 'X'.
  CALL FUNCTION 'OPEN_FORM'
    EXPORTING
      form     = 'ZMM_PORDER'
      language = sy-langu
      OPTIONS  = itcpo
      dialog   = ' '
    EXCEPTIONS
      OTHERS   = 1.
  LOOP AT it_ekko.
    CALL FUNCTION 'START_FORM'
      EXPORTING
        form = 'ZMM_PORDER'.
    SELECT SINGLE *
     FROM  t001
     INTO  it_t001
    WHERE  bukrs EQ it_ekko-bukrs.
    mcompname = it_t001-butxt.
    TRANSLATE mcompname TO UPPER CASE.
    Document Type
    SELECT SINGLE batxt
      INTO mtitle
      FROM t161t
     WHERE bstyp EQ 'F'
     AND   spras EQ 'E'
     AND   bsart EQ it_ekko-bsart.
    REFRESH it_adrc.
    SELECT SINGLE werks
      INTO mwerks
      FROM ekpo
     WHERE ebeln EQ it_ekko-ebeln.
    SELECT SINGLE *
      INTO it_t001w
      FROM t001w
     WHERE werks EQ mwerks.
    REFRESH it_adrc.
    SELECT SINGLE *
      INTO it_adrc_plt
      FROM adrc
     WHERE addrnumber EQ it_t001w-adrnr.
    REFRESH : xt052.
    mfamt  = 0.
    msr    = 0.
in 500c this statement failed.
   SELECT SINGLE * FROM T052 INTO XT052 WHERE ZTERM = IT_EKKO-ZTERM.
   CALL FUNCTION 'FI_TEXT_ZTERM'
     EXPORTING
       I_T052  = XT052
     TABLES
       T_ZTEXT = ZTEXT.
    As per Preeti... Shipment address should be shown on top as purchase order company address. 27.04.
    PERFORM writeform USING 'PLANT' 'PLANT'.
    SELECT  SINGLE name1 adrnr
      INTO  (mv_name,madrnr)
      FROM  lfa1
     WHERE  lifnr EQ it_ekko-lifnr.
    REFRESH it_adrc[].
    CLEAR   it_adrc[].
    FREE it_adrc[].
    SELECT SINGLE *
      INTO it_adrc_ven
      FROM adrc
     WHERE addrnumber EQ madrnr.
    READ TABLE it_lfa1 WITH KEY lifnr = it_ekko-lifnr.
    PERFORM writeform USING 'VENDOR' 'VENDOR'.
     Shipment
    SELECT SINGLE werks
      INTO mwerks
      FROM ekpo
     WHERE ebeln EQ it_ekko-ebeln.
       up to 1 rows.
    SELECT SINGLE *
      INTO it_t001w
      FROM t001w
     WHERE werks EQ mwerks.
    SELECT SINGLE j_1iexcd j_1icstno j_1ilstno
             INTO (j_1iexcd,j_1icstno,j_1ilstno)
           FROM    j_1imocomp
            WHERE  werks  = mwerks.
    REFRESH it_adrc.
    SELECT SINGLE *
      INTO it_adrc
      FROM adrc
     WHERE addrnumber EQ it_t001w-adrnr.
    PERFORM writeform USING 'SHIPMNT' 'SHIPMNT'.
    READ TABLE it_eikp WITH KEY exnum = it_ekko-exnum.
    IF sy-subrc EQ 0.
      READ TABLE it_t618t WITH KEY expvz = it_eikp-expvz.
    ENDIF.
    your_ref = it_ekko-ihrez.
    our_ref  = it_ekko-unsez.
    READ TABLE it_erev WITH KEY edokn = it_ekko-ebeln.
    IF sy-subrc = 0.
      no_ammend  = it_erev-revno.
      request_by = it_erev-crnam.
      ver_txt    = it_erev-txz01.
      READ TABLE it_t16ct WITH KEY rscod = it_erev-rscod.
      IF sy-subrc = 0.
        ver_reason = it_t16ct-rstxt.
      ELSE.
        ver_reason = ''.
      ENDIF.
    ELSE.
      no_ammend  = ''.
      request_by = ''.
      ver_txt    = ''.
      ver_reason = ''.
    ENDIF.
    PERFORM writeform USING 'PO_INFO' 'PO_INFO'.
    IF it_zmm_house_bank[] IS NOT INITIAL.
      READ TABLE it_zmm_house_bank INDEX 1.
      PERFORM writeform USING 'BANKDTL' 'BANKDTL'.
    ENDIF.
    PERFORM writeform USING 'HDR_INFO' 'HDR_INFO'.
    PERFORM writeform USING 'BRK_TTL' 'MAIN'.
    msr     = 1.
    mlctr   = 1.
*added by ganesh to prevent deleted items to appear in print out
   LOOP AT IT_EKPO WHERE EBELN EQ IT_EKKO-EBELN.
    LOOP AT it_ekpo WHERE ebeln EQ it_ekko-ebeln AND loekz NE 'L'.
*end of change
      CLEAR: mrate, mrate1.
      SELECT * FROM konv INTO TABLE it_konv_rate
               WHERE knumv EQ it_ekko-knumv
               AND   kposn EQ it_ekpo-ebelp
               AND  ( kschl EQ 'PBXX' OR kschl EQ 'PB00'  OR kschl EQ 'P001' ).
      LOOP AT it_konv_rate.
       IF it_konv_rate-kpein > 0.             " added by ganesh as per sudhir 12.10.2007
         mrate_gm = it_konv_rate-kbetr / it_konv_rate-kpein.
         mrate  = mrate + mrate_gm. " added by ganesh as per sudhir 12.10.2007
       ELSE.
        mrate  = mrate + it_konv_rate-kbetr.
       ENDIF.
        IF it_konv_rate-waers IS NOT INITIAL.
          mwaers = it_konv_rate-waers.
        ENDIF.
      ENDLOOP.
    For Japanies Yen   "RTDK906759
      IF it_ekko-waers = 'JPY'.
        mrate = mrate * 100.
      ENDIF.
    End for japanies Yen
      mrate1 = mrate.
           End rate
      mfirst  = 0.
            MFAMT  = MFAMT + ( IT_EKPO-NETPR * IT_EKPO-MENGE ).
      mfamt  = mfamt + ( mrate * it_ekpo-menge ).
      PERFORM get_mat_long_text.
      DATA: lt_ctr TYPE i VALUE 0,lt_ctr1 TYPE i, lt_count TYPE i VALUE 0. " Long text counter
      DESCRIBE TABLE it_bapi_mltx_ga LINES lt_count.
      CLEAR it_bapi_mltx_ga.
*Added by Rajiv 10.05.2007 Read and if condition RTDK906165
      READ TABLE it_konv WITH KEY knumv = it_ekko-knumv
                                  kposn = it_ekpo-ebelp.
      mkbetr  = 0.
      mkwert  = 0.
      IF sy-subrc EQ 0.
        LOOP AT it_konv  WHERE knumv EQ it_ekko-knumv
                           AND kposn EQ it_ekpo-ebelp.
          IF it_konv-krech EQ 'A'.
            mkbetr  = it_konv-kbetr / 10.
          ELSE.
            mkbetr  = it_konv-kbetr.
          ENDIF.
        For Japanies Yen "RTDK906759
          IF it_ekko-waers = 'JPY'.
            mkbetr = mkbetr * 100.
          ENDIF.
        End for japaies Yen
          IF mkbetr LT '0'.
            mkbetr = mkbetr * ( -1 ).
          ENDIF.
          mkwert   = it_konv-kwert.
        For Japanies Yen "RTDK906759
          IF it_ekko-waers = 'JPY'.
            mkwert = mkwert * 100.
          ENDIF.
        End for japaies Yen
          mfamt  = mfamt + mkwert.
          IF mkwert LT '0'.
            mkwert = mkwert * ( -1 ).
          ENDIF.
          IF it_ekpo-matnr IS INITIAL.
            itemname = it_ekpo-txz01.
          ELSE.
            READ TABLE it_makt  WITH KEY matnr = it_ekpo-matnr.
            itemname = it_makt-maktx.
          ENDIF.
          READ TABLE it_t685t WITH KEY kschl = it_konv-kschl BINARY SEARCH.
          READ TABLE it_eket  WITH KEY ebeln = it_ekpo-ebeln
                                       ebelp = it_ekpo-ebelp BINARY SEARCH.
          IF mfirst EQ 0.
            PERFORM writeform USING 'BRK_INFO' 'MAIN'.
            mfirst = 1.
          ELSE.
            ADD 1 TO lt_ctr.
            CLEAR it_bapi_mltx_ga.
            READ  TABLE it_bapi_mltx_ga INDEX lt_ctr. "For long text
            IF sy-subrc NE 0.
              CLEAR it_bapi_mltx_ga.
            ENDIF.
            PERFORM writeform USING 'BRK_INFO1' 'MAIN'.
          ENDIF.
          mlctr = mlctr + 1.
        ENDLOOP.               "   it_konv.
      ELSE.
        IF it_ekpo-matnr IS INITIAL.
          itemname = it_ekpo-txz01.
        ELSE.
          READ TABLE it_makt  WITH KEY matnr = it_ekpo-matnr.
          itemname = it_makt-maktx.
        ENDIF.
                    READ TABLE IT_T685T WITH KEY KSCHL = IT_KONV-KSCHL BINARY SEARCH.
        READ TABLE it_eket  WITH KEY ebeln = it_ekpo-ebeln
                                     ebelp = it_ekpo-ebelp BINARY SEARCH.
        mfirst = 0.
        IF mfirst EQ 0.
          PERFORM writeform USING 'BRK_INFO' 'MAIN'.
          mfirst = 1.
        ELSE.
          ADD 1 TO lt_ctr.
          CLEAR it_bapi_mltx_ga.
          READ  TABLE it_bapi_mltx_ga INDEX lt_ctr. "For long text
          IF sy-subrc NE 0.CLEAR it_bapi_mltx_ga.ENDIF.
          PERFORM writeform USING 'BRK_INFO1' 'MAIN'.
        ENDIF.
      ENDIF.
*Commented by rajiv 10.05.2007 used this code in above condition.
added by ganesh on 260407 to print record
            if it_konv is initial.
                    READ TABLE IT_MAKT  WITH KEY MATNR = IT_EKPO-MATNR.
                    READ TABLE IT_T685T WITH KEY KSCHL = IT_KONV-KSCHL BINARY SEARCH.
                    READ TABLE IT_EKET  WITH KEY EBELN = IT_EKPO-EBELN
                                                 EBELP = IT_EKPO-EBELP BINARY SEARCH.
                    mFirst = 0.
                    if mFirst eq 0.
                         PERFORM WRITEFORM USING 'BRK_INFO' 'MAIN'.
                         mFirst = 1.
                    else.
                         add 1 to lt_ctr.
                         clear it_bapi_mltx_ga.
                         read  table IT_BAPI_MLTX_GA index lt_ctr. "For long text
                         if sy-subrc ne 0.clear it_bapi_mltx_ga.endif.
                         PERFORM WRITEFORM USING 'BRK_INFO1' 'MAIN'.
                    Endif.
            endif.
end of change
      REFRESH it_komv_tax.
      PERFORM get_tax_cal USING it_ekpo-ebeln
                                it_ekpo-ebelp.
                             Changing it_komv_tax.
      REFRESH : it_zmm_porder.
      CLEAR   : it_zmm_porder.
      SELECT * INTO TABLE it_zmm_porder
        FROM zmm_porder
       WHERE flag EQ 'T'.
      IF sy-subrc EQ 0.
        SORT it_zmm_porder BY kschl.
      ENDIF.
      LOOP AT it_komv_tax.
        gindex = sy-tabix.
        READ TABLE it_zmm_porder WITH KEY kschl = it_komv_tax-kschl BINARY SEARCH.
        IF sy-subrc NE 0.
          DELETE it_komv_tax INDEX gindex.
        ENDIF.
      ENDLOOP.
      LOOP AT it_komv_tax WHERE kwert IS NOT INITIAL.
       IF ( IT_KOMV_TAX-KSCHL EQ 'JMOP' OR
            IT_KOMV_TAX-KSCHL EQ 'JECS' OR
            IT_KOMV_TAX-KSCHL EQ 'JSEP' OR
            IT_KOMV_TAX-KSCHL EQ 'JMOQ' OR
            IT_KOMV_TAX-KSCHL EQ 'JVCS' OR
            IT_KOMV_TAX-KSCHL EQ 'JVRD' OR
            IT_KOMV_TAX-KSCHL EQ 'JMIP' OR
*             IT_KOMV_TAX-KSCHL EQ 'JEIP' OR
            IT_KOMV_TAX-KSCHL EQ 'JSEI' OR
            IT_KOMV_TAX-KSCHL EQ 'JSRT' OR
            IT_KOMV_TAX-KSCHL EQ 'JEC3' OR
            IT_KOMV_TAX-KSCHL EQ 'JVRN' )
            AND IT_KOMV_TAX-KWERT IS NOT INITIAL.
        SELECT SINGLE vtext
               INTO   mtext
               FROM   t685t
              WHERE   kschl EQ it_komv_tax-kschl
                AND   spras EQ 'E'.
        l_rate    = it_komv_tax-kbetr / 10.
        l_amt     = it_komv_tax-kwert.
        For Japanies Yen "RTDK906759
        IF it_ekko-waers = 'JPY'.
          l_amt = l_amt * 100.
        ENDIF.
        End for japaies Yen
        ADD l_amt TO mfamt.
        IF lt_ctr LT lt_count. "Long text
          ADD 1 TO lt_ctr.
          READ TABLE it_bapi_mltx_ga INDEX lt_ctr.
        ELSE.
          CLEAR it_bapi_mltx_ga.
        ENDIF.
        IF l_rate EQ 0 OR l_amt EQ 0.
          l_rate = ''.
          l_amt  = ''.
        ENDIF.
        PERFORM writeform USING 'TAX_LINE_ITEM' 'MAIN'.
       ENDIF.
      ENDLOOP.
      IF lt_ctr LT lt_count.
        DATA mbal_line TYPE i.
        mbal_line = ( lt_count - lt_ctr ).
        DO mbal_line TIMES.
          ADD 1 TO lt_ctr.
          READ TABLE it_bapi_mltx_ga INDEX lt_ctr.
          IF sy-subrc = 0.
            PERFORM writeform USING 'LTEXT' 'MAIN'.
          ENDIF.
        ENDDO.
      ENDIF.
      CONCATENATE it_ekko-ebeln it_ekpo-ebelp INTO nmebeln.
      REFRESH tline.
      CALL FUNCTION 'READ_TEXT'
        EXPORTING
          id                      = 'F04'
          language                = sy-langu
          name                    = nmebeln
          object                  = 'EKPO'
        TABLES
          lines                   = tline
        EXCEPTIONS
          id                      = 1
          language                = 2
          name                    = 3
          not_found               = 4
          object                  = 5
          reference_check         = 6
          wrong_access_to_archive = 7
          OTHERS                  = 8.
      IF sy-subrc <> 0.
      ENDIF.
      LOOP AT tline.
        IF tline-tdline IS NOT INITIAL.
          del_text = tline-tdline.
        ENDIF.
        CONDENSE del_text.
      ENDLOOP.
      CONCATENATE it_ekko-ebeln it_ekpo-ebelp INTO nmebeln.
      REFRESH tline.
      CALL FUNCTION 'READ_TEXT'
        EXPORTING
          id                      = 'F03'
          language                = sy-langu
          name                    = nmebeln
          object                  = 'EKPO'
        TABLES
          lines                   = tline
        EXCEPTIONS
          id                      = 1
          language                = 2
          name                    = 3
          not_found               = 4
          object                  = 5
          reference_check         = 6
          wrong_access_to_archive = 7
          OTHERS                  = 8.
      IF sy-subrc <> 0.
             MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
             WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
      ENDIF.
           refresh.
      CLEAR : po_flag, mat_po_text.
      LOOP AT tline.
        IF tline-tdline IS NOT INITIAL.
          MOVE tline-tdline TO mat_po_text.
          CONDENSE mat_po_text.
          PERFORM writeform USING 'MTRL_PO_TEXT' 'MAIN'.
          po_flag = 'X'.
          CLEAR : mat_po_text.
        ENDIF.
      ENDLOOP.
*Added lines below for Schedule delivery for line item on 09.05.2007:Rajiv
      CLEAR g_ind.
      READ TABLE it_eket  WITH KEY ebeln = it_ekpo-ebeln
                                   ebelp = it_ekpo-ebelp BINARY SEARCH.
      g_ind = sy-tabix.
      LOOP AT it_eket FROM g_ind.
        IF it_eket-ebeln EQ it_ekpo-ebeln AND it_eket-ebelp = it_ekpo-ebelp.
          PERFORM writeform USING 'SCHEDULE' 'MAIN'.
        ELSE.
          EXIT.
        ENDIF.
      ENDLOOP.
*End Addition:Rajiv
      PERFORM writeform USING 'REQSLP' 'MAIN'.
      mlctr = mlctr + 1.
      msr = msr + 1.
      CLEAR: lt_ctr, lt_ctr1.
  following lines added by ganesh to add service po details as per Mr. sadiq 21.08.2007
      IF it_ekpo-packno IS NOT INITIAL.
        CLEAR sub_packno.
        SELECT SINGLE sub_packno INTO sub_packno FROM esll WHERE packno = it_ekpo-packno.
        IF sub_packno IS NOT INITIAL.
          CLEAR it_esll.
          REFRESH it_esll.
          SELECT * FROM esll INTO CORRESPONDING FIELDS OF TABLE it_esll
          WHERE packno = sub_packno.
          IF sy-subrc = 0.
            PERFORM writeform USING 'SERVICE_PO_TEXT' 'MAIN'.
          ENDIF.
          LOOP AT it_esll.
            CONCATENATE sub_packno it_esll-introw INTO obj.
            CALL FUNCTION 'READ_TEXT'   "4500002446  C300
              EXPORTING
                id       = 'LTXT'
                language = sy-langu
                name     = obj
                object   = 'ESLL'
              TABLES
                lines    = tline
              EXCEPTIONS
                id                      = 1
                language                = 2
                name                    = 3
                not_found               = 4
                object                  = 5
                reference_check         = 6
                wrong_access_to_archive = 7
                OTHERS                  = 8.
            IF sy-subrc <> 0.
            ENDIF.
            CLEAR stext.
            LOOP AT tline.
              CONCATENATE stext tline-tdline  INTO stext SEPARATED BY space.
            ENDLOOP.
            FREE tline.
            CLEAR tline.
            REFRESH tline.
            PERFORM writeform USING 'SERVICE_PO' 'MAIN'.
            PERFORM writeform USING 'SERVICE_TEXT' 'MAIN'.
          ENDLOOP.
        ENDIF.
      ENDIF.
    end of change
    ENDLOOP.             " it_ekpo.
    IF mlctr < 15.
      DO 5 TIMES.
        PERFORM writeform USING 'LINEFEED' 'MAIN'.
      ENDDO.
    ENDIF.
    added by ganesh  for allding line before ECC No.
    IF it_ekko-bsart NE 'ZIM'.               " IF EXPORT NO NEED TO PRINT ECC.
      PERFORM writeform USING 'LIN' 'MAIN'.
      PERFORM writeform USING 'WERKS_TAX_DETAIL' 'MAIN'.
    ENDIF.
    end of change
     MFLAG = 'Y'.
    PERFORM writeform USING 'TERMS_VAL' 'MAIN'.
    LOOP AT it_konv1 WHERE knumv EQ it_ekko-knumv.
      mkschl = it_konv1-kschl.
      mchgamt = 0.
      LOOP AT it_konv_ftr  WHERE knumv EQ it_konv1-knumv
                           AND kschl EQ mkschl.
        mchgamt = mchgamt + it_konv_ftr-kwert.
      ENDLOOP.
        For Japanies Yen "RTDK906759
      IF it_ekko-waers = 'JPY'.
        mchgamt = mchgamt * 100.
      ENDIF.
        End for japaies Yen
      mfamt = mfamt + mchgamt.
      IF mchgamt LT '0'.
        mchgamt = mchgamt * ( -1 ).
      ENDIF.
      READ TABLE it_t685t_ftr WITH KEY kschl = mkschl.
      PERFORM writeform USING 'TERMS_FTR_VAL' 'MAIN'.
      mlctr = mlctr + 1.
    ENDLOOP.
    mflag = 'T'.
    CALL FUNCTION 'HR_IN_CHG_INR_WRDS'
      EXPORTING
        amt_in_num         = mfamt
      IMPORTING
        amt_in_words       = mfword
      EXCEPTIONS
        data_type_mismatch = 1
        OTHERS             = 2.
    CONDENSE mebeln.
    nmebeln = it_ekko-ebeln.
    REFRESH tline.
    CALL FUNCTION 'READ_TEXT'
      EXPORTING
        id                      = 'F01'
        language                = sy-langu
        name                    = nmebeln
        object                  = 'EKKO'
      TABLES
        lines                   = tline
      EXCEPTIONS
        id                      = 1
        language                = 2
        name                    = 3
        not_found               = 4
        object                  = 5
        reference_check         = 6
        wrong_access_to_archive = 7
        OTHERS                  = 8.
    IF sy-subrc <> 0.
    ENDIF.
*---- CHANGED BY MATHEW BECAUSE THIS STATMENT WORKING FINE IN 300 BUT NOT IN 500C.
   LOOP AT ZTEXT.
     IF ZTEXT-TEXT1 IS NOT INITIAL.
       PERFORM WRITEFORM USING 'TERMS_COND_VAL_PAY' 'MAIN'.
     ENDIF.
     MPAY_FLAG = 'Y'.
   ENDLOOP.
    READ TABLE it_t052u WITH KEY zterm = it_ekko-zterm.
    LOOP AT it_t052u WHERE zterm EQ it_ekko-zterm.
      IF it_t052u-text1 IS NOT INITIAL.
        PERFORM writeform USING 'TERMS_COND_VAL_PAY' 'MAIN'.
      ENDIF.
      mpay_flag = 'Y'.
    ENDLOOP.
    PERFORM writeform USING 'TERMS_COND_VAL' 'MAIN'.
    LOOP AT tline.
      IF tline-tdline IS NOT INITIAL.
        PERFORM writeform USING 'TERMS_COND_VAL_HDR' 'MAIN'.
      ENDIF.
      CONDENSE txt.
    ENDLOOP.
    PERFORM writeform USING 'FTR' 'FTR_LIN3'.
    PERFORM writeform USING 'FTR_LIN1' 'FTR_LIN1'.
    CALL FUNCTION 'END_FORM'.
  ENDLOOP.                    "   It_ekko.
  CALL FUNCTION 'CLOSE_FORM'
   IMPORTING
   RESULT                         = itcpp
  RDI_RESULT                     =
   TABLES
     otfdata                        = otf
   EXCEPTIONS
     unopened                       = 1
     bad_pageformat_for_print       = 2
     send_error                     = 3
     spool_error                    = 4
     codepage                       = 5
     OTHERS                         = 6.
  IF sy-subrc <> 0.
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
        WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
  ENDIF.
ENDFORM.                    " Process
*&      Form  WRITEFORM
      text
     -->P_0150   text
     -->P_0151   text
FORM writeform  USING    value(p_0150)
                         value(p_0151).
  CALL FUNCTION 'WRITE_FORM'

Hi
I think some basis related configuartions to be done
Try like this and inform me
A cyclic job runs, which processes the messages seen in the SOST queue.
Are you sure it's not the frequency of the cyclic job, rather than the
number of messages in the queue, that you are observing? In messages
that are queued and before the cyclic job runs, "wait for comm. service"
is the normal status.
If you mean that there are always 4 items queued in SOST regardless of
the cyclic send job, then I have no ideas. I would have thought there
was no way to do that.
when the send job runs it just never
picks them up & sends them, while it picks up many others. The send job
is somehow blind to these; no error message occurs. In this case, I
'delete' them from the queue (in SOST) and then 'undelete' (drop down
menu -> /Go to /Deleted Items) them and then re-queue them. THEN they
actually get picked up & sent when the next cyclic send job executes.
Regards
Pavan

Similar Messages

  • How to send smartform output through mail in PDF Format

    Can some one provide me the sample code
    Edited by: Revankar Satej on Feb 22, 2008 1:22 PM

    Hi,
         try this code,HOPE usefull to u, Reaward points
    *& Report  ZTEST_SMARTFORM
    REPORT  ztest_smartform.
    DATA: formname TYPE  tdsfname,
          fm_name TYPE  rs38l_fnam,
          control_parameters TYPE ssfctrlop,
          job_output_info TYPE     ssfcrescl,
          otf_data TYPE tsfotf,
          bin_filesize TYPE i,
          otf TYPE TABLE OF itcoo WITH HEADER LINE,
          doctab_archive TYPE TABLE OF docs WITH HEADER LINE,
          lines TYPE TABLE OF tline WITH HEADER LINE.
    INITIALIZATION.
      formname = 'UR SMART FORM'.
    START-OF-SELECTION.
      CALL FUNCTION 'SSF_FUNCTION_MODULE_NAME'
        EXPORTING
          formname                 = formname
      VARIANT                  = ' '
      DIRECT_CALL              = ' '
       IMPORTING
         fm_name                  = fm_name
       EXCEPTIONS
         no_form                  = 1
         no_function_module       = 2
         OTHERS                   = 3
      IF sy-subrc <> 0.
    MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
            WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
      ENDIF.
      control_parameters-no_dialog = 'X'.
    control_parameters-preview = ''.
      control_parameters-getotf = 'X'.
      CALL FUNCTION fm_name
       EXPORTING
      ARCHIVE_INDEX              = ARCHIVE_INDEX
      ARCHIVE_INDEX_TAB          = ARCHIVE_INDEX_TAB
      ARCHIVE_PARAMETERS         = ARCHIVE_PARAMETERS
         control_parameters         = control_parameters
      MAIL_APPL_OBJ              = MAIL_APPL_OBJ
      MAIL_RECIPIENT             = MAIL_RECIPIENT
      MAIL_SENDER                = MAIL_SENDER
      OUTPUT_OPTIONS             = OUTPUT_OPTIONS
      USER_SETTINGS              = 'X'
       IMPORTING
      DOCUMENT_OUTPUT_INFO       = DOCUMENT_OUTPUT_INFO
         job_output_info            = job_output_info
      JOB_OUTPUT_OPTIONS         = JOB_OUTPUT_OPTIONS
       EXCEPTIONS
         formatting_error           = 1
         internal_error             = 2
         send_error                 = 3
         user_canceled              = 4
         OTHERS                     = 5
      IF sy-subrc <> 0.
    MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
            WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
      ENDIF.
      otf_data[] =  job_output_info-otfdata[].
      CALL FUNCTION 'CONVERT_OTF_2_PDF'
      EXPORTING
        USE_OTF_MC_CMD               = 'X'
        ARCHIVE_INDEX                = ARCHIVE_INDEX
       IMPORTING
         bin_filesize                 = bin_filesize
        TABLES
          otf                          = otf_data[]
          doctab_archive               = doctab_archive[]
          lines                        = lines
       EXCEPTIONS
         ERR_CONV_NOT_POSSIBLE        = 1
         ERR_OTF_MC_NOENDMARKER       = 2
         OTHERS                       = 3
      IF sy-subrc <> 0.
    MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
            WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
      ENDIF.
      DATA:  filename TYPE string.
      filename = 'c:\test\smart.pdf'.
      CALL FUNCTION 'GUI_DOWNLOAD'
        EXPORTING
         bin_filesize                    = bin_filesize
          filename                        = filename
         filetype                        = 'BIN'
        APPEND                          = ' '
        WRITE_FIELD_SEPARATOR           = ' '
        HEADER                          = '00'
        TRUNC_TRAILING_BLANKS           = ' '
        WRITE_LF                        = 'X'
        COL_SELECT                      = ' '
        COL_SELECT_MASK                 = ' '
        DAT_MODE                        = ' '
        CONFIRM_OVERWRITE               = ' '
        NO_AUTH_CHECK                   = ' '
        CODEPAGE                        = ' '
        IGNORE_CERR                     = ABAP_TRUE
        REPLACEMENT                     = '#'
        WRITE_BOM                       = ' '
        TRUNC_TRAILING_BLANKS_EOL       = 'X'
        WK1_N_FORMAT                    = ' '
        WK1_N_SIZE                      = ' '
        WK1_T_FORMAT                    = ' '
        WK1_T_SIZE                      = ' '
      IMPORTING
        FILELENGTH                      = FILELENGTH
        TABLES
          data_tab                        = lines[]
        FIELDNAMES                      = FIELDNAMES
       EXCEPTIONS
         file_write_error                = 1
         no_batch                        = 2
         gui_refuse_filetransfer         = 3
         invalid_type                    = 4
         no_authority                    = 5
         unknown_error                   = 6
         header_not_allowed              = 7
         separator_not_allowed           = 8
         filesize_not_allowed            = 9
         header_too_long                 = 10
         dp_error_create                 = 11
         dp_error_send                   = 12
         dp_error_write                  = 13
         unknown_dp_error                = 14
         access_denied                   = 15
         dp_out_of_memory                = 16
         disk_full                       = 17
         dp_timeout                      = 18
         file_not_found                  = 19
         dataprovider_exception          = 20
         control_flush_error             = 21
         OTHERS                          = 22
      IF sy-subrc <> 0.
    MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
            WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
      ENDIF.
      DATA: document_data LIKE  sodocchgi1 ,
            contents_txt TYPE TABLE OF  solisti1  WITH HEADER LINE,
            contents_bin     TYPE TABLE OF     solisti1 WITH HEADER LINE,
            tab_lines TYPE i,
            packing_list TYPE TABLE OF sopcklsti1 WITH HEADER LINE,
            OBJECT_HEADER type table of SOLISTI1 with header line,
            RECEIVERS     TYPE TABLE OF      SOMLRECI1 WITH HEADER LINE,     
            l_str(255) ,
            v1 TYPE i,
            v2 TYPE i,
            v3 type i.
      CONSTANTS: c_raw TYPE so_obj_tp VALUE 'RAW',
                 c_pdf TYPE so_obj_tp VALUE 'PDF',
                 c_255 TYPE i VALUE 255,
                 c_134 TYPE i VALUE 134,
                 C_X TYPE C VALUE 'X',
                 C_U TYPE C VALUE 'U'.
      document_data-obj_name = 'EMAIL'.
      document_data-obj_descr = 'subject'.
      contents_txt = 'THIS IS first line DATA'.
      APPEND contents_txt.
      CLEAR contents_txt.
      contents_txt = 'THIS IS second line DATA'.
      APPEND contents_txt.
      CLEAR contents_txt.
      APPEND contents_txt.
      APPEND contents_txt.
      DESCRIBE TABLE contents_txt LINES tab_lines.
      READ TABLE contents_txt INDEX tab_lines.
    document_data-doc_size = ( tab_lines - 1 ) * 255 + STRLEN( contents_txt ).
      document_data-doc_size =  tab_lines .
      CLEAR packing_list-transf_bin.
      packing_list-head_start = 1.
      packing_list-head_num = 0.
      packing_list-body_start = 1.
      packing_list-body_num = tab_lines.
      packing_list-doc_type = c_raw.
      packing_list-doc_size = document_data-doc_size.
      APPEND packing_list.
      LOOP AT lines.
        CLEAR l_str.
        l_str+0(2) = lines-tdformat.
        l_str+2(132) = lines-tdline.
        v2 = v1 + c_134.
        IF v2 LE c_255.
          contents_bin-line+v1(c_134) = l_str. v1 = v2.
        ELSE.
          v3 = v2 - c_255.
          v2 = c_255 - v1.
          IF NOT v2 IS INITIAL.
            contents_bin-linev1(v2) = l_str0(v2).
          ENDIF.
          APPEND contents_bin.
          CLEAR contents_bin.
          v1 = v3.
          v3 = 134 - v1.
          IF NOT v1 IS INITIAL.
            contents_bin-line0(v1) = l_strv3(v1).
          ENDIF.
        ENDIF.
      ENDLOOP.
      APPEND contents_bin.
      CLEAR contents_bin.
      DESCRIBE TABLE contents_bin LINES tab_lines.
      READ TABLE contents_bin INDEX tab_lines.
    OBJECT_HEADER = 'objhead'.
    APPEND OBJECT_HEADER.
    packing_list-transf_bin = c_x.
    packing_list-head_start = 1.
    packing_list-head_num = 1.
    packing_list-body_start = 1.
    packing_list-body_num = tab_lines.
    packing_list-doc_type = c_pdf.
    packing_list-obj_name = 'text1'.
    packing_list-obj_descr = 'filename'.
    packing_list-doc_size = tab_lines * 255  + STRLEN( contents_bin ).
    APPEND packing_list.
    RECEIVERS-receiver = 'UR EMAIL ADDRESS IN CAPS'.
    RECEIVERS-rec_type = c_u.
    APPEND RECEIVERS.
    CLEAR RECEIVERS.
      CALL FUNCTION 'SO_DOCUMENT_SEND_API1'
        EXPORTING
          document_data                    = document_data
       PUT_IN_OUTBOX                    = 'X'
      SENDER_ADDRESS                   = SY-UNAME
      SENDER_ADDRESS_TYPE              = 'B'
       COMMIT_WORK                      = 'X'
    IMPORTING
      SENT_TO_ALL                      =
      NEW_OBJECT_ID                    = NEW_OBJECT_ID
      SENDER_ID                        = SENDER_ID
      TABLES
        packing_list                     = packing_list
       OBJECT_HEADER                    = OBJECT_HEADER
       CONTENTS_BIN                     = CONTENTS_BIN
       CONTENTS_TXT                     = CONTENTS_TXT
      CONTENTS_HEX                     = CONTENTS_HEX
      OBJECT_PARA                      = OBJECT_PARA
      OBJECT_PARB                      = OBJECT_PARB
        receivers                        = receivers
    EXCEPTIONS
      TOO_MANY_RECEIVERS               = 1
      DOCUMENT_NOT_SENT                = 2
      DOCUMENT_TYPE_NOT_EXIST          = 3
      OPERATION_NO_AUTHORIZATION       = 4
      PARAMETER_ERROR                  = 5
      X_ERROR                          = 6
      ENQUEUE_ERROR                    = 7
      OTHERS                           = 8
    IF sy-subrc <> 0.
    MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
            WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
    ENDIF.
    Regards
    SFT

  • Error while sending email to external mail - Urgent

    Hi All,
    I am getting error while sending email with attachement. The Error code is 02.
    I am not able to identify the error. bold Please help me in solving this problem.
    Is it anything wrong with the code or Any Configuration with SCOT/SOST.bold
    the code i am using is :
    REPORT YVR_F MESSAGE-ID XX .
    TABLES : EDIDC, EDIDS, EDPAR.
    SELECTION-SCREEN BEGIN OF BLOCK B1 WITH FRAME.
    PARAMETERS : P_STATUS LIKE EDIDC-STATUS DEFAULT '51'.
    SELECT-OPTIONS : S_DIRECT FOR EDIDC-DIRECT,
                     S_MESTYP FOR EDIDC-MESTYP,
                     S_CREDAT FOR EDIDC-CREDAT.
    SELECTION-SCREEN END OF BLOCK B1 .
    PARAMETER: P_EMAIL LIKE SOMLRECI1-RECEIVER,
               P_SENDER LIKE SOMLRECI1-RECEIVER no-display,
               P_DELSPL  AS CHECKBOX,
               P_ONLINE NO-DISPLAY.
    DATA : TB_EDIDC LIKE STANDARD TABLE OF EDIDC INITIAL SIZE 0 WITH HEADER
    LINE.
    DATA : TB_EDPAR LIKE STANDARD TABLE OF EDPAR INITIAL SIZE 0 WITH HEADER
    LINE.
    DATA : TB_KNA1 LIKE STANDARD TABLE OF KNA1 INITIAL SIZE 0 WITH HEADER
    LINE.
    DATA : TB_ADRC LIKE STANDARD TABLE OF ADRC INITIAL SIZE 0 WITH HEADER
    LINE.
    DATA: INT_PDF TYPE TABLE OF TLINE WITH HEADER LINE.
    DATA : BEGIN OF TB_ED OCCURS 0,
             SNDPRN LIKE EDIDC-SNDPRN,
             LOC    LIKE ADRC-BUILDING,
             DOCNUM LIKE EDIDC-DOCNUM,
             IDOCTP LIKE EDIDC-IDOCTP,
             MESTYP LIKE EDIDC-MESTYP,
             DIRECT LIKE EDIDC-DIRECT,
             CREDAT LIKE EDIDC-CREDAT,
             STATUS LIKE EDIDC-STATUS,
           END OF TB_ED.
    DATA:   IT_MESSAGE TYPE STANDARD TABLE OF SOLISTI1 INITIAL SIZE 0
                    WITH HEADER LINE.
    DATA:   IT_ATTACH TYPE STANDARD TABLE OF SOLISTI1 INITIAL SIZE 0
                    WITH HEADER LINE.
    Job Runtime Parameters
    DATA: GD_EVENTID LIKE TBTCM-EVENTID,
          GD_EVENTPARM LIKE TBTCM-EVENTPARM,
          GD_EXTERNAL_PROGRAM_ACTIVE LIKE TBTCM-XPGACTIVE,
          GD_JOBCOUNT LIKE TBTCM-JOBCOUNT,
          GD_JOBNAME LIKE TBTCM-JOBNAME,
          GD_STEPCOUNT LIKE TBTCM-STEPCOUNT,
          GD_ERROR    TYPE SY-SUBRC,
          GD_RECIEVER TYPE SY-SUBRC.
    DATA:  W_RECSIZE TYPE I,
           W_SPOOL_NR LIKE SY-SPONO.
          %_print LIKE pri_params.
    DATA: GD_SUBJECT   LIKE SODOCCHGI1-OBJ_DESCR,
          IT_MESS_BOD LIKE SOLISTI1 OCCURS 0 WITH HEADER LINE,
          IT_MESS_ATT LIKE SOLISTI1 OCCURS 0 WITH HEADER LINE,
          GD_SENDER_TYPE     LIKE SOEXTRECI1-ADR_TYP,
          GD_ATTACHMENT_DESC TYPE SO_OBJ_NAM,
          GD_ATTACHMENT_NAME TYPE SO_OBJ_DES.
    Spool to PDF conversions
    DATA: GD_SPOOL_NR LIKE TSP01-RQIDENT,
          GD_DESTINATION LIKE RLGRAP-FILENAME,
          GD_BYTECOUNT LIKE TST01-DSIZE,
          GD_BUFFER TYPE STRING.
    Binary store for PDF
    DATA: BEGIN OF IT_PDF_OUTPUT OCCURS 0.
            INCLUDE STRUCTURE TLINE.
    DATA: END OF IT_PDF_OUTPUT.
    DATA: GD_RECSIZE TYPE I.
    CONSTANTS: C_DEV LIKE  SY-SYSID VALUE 'DEV',
               C_NO(1)     TYPE C   VALUE ' ',
               C_DEVICE(4) TYPE C   VALUE 'LOCL'.
    DATA:   T_PACKING_LIST LIKE SOPCKLSTI1 OCCURS 0 WITH HEADER LINE,
            T_CONTENTS LIKE SOLISTI1 OCCURS 0 WITH HEADER LINE,
            T_RECEIVERS LIKE SOMLRECI1 OCCURS 0 WITH HEADER LINE,
            T_ATTACHMENT LIKE SOLISTI1 OCCURS 0 WITH HEADER LINE,
            T_OBJECT_HEADER LIKE SOLISTI1 OCCURS 0 WITH HEADER LINE,
            W_CNT TYPE I,
            W_SENT_ALL(1) TYPE C,
            W_DOC_DATA LIKE SODOCCHGI1.
    DATA : MSTR_PRINT_PARMS LIKE PRI_PARAMS,
           MC_VALID,
           P_REPID LIKE SY-REPID,
           WF_ID  LIKE TSP01-RQIDENT,
           LOC_BYTECOUNT TYPE I.
    *start-of-selection.
    MSTR_PRINT_PARMS-PDEST = 'LOCL'.
    P_REPID = SY-REPID.
    CALL FUNCTION 'GET_PRINT_PARAMETERS'
    EXPORTING
        authority= ' '
       COPIES                       = '1'
       COVER_PAGE                   = SPACE
       DATA_SET                     = SPACE
       DEPARTMENT                   = SPACE
       DESTINATION                  = 'LP01'
       EXPIRATION                   = '1'
       IMMEDIATELY                  = 'X'
       LAYOUT                       = 'X_65_132'
       MODE                         = SPACE
       NEW_LIST_ID                  = 'X'
       NO_DIALOG                    = 'X'
       USER                         = SY-UNAME
    IMPORTING
       OUT_PARAMETERS               = MSTR_PRINT_PARMS
       VALID                        = MC_VALID
    EXCEPTIONS
       ARCHIVE_INFO_NOT_FOUND       = 1
       INVALID_PRINT_PARAMS         = 2
       INVALID_ARCHIVE_PARAMS       = 3
       OTHERS                       = 4.
         SUBMIT (P_REPID) TO SAP-SPOOL WITHOUT SPOOL DYNPRO
                          SPOOL PARAMETERS MSTR_PRINT_PARMS.
                          AND RETURN.
    NEW-PAGE PRINT ON NO DIALOG PARAMETERS
    MSTR_PRINT_PARMS.
    perform data.
    NEW-PAGE PRINT OFF. "This marks the end of the screen for which the
    *SPOOL NO WAS GENERATED.
    WF_ID = SY-SPONO.
    *converting spool to pdf
    CALL FUNCTION 'CONVERT_ABAPSPOOLJOB_2_PDF'
         EXPORTING
              SRC_SPOOLID              = WF_ID  "SPOOL NUMBER
              NO_DIALOG                = SPACE
              PDF_DESTINATION          = 'X'
         IMPORTING
              PDF_BYTECOUNT =
                 LOC_BYTECOUNT "NUMBER OF BYTES TRANSFERRED
         TABLES
              PDF                      = INT_PDF  "TABLE FOR PDF REPORT
         EXCEPTIONS
              ERR_NO_ABAP_SPOOLJOB     = 1
              ERR_NO_SPOOLJOB          = 2
              ERR_NO_PERMISSION        = 3
              ERR_CONV_NOT_POSSIBLE    = 4
              ERR_BAD_DESTDEVICE       = 5
              USER_CANCELLED           = 6
              ERR_SPOOLERROR           = 7
              ERR_TEMSEERROR           = 8
              ERR_BTCJOB_OPEN_FAILED   = 9
              ERR_BTCJOB_SUBMIT_FAILED = 10
              ERR_BTCJOB_CLOSE_FAILED  = 11
              OTHERS                   = 12.
    *CALL FUNCTION 'DOWNLOAD'
    *EXPORTING
    *bin_filesize = loc_bytecount "NO. OF BYTES
    *filename = 'C:/EMAILPDF.PDF'
    *filetype = 'BIN'
    **IMPORTING
    **act_filename = loc_filename
    *TABLES
    *data_tab = int_pdf.
    IF P_DELSPL EQ 'X'.
      PERFORM DELETE_SPOOL.
    ENDIF.
    Transfer the 132-long strings to 255-long strings
    LOOP AT INT_PDF.
      TRANSLATE INT_PDF USING ' ~'.
      CONCATENATE GD_BUFFER INT_PDF INTO GD_BUFFER.
    ENDLOOP.
    TRANSLATE GD_BUFFER USING '~ '.
    DO.
      IT_MESS_ATT = GD_BUFFER.
      APPEND IT_MESS_ATT.
      SHIFT GD_BUFFER LEFT BY 255 PLACES.
      IF GD_BUFFER IS INITIAL.
        EXIT.
      ENDIF.
    ENDDO.
    DESCRIBE TABLE IT_MESS_ATT LINES GD_RECSIZE.
    CHECK GD_RECSIZE > 0.
    PERFORM SENDMAIL USING P_EMAIL..
    *&      Form  sendmail
          text
    -->  p1        text
    <--  p2        text
    FORM SENDMAIL USING P_EMAIL.
      CHECK NOT ( P_EMAIL IS INITIAL ).
      REFRESH IT_MESS_BOD.
    Default subject matter
      GD_SUBJECT         = 'Subject'.
      GD_ATTACHMENT_DESC = 'IDOC LIST'.
    CONCATENATE 'attach_name' ' ' INTO gd_attachment_name.
      IT_MESS_BOD        = 'List Of Failed Idocs'.
      APPEND IT_MESS_BOD.
      IT_MESS_BOD        = 'List Of Failed Idocs'.
      APPEND IT_MESS_BOD.
    If no sender specified - default blank
      IF P_SENDER EQ SPACE.
        GD_SENDER_TYPE  = SPACE.
      ELSE.
        GD_SENDER_TYPE  = 'INT'.
      ENDIF.
    Send file by email as .xls speadsheet
      PERFORM SEND_FILE_AS_EMAIL_ATTACHMENT
                                   TABLES IT_MESS_BOD
                                          IT_MESS_ATT
                                    USING P_EMAIL
                                          'Document attachment'
                                          'PDF'
                                          GD_ATTACHMENT_NAME
                                          GD_ATTACHMENT_DESC
                                          P_SENDER
                                          GD_SENDER_TYPE
                                 CHANGING GD_ERROR
                                          GD_RECIEVER.
    ENDFORM.                    " sendmail
    *&      Form  DELETE_SPOOL
          text
    -->  p1        text
    <--  p2        text
    FORM DELETE_SPOOL.
      DATA: LD_SPOOL_NR TYPE TSP01_SP0R-RQID_CHAR.
      LD_SPOOL_NR = WF_ID.   "GD_SPOOL_NR.
      CHECK P_DELSPL <> C_NO.
      CALL FUNCTION 'RSPO_R_RDELETE_SPOOLREQ'
           EXPORTING
                SPOOLID = LD_SPOOL_NR.
    ENDFORM.                    " DELETE_SPOOL
    *&      Form  SEND_FILE_AS_EMAIL_ATTACHMENT
          text
         -->P_IT_MESS_BOD  text
         -->P_IT_MESS_ATT  text
         -->P_P_EMAIL  text
         -->P_0846   text
         -->P_0847   text
         -->P_GD_ATTACHMENT_NAME  text
         -->P_GD_ATTACHMENT_DESC  text
         -->P_P_SENDER  text
         -->P_GD_SENDER_TYPE  text
         <--P_GD_ERROR  text
         <--P_GD_RECIEVER  text
    FORM SEND_FILE_AS_EMAIL_ATTACHMENT TABLES   IT_MESSAGE
                                              IT_ATTACH
                                        USING P_EMAIL
                                              P_MTITLE
                                              P_FORMAT
                                              P_FILENAME
                                              P_ATTDESCRIPTION
                                              P_SENDER_ADDRESS
                                              P_SENDER_ADDRES_TYPE
                                     CHANGING P_ERROR
                                              P_RECIEVER.
      DATA: LD_ERROR    TYPE SY-SUBRC,
             LD_RECIEVER TYPE SY-SUBRC,
             LD_MTITLE LIKE SODOCCHGI1-OBJ_DESCR,
             LD_EMAIL LIKE  SOMLRECI1-RECEIVER,
             LD_FORMAT TYPE  SO_OBJ_TP ,
             LD_ATTDESCRIPTION TYPE  SO_OBJ_NAM ,
             LD_ATTFILENAME TYPE  SO_OBJ_DES ,
             LD_SENDER_ADDRESS LIKE  SOEXTRECI1-RECEIVER,
             LD_SENDER_ADDRESS_TYPE LIKE  SOEXTRECI1-ADR_TYP,
             LD_RECEIVER LIKE  SY-SUBRC.
      DATA:   T_PACKING_LIST LIKE SOPCKLSTI1 OCCURS 0 WITH HEADER LINE,
              T_CONTENTS LIKE SOLISTI1 OCCURS 0 WITH HEADER LINE,
              T_RECEIVERS LIKE SOMLRECI1 OCCURS 0 WITH HEADER LINE,
              T_ATTACHMENT LIKE SOLISTI1 OCCURS 0 WITH HEADER LINE,
              T_OBJECT_HEADER LIKE SOLISTI1 OCCURS 0 WITH HEADER LINE,
              W_CNT TYPE I,
              W_SENT_ALL(1) TYPE C,
              W_DOC_DATA LIKE SODOCCHGI1.
      LD_EMAIL   = P_EMAIL.
      LD_MTITLE = P_MTITLE.
      LD_FORMAT              = P_FORMAT.
      LD_ATTDESCRIPTION      = P_ATTDESCRIPTION.
      LD_ATTFILENAME         = P_FILENAME.
      LD_SENDER_ADDRESS      = P_SENDER.
      LD_SENDER_ADDRESS_TYPE = P_SENDER_ADDRES_TYPE.
    Fill the document data.
      W_DOC_DATA-DOC_SIZE = 1.
    Populate the subject/generic message attributes
      W_DOC_DATA-OBJ_LANGU = SY-LANGU.
      W_DOC_DATA-OBJ_NAME  = 'SAPRPT'.
      W_DOC_DATA-OBJ_DESCR = LD_MTITLE .
      W_DOC_DATA-SENSITIVTY = 'F'.
    Fill the document data and get size of attachment
      CLEAR W_DOC_DATA.
      READ TABLE IT_ATTACH INDEX W_CNT.
      W_DOC_DATA-DOC_SIZE =
         ( W_CNT - 1 ) * 255 + STRLEN( IT_ATTACH ).
      W_DOC_DATA-OBJ_LANGU  = SY-LANGU.
      W_DOC_DATA-OBJ_NAME   = 'SAPRPT'.
      W_DOC_DATA-OBJ_DESCR  = LD_MTITLE.
      W_DOC_DATA-SENSITIVTY = 'F'.
      CLEAR T_ATTACHMENT.
      REFRESH T_ATTACHMENT.
      T_ATTACHMENT[] = IT_ATTACH[].
    Describe the body of the message
      CLEAR T_PACKING_LIST.
      REFRESH T_PACKING_LIST.
      T_PACKING_LIST-TRANSF_BIN = SPACE.
      T_PACKING_LIST-HEAD_START = 1.
      T_PACKING_LIST-HEAD_NUM = 0.
      T_PACKING_LIST-BODY_START = 1.
      DESCRIBE TABLE IT_MESSAGE LINES T_PACKING_LIST-BODY_NUM.
      T_PACKING_LIST-DOC_TYPE = 'RAW'.
      APPEND T_PACKING_LIST.
    Create attachment notification
      T_PACKING_LIST-TRANSF_BIN = 'X'.
      T_PACKING_LIST-HEAD_START = 1.
      T_PACKING_LIST-HEAD_NUM   = 1.
      T_PACKING_LIST-BODY_START = 1.
      DESCRIBE TABLE T_ATTACHMENT LINES T_PACKING_LIST-BODY_NUM.
      T_PACKING_LIST-DOC_TYPE   =  LD_FORMAT.
      T_PACKING_LIST-OBJ_DESCR  =  LD_ATTDESCRIPTION.
      T_PACKING_LIST-OBJ_NAME   =  LD_ATTFILENAME.
      T_PACKING_LIST-DOC_SIZE   =  T_PACKING_LIST-BODY_NUM * 255.
      APPEND T_PACKING_LIST.
    Add the recipients email address
      CLEAR T_RECEIVERS.
      REFRESH T_RECEIVERS.
      T_RECEIVERS-RECEIVER = p_EMAIL.
      T_RECEIVERS-REC_TYPE = 'U'.
      T_RECEIVERS-COM_TYPE = 'INT'.
      T_RECEIVERS-NOTIF_DEL = 'X'.
      T_RECEIVERS-NOTIF_NDEL = 'X'.
      APPEND T_RECEIVERS.
      DATA: objhead LIKE solisti1 OCCURS 1 WITH HEADER LINE.
    W_SENT_ALL = 'X'.
      CALL FUNCTION 'SO_NEW_DOCUMENT_ATT_SEND_API1'
           EXPORTING
                DOCUMENT_DATA              = W_DOC_DATA
                PUT_IN_OUTBOX              = 'X'
               SENDER_ADDRESS             = LD_SENDER_ADDRESS
               SENDER_ADDRESS_TYPE        = LD_SENDER_ADDRESS_TYPE
                COMMIT_WORK                = 'X'
           IMPORTING
                SENT_TO_ALL                = W_SENT_ALL
           TABLES
                PACKING_LIST               = T_PACKING_LIST
                object_header              = objhead
                CONTENTS_BIN               = T_ATTACHMENT
                CONTENTS_TXT               = IT_MESSAGE
                RECEIVERS                  = T_RECEIVERS
           EXCEPTIONS
                TOO_MANY_RECEIVERS         = 1
                DOCUMENT_NOT_SENT          = 2
                OPERATION_NO_AUTHORIZATION = 4
                OTHERS                     = 99.
      IF SY-SUBRC NE 0.
        MESSAGE E000 WITH 'Error occurred while sending'.
      ELSE.
        MESSAGE I000 WITH 'The document was sent'.
      ENDIF.
    ENDFORM.                    " SEND_FILE_AS_EMAIL_ATTACHMENT
    *&      Form  data
          text
    -->  p1        text
    <--  p2        text
    FORM data.
    SELECT SNDPRN
             DOCNUM
             IDOCTP
             MESTYP
             DIRECT
             CREDAT
             STATUS
             FROM EDIDC
             INTO CORRESPONDING FIELDS
             OF TABLE TB_EDIDC
             WHERE STATUS = P_STATUS
             AND MESTYP IN S_MESTYP
             AND DIRECT IN S_DIRECT
             AND CREDAT IN S_CREDAT.
    SELECT KUNNR
           INPNR
           FROM EDPAR
           INTO CORRESPONDING FIELDS
           OF TABLE TB_EDPAR
           FOR ALL ENTRIES IN TB_EDIDC
           WHERE KUNNR = TB_EDIDC-SNDPRN.
    SELECT KUNNR
           ADRNR
           FROM KNA1
           INTO CORRESPONDING FIELDS
           OF TABLE TB_KNA1
           FOR ALL ENTRIES IN TB_EDPAR
           WHERE KUNNR = TB_EDPAR-INPNR.
    SELECT ADDRNUMBER
           BUILDING
           FROM ADRC
           INTO CORRESPONDING FIELDS
           OF TABLE TB_ADRC
           FOR ALL ENTRIES IN TB_KNA1
           WHERE ADDRNUMBER = TB_KNA1-ADRNR.
    LOOP AT TB_EDIDC WHERE STATUS = P_STATUS
                     AND MESTYP IN S_MESTYP
                     AND DIRECT IN S_DIRECT
                     AND CREDAT IN S_CREDAT.
      TB_ED-SNDPRN = TB_EDIDC-SNDPRN.
      TB_ED-DOCNUM = TB_EDIDC-DOCNUM.
      TB_ED-IDOCTP = TB_EDIDC-IDOCTP.
      TB_ED-MESTYP = TB_EDIDC-MESTYP.
      TB_ED-DIRECT = TB_EDIDC-DIRECT.
      TB_ED-CREDAT = TB_EDIDC-CREDAT.
      TB_ED-STATUS = TB_EDIDC-STATUS.
      READ TABLE TB_EDPAR WITH KEY KUNNR = TB_EDIDC-SNDPRN.
      READ TABLE TB_KNA1 WITH KEY KUNNR = TB_EDPAR-INPNR.
      READ TABLE TB_ADRC WITH KEY ADDRNUMBER = TB_KNA1-ADRNR.
      TB_ED-LOC = TB_ADRC-BUILDING.
      APPEND TB_ED.
    ENDLOOP.
    WRITE :/02 'CustomerNo',
            15 'Location Code',
            30 'Idoc Number',
            55 'Basic Type',
            70 'Message Type',
            95 'Direction',
            110 'Received Date',
            130 'Status'.
    ULINE.
    LOOP AT TB_ED.
      WRITE :/02 TB_ED-SNDPRN,
              15 TB_ED-LOC,
              30 TB_ED-DOCNUM,
              55 TB_ED-IDOCTP,
              70 TB_ED-MESTYP,
              95 TB_ED-DIRECT,
              110 TB_ED-CREDAT,
              130 TB_ED-STATUS.
    ENDLOOP.
    ENDFORM.                    " data
    Kindly help me in solving the issue.
    Thanks in advance.
    Suki.

    Hi,
    Check in transaction SCOT. If your mail is in error status in SCOT, you can assure that there is no problem with your code. If your message has not reached till SCOT, then the problem will be with the code.
    If the mail is there in scot with error status tell the BASIS to configure it. I feel this could be the problem.
    Regards,
    Renjith Michael.

  • Sending smartform output as mail attachment (PDF)

    Hi,
    I am trying to send a smartform output in PDF format as a mail attachment. This has to be fired in the save of a Invoice.. configured by the output type.
    Here is the code which i have .. and it does not work.
    DATA: ls_bil_invoice TYPE lbbil_invoice.
    tables: nast.
    DATA: i_otf TYPE itcoo OCCURS 0 WITH HEADER LINE,
    i_tline TYPE TABLE OF tline WITH HEADER LINE,
    i_receivers TYPE TABLE OF somlreci1 WITH HEADER LINE,
    i_record LIKE solisti1 OCCURS 0 WITH HEADER LINE,
    Objects to send mail.
    i_objpack LIKE sopcklsti1 OCCURS 0 WITH HEADER LINE,
    i_objtxt LIKE solisti1 OCCURS 0 WITH HEADER LINE,
    i_objbin LIKE solisti1 OCCURS 0 WITH HEADER LINE,
    i_reclist LIKE somlreci1 OCCURS 0 WITH HEADER LINE,
    Work Area declarations
    wa_objhead TYPE soli_tab,
    w_ctrlop TYPE ssfctrlop,
    w_compop TYPE ssfcompop,
    w_return TYPE ssfcrescl,
    wa_doc_chng typE sodocchgi1,
    w_data TYPE sodocchgi1,
    wa_buffer TYPE string,"To convert from 132 to 255
    Variables declarations
    v_form_name TYPE rs38l_fnam,
    v_len_in LIKE sood-objlen,
    v_len_out LIKE sood-objlen,
    v_len_outn TYPE i,
    v_lines_txt TYPE i,
    v_lines_bin TYPE i.
    call function 'SSF_FUNCTION_MODULE_NAME'
      EXPORTING
        formname           = 'ZSDDLB_BIL_INVOICE'
      IMPORTING
        fm_name            = v_form_name
      EXCEPTIONS
        no_form            = 1
        no_function_module = 2
        others             = 3.
    IF sy-subrc <> 0.
      MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
      WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
    ENDIF.
    w_ctrlop-getotf = 'X'.
    w_ctrlop-no_dialog = 'X'.
    w_compop-tdnoprev = 'X'.
    CALL FUNCTION v_form_name
      EXPORTING
        control_parameters = w_ctrlop
        output_options     = w_compop
        user_settings      = 'X'
        is_bil_invoice     = ls_bil_invoice
        is_nast            = nast
        is_repeat          = 'X'
      IMPORTING
        job_output_info    = w_return
      EXCEPTIONS
        formatting_error   = 1
        internal_error     = 2
        send_error         = 3
        user_canceled      = 4
        OTHERS             = 5.
    IF sy-subrc <> 0.
      MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
      WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
    ENDIF.
    i_otf[] = w_return-otfdata[].
    call function 'CONVERT_OTF'
      EXPORTING
        format                = 'PDF'
        max_linewidth         = 132
      IMPORTING
        bin_filesize          = v_len_in
      TABLES
        otf                   = i_otf
        lines                 = i_tline
      EXCEPTIONS
        err_max_linewidth     = 1
        err_format            = 2
        err_conv_not_possible = 3
        others                = 4.
    if sy-subrc EQ 0.
    endif.
    Convert PDF from 132 to 255.
    loop at i_tline.
      translate i_tline using '~'.
      concatenate wa_buffer i_tline into wa_buffer.
    endloop.
    translate wa_buffer using '~'.
    do.
      i_record = wa_buffer.
      append i_record.
      shift wa_buffer left by 255 places.
      if wa_buffer is initial.
        exit.
      endif.
    enddo.
    refresh:
    i_reclist,
    i_objtxt,
    i_objbin,
    i_objpack.
    clear wa_objhead.
    Object with PDF.
    i_objbin[] = i_record[].
    DESCRIBE TABLE i_objbin LINES v_lines_bin.
    Object with main text of the mail.
    i_objtxt = 'Find attached the output of the smart form.'.
    APPEND i_objtxt.
    DESCRIBE TABLE i_objtxt LINES v_lines_txt.
    Document information.
    wa_doc_chng-obj_name = 'Smartform'.
    wa_doc_chng-expiry_dat = sy-datum + 10.
    wa_doc_chng-obj_descr = 'Smart form output'.
    wa_doc_chng-sensitivty = 'F'. "Functional object
    wa_doc_chng-doc_size = v_lines_txt * 255.
    Pack to main body as RAW.
    Obj. to be transported not in binary form
    CLEAR i_objpack-transf_bin.
    Start line of object header in transport packet Smart Forms
    i_objpack-head_start = 1.
    Number of lines of an object header in object packet
    i_objpack-head_num = 0.
    Start line of object contents in an object packet
    i_objpack-body_start = 1.
    Number of lines of the object contents in an object packet
    i_objpack-body_num = v_lines_txt.
    Code for document class
    i_objpack-doc_type = 'RAW'.
    APPEND i_objpack.
    Packing as PDF.
    i_objpack-transf_bin = 'X'.
    i_objpack-head_start = 1.
    i_objpack-head_num = 1.
    i_objpack-body_start = 1.
    i_objpack-body_num = v_lines_bin.
    i_objpack-doc_type = 'PDF'.
    i_objpack-obj_name = 'Smartform'.
    CONCATENATE 'Smartform_output' '.pdf'
    INTO i_objpack-obj_descr.
    i_objpack-doc_size = v_lines_bin * 255.
    APPEND i_objpack.
    Document information.
    CLEAR i_reclist.
    e-mail receivers.
    i_reclist-receiver = '[email protected]'.
    i_reclist-express = 'X'.
    i_reclist-rec_type = 'U'. "Internet address
    APPEND i_reclist.
    call function 'SO_NEW_DOCUMENT_ATT_SEND_API1'
      EXPORTING
        document_data              = wa_doc_chng
        put_in_outbox              = 'X'
      TABLES
        packing_list               = i_objpack
        object_header              = wa_objhead
        CONTENTS_BIN               = i_objbin
        contents_txt               = i_objtxt
        receivers                  = i_reclist
      EXCEPTIONS
        too_many_receivers         = 1
        document_not_sent          = 2
        document_type_not_exist    = 3
        operation_no_authorization = 4
        parameter_error            = 5
        x_error                    = 6
        enqueue_error              = 7
        others                     = 8.
    IF sy-subrc EQ 0.
    ENDIF.

    Hi Aviroop,
      Compare your part of code with the below given code.
    *& Report  YSSN_SIMPLE_SMARTFORM                                       *
    report  zhr_bhaskar_pdf_to_email                   message-id zmsg.
    parameters: p_vbeln type vbak-vbeln default '35'.
    data: it_items type table of vbap,
          v_fm_name type  rs38l_fnam,
          v_tot_lines type i,
          v_sy_tabix           type i,
          output_data        type ssfcrescl. " To hold Output information
    constants:
      c_sep                type c value '-',  " Value -
      c_x                  type c value 'X',  " Value X
      c_space              type c value ' '.  " Space
    *****MAIL START
    include .
    data: g_mail_rec_obj type swotobjid,
          g_mail_sen_obj type swotobjid,
          g_mail_app_obj type swotobjid,
          g_cont_par type  ssfctrlop,
          folder type swc_object,
      begin of sofmfol_key,
          foldertype like sofm-foltp,
          folderyear like sofm-folyr,
          foldernumber like sofm-folno,
          type like sofm-doctp,
          year like sofm-docyr,
          number like sofm-docno,
          forwarder like soub-usrnam,
      end of sofmfol_key,
          bor_key like swotobjid-objkey,
         g_mail TYPE  ppfdmailad VALUE '[email protected]',
          g_mail type  so_name value '[email protected]',
        g_mail TYPE  ppfdmailad VALUE '[email protected]' ,
        g_mail TYPE  ppfdmailad VALUE '[email protected]' ,
          g_rectype type  so_escape value 'U'. " 'B'.
    data: job_output_info type ssfcrescl,
          hotfdata like itcoo  occurs 1 with header line,
          htline like tline    occurs 1 with header line,
          x_objcont like soli  occurs 1 with header line,
          ld_packing_list like soxpl occurs 1 with header line,
          x_object_hd_change like sood1 occurs 1 with header line,
          x_objhead like soli           occurs 1 with header line,
          x_receivers like soos1 occurs 1 with header line,
          format_pdf(10) value 'PDF',
          doc_size(12) type c,
          hltlines type i,
          htabix like sy-tabix,
          fle1(2) type p,
          fle2(2) type p,
          off1 type p,
          hfeld(500) type c.
    tables: soud.
    *****MAIL END
    select *
    into table it_items
    from vbap
    where vbeln = p_vbeln.
    if  it_items[] is initial.
       exit.
    endif.
    perform call_smartform.
    *&      Form  call_smartform
          text
    -->  p1        text
    <--  p2        text
    form call_smartform .
    *DATA: lx_control_parameters TYPE SSFCTRLOP,
         lx_OUTPUT_OPTIONS type SSFCOMPOP.
         lx_OUTPUT_OPTIONS-TDIMMED = ' '.
         lx_OUTPUT_OPTIONS-TDfinal = 'X'.
         lx_OUTPUT_OPTIONS-TDDELETE = 'X'.
         lx_CONTROL_PARAMETERS-NO_CLOSE = 'X'.
         lx_CONTROL_PARAMETERS-NO_OPEN = ' '.
      data: x_ssfcompop type ssfcompop,
            x_ssfctrlop like ssfctrlop,
            x_ssfcrescl type ssfcrescl.
    **MAIL
      g_cont_par-langu = sy-langu.
      g_cont_par-no_dialog = 'X'.
      g_cont_par-getotf = 'X'.
      g_cont_par-device = 'MAIL'.
    Get BOR-Objects for Recipient, Sender und Applikation
      perform mail_recipient_object changing g_mail_rec_obj.
      perform mail_sender_object changing g_mail_sen_obj.
      perform mail_appl_object changing g_mail_app_obj.
    **MAIL
    *--Internal table is having more than 1 record
      if v_tot_lines  gt 1.
        if  v_sy_tabix = 1.
    *--For first record of table
          x_ssfctrlop-no_open  = c_space.
          x_ssfctrlop-no_close = c_x.
        elseif v_sy_tabix = v_tot_lines.
    *--For last record of table
          x_ssfctrlop-no_open  = c_x.
          x_ssfctrlop-no_close = c_space.
        else.
          x_ssfctrlop-no_open  = c_x.
          x_ssfctrlop-no_close = c_x.
        endif.
      endif.
    IF r_previ = c_x.
        x_ssfctrlop-preview  =  c_x.
        x_ssfctrlop-getotf   =  c_x.
    ENDIF.
    call function 'SSF_FUNCTION_MODULE_NAME'
       exporting
         formname                 = 'YSSN_SMARTFORM'
       VARIANT                  = ' '
       DIRECT_CALL              = ' '
      importing
        fm_name                  = v_fm_name
    EXCEPTIONS
       NO_FORM                  = 1
       NO_FUNCTION_MODULE       = 2
       OTHERS                   = 3
    if sy-subrc <> 0.
       message i000 with 'Smart form module name failure'.
       exit.
    endif.
    CALL FUNCTION '/1BCDWB/SF00000199'
    call function v_fm_name
       exporting
       ARCHIVE_INDEX              =
       ARCHIVE_INDEX_TAB          =
       ARCHIVE_PARAMETERS         =
       control_parameters         = g_cont_par
       mail_appl_obj              = g_mail_app_obj
       mail_recipient             = g_mail_rec_obj
       mail_sender                 = g_mail_sen_obj
      OUTPUT_OPTIONS             = lx_OUTPUT_OPTIONS
       USER_SETTINGS              = 'X'
         t_vbap                     = it_items
    IMPORTING
       DOCUMENT_OUTPUT_INFO       =
        job_output_info            = job_output_info
       JOB_OUTPUT_OPTIONS         =
    EXCEPTIONS
       FORMATTING_ERROR           = 1
       INTERNAL_ERROR             = 2
       SEND_ERROR                 = 3
       USER_CANCELED              = 4
       OTHERS                     = 5
      perform send_pdf_mail.
    endform.                    " call_smartform
    *&      Form  send_pdf_mail
          text
    -->  p1        text
    <--  p2        text
    form send_pdf_mail .
      data ld_binfile type xstring.
              pdf_table type  rcl_bag_tline,
      data: ld_originator like soos1-recextnam.
    convert form
      loop at job_output_info-otfdata into hotfdata.
        append hotfdata.
      endloop.
      call function 'CONVERT_OTF'
           exporting
                format                = format_pdf
                max_linewidth         = 132
           importing
                bin_filesize          = doc_size
                bin_file              = ld_binfile
           tables
                otf                   = output_data-otfdata
                lines                 = htline
           exceptions
                err_max_linewidth     = 1
                err_format            = 2
                err_conv_not_possible = 3
                others                = 4.
    *-Itab 134 Zeichen nach 255 Zeichen überführen
      describe table htline    lines  hltlines.
      describe field htline    length fle1 in character mode.
      describe field x_objcont length fle2 in character mode.
      loop at htline.
        htabix = sy-tabix.
        move htline to hfeld+off1.
        if htabix = hltlines.
          fle1 = strlen( htline ).
        endif.
        off1 = off1 + fle1.
        if off1 ge fle2.
          clear x_objcont.
          x_objcont = hfeld(fle2).
          append x_objcont.
          shift hfeld by fle2 places.
          off1 = off1 - fle2.
        endif.
        if htabix = hltlines.
          if off1 gt 0.
            clear x_objcont.
            x_objcont = hfeld(off1).
            append x_objcont.
          endif.
        endif.
      endloop.
      x_object_hd_change-objnam    = 'EMAIL'.
      x_object_hd_change-objdes    = 'Smart Form'.
      x_object_hd_change-objla     = sy-langu.
      x_object_hd_change-objsns    = 'O'.
      x_object_hd_change-objlen    = doc_size.
      x_object_hd_change-file_ext  = 'TXT'.
      ld_packing_list-transf_bin = 'X'.
      ld_packing_list-head_start = 1.
      ld_packing_list-head_num = 0.
      ld_packing_list-body_start = 1.
      describe table x_objcont lines    ld_packing_list-body_num.
      ld_packing_list-objtp = 'EXT'.
      ld_packing_list-objdes    = 'Smart Form'.
      ld_packing_list-objla     = sy-langu.
      ld_packing_list-objlen    = doc_size.
      ld_packing_list-file_ext  = 'PDF'.
      append ld_packing_list.
      x_receivers-recextnam    = g_mail.
      x_receivers-recesc       = 'E'.
      x_receivers-sndart       = 'INT'.
      append x_receivers.
      ld_originator = '[email protected]'.
    ld_originator = FSABE-USRNAM.
      call function 'SO_OBJECT_SEND'
           exporting
                object_hd_change           = x_object_hd_change
                object_type                = 'RAW'
                originator_type            = 'B'  "Einfügen
                originator                 =   ld_originator  "Einfügen
           tables
               objcont                    = ld_text
                receivers                  = x_receivers
                packing_list               = ld_packing_list
                att_cont                   = x_objcont
                att_head                   = x_objhead
           exceptions
                active_user_not_exist      = 1
                communication_failure      = 2
                component_not_available    = 3
                folder_not_exist           = 4
                folder_no_authorization    = 5
                forwarder_not_exist        = 6
                note_not_exist             = 7
                object_not_exist           = 8
                object_not_sent            = 9
                object_no_authorization    = 10
                object_type_not_exist      = 11
                operation_no_authorization = 12
                owner_not_exist            = 13
                parameter_error            = 14
                substitute_not_active      = 15
                substitute_not_defined     = 16
                system_failure             = 17
                too_much_receivers         = 18
                user_not_exist             = 19
                x_error                    = 20
                others                     = 21.
    endform.                    " send_pdf_mail
    *& Form mail_sender_object
    text
    <--P_G_MAIL_SEN_OBJ text
    form mail_sender_object changing p_mail_sen_obj.
      call function 'CREATE_SENDER_OBJECT_PPF'
           exporting
                ip_sender      = sy-uname
           importing
                ep_sender_id   = p_mail_sen_obj
           exceptions
                invalid_sender = 1
                others         = 2.
      if sy-subrc <> 0.
        message id sy-msgid type sy-msgty number sy-msgno
        with sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
      endif.
    endform. " mail_sender_object
    *& Form mail_appl_object
    text
    <--P_G_MAIL_APP_OBJ text
    form mail_appl_object changing p_mail_app_obj.
    SELECT * FROM soud WHERE sapnam LIKE sy-uname AND deleted = ' '.
    ENDSELECT.
    IF sy-subrc NE 0.
        call function 'SO_USER_AUTOMATIC_INSERT'
             exporting
                  sapname        = sy-uname
             exceptions
                  no_insert      = 1
                  sap_name_exist = 2
                  x_error        = 3
                  others         = 4.
        if sy-subrc ne 0.
          clear soud.
        else.
          select * from soud where sapnam like sy-uname and deleted = ' '.
          endselect.
        endif.
    ENDIF.
      clear sofmfol_key.
      sofmfol_key-type = 'FOL'.
      sofmfol_key-year = soud-inbyr.
      sofmfol_key-number = soud-inbno.
      bor_key = sofmfol_key.
      if not bor_key is initial.
        swc_create_object folder 'SOFMFOL' bor_key.
        if sy-subrc = 0.
          swc_object_to_persistent folder p_mail_app_obj.
          if sy-subrc ne 0.
            clear p_mail_app_obj.
          endif.
        endif.
      else.
        clear p_mail_app_obj.
      endif.
    endform. " mail_appl_object
    *& Form mail_recipient_object
    text
    <--P_G_MAIL_REC_OBJ text
    form mail_recipient_object changing p_mail_rec_obj.
      call function 'CREATE_RECIPIENT_OBJ_PPF'
      exporting
    IP_COUNTRY =
    IP_FAXNO =
       ip_mailaddr = g_mail
       ip_type_id = g_rectype         " 'U'
      importing
        ep_recipient_id = p_mail_rec_obj
    EP_ADDRESS =
    ET_RECIPIENT =
      exceptions
        invalid_recipient = 1
         others = 2.
      if sy-subrc <> 0.
        message id sy-msgid type sy-msgty number sy-msgno
        with sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
      endif.
    endform. " mail_recipient_object
    I hope this code should definitely work and helps you a lot.
    Do reward me if it helps you.
    Cheers,
    Sampath

  • Texts/fonts error while sending book to Blurb & exporting to PDF

    On my new MacbookPro using Lightroom Creative Cloud just downloaded, I find I can't upload my book to Blurb or export it to PDF (Blurb's recommended workaround).  I both efforts, I get an error message that "an error occurred while adding texts & fonts to the book."  I'm using LR's supplied fonts in the same manner as prior books which successfully uploaded to Blurb (from my old PC).  A workaround using a flattened PS pdf file is beyond me.  Any suggestions?

    I am having exactly the same issues. I get the same error message sending to Blurb or pdf. I tested all my fonts in another book, and that uploaded just fine, so it can't be the fonts on their own. I also tried this in LR5 prior to upgrading to LR6 CC, same problem.
    I have noticed a few of these queries here in the discussions and none of the others have been responded to either. Someone, please help!

  • How to send the form data through mail with pdf format?

    forms 6i
    Hi to all,
    i am developed one master detail form.example is based on the dept number emp details will be displayed.here my requirment is whatever displayed on the form
    the data ,these data send to mail with any format.is it possible? if is possible any one give a proper solution.
    Regards,
    Stevie
    Edited by: 994418 on 6 May, 2013 11:15 PM

    Hello,
    you can create a Report that accepts the search parameters from the Forms mask and generates a PDF. You also have the option to send the report via mail.
    Personally I would generate the report with a tool like as_pdf
    http://technology.amis.nl/2012/04/11/generating-a-pdf-document-with-some-plsql-as_pdf_mini-as_pdf3/
    Then you can send the mail using utl_mail or utl_smtp.
    www.google.com/search?q=site:forums.oracle.com+utl_mail+utl_smtp
    Regards
    Marcus

  • How to send program output as  mail in HTML format

    Hi Friends,
    I have a BDc which runs in background and its been Stored in my system and displayed as HTML format.
    My requirement is now i want that Same HTML file which i am displaying to be sent as a mail in HTML format itself..Kindly help me on this
    Thanks in advance
    kishore

    Hi,
    Below sample program might give you idea on sending HTML attachment.
    TYPES: BEGIN OF t_sal_ord,
               vbeln TYPE vbeln_va,
               posnr TYPE posnr_va,
               auart TYPE auart,
               vkorg TYPE vkorg,
               matnr TYPE matnr,
             END OF t_sal_ord.
      DATA: i_sal_ord TYPE STANDARD TABLE OF t_sal_ord,
            i_header TYPE STANDARD TABLE OF w3head,
            i_fields TYPE STANDARD TABLE OF w3fields,
            i_html TYPE STANDARD TABLE OF w3html,
            wa_header TYPE w3head.
      DATA: i_fcat TYPE lvc_t_fcat,
            wa_fcat TYPE lvc_s_fcat.
      DATA: g_send_request TYPE REF TO cl_bcs,
            g_document TYPE REF TO cl_document_bcs,
            g_recipient TYPE REF TO cl_cam_address_bcs,
            g_cx_bcs TYPE REF TO cx_bcs,
            g_sent_to_all TYPE os_boolean.
      DATA: g_lines TYPE i,
            g_size TYPE so_obj_len.
      PARAMETERS: p_vkorg TYPE vkorg OBLIGATORY,
                  p_mailad TYPE ad_smtpadr OBLIGATORY.
    START-OF-SELECTION.
      SELECT a~vbeln b~posnr a~auart a~vkorg b~matnr
        INTO TABLE i_sal_ord
        UP TO 20 ROWS
        FROM vbak AS a
        INNER JOIN vbap AS b
        ON a~vbeln  = b~vbeln
        WHERE a~vkorg = p_vkorg.
      wa_fcat-coltext = 'SalesOrd#'.
      APPEND wa_fcat TO i_fcat.
      wa_fcat-coltext = 'Item#'.
      APPEND wa_fcat TO i_fcat.
      wa_fcat-coltext = 'OrdType'.
      APPEND wa_fcat TO i_fcat.
      wa_fcat-coltext = 'Sales.Org'.
      APPEND wa_fcat TO i_fcat.
      wa_fcat-coltext = 'Material'.
      APPEND wa_fcat TO i_fcat.
      LOOP AT i_fcat INTO wa_fcat.
        wa_header-text = wa_fcat-coltext.
        CALL FUNCTION 'WWW_ITAB_TO_HTML_HEADERS'
          EXPORTING
            field_nr = sy-tabix
            text     = wa_header-text
            size     = '2'
            fgcolor  = 'BLACK'
            bgcolor  = 'VIOLET'
            font     = 'CALIBRI'
          TABLES
            header   = i_header.
        CALL FUNCTION 'WWW_ITAB_TO_HTML_LAYOUT'
          EXPORTING
            field_nr = sy-tabix
            size     = '2'
            fgcolor  = 'BLACK'
            bgcolor  = 'WHITE'
            font     = 'CALIBRI'
          TABLES
            fields   = i_fields.
      ENDLOOP.
      wa_header-text = 'Sales Order Details'.
      wa_header-size = '2'.
      wa_header-font = 'CALIBRI'.
      CALL FUNCTION 'WWW_ITAB_TO_HTML'
       EXPORTING
    *     TABLE_ATTRIBUTES       = 'BORDER=1'
         table_header           = wa_header
    *     ALL_FIELDS             = 'X'
        TABLES
          html                   = i_html
          fields                 = i_fields
          row_header             = i_header
          itable                 = i_sal_ord.
      TRY .
          g_send_request = cl_bcs=>create_persistent( ).
          g_document = cl_document_bcs=>create_document(
                        i_type  = 'RAW'
    *                i_text  = i_content[]  " Body for Mail
                        i_subject = 'Sales Order Details' ).
          DESCRIBE TABLE i_html LINES g_lines.
          g_size = g_lines * 2 * 255.
          CALL METHOD g_document->add_attachment
            EXPORTING
              i_attachment_type    = 'HTM'
              i_attachment_subject = 'Sales Order Details'
              i_attachment_size    = g_size
              i_att_content_text   = i_html[].
          g_send_request->set_document( g_document ).
    g_recipient = cl_cam_address_bcs=>create_internet_address( p_mailad ).
          g_send_request->add_recipient(
             EXPORTING
               i_recipient = g_recipient
               i_express = 'X' ).
          g_send_request->set_send_immediately( 'X' ).
          g_send_request->send(
              EXPORTING
                i_with_error_screen = 'X'
              RECEIVING
                result = g_sent_to_all ).
          COMMIT WORK.
        CATCH cx_bcs INTO g_cx_bcs.
          WRITE:/ g_cx_bcs->error_type.
      ENDTRY.
    Kind Regards
    Eswar

  • Error while downlaoding smartform into Application server in PDF format

    Hi friends,
    I am downlaoding Smartform to Application server in PDF format.  getting below dump while executing  
    OPEN DATASET p_filename FOR OUTPUT IN TEXT MODE ENCODING DEFAULT.
    TRANSFER i_tline TO p_filename
    CLOSE DATASET p_filename.
    if i add  " IGNORING CONVERSION ERRORS " after ENCODING DEAFULT then i am not getting dump and pdf file is creating but i am not able to see LOGO in SAP Application server ( downlaoded back from application server to my pc and checked it).
    DUMP:
    here i am getting dump saying that : You cannot convert the character set
    Runtime Error          CONVT_CODEPAGE
    Exception              CX_SY_CONVERSION_CODEPAGE
    What happened?
    While a text was being converted from code page '4102' to '4110', one of
    the following occurred:
    - an character was discovered that could not be represented in one of
    the two code pages;
    - the system established that this conversion is not supported.
    2 characters could not be represented (and thus could not converted).
    If 2 = 0, a second or a different error has occurred.
    Please Help.
    Thanks

    Hi
    I think some basis related configuartions to be done
    Try like this and inform me
    A cyclic job runs, which processes the messages seen in the SOST queue.
    Are you sure it's not the frequency of the cyclic job, rather than the
    number of messages in the queue, that you are observing? In messages
    that are queued and before the cyclic job runs, "wait for comm. service"
    is the normal status.
    If you mean that there are always 4 items queued in SOST regardless of
    the cyclic send job, then I have no ideas. I would have thought there
    was no way to do that.
    when the send job runs it just never
    picks them up & sends them, while it picks up many others. The send job
    is somehow blind to these; no error message occurs. In this case, I
    'delete' them from the queue (in SOST) and then 'undelete' (drop down
    menu -> /Go to /Deleted Items) them and then re-queue them. THEN they
    actually get picked up & sent when the next cyclic send job executes.
    Regards
    Pavan

  • ALE Error while sending PO IDOC through EDI

    Hi Experts,
                      I am sending one PO IDOC through EDI but I am getting the following error:-
                      Message no. B1130.
                      "Too many recipients found for message type ORDERS in the ALE model"
                      How can I solve this error ? Please guide me in this regards as this is an
                      important issue with urgency.
    Thanks & Regards
    Jitendra Gujarathi

    Please check this discussion thread
    Re: Too many recipients found for message type in the ALE model

  • Problem: Error while sending Email.(Java Mail API)

    Hi to ALL
    I am trying to build Application to send Email
    Below code is primary code to send Email to other smtp host.
    & also debug information is as shown below.
    If possible, then please send the solution.
    -------------------------------Code :-----------------------------------------
    URLName urlN=new URLName("smtps://"+userNm+":"+passwd+"@"+host);
    Properties props = System.getProperties();
    Session session = Session.getDefaultInstance(props);
    session.setDebug(true);
    Message msg = new MimeMessage(session);
    msg.setFrom(new InternetAddress(from));
    InternetAddress[] address= InternetAddress.parse(to, false);
    msg.setRecipients(MimeMessage.RecipientType.TO, address);
    msg.setSubject("subject");
    msg.setContent("messageSend Hi", "text/plain");
    Transport transport=session.getTransport(urlN);
    transport.connect();
    transport.sendMessage(msg, address);
    ---------- Java Run ----------
    DEBUG: setDebug: JavaMail version 1.3.2
    DEBUG: getProvider() returning javax.mail.Provider[TRANSPORT,smtps,com.sun.mail.smtp.SMTPSSLTransport,Sun Microsystems, Inc]
    DEBUG SMTP: useEhlo true, useAuth false
    DEBUG SMTP: trying to connect to host "hostName", port 465, isSSL true
    220 smtp110.mail.mud.yahoo.com ESMTP
    DEBUG SMTP: connected to host "hostName", port: 465
    EHLO patil
    250-smtp110.mail.mud.yahoo.com
    250-AUTH LOGIN PLAIN XYMCOOKIE
    250-PIPELINING
    250 8BITMIME
    DEBUG SMTP: Found extension "AUTH", arg "LOGIN PLAIN XYMCOOKIE"
    DEBUG SMTP: Found extension "PIPELINING", arg ""
    DEBUG SMTP: Found extension "8BITMIME", arg ""
    DEBUG SMTP: use8bit false
    MAIL FROM:<from email address>
    530 authentication required - for help go to http://help.yahoo.com/help/us/mail/pop/pop-11.html
    com.sun.mail.smtp.SMTPSendFailedException: 530 authentication required - for help go to http://help.yahoo.com/help/us/mail/pop/pop-11.html
    at com.sun.mail.smtp.SMTPTransport.issueSendCommand(SMTPTransport.java:1275)
    at com.sun.mail.smtp.SMTPTransport.mailFrom(SMTPTransport.java:895)
    at com.sun.mail.smtp.SMTPTransport.sendMessage(SMTPTransport.java:524)
    at SendEmail2.<init>(SendEmail2.java:46)
    at SendEmail2.main(SendEmail2.java:23)
    Exception : com.sun.mail.smtp.SMTPSendFailedException: 530 authentication required - for help go to
    http://help.yahoo.com/help/us/mail/pop/pop-11.htmls
    -------------------------------------------------------------------------------------

    It's possible. It's only software, after all.
    But it's not easy. It effectively involves
    screen scraping the HTML pages.
    There used to be a third party JavaMail provider
    that did all the hard work, but it has disappeared.

  • Excel problem while sending report output as mail!!

    Hi,
    I am sending an excel file as attachment in the mail id provided on the selection screen but once we open the attachment the first column value is not displayed in excel , but if we click on the excel cell twice , it does display the content otherwise it's seen as blank ..what may be the reason?
    I am using FM SO_DOCUMENT_SEND_API1 for sending mail...
    Points for sure .....
    Regards
    Gunjan

    Hello,
    DO like this:
      CONSTANTS: CON_CRET TYPE X VALUE '0D',  "OK for non Unicode
                 CON_TAB TYPE X VALUE '09'.   "OK for non Unicode
    *If you have Unicode check active in program attributes thnen you will
    *need to declare constants as follows
    *class cl_abap_char_utilities definition load.
    *constants:
    *    con_tab  type c value cl_abap_char_utilities=>HORIZONTAL_TAB,
    *    con_cret type c value cl_abap_char_utilities=>CR_LF.
      CONCATENATE 'EBELN' 'EBELP' 'AEDAT' 'MATNR'
             INTO IT_ATTACH SEPARATED BY CON_TAB.
      CONCATENATE CON_CRET IT_ATTACH  INTO IT_ATTACH.
      APPEND  IT_ATTACH.
      LOOP AT IT_EKPO INTO WA_CHAREKPO.
        CONCATENATE WA_CHAREKPO-EBELN WA_CHAREKPO-EBELP
                    WA_CHAREKPO-AEDAT WA_CHAREKPO-MATNR
               INTO IT_ATTACH SEPARATED BY CON_TAB.  " Check here
        CONCATENATE CON_CRET IT_ATTACH  INTO IT_ATTACH.  " Check here
        APPEND  IT_ATTACH.
      ENDLOOP.
    VAsanth

  • Urgent:-REP-50152: Error while sending mail

    hi
    i am using reports10g. i have called a report from a form and destype=mail.
    i have already mention the smtp server name in conf. file but still receiving this error
    REP-50152: Error while sending mail - Sending failed; nested exception is: javax.mail.SendFailedException: Invalid Addresses; nested exception is: javax.mail.SendFailedException: 550 5.7.1 Unable to relay for [email protected]
    thanks

    Your smtp server forbids relaying, which is very common. Often a smtp server is configured to send only mails within the same domain without authentication. Otherwise, you need a username and password for the smtp server. I'm not sure if you can configure Reports to send mail through an authenticated server.

  • Error while sending mail from SAP

    Hello All,
    Recently we are facing an error while sending mail from SAP. When we try to compose a message ,it is moving to a dump error RAISE_EXCEPTION.
    The details from ST22,
    Short text
        Exception condition "FOLDER_NOT_EXIST" raised.
    Error analysis
        A RAISE statement in the program "SA
        condition "FOLDER_NOT_EXIST".
        Since the exception was not intercep
        program, processing was terminated.
    Kindly suggest..
    Thank You,
    Regards,
    Hasan

    Hello Priyanka,
    Actually, I performed the following two steps in order to solve the issue:
    - In transaction SICF, the node for SAPConnect must be active. In our system, this node was in inactive state. Hence I activated it.
    - Then In transaction SCOT-> Settings menu--> default domain should be 'xyz.com' if the email addresses in your company are maintained with a suffix  xyz.com.
    But for me the problem didnt get solved here..
    The problem that i am facing now is that if in my user profile, I have the email address maintained, then i get an error saying 'Sender address rejected'. However, if i goto transaction SU01 and clear the email id, the mail is successfully sent to outer world.
    You can try the above mentioned two steps using SICF and SCOT. If the problem does not get solved then try clearing the mail id in ur user profile.
    Hope this helps. If you find an answer to the problem of the mail id getting cleared, then please let me know..
    Regards,
    Himanshu

  • Terminated with error: REP-50152:Error while sending mail

    Hi
    Gets this error while sending report mails to external email id's
    Terminated with error: REP-50152: Error while sending mail - Sending failed; nested exception is: javax.mail.SendFailedException: Invalid Addresses; nested exception is: javax.mail.SendFailedException: 550 5.7.1 Unable to relay for [email protected]
    Any setting to be done in report config file?
    thanks
    MG

    It should be like this
    <pluginParam name="mailServer">%MAILSERVER_NAME%</pluginParam>
    Specify the name of your mail server in the place of %MAILSERVER_NAME% above
    Also make sure that this is not commented out.
    Thanks,

  • Error while sending sales order form by fax

    hi,
    Sending Sales order by fax is not working. While adding output type for Sales order choosing device as 'FAX' is throwing an error saying that 'Error while sending fax with SO_OBJECT_SEND, return code 9'.  Anything needs to be configured or we have to code anything in SAPScript program. Please advise.

    Hi Harry,
    You don't need to write any particular code for sending FAX in SAPscript. But you may need to check some configurations regarding it.
    We configure SCOT to send Fax and mails to outside SAP. Check SAP Note 455140 for the configuration of SCOT tcode.
    Please refer this link [Sending FAX |Sending FAX from SAP;
    It might be helpful.
    Thanks,
    Daya.

Maybe you are looking for

  • DB Lookup Not Initialising PLz Help!

    Dear all, I Tried to do DB Lookup as told in this blog by siva /people/siva.maranani/blog/2005/08/23/lookup146s-in-xi-made-simpler I used the below code. I am not Getting any error, the mapping is successfully ACTIVATED. But in the Receiver field i a

  • Struts portlet data binding

    Struts project using syntax like <c:out value="${bindings.RaeCustomersView1.labels['Role']}"/> works fine unless deployed as a struts portlet. As a portlet all the bindings are null. This is a major pain !!! Has anyone any ideas.

  • Order confirmation through EDI

    Hi, I need to confirm a sale order by triggering an output type when a sale order is created by an inbound order. The output type i created triggers if i create a sale order manually but its not working when a sale order is automatically created from

  • HT4436 Confused about the purpose of ICloud

    I think i misunderstood the use of ICloud. I thought it provided additional storage so that if the storage space in my phone filled up I could use the storage I purchased in ICloud. Is this incorrect? Also, my phone has a 4GB SIM card installed, why

  • Keep getting error message Adobe reader plugin for safari

    I keep getting an error message saying that Adobe REader has detected Missing Components that require repair. etc. Ask to select components I would like to repair but the message freezes solid and I can't even force quit it. Anyone else seen this?