Problem in sending online interactive form in email as PDF attachment

Hi,
I am trying to send online intercative forms as PDF attachment once user fills it and click on send button. But this mail i am trying to send from SAP workflow. For this am using one function module which is accepting the pdfsource context attribute of binary type as Xstring. Once i run the webdynpro application i am getting mail in out look but when i open the attachment i am getting error file is damaged.
Can you pls help me in solving this, Or any other way for doing the same.
Here is the code i am using for triggering the RFC from WD
Zsend_Mail_Attachment_Sev_Input mail = new Zsend_Mail_Attachment_Sev_Input();     
          //to capture the outplacement level entered in the form
          mail.setI_Out_Place_Level(wdContext.currentVn_severancedetailsElement().getVa_outplacement_level().getBytes());
     mail.setI_Bin_Data(wdContext.currentContextElement().getPdfSource());
     wdContext.nodeZsend_Mail_Attachment_Sev_Input().bind(mail);
     try
          wdContext.currentZsend_Mail_Attachment_Sev_InputElement().modelObject().execute();
          wdComponentAPI.getMessageManager().reportSuccess("Notification Sent Successfully.");
     catch (WDDynamicRFCExecuteException e)
          // TODO Auto-generated catch block
          wdComponentAPI.getMessageManager().reportSuccess(" This is inside the mail exception!!"+e);
          e.printStackTrace();
Here is the function module code
FUNCTION ZSEND_MAIL_ATTACHMENT_SEV.
""Local Interface:
*"  IMPORTING
*"     VALUE(I_OUT_PLACE_LEVEL) TYPE  XSTRING OPTIONAL
*"     VALUE(I_BIN_DATA) TYPE  XSTRING OPTIONAL
*"  TABLES
*"      T_V_BIN_DATA STRUCTURE  SOLISTI1
*"      IT_MESSAGE STRUCTURE  SOLISTI1
Data Declaration
  DATA: gd_cnt TYPE i,
        gd_sent_all(1) TYPE c,
        gd_error TYPE sy-subrc,
        tab_lines LIKE sy-tabix,
        v_subject(255) VALUE 'HI'.
Structure Declaration
  DATA : BEGIN OF it_file OCCURS 0,
          row(255),
         END OF it_file.
  DATA : BEGIN OF i_split OCCURS 0,
  row(50),
  END OF i_split.
DESCRIBE TABLE it_message LINES tab_lines.
READ TABLE it_message INDEX tab_lines.
Internal Table Declaration
  data : it_receivers like table of SOMLRECI1 with header line."occurs 0.
  DATA : objbin LIKE SOLIX OCCURS 0 WITH HEADER LINE.
  DATA : it_packing_list LIKE sopcklsti1 OCCURS 0 WITH HEADER LINE.
  data : wa_receiver like table of SOMLRECI1 with header line.
  data : it_receiver like table of SOMLRECI1 with header line.
  DATA :   gd_doc_data LIKE sodocchgi1 OCCURS 0 WITH HEADER LINE.
  REFRESH : objbin, it_packing_list, it_receivers, wa_receiver.
  CLEAR   : objbin, it_packing_list, wa_receiver, it_receivers.
gd_doc_data-doc_size = ( tab_lines - 1 ) * 255 + STRLEN( it_message ).
gd_doc_data-obj_langu = sy-langu.
gd_doc_data-obj_name = 'SENDFILE'.
gd_doc_data-obj_descr = v_subject.
gd_doc_data-sensitivty = 'O'.
APPEND GD_DOC_DATA.
Appending The Internal Table it_packing_list
  it_packing_list-head_start = 1.
  it_packing_list-head_num = 0.
  it_packing_list-body_start = 1.
  it_packing_list-doc_type = 'RAW'.
  it_packing_list-body_num = tab_lines.
  APPEND it_packing_list.
  move i_bin_data to t_v_bin_data.
********Add By Anuj
  APPEND t_v_bin_data.
********End Add By Anuj
  LOOP AT t_v_bin_data.
    MOVE t_v_bin_data TO objbin-line.
    APPEND objbin.
  ENDLOOP.
  CLEAR it_packing_list.
  DESCRIBE TABLE objbin LINES tab_lines.
  it_packing_list-transf_bin = 'X'.
  it_packing_list-head_start = 1.
  it_packing_list-head_num = 1.
  it_packing_list-body_start = 1.
  it_packing_list-doc_type = 'PDF'.
  it_packing_list-body_num = tab_lines.
  it_packing_list-doc_size = tab_lines * 255.
  APPEND it_packing_list.
  wa_receiver-receiver = '[email protected]'.
  wa_receiver-rec_type = 'U'.
  wa_receiver-com_type = 'INT'.
  APPEND wa_receiver.
  move wa_receiver[] to it_receiver[].
  append it_receiver.
*Appending The Internal Table it_receivers
wa_receiver-receiver = '[email protected]'.
wa_receiver-rec_type = 'U'.
wa_receiver-com_type = 'INT'.
APPEND wa_receiver.
move wa_receiver[] to it_receiver[].
append it_receiver.
wa_receiver-receiver = '[email protected]'.
wa_receiver-rec_type = 'U'.
wa_receiver-com_type = 'INT'.
APPEND wa_receiver.
move wa_receiver[] to it_receiver[].
append it_receiver.
wa_receiver-receiver = '[email protected]'.
wa_receiver-rec_type = 'U'.
wa_receiver-com_type = 'INT'.
APPEND wa_receiver.
move wa_receiver[] to it_receiver[].
append it_receiver.
wa_receiver-receiver = '[email protected]'.
wa_receiver-rec_type = 'U'.
wa_receiver-com_type = 'INT'.
APPEND wa_receiver.
wa_receiver-receiver = '[email protected]'.
wa_receiver-rec_type = 'U'.
wa_receiver-com_type = 'INT'.
APPEND wa_receiver.
move wa_receiver to it_receiver.
append it_receiver.
  Move wa_receiver[] to it_receivers[].
Clear it_receivers.
  if i_OUT_PLACE_LEVEL NE 0.
loop at it_receivers into wa_receiver.
   loop at it_receivers into wa_receiver.
*Function Module To Post The Message To Externa Mail
    CALL FUNCTION 'SO_NEW_DOCUMENT_ATT_SEND_API1'
      EXPORTING
        document_data              = gd_doc_data
        put_in_outbox              = 'X'
        commit_work                = 'X'
      TABLES
        packing_list               = it_packing_list
        contents_hex               = objbin
        receivers                  = it_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.
    clear wa_receiver.
   endloop.
  elseif i_OUT_PLACE_LEVEL eq 0.
    CALL FUNCTION 'SO_NEW_DOCUMENT_ATT_SEND_API1'
      EXPORTING
        document_data              = gd_doc_data
        put_in_outbox              = 'X'
        commit_work                = 'X'
      TABLES
        packing_list               = it_packing_list
        contents_hex               = objbin
        receivers                  = it_receiver
      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.
    clear wa_receiver.
  endif.
ENDFUNCTION.
Regards
Ravindra

Hi,
I am trying to send online intercative forms as PDF attachment once user fills it and click on send button. But this mail i am trying to send from SAP workflow. For this am using one function module which is accepting the pdfsource context attribute of binary type as Xstring. Once i run the webdynpro application i am getting mail in out look but when i open the attachment i am getting error file is damaged.
Can you pls help me in solving this, Or any other way for doing the same.
Here is the code i am using for triggering the RFC from WD
Zsend_Mail_Attachment_Sev_Input mail = new Zsend_Mail_Attachment_Sev_Input();     
          //to capture the outplacement level entered in the form
          mail.setI_Out_Place_Level(wdContext.currentVn_severancedetailsElement().getVa_outplacement_level().getBytes());
     mail.setI_Bin_Data(wdContext.currentContextElement().getPdfSource());
     wdContext.nodeZsend_Mail_Attachment_Sev_Input().bind(mail);
     try
          wdContext.currentZsend_Mail_Attachment_Sev_InputElement().modelObject().execute();
          wdComponentAPI.getMessageManager().reportSuccess("Notification Sent Successfully.");
     catch (WDDynamicRFCExecuteException e)
          // TODO Auto-generated catch block
          wdComponentAPI.getMessageManager().reportSuccess(" This is inside the mail exception!!"+e);
          e.printStackTrace();
Here is the function module code
FUNCTION ZSEND_MAIL_ATTACHMENT_SEV.
""Local Interface:
*"  IMPORTING
*"     VALUE(I_OUT_PLACE_LEVEL) TYPE  XSTRING OPTIONAL
*"     VALUE(I_BIN_DATA) TYPE  XSTRING OPTIONAL
*"  TABLES
*"      T_V_BIN_DATA STRUCTURE  SOLISTI1
*"      IT_MESSAGE STRUCTURE  SOLISTI1
Data Declaration
  DATA: gd_cnt TYPE i,
        gd_sent_all(1) TYPE c,
        gd_error TYPE sy-subrc,
        tab_lines LIKE sy-tabix,
        v_subject(255) VALUE 'HI'.
Structure Declaration
  DATA : BEGIN OF it_file OCCURS 0,
          row(255),
         END OF it_file.
  DATA : BEGIN OF i_split OCCURS 0,
  row(50),
  END OF i_split.
DESCRIBE TABLE it_message LINES tab_lines.
READ TABLE it_message INDEX tab_lines.
Internal Table Declaration
  data : it_receivers like table of SOMLRECI1 with header line."occurs 0.
  DATA : objbin LIKE SOLIX OCCURS 0 WITH HEADER LINE.
  DATA : it_packing_list LIKE sopcklsti1 OCCURS 0 WITH HEADER LINE.
  data : wa_receiver like table of SOMLRECI1 with header line.
  data : it_receiver like table of SOMLRECI1 with header line.
  DATA :   gd_doc_data LIKE sodocchgi1 OCCURS 0 WITH HEADER LINE.
  REFRESH : objbin, it_packing_list, it_receivers, wa_receiver.
  CLEAR   : objbin, it_packing_list, wa_receiver, it_receivers.
gd_doc_data-doc_size = ( tab_lines - 1 ) * 255 + STRLEN( it_message ).
gd_doc_data-obj_langu = sy-langu.
gd_doc_data-obj_name = 'SENDFILE'.
gd_doc_data-obj_descr = v_subject.
gd_doc_data-sensitivty = 'O'.
APPEND GD_DOC_DATA.
Appending The Internal Table it_packing_list
  it_packing_list-head_start = 1.
  it_packing_list-head_num = 0.
  it_packing_list-body_start = 1.
  it_packing_list-doc_type = 'RAW'.
  it_packing_list-body_num = tab_lines.
  APPEND it_packing_list.
  move i_bin_data to t_v_bin_data.
********Add By Anuj
  APPEND t_v_bin_data.
********End Add By Anuj
  LOOP AT t_v_bin_data.
    MOVE t_v_bin_data TO objbin-line.
    APPEND objbin.
  ENDLOOP.
  CLEAR it_packing_list.
  DESCRIBE TABLE objbin LINES tab_lines.
  it_packing_list-transf_bin = 'X'.
  it_packing_list-head_start = 1.
  it_packing_list-head_num = 1.
  it_packing_list-body_start = 1.
  it_packing_list-doc_type = 'PDF'.
  it_packing_list-body_num = tab_lines.
  it_packing_list-doc_size = tab_lines * 255.
  APPEND it_packing_list.
  wa_receiver-receiver = '[email protected]'.
  wa_receiver-rec_type = 'U'.
  wa_receiver-com_type = 'INT'.
  APPEND wa_receiver.
  move wa_receiver[] to it_receiver[].
  append it_receiver.
*Appending The Internal Table it_receivers
wa_receiver-receiver = '[email protected]'.
wa_receiver-rec_type = 'U'.
wa_receiver-com_type = 'INT'.
APPEND wa_receiver.
move wa_receiver[] to it_receiver[].
append it_receiver.
wa_receiver-receiver = '[email protected]'.
wa_receiver-rec_type = 'U'.
wa_receiver-com_type = 'INT'.
APPEND wa_receiver.
move wa_receiver[] to it_receiver[].
append it_receiver.
wa_receiver-receiver = '[email protected]'.
wa_receiver-rec_type = 'U'.
wa_receiver-com_type = 'INT'.
APPEND wa_receiver.
move wa_receiver[] to it_receiver[].
append it_receiver.
wa_receiver-receiver = '[email protected]'.
wa_receiver-rec_type = 'U'.
wa_receiver-com_type = 'INT'.
APPEND wa_receiver.
wa_receiver-receiver = '[email protected]'.
wa_receiver-rec_type = 'U'.
wa_receiver-com_type = 'INT'.
APPEND wa_receiver.
move wa_receiver to it_receiver.
append it_receiver.
  Move wa_receiver[] to it_receivers[].
Clear it_receivers.
  if i_OUT_PLACE_LEVEL NE 0.
loop at it_receivers into wa_receiver.
   loop at it_receivers into wa_receiver.
*Function Module To Post The Message To Externa Mail
    CALL FUNCTION 'SO_NEW_DOCUMENT_ATT_SEND_API1'
      EXPORTING
        document_data              = gd_doc_data
        put_in_outbox              = 'X'
        commit_work                = 'X'
      TABLES
        packing_list               = it_packing_list
        contents_hex               = objbin
        receivers                  = it_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.
    clear wa_receiver.
   endloop.
  elseif i_OUT_PLACE_LEVEL eq 0.
    CALL FUNCTION 'SO_NEW_DOCUMENT_ATT_SEND_API1'
      EXPORTING
        document_data              = gd_doc_data
        put_in_outbox              = 'X'
        commit_work                = 'X'
      TABLES
        packing_list               = it_packing_list
        contents_hex               = objbin
        receivers                  = it_receiver
      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.
    clear wa_receiver.
  endif.
ENDFUNCTION.
Regards
Ravindra

Similar Messages

  • Sending Offline Interactive Form Via Email

    Hi,
    I am running NW 2004s SPS09 and trying to configure GP to use offline adobe interactive forms.  As of now, I am able to create a callable object from an Adobe template, prefill fields from other background execution/web service callable objects, and launch a process when the form is submitted via email.  I am having trouble routing the form to the next processor through email.  I created an interactive form callable object, checked 'Enable Use In Guided Procedures' and selected 'Create Offline Interactive Form And Send By E-Mail'.  My first thought was that there was some delay in the sending of emails, but callable objects in other processes that send plain text notifications work fine.  The process does not enter an erroneous state and waits at that action.  Looking at the GP monitor under NW administration, the correct processor is set for the action, but the task does not appear in the user's UWL or GP runtime center (I figure this is because the task is meant to be completed offline).  Any suggestions would be much appreciated.  Thanks!
    ~Greg

    Turned out the 'switchToNewMailCommunication' property for the GP service was set to true when it should have been false.
    ~Greg

  • Sending the adobe interactive form as non-interactive form through email

    Hi ,
              I am trying to send the interactive adobe form as non-interactive form  through email.The interactive form size is very large because of the interactivity.
    Can anybody suggest how to do this.
    Regards,
    Debasis

    Dear Antony,
    Thanks for the reply.
           I got you but can you pls guide me how to go about it.
    I need to send the email while submiting the form.So when and how i will be mapping each data node /attibutes of the main form with the intermediate form.My interactive form is of 30 pages and it may grow upto 40 pages.My response is with the to the main form where i am showing the success message.
    Regards,
    Debasis Nayak

  • Navigation problem while using Adobe interactive form in web dynpro

    Hi frds,
    I have a 2 views..
    1st view contains an ADobe from and a button to navigate to the  2nd view..
    No problem with the first view.. displays everything...
    The Problem is when i click the button to nsvigate to the 2nd view, its not loading...
    Wait symbol is coming...
    Please Help me friends...

    hi ,
    pls use  the ZCi layout for the adobe interactive form .
    Need to Insert the web dynpro script to the form.
    Note: Make sure to upgrade the Adobe Interactive for ZCI type using SFP_ZCI_UPDATE transaction
    Subsequently, check whether the update of the ZCI was successfully completed. To do this, open your form in the Adobe LiveCycleDesigner and check the version information of the ZCI script. The ZCI script is available on the "Hierarchy" tab page under the "ContainerFoundation_JS" name. The version must be800.20080513120641.469612.469346.
    You can also have a look at this e-learning.
    https://www.sdn.sap.com/irj/scn/go/portal/prtroot/docs/library/uuid/20029530-54ef-2910-1b93-c41608ae0c90
    Refernce thread : adobe online interactive form
    regards ,
    amit

  • Dynamic  table in Online Interactive form

    Hi,
    Scenario:
       I am doing an Online Interactive form scenario in WebDynpro for Java. In the form, i will be having a dynamic table(the number of rows will grow and shrink, with the help of ADD and DELETE ROW buttons). Initially, that table will have only one empty row.
    Imp: The fields in the table are bound to the data source node, whose cardinality is 1..n. (I want the data enetered in the table in Interactive form, to be updated in the WebDynpro context also).
    Problem: After deploying the application,
      I fill the first row, click ADD button. A new empty row is created. No problem here.
      I fill the second row. Then, when I click the ADD button, a new row is created, but with the values in second row.  
    Even if i create 10 new rows, the values are repeating in all those rows. If I change the value in a row, it reflects in all rows(except first row).
    Note: If the table fields are not bound to any data source node, then I dont have the above mentioned problem.
    Thanks,
    Prabhakar.

    Hi,Prabhakar
    In the note 1090464 It says that this is a limitation of the Subform Instance Controls(the same in table ui element).
    It looks like currently the only workaround is to build in advance empty nodes but then it limits the number of rows in your table.
    Regards,
    Michael

  • Online Interactive form - ZCI Layout

    Hi All,
    I'm creating an online form on release 701 level 2 and am having problems with ZCI layout.
    I have created forms before with this layout to use feautures such as search help.
    Can anyone tell me what the latest recommended layout format is, ZCI or Standard?
    With Standard layout my form interface binding works but search helps lock up the form after use but with ZCI the search help works but only the field with the help is bound to my interface successfully on the submit method.
    I have reverted back to Adobe Reader 8.2 but this is still extremely flaky.
    Thanks,
    Gregor

    Hi Chintan,
    Yes the script has been inserted. The more I look at this the more I am thinking that online interactive forms are not fit for purpose.
    I guess there are some use cases but a web dynpro page would serve this purpose better with better integration into SAP etc.
    I am using version 8.2 of Adobe Designer but keeping versions of Designer and Reader and different versions of the ZCI script in line is not feasible. Adobe Reader can auto update so what if a user has updated from 8.2 to 8.3 and suddenly all the forms stop working?
    I understand that integrating between the browser and the embedded PDF is no mean feat but I'm going to stick to using Adobe Forms for offline use or print outputs.
    tl;dr HERE BE DRAGONS

  • Problem in sending the smartform as an email in a country specific language

    Hi,
    I am facing a problem in sending a smartform as a email for all other Languages except english and another problem is its sending the email but the output status is still in RED in the messages tab.
    the program is working fine for english.
    Please do find the below code using which i would be sending the smartform as an email for a PO along with the line item attachments.
    Please help.
    Arun.
    Determine smartform function module for purchase document
      CALL FUNCTION 'SSF_FUNCTION_MODULE_NAME'
        EXPORTING
          formname           = lf_formname
        IMPORTING
          fm_name            = lf_fm_name
        EXCEPTIONS
          no_form            = 1
          no_function_module = 2
          OTHERS             = 3.
      IF sy-subrc <> 0.
    error handling
        ent_retco = sy-subrc.
        IF sy-subrc = 1.
          MESSAGE e001(/smb40/ssfcomposer).
        ENDIF.
        IF sy-subrc = 2.
          MESSAGE e002(/smb40/ssfcomposer) WITH tnapr-sform.
        ENDIF.
        PERFORM protocol_update_i.
      ENDIF.
    *Start of changes <Arun K Singarapu> C082493 <04/28/2008>
    *for print preview
      IF sy-ucomm = 'PREVOUTPUT' OR sy-ucomm = 'VIEW'.
        CALL FUNCTION lf_fm_name                  "'/1BCDWB/SF00000197'
          EXPORTING
            control_parameters = wa_ctrlop
            output_options     = wa_compop
            user_settings      = 'X'
            is_ekko            = l_doc-xekko
            is_pekko           = l_doc-xpekko
            is_nast            = l_nast
            iv_from_mem        = l_from_memory
            iv_druvo           = iv_druvo
            iv_xfz             = iv_xfz
          IMPORTING
            job_output_info    = wa_return
          TABLES
            it_ekpo            = l_doc-xekpo[]
            it_ekpa            = l_doc-xekpa[]
            it_pekpo           = l_doc-xpekpo[]
            it_eket            = l_doc-xeket[]
            it_tkomv           = l_doc-xtkomv[]
            it_ekkn            = l_doc-xekkn[]
            it_ekek            = l_doc-xekek[]
            it_komk            = l_xkomk[]
          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.
        EXIT.
      ELSE.
        wa_ctrlop-LANGU = nast-spras.
        wa_ctrlop-getotf = 'X'.
        wa_ctrlop-no_dialog = 'X'.
        wa_compop-tdnoprev = 'X'.
        CALL FUNCTION lf_fm_name                  "'/1BCDWB/SF00000197'
          EXPORTING
            control_parameters = wa_ctrlop
            output_options     = wa_compop
            user_settings      = 'X'
            is_ekko            = l_doc-xekko
            is_pekko           = l_doc-xpekko
            is_nast            = l_nast
            iv_from_mem        = l_from_memory
            iv_druvo           = iv_druvo
            iv_xfz             = iv_xfz
          IMPORTING
            job_output_info    = wa_return
          TABLES
            it_ekpo            = l_doc-xekpo[]
            it_ekpa            = l_doc-xekpa[]
            it_pekpo           = l_doc-xpekpo[]
            it_eket            = l_doc-xeket[]
            it_tkomv           = l_doc-xtkomv[]
            it_ekkn            = l_doc-xekkn[]
            it_ekek            = l_doc-xekek[]
            it_komk            = l_xkomk[]
          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.
    *Convert the data from OTF to PDF format
        it_otf[] = wa_return-otfdata[].
        CALL FUNCTION 'CONVERT_OTF'
          EXPORTING
            format                = 'PDF'
            max_linewidth         = 132
          IMPORTING
            bin_filesize          = l_len_in
            bin_file              = lp_xcontent
          TABLES
            otf                   = it_otf
            lines                 = it_tline
          EXCEPTIONS
            err_max_linewidth     = 1
            err_format            = 2
            err_conv_not_possible = 3
            OTHERS                = 4.
        IF sy-subrc <> 0.
          MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
                  WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
        ENDIF.
        TRY.
      ---------- create persistent send request ----------------------
            send_request = cl_bcs=>create_persistent( ).
            len = XSTRLEN( lp_xcontent ).
    transform to solix tab
            lt_solix =
              cl_document_bcs=>xstring_to_solix(
                ip_xstring = lp_xcontent ).
    Create Body to the E-mail.
            APPEND Text-005 TO l_text.
    Attachment Name
            l_ponumber = text-004.
            CONCATENATE l_ponumber l_doc-xekko-ebeln INTO l_ponumber.
    Subject for the E-Mail.
            l_subject = text-001.
            CONCATENATE l_subject l_doc-xekko-ebeln INTO l_subject.
    *create document E-Mail.
            CALL METHOD cl_document_bcs=>create_document
              EXPORTING
                i_type    = 'RAW'
                i_subject = l_subject
                i_length  = '13'
                i_text    = l_text
              RECEIVING
                result    = l_email_object.
    *Create PDF Document
            bcs_doc =  cl_document_bcs=>create_document(
                                            i_type     = 'PDF'
                                            i_subject  = l_ponumber
                                            i_length   = len
                                            i_language = nast-spras
                                            i_hex     = lt_solix
    *Type casting
            obj_pdf_file ?= bcs_doc.
    Add PDF document as an attachment
            CALL METHOD l_email_object->add_document_as_attachment
              EXPORTING
                im_document = obj_pdf_file.
    get the attachments of the PO for each line item
            SELECT ebeln
                   ebelp
                   FROM ekpo
                   INTO TABLE it_ekpo
                   WHERE ebeln = l_doc-xekko-ebeln.
    concatenate PO and the Line Item Numebr to get the Object key
            LOOP AT it_ekpo INTO wa_ekpo.
              CONCATENATE wa_ekpo-ebeln wa_ekpo-ebelp INTO wa_temp-objky.
              APPEND wa_temp TO it_temp.
              CLEAR: wa_temp,wa_ekpo.
            ENDLOOP.
    *Get data from table DRAD
            IF it_temp[] IS NOT INITIAL.
              SELECT dokar
                     doknr
                     dokvr
                     doktl
                     objky
                     FROM drad
                     client specified
                     INTO TABLE it_drad
                     FOR ALL ENTRIES IN it_temp
                     WHERE mandt = sy-mandt
                     AND objky = it_temp-objky.
            ENDIF.
            IF NOT it_drad IS INITIAL.
              SELECT * FROM dms_doc2loio
                       INTO TABLE it_dms_doc2loio
                       FOR ALL ENTRIES IN it_drad
                       WHERE dokar = 'SRM'
                         AND doknr = it_drad-doknr
                         AND dokvr = it_drad-dokvr
                         AND doktl = it_drad-doktl.
            ENDIF.
    Get the Physical object class and Object ID of the attachment
            IF NOT it_dms_doc2loio IS INITIAL.
              SELECT * FROM dms_ph_cd1
                       INTO TABLE it_dms_ph_cd1
                       FOR ALL ENTRIES IN it_dms_doc2loio
                       WHERE loio_id = it_dms_doc2loio-lo_objid.
            ENDIF.
    Get the file from the DMS server using the below function module.
            LOOP AT it_dms_ph_cd1 INTO wa_dms_ph_cd1.
              wa_object_id-class = wa_dms_ph_cd1-ph_class.
              wa_object_id-objid = wa_dms_ph_cd1-phio_id.
              CALL FUNCTION 'SDOK_PHIO_LOAD_CONTENT'
                EXPORTING
                  object_id           = wa_object_id
                  client              = sy-mandt
                TABLES
                  file_access_info    = it_file_access_info
                  file_content_binary = it_sdokcntbin
                EXCEPTIONS
                  not_existing        = 1
                  not_authorized      = 2
                  no_content          = 3
                  bad_storage_type    = 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.
              READ TABLE it_file_access_info INTO wa_file_access_info INDEX 1.
              IF wa_file_access_info-mimetype = 'application/msword'.
                l_doc_type = 'DOC'.
                CLEAR: a_xstring,len.
                LOOP AT it_sdokcntbin INTO wa_sdokcntbin.
                  CONCATENATE a_xstring wa_sdokcntbin-line
                         INTO a_xstring IN BYTE MODE.
                ENDLOOP.
                len = XSTRLEN( a_xstring ).
        transform to solix tab - adding additional attachments
                REFRESH lt_solix.
                lt_solix =
                  cl_document_bcs=>xstring_to_solix(
                    ip_xstring = a_xstring ).
                CLEAR l_filename.
            Get the file name
                l_filename = wa_file_access_info-file_name.
                bcs_doc1 =  cl_document_bcs=>create_document(
                                                i_type     = l_doc_type
                                                i_subject  = l_filename
                                                i_length   = len
                                                i_language = sy-langu
                                                i_hex     = lt_solix
    *Type casting
                obj_file ?= bcs_doc1.
    Add Attachment as a document to the email object
                CALL METHOD l_email_object->add_document_as_attachment
                  EXPORTING
                    im_document = obj_file.
    for PDF document
              ELSEIF wa_file_access_info-mimetype = 'application/pdf'.
                l_doc_type = 'PDF'.
                file_size = wa_file_access_info-file_size.
    Convert the 1022 binary data to xstring
                CLEAR a_xstring.
                CALL FUNCTION 'SCMS_BINARY_TO_XSTRING'
                  EXPORTING
                    input_length = file_size
                  IMPORTING
                    buffer       = a_xstring
                  TABLES
                    binary_tab   = it_sdokcntbin
                  EXCEPTIONS
                    failed       = 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.
                DATA: w_output_length TYPE i.
    Convert Xstring to 255 RAW
                CALL FUNCTION 'SCMS_XSTRING_TO_BINARY'
                  EXPORTING
                    buffer        = a_xstring
                  IMPORTING
                    output_length = w_output_length
                  TABLES
                    binary_tab    = lt_content_bin.
                len = w_output_length.
                CLEAR l_filename.
            Get the file name
                l_filename = wa_file_access_info-file_name.
                bcs_doc1 =  cl_document_bcs=>create_document(
                                                i_type     = l_doc_type
                                                i_subject  = l_filename
                                                i_length   = len
                                                i_language = sy-langu
                                                i_hex     = lt_content_bin
           type casting
                obj_file ?= bcs_doc1.
    Add Attachment as a document to the email object
                CALL METHOD l_email_object->add_document_as_attachment
                  EXPORTING
                    im_document = obj_file.
    for Excel Document
              ELSEIF wa_file_access_info-mimetype = 'application/msexcel'.
                l_doc_type = 'XLS'.
                CLEAR: a_xstring,len.
                LOOP AT it_sdokcntbin INTO wa_sdokcntbin.
                  CONCATENATE a_xstring wa_sdokcntbin-line
                         INTO a_xstring IN BYTE MODE.
                ENDLOOP.
                len = XSTRLEN( a_xstring ).
        transform to solix tab - adding additional attachments
                REFRESH lt_solix.
                lt_solix =
                  cl_document_bcs=>xstring_to_solix(
                    ip_xstring = a_xstring ).
                CLEAR l_filename.
            Get the file name
                l_filename = wa_file_access_info-file_name.
                bcs_doc1 =  cl_document_bcs=>create_document(
                                                i_type     = l_doc_type
                                                i_subject  = l_filename
                                                i_length   = len
                                                i_language = sy-langu
                                                i_hex     = lt_solix
    *Type casting
                obj_file ?= bcs_doc1.
    Add Attachment as a document to the email object
                CALL METHOD l_email_object->add_document_as_attachment
                  EXPORTING
                    im_document = obj_file.
    for text doxument
              ELSEIF wa_file_access_info-mimetype = 'plain/text'.
                l_doc_type = 'TXT'.
                file_size = wa_file_access_info-file_size.
            Get the file name
                l_filename = wa_file_access_info-file_name.
                CALL FUNCTION 'SCMS_BINARY_TO_TEXT'
                  EXPORTING
                    input_length = file_size
                  TABLES
                    binary_tab   = it_sdokcntbin
                    text_tab     = file_data
                  EXCEPTIONS
                    failed       = 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.
                CALL METHOD cl_document_bcs=>create_document
                  EXPORTING
                    i_type    = l_doc_type
                    i_subject = l_filename
                    i_text    = file_data
                  RECEIVING
                    result    = bcs_doc1.
                obj_file ?= bcs_doc1.
    Add Attachment as a document to the email object
                CALL METHOD l_email_object->add_document_as_attachment
                  EXPORTING
                    im_document = obj_file.
              ENDIF.
              CLEAR:it_file_access_info,it_sdokcntbin.
              CLEAR:wa_object_id,wa_file_access_info,file_size.
            ENDLOOP.
            CALL METHOD send_request->set_document( l_email_object ).
    *Get the address number for the vendor
            SELECT SINGLE adrnr
                          FROM lfa1
                          INTO l_adrnr
                          WHERE lifnr = l_doc-xekko-lifnr.
            MOVE l_adrnr TO l_addrno.
    Get the Email Address for the vendor using address number
            CALL FUNCTION 'ADDR_GET_REMOTE'
              EXPORTING
                addrnumber        = l_addrno
              TABLES
                adsmtp            = it_adsmtp
              EXCEPTIONS
                parameter_error   = 1
                address_not_exist = 2
                internal_error    = 3
                OTHERS            = 4.
            IF sy-subrc <> 0.
              MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
                      WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
            ENDIF.
            sender = cl_sapuser_bcs=>create( sy-uname ).
            CALL METHOD send_request->set_sender
              EXPORTING
                i_sender = sender.
            READ TABLE it_adsmtp INTO wa_adsmtp WITH KEY flg_nouse = 'X'.
            IF sy-subrc = 0.
              LOOP AT it_adsmtp INTO wa_adsmtp WHERE flg_nouse = 'X'.
                CALL METHOD cl_cam_address_bcs=>create_internet_address
                  EXPORTING
                    i_address_string = wa_adsmtp-smtp_addr
                  RECEIVING
                    result           = recipient.
                CALL METHOD send_request->add_recipient
                  EXPORTING
                    i_recipient = recipient
                    i_express   = 'X'.
              ENDLOOP.
            ELSE.
              READ TABLE it_adsmtp INTO wa_adsmtp WITH KEY flgdefault = 'X'.
              IF sy-subrc = 0.
                CALL METHOD cl_cam_address_bcs=>create_internet_address
                  EXPORTING
                    i_address_string = wa_adsmtp-smtp_addr
                  RECEIVING
                    result           = recipient.
                CALL METHOD send_request->add_recipient
                  EXPORTING
                    i_recipient = recipient
                    i_express   = 'X'.
              ENDIF.
            ENDIF.
            CALL METHOD send_request->send(
             EXPORTING
               i_with_error_screen = 'X'
              RECEIVING
                result              = l_sent_to_all ).
          CATCH cx_bcs INTO bcs_exception.
            WRITE: 'Fehler aufgetreten.'(001).
            WRITE: 'Fehlertyp:'(002), bcs_exception->error_type.
            EXIT.
        ENDTRY.
      ENDIF.

    Hi,
    I am facing a problem in sending a smartform as a email for all other Languages except english and another problem is its sending the email but the output status is still in RED in the messages tab.
    the program is working fine for english.
    Please do find the below code using which i would be sending the smartform as an email for a PO along with the line item attachments.
    Please help.
    Arun.
    Determine smartform function module for purchase document
      CALL FUNCTION 'SSF_FUNCTION_MODULE_NAME'
        EXPORTING
          formname           = lf_formname
        IMPORTING
          fm_name            = lf_fm_name
        EXCEPTIONS
          no_form            = 1
          no_function_module = 2
          OTHERS             = 3.
      IF sy-subrc <> 0.
    error handling
        ent_retco = sy-subrc.
        IF sy-subrc = 1.
          MESSAGE e001(/smb40/ssfcomposer).
        ENDIF.
        IF sy-subrc = 2.
          MESSAGE e002(/smb40/ssfcomposer) WITH tnapr-sform.
        ENDIF.
        PERFORM protocol_update_i.
      ENDIF.
    *Start of changes <Arun K Singarapu> C082493 <04/28/2008>
    *for print preview
      IF sy-ucomm = 'PREVOUTPUT' OR sy-ucomm = 'VIEW'.
        CALL FUNCTION lf_fm_name                  "'/1BCDWB/SF00000197'
          EXPORTING
            control_parameters = wa_ctrlop
            output_options     = wa_compop
            user_settings      = 'X'
            is_ekko            = l_doc-xekko
            is_pekko           = l_doc-xpekko
            is_nast            = l_nast
            iv_from_mem        = l_from_memory
            iv_druvo           = iv_druvo
            iv_xfz             = iv_xfz
          IMPORTING
            job_output_info    = wa_return
          TABLES
            it_ekpo            = l_doc-xekpo[]
            it_ekpa            = l_doc-xekpa[]
            it_pekpo           = l_doc-xpekpo[]
            it_eket            = l_doc-xeket[]
            it_tkomv           = l_doc-xtkomv[]
            it_ekkn            = l_doc-xekkn[]
            it_ekek            = l_doc-xekek[]
            it_komk            = l_xkomk[]
          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.
        EXIT.
      ELSE.
        wa_ctrlop-LANGU = nast-spras.
        wa_ctrlop-getotf = 'X'.
        wa_ctrlop-no_dialog = 'X'.
        wa_compop-tdnoprev = 'X'.
        CALL FUNCTION lf_fm_name                  "'/1BCDWB/SF00000197'
          EXPORTING
            control_parameters = wa_ctrlop
            output_options     = wa_compop
            user_settings      = 'X'
            is_ekko            = l_doc-xekko
            is_pekko           = l_doc-xpekko
            is_nast            = l_nast
            iv_from_mem        = l_from_memory
            iv_druvo           = iv_druvo
            iv_xfz             = iv_xfz
          IMPORTING
            job_output_info    = wa_return
          TABLES
            it_ekpo            = l_doc-xekpo[]
            it_ekpa            = l_doc-xekpa[]
            it_pekpo           = l_doc-xpekpo[]
            it_eket            = l_doc-xeket[]
            it_tkomv           = l_doc-xtkomv[]
            it_ekkn            = l_doc-xekkn[]
            it_ekek            = l_doc-xekek[]
            it_komk            = l_xkomk[]
          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.
    *Convert the data from OTF to PDF format
        it_otf[] = wa_return-otfdata[].
        CALL FUNCTION 'CONVERT_OTF'
          EXPORTING
            format                = 'PDF'
            max_linewidth         = 132
          IMPORTING
            bin_filesize          = l_len_in
            bin_file              = lp_xcontent
          TABLES
            otf                   = it_otf
            lines                 = it_tline
          EXCEPTIONS
            err_max_linewidth     = 1
            err_format            = 2
            err_conv_not_possible = 3
            OTHERS                = 4.
        IF sy-subrc <> 0.
          MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
                  WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
        ENDIF.
        TRY.
      ---------- create persistent send request ----------------------
            send_request = cl_bcs=>create_persistent( ).
            len = XSTRLEN( lp_xcontent ).
    transform to solix tab
            lt_solix =
              cl_document_bcs=>xstring_to_solix(
                ip_xstring = lp_xcontent ).
    Create Body to the E-mail.
            APPEND Text-005 TO l_text.
    Attachment Name
            l_ponumber = text-004.
            CONCATENATE l_ponumber l_doc-xekko-ebeln INTO l_ponumber.
    Subject for the E-Mail.
            l_subject = text-001.
            CONCATENATE l_subject l_doc-xekko-ebeln INTO l_subject.
    *create document E-Mail.
            CALL METHOD cl_document_bcs=>create_document
              EXPORTING
                i_type    = 'RAW'
                i_subject = l_subject
                i_length  = '13'
                i_text    = l_text
              RECEIVING
                result    = l_email_object.
    *Create PDF Document
            bcs_doc =  cl_document_bcs=>create_document(
                                            i_type     = 'PDF'
                                            i_subject  = l_ponumber
                                            i_length   = len
                                            i_language = nast-spras
                                            i_hex     = lt_solix
    *Type casting
            obj_pdf_file ?= bcs_doc.
    Add PDF document as an attachment
            CALL METHOD l_email_object->add_document_as_attachment
              EXPORTING
                im_document = obj_pdf_file.
    get the attachments of the PO for each line item
            SELECT ebeln
                   ebelp
                   FROM ekpo
                   INTO TABLE it_ekpo
                   WHERE ebeln = l_doc-xekko-ebeln.
    concatenate PO and the Line Item Numebr to get the Object key
            LOOP AT it_ekpo INTO wa_ekpo.
              CONCATENATE wa_ekpo-ebeln wa_ekpo-ebelp INTO wa_temp-objky.
              APPEND wa_temp TO it_temp.
              CLEAR: wa_temp,wa_ekpo.
            ENDLOOP.
    *Get data from table DRAD
            IF it_temp[] IS NOT INITIAL.
              SELECT dokar
                     doknr
                     dokvr
                     doktl
                     objky
                     FROM drad
                     client specified
                     INTO TABLE it_drad
                     FOR ALL ENTRIES IN it_temp
                     WHERE mandt = sy-mandt
                     AND objky = it_temp-objky.
            ENDIF.
            IF NOT it_drad IS INITIAL.
              SELECT * FROM dms_doc2loio
                       INTO TABLE it_dms_doc2loio
                       FOR ALL ENTRIES IN it_drad
                       WHERE dokar = 'SRM'
                         AND doknr = it_drad-doknr
                         AND dokvr = it_drad-dokvr
                         AND doktl = it_drad-doktl.
            ENDIF.
    Get the Physical object class and Object ID of the attachment
            IF NOT it_dms_doc2loio IS INITIAL.
              SELECT * FROM dms_ph_cd1
                       INTO TABLE it_dms_ph_cd1
                       FOR ALL ENTRIES IN it_dms_doc2loio
                       WHERE loio_id = it_dms_doc2loio-lo_objid.
            ENDIF.
    Get the file from the DMS server using the below function module.
            LOOP AT it_dms_ph_cd1 INTO wa_dms_ph_cd1.
              wa_object_id-class = wa_dms_ph_cd1-ph_class.
              wa_object_id-objid = wa_dms_ph_cd1-phio_id.
              CALL FUNCTION 'SDOK_PHIO_LOAD_CONTENT'
                EXPORTING
                  object_id           = wa_object_id
                  client              = sy-mandt
                TABLES
                  file_access_info    = it_file_access_info
                  file_content_binary = it_sdokcntbin
                EXCEPTIONS
                  not_existing        = 1
                  not_authorized      = 2
                  no_content          = 3
                  bad_storage_type    = 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.
              READ TABLE it_file_access_info INTO wa_file_access_info INDEX 1.
              IF wa_file_access_info-mimetype = 'application/msword'.
                l_doc_type = 'DOC'.
                CLEAR: a_xstring,len.
                LOOP AT it_sdokcntbin INTO wa_sdokcntbin.
                  CONCATENATE a_xstring wa_sdokcntbin-line
                         INTO a_xstring IN BYTE MODE.
                ENDLOOP.
                len = XSTRLEN( a_xstring ).
        transform to solix tab - adding additional attachments
                REFRESH lt_solix.
                lt_solix =
                  cl_document_bcs=>xstring_to_solix(
                    ip_xstring = a_xstring ).
                CLEAR l_filename.
            Get the file name
                l_filename = wa_file_access_info-file_name.
                bcs_doc1 =  cl_document_bcs=>create_document(
                                                i_type     = l_doc_type
                                                i_subject  = l_filename
                                                i_length   = len
                                                i_language = sy-langu
                                                i_hex     = lt_solix
    *Type casting
                obj_file ?= bcs_doc1.
    Add Attachment as a document to the email object
                CALL METHOD l_email_object->add_document_as_attachment
                  EXPORTING
                    im_document = obj_file.
    for PDF document
              ELSEIF wa_file_access_info-mimetype = 'application/pdf'.
                l_doc_type = 'PDF'.
                file_size = wa_file_access_info-file_size.
    Convert the 1022 binary data to xstring
                CLEAR a_xstring.
                CALL FUNCTION 'SCMS_BINARY_TO_XSTRING'
                  EXPORTING
                    input_length = file_size
                  IMPORTING
                    buffer       = a_xstring
                  TABLES
                    binary_tab   = it_sdokcntbin
                  EXCEPTIONS
                    failed       = 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.
                DATA: w_output_length TYPE i.
    Convert Xstring to 255 RAW
                CALL FUNCTION 'SCMS_XSTRING_TO_BINARY'
                  EXPORTING
                    buffer        = a_xstring
                  IMPORTING
                    output_length = w_output_length
                  TABLES
                    binary_tab    = lt_content_bin.
                len = w_output_length.
                CLEAR l_filename.
            Get the file name
                l_filename = wa_file_access_info-file_name.
                bcs_doc1 =  cl_document_bcs=>create_document(
                                                i_type     = l_doc_type
                                                i_subject  = l_filename
                                                i_length   = len
                                                i_language = sy-langu
                                                i_hex     = lt_content_bin
           type casting
                obj_file ?= bcs_doc1.
    Add Attachment as a document to the email object
                CALL METHOD l_email_object->add_document_as_attachment
                  EXPORTING
                    im_document = obj_file.
    for Excel Document
              ELSEIF wa_file_access_info-mimetype = 'application/msexcel'.
                l_doc_type = 'XLS'.
                CLEAR: a_xstring,len.
                LOOP AT it_sdokcntbin INTO wa_sdokcntbin.
                  CONCATENATE a_xstring wa_sdokcntbin-line
                         INTO a_xstring IN BYTE MODE.
                ENDLOOP.
                len = XSTRLEN( a_xstring ).
        transform to solix tab - adding additional attachments
                REFRESH lt_solix.
                lt_solix =
                  cl_document_bcs=>xstring_to_solix(
                    ip_xstring = a_xstring ).
                CLEAR l_filename.
            Get the file name
                l_filename = wa_file_access_info-file_name.
                bcs_doc1 =  cl_document_bcs=>create_document(
                                                i_type     = l_doc_type
                                                i_subject  = l_filename
                                                i_length   = len
                                                i_language = sy-langu
                                                i_hex     = lt_solix
    *Type casting
                obj_file ?= bcs_doc1.
    Add Attachment as a document to the email object
                CALL METHOD l_email_object->add_document_as_attachment
                  EXPORTING
                    im_document = obj_file.
    for text doxument
              ELSEIF wa_file_access_info-mimetype = 'plain/text'.
                l_doc_type = 'TXT'.
                file_size = wa_file_access_info-file_size.
            Get the file name
                l_filename = wa_file_access_info-file_name.
                CALL FUNCTION 'SCMS_BINARY_TO_TEXT'
                  EXPORTING
                    input_length = file_size
                  TABLES
                    binary_tab   = it_sdokcntbin
                    text_tab     = file_data
                  EXCEPTIONS
                    failed       = 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.
                CALL METHOD cl_document_bcs=>create_document
                  EXPORTING
                    i_type    = l_doc_type
                    i_subject = l_filename
                    i_text    = file_data
                  RECEIVING
                    result    = bcs_doc1.
                obj_file ?= bcs_doc1.
    Add Attachment as a document to the email object
                CALL METHOD l_email_object->add_document_as_attachment
                  EXPORTING
                    im_document = obj_file.
              ENDIF.
              CLEAR:it_file_access_info,it_sdokcntbin.
              CLEAR:wa_object_id,wa_file_access_info,file_size.
            ENDLOOP.
            CALL METHOD send_request->set_document( l_email_object ).
    *Get the address number for the vendor
            SELECT SINGLE adrnr
                          FROM lfa1
                          INTO l_adrnr
                          WHERE lifnr = l_doc-xekko-lifnr.
            MOVE l_adrnr TO l_addrno.
    Get the Email Address for the vendor using address number
            CALL FUNCTION 'ADDR_GET_REMOTE'
              EXPORTING
                addrnumber        = l_addrno
              TABLES
                adsmtp            = it_adsmtp
              EXCEPTIONS
                parameter_error   = 1
                address_not_exist = 2
                internal_error    = 3
                OTHERS            = 4.
            IF sy-subrc <> 0.
              MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
                      WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
            ENDIF.
            sender = cl_sapuser_bcs=>create( sy-uname ).
            CALL METHOD send_request->set_sender
              EXPORTING
                i_sender = sender.
            READ TABLE it_adsmtp INTO wa_adsmtp WITH KEY flg_nouse = 'X'.
            IF sy-subrc = 0.
              LOOP AT it_adsmtp INTO wa_adsmtp WHERE flg_nouse = 'X'.
                CALL METHOD cl_cam_address_bcs=>create_internet_address
                  EXPORTING
                    i_address_string = wa_adsmtp-smtp_addr
                  RECEIVING
                    result           = recipient.
                CALL METHOD send_request->add_recipient
                  EXPORTING
                    i_recipient = recipient
                    i_express   = 'X'.
              ENDLOOP.
            ELSE.
              READ TABLE it_adsmtp INTO wa_adsmtp WITH KEY flgdefault = 'X'.
              IF sy-subrc = 0.
                CALL METHOD cl_cam_address_bcs=>create_internet_address
                  EXPORTING
                    i_address_string = wa_adsmtp-smtp_addr
                  RECEIVING
                    result           = recipient.
                CALL METHOD send_request->add_recipient
                  EXPORTING
                    i_recipient = recipient
                    i_express   = 'X'.
              ENDIF.
            ENDIF.
            CALL METHOD send_request->send(
             EXPORTING
               i_with_error_screen = 'X'
              RECEIVING
                result              = l_sent_to_all ).
          CATCH cx_bcs INTO bcs_exception.
            WRITE: 'Fehler aufgetreten.'(001).
            WRITE: 'Fehlertyp:'(002), bcs_exception->error_type.
            EXIT.
        ENDTRY.
      ENDIF.

  • DropDown in Online Interactive Forms Not working.

    HI:
    I am working on Online Interactive Form for Purchase Requisition.
    I have a dropdown in the dynamic table and I am trying to populate the same in DoInit().
    I am using the following code. But the drop down is displayed empty.
    DATA:
    lr_node_info type ref to if_wd_context_node_info,
    lt_value_set TYPE wdy_key_value_table,
    value_set_item TYPE wdy_key_value.
    types:  BEGIN OF TY_UOM,
            UOM TYPE T006-MSEHI,
            END OF TY_UOM.
    *Define Internal Table and work area.
    DATA: IT_UOM TYPE STANDARD TABLE OF ty_uom,
          WA_UOM type ty_uom.
    lr_node_info = pr_node2->get_node_info( ).
    data j type i.
    j = 1.
    SELECT MSEHI FROM T006 INTO wa_UOM.
    value_set_item-key = j.
    value_set_item-value = wa_uom-uom.
    insert value_set_item into table lt_value_set.
    insert wa_uom into table it_uom.
    j = j + 1.
    ENDSELECT.
    lr_node_info->set_attribute_value_set( NAME = 'UNIT'
    VALUE_SET = lt_value_set ).
    Can any one tell me what is wrong with the above code? and provide a sample code for the same.
    Actually I have a dropdown for UOM in the table and trying to populate it.
    The hierarchy is as follows
    BAPI_REQUISITION_CRE ->CHANGING -> REQUISITION_ITEM->DATA->Unit
    Thanks
    Vijai

    Hi Thomson,
    Create a context node A with cardinality 1..1 and in this create a context node A1 with cardinality 0..n and in this node create attributes TEXT and VALUE.
    Now goto method and in that method using code wizard read the node A1.
    And use the below code snippet sample in your program
    *Declare the TYPES
    TYPES :  BEGIN OF TY_TABLE,
                   TEXT  TYPE SOMETYPE,
                   VALUE TYPE SOMETYPE,
                  END OF TY_UOM.
    *Define Internal Table and work area.
    DATA : IT_TABLE TYPE STANDARD TABLE OF TY_TABLE INITIAL SIZE 0,
               WA_TABLE TYPE TY_TABLE.
    SELECT TEXT VALUE FROM TABLENAME INTO TABLE IT_TABLE.
    lr_node_info->bind_table( IT_TABLE ).
    And in the Adobe Form Layout
    Go to Menu of the Adobe LiveCycle Designer:
    Tools>Options..>DataBinding
    In that window u just check the Show Dynamic properties Check Box.
    Now for the Drop Down go the binding tab in object palette and click on the list items and there specify the text as the internal table text field and value as internal table value field and select the internal table.
    Regards
    Pradeep Goli

  • Editing online interactive forms using Acrobat XI Pro

    Our organization recently purchased Adobe Acrobat XI Pro in hopes of using it to create and convert many of our forms to electronic format.  We recently tried opening an existing online interactive form to edit it and it says "This form cannot be edited in Acrobat.  Please use Adobe LiveCycle Designer to edit this form".  Did we purchase the wrong product for what we are trying to do?  I'm in panic mode because we are very new to this type of editing and I hope we didn't purchase the wrong thing.  Any suggestions?

    There are two kinds of PDF forms: Acrobat forms and LiveCycle Designer
    forms. The latter are actually XML files and can only be edited in
    LiveCycle Designer, which used to be bundled with Acrobat Pro but is not
    any more. If your forms were created in LCD then you need to purchase that
    application as well if you want to edit them.
    On Wed, Oct 29, 2014 at 3:01 PM, Friend of the Library <

  • Possible to retrieve data from the backend using online interactive form ?

    Hello All,
      I am currently developing an online interactive form and in it, a textbox which allows user to search for employee data in the backend in the event that the default name is not correct. However, I noticed that in the proerty field of my interactiveform, there is only OnCheck and OnSubmit. Is it possible for me to make a search in the backend and have the results returned to my adobe form again ?
    from
    Kwok Wei

    Hi Kwok Wei,
    OnSubmit and OnCheck work in the same way. So if you need 2 buttons in your form then you can use both of these.
    I have never tried passing parameters but you can define context attributes and assign values. Later these can be accessed from the onSubmit Method.
    Regards,
    Sangeeta

  • F4 help in online interactive forms using ABAP

    Hi,
    Question 1:
                     I am able to get f4 help in online interactive form using ABAP. but after selecting the value from pop-up the value is not populated in PDF field. Can u help regardiing this.
    Question 2:
                     I am able to get f4 help in online interactive form using value help dropdown, first time if i click the dropdown button it is showing the popup, if i click second time it is not showing the popup.
    Thanks & Regards,
    Krishna

    Hi,
    1. I you are woking from the Web Dynpro for ABAP then after binding the Context variable in the view, and in the Adobe Layout Designer from the Library goto WebDynpro Native Tab and drag and drop the Value Help and for this automatically JavaScript is being generated, go that script and edit the line
    Var fieldname = "yourfieldname";
    Note: dont forget to link the context attribute to search help. ie. in the context properties of the attributes select the input help mode as dictionary search help and specify the name of the search help present in data dictionary.
    And now go to Utilities and click on u201CInsert Web Dynpro Scriptu201D.
    Also make sure that you specify the Layout as ZCI Layout in the Propertioes of the Adobe Form.
    2. Only the Submit button , the Enumerated Drop-Down List as well as the Value help button from the Web Dynpro Native library of Adobe LiveCycle Designer are supported. Check SAP Note: 1098009
    Regards
    Pradeep Goli

  • Online interactive form using ABAP

    Is it possible to create an ABAP program for Online Interactive form (NW 2004)? or do we need ABAP Webdynpro (NW 2004s)?
    We have implemented an offline scenario i.e. create an interactive PDF, fill the forms, save it, upload it and extract information from PDF.  It is working fine.  But we are not able to implement online interactive scenario.
    Any suggestion?
    Thanks,
    Pranav

    While SAP certainly does not recommend to create interactive scenarios from transaction SFP (please use Web Dynpro for such scenarios), it is not entirely correct to say that it is not possible.
    The issue we see is that SFP was created for output forms, i.e. "one way out of the system" (to print etc.). Interactive Forms is based on XML, which means that in ABAP you need to convert the ABAP structures to XML for generation of the PDF on the ADS, and - in interactive scenarios - on the return trip you need to convert the XML (in the PDF) back to ABAP structures. The conversion from ABAP to XML and vice versa is done in the background automatically by the Web Dynpro environment, which is why we recommend it for interactive use. There is no automatic back conversion in SFP, i.e. you'd need to handcode this - which means additional cost and potential for error.
    Hope this helps,
    Markus
    and, thanks, Eddy, for pointing out that the FAQs need an update...
    Markus

  • F4 help in online interactive form

    Hi,
               How to implement F4 help in online interactive form? Please help me regarding this.
    Thanks & Regards,
    Krishna

    hey,,
    If it for SAP interactive forms.... go through the following link ....
    f4 help in SAP interative forms
    where the admin had provided the help link for providing f4 search option for SAP interactive forms
    I hope this will do for you ...
    have fun

  • OVS Search Help in Web Dyrnpro Java Online Interactive Form

    Hi Experts,
    Is there any  OVS Search Help control we can use in Online Interactive Form as a as we have in Web Dynpro java. Can we assign this search help to any existing control.
    If it is not possible can we call a Web Dynpro View as a popup from Intefactive Form such that field search can be done in popup window and on selection the resultant record should populate to Interactive Form control.
    Please suggest me feasible solutions
    Thanks
    Chinna..

    Hi You can create Value Help in Webdynpro to show F4 Help values.
    Follow this link
    https://www.sdn.sap.com/irj/sdn/go/portal/prtroot/docs/library/uuid/2833ce90-0201-0010-f1af-d3cfe1155b16
    Reward Points if Helpful
    Edited by: Praveen Kommineni on May 7, 2008 8:05 PM

  • Online Interactive Form

    Hi All ,
    I m doing the online interactive form project using Adobe Reader .
    In My NWDS I have A 6.0 version .
    So If Anyone can tell  me how to upgrade it to 7.0 or above .

    Hi,
    May be of help for you
    https://www.sdn.sap.com/irj/sdn/adobe
    https://www.sdn.sap.com/irj/sdn/java?rid=/webcontent/uuid/21e4975d-0501-0010-1db9-8c45d832670a [original link is broken]
    Regards
    Ayyapparaj

Maybe you are looking for

  • How do I move all files from one project, to another hard drive?

    I am using CS3- I created a project on one hard drive, began editing, etc.- but now I'd like to move that project to another hard drive. Where are all of the files associated with it so I can move it successfully? Thanks!

  • Another HP Customer Escalations Team Lack of Communication and Warranty Replacement

    I have been dealing with issues on my under warranty laptop for the past six months and have had nothing but problems with HP services. I love my laptop and everyone has been very very nice to me, but nothing is being done. I was supposed to receive

  • Conditional Breaks on subnodes/item level

    Hello experts, We have a requirement for a new Adobe Form, which has a header table and an item table. We have to print multiple documents in 1 printout. Our Adobe Form context layout is as follows: - Context node for the Header (1 record for each do

  • How to get the content of a jTextArea?

    hi everyone can some body provide me with some help??? I want to know how to get the content of a jTextArea it may be a String and i want to use that String to make some applications I've use this : String ch=jTextArea.getSelectedText() but i'm not s

  • Keeping my Mac Mini Optimized

    Hi all, I was one of the early adaptors to the Mac Mini. I have a 1.25 GHz PowerPC G4 machine running 512MB of RAM. I'm running MAC OS X 10.4.11. It seems like over time, after numerous upgrades to the OS either automatically from Apple or when I pur