Saving and sending a pdf form in a non-editable format (i.e. as an image)

I have created a pdf form with editable fields (text fields, drop-down menus etc). After the form has been filled and graphically signed, I would like create a button to the form, which would save the form in a format that can not anymore be edited and then send this "image" form  via e-mail. How could I do this ??

You can flatten the form to make form fields un-editable.
Go to Tools pane > Print Production > Preflight > PDF Fixups > Flatten Annotations and Form Fields
You can also create a custom Action to achieve this at a click of a button.

Similar Messages

  • How do I make a button onj the form which will submit and send the pdf as an email?

    how do I make a button on the form which will submit and send the pdf as an email?

    You can set up a button with a "Submit a form" action and use a mailto type URL to specify the email address you want the forms sent do. If you want to send the entire PDF, select that option and not FDF or anything else. The mailto URL should not include any spaces and the "mailto" part should be lowercase, like:
    mailto:[email protected]
    This will attempt to initiate an email using the users default email client. If the user does not have one set up or there is some other problem, the email might not get initiated. If it needs to work with Reader versions prior to 11, then the form needs to be Reader-enabled, which you do in Acrobat 11 by selecting: File > Save As Other > Reader Extended PDF > Enable More Tools

  • How do I extract email from a form and send the PDF to that user?

    How do I extract email from a form and send the PDF to that user?

    here you can add email to send to, CC, Subject, and body message
    var oDoc = event.target;
                        oDoc.mailDoc({
                                                                bUI: false,
                                                                cTo: "Agency Contact Email",
                                                                cCC: "",
                                                                cSubject: "Write your title here,
                                                                cMsg: "Dear" + AgencyContact + "(" + AgencyContactEmail + ")\nThe student, " + FirstName + " " + LastName + " has applied to work at your agency. Please confirm they can work here blah blah blah.......\n\nThanks.\n\nrespectuflly,\n\nme"

  • Sending a pdf form through email

    Hi,
    I want to send a pdf form through mail for this i have to write code(given below) but my problem is that
    it send a xml file to vendor. i want to send its pdf form. how it is possible.........................
    CALL FUNCTION 'SCMS_XSTRING_TO_BINARY'
      EXPORTING
        buffer                = fp_outputparams
      APPEND_TO_TABLE       = ' '
    IMPORTING
      OUTPUT_LENGTH         =
      TABLES
        binary_tab            = lt_att_content_hex.
    CLASS cl_bcs DEFINITION LOAD.
    DATA:
    lo_send_request TYPE REF TO cl_bcs VALUE IS INITIAL.
    *--Create persistent send request
    lo_send_request = cl_bcs=>create_persistent( ).
    Message body and subject*****************************************************************************************
    DATA:
    lt_message_body TYPE bcsy_text VALUE IS INITIAL,
    lo_document TYPE REF TO cl_document_bcs VALUE IS INITIAL.
    APPEND 'Dear Vendor,' TO lt_message_body.
    APPEND ' ' TO lt_message_body.
    APPEND 'Please fill the attached form and send it back to us.' TO lt_message_body.
    APPEND ' ' TO lt_message_body.
    APPEND 'Thank You,' TO lt_message_body.
    lo_document = cl_document_bcs=>create_document(
                                   i_type = 'RAW'
                                   i_text = lt_message_body
                                   i_subject = 'Vendor Payment Form' ).
    DATA: lx_document_bcs TYPE REF TO cx_document_bcs VALUE IS INITIAL.
    TRY.
        lo_document->add_attachment(
                     EXPORTING
                     i_attachment_type = 'PDF'
                     i_attachment_subject = 'A Test Adobe Form').
                   i_attachment_size =
                   i_attachment_language = space
                   i_att_content_text =
                   i_attachment_header =
                   i_att_content_hex =  lt_att_content_hex ).
      CATCH cx_document_bcs INTO lx_document_bcs.
    ENDTRY.
    Add attachment
    Pass the document to send request
    lo_send_request->set_document( lo_document ).
    Create sender
    DATA:
    lo_sender TYPE REF TO if_sender_bcs VALUE IS INITIAL,
    l_send TYPE adr6-smtp_addr VALUE  '.............'.
    lo_sender = cl_cam_address_bcs=>create_internet_address( l_send ).
    Set sender
    lo_send_request->set_sender(
                            EXPORTING
                                i_sender = lo_sender ).
    Create recipient
    DATA:
    lo_recipient TYPE REF TO if_recipient_bcs VALUE IS INITIAL.
    lo_recipient = cl_sapuser_bcs=>create( sy-uname ).
    Set recipient
    lo_send_request->add_recipient(
                              EXPORTING
                                  i_recipient = lo_recipient
                                                i_express = 'X' ).
    lo_send_request->add_recipient(
                              EXPORTING
                                  i_recipient = lo_recipient
                                                 i_express = 'X' ).
    Send email
    DATA: lv_sent_to_all(1) TYPE c VALUE IS INITIAL.
    lo_send_request->send(
                              EXPORTING
                                  i_with_error_screen = 'X'
                              RECEIVING
                                  result = lv_sent_to_all ).
    COMMIT WORK.
    MESSAGE 'The payment form has been emailed to the Vendor' TYPE 'I'.
    Thanks in advance
    Shri

    Try below logic.
      DATA : it_objpack   TYPE STANDARD TABLE OF sopcklsti1 ,
             it_objtxt    TYPE STANDARD TABLE OF solisti1 ,
             it_objbin    TYPE STANDARD TABLE OF solisti1 ,
             it_reclist   TYPE STANDARD TABLE OF somlreci1 ,
             wa_doc_chng  TYPE sodocchgi1,
             wa_objhead   TYPE soli_tab,
             l_attachment TYPE i,
             l_testo      TYPE i.
      DATA:   wa_objpack TYPE sopcklsti1,
              wa_objtxt TYPE solisti1 ,
              wa_objbin TYPE  solisti1 ,
              wa_reclist TYPE  somlreci1 .
      CLEAR:  wa_reclist,
              wa_objhead,
              wa_objtxt,  it_objtxt[],
              wa_objbin,  it_objbin[],
              wa_objpack, it_objpack[].
    Object with PDF.
      CLEAR wa_objbin.
      REFRESH it_objbin.
      it_objbin[] = gt_mess_att[].
      DESCRIBE TABLE it_objbin LINES l_attachment.
    Object with main text of the mail.
      LOOP AT it_message INTO wa_message.
        wa_objtxt = wa_message. APPEND wa_objtxt TO it_objtxt.
      ENDLOOP.
      DESCRIBE TABLE it_objtxt LINES l_testo.
    Document information.
      wa_doc_chng-obj_name = 'test'.
      wa_doc_chng-expiry_dat = sy-datum + 10.
      CONCATENATE 'Amex Settlement' ' '
                    INTO wa_doc_chng-obj_descr .
    doc_chng-sensitivty = 'F'.
      wa_doc_chng-sensitivty = 'P'.
      wa_doc_chng-obj_prio = '1'.
      wa_doc_chng-doc_size = l_testo * 255.
      CLEAR wa_objpack-transf_bin.
      wa_objpack-head_start = 1.
      wa_objpack-head_num   = 0.
      wa_objpack-body_start = 1.
      wa_objpack-body_num   = l_testo.
      wa_objpack-doc_type   = 'RAW'.
      APPEND wa_objpack TO it_objpack.
      CLEAR wa_reclist.
      wa_reclist-copy = 'X'.
      IF wa_email IS NOT INITIAL.
        wa_reclist-receiver = wa_email-value1.
        wa_reclist-express  = 'X'.
        wa_reclist-rec_type = 'U'.
        wa_reclist-notif_del = 'X'.
        wa_reclist-notif_ndel = 'X'.
        APPEND wa_reclist TO it_reclist.
       ENDLOOP.
        CALL FUNCTION 'SO_NEW_DOCUMENT_ATT_SEND_API1'
          EXPORTING
            document_data              = wa_doc_chng
            put_in_outbox              = 'X'
            commit_work                = 'X'
          TABLES
            packing_list               = it_objpack
            object_header              = wa_objhead
            contents_bin               = it_objbin
            contents_txt               = it_objtxt
            receivers                  = it_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 <> 0.
          WRITE 'Cannot send email'.
        ENDIF.
      ENDIF.

  • Can I edit the email created to send a PDF form back to me when a user clicks on Submit?

         I created several PDF fillable forms for our users to request services and send back data needed to deliver those services. They are simple forms, and users will click on Submit to return to a mailto: address.
    My question is about the email message that is auto-created when the user clicks on Submit. I can't find any config window to be able to edit the message in the body of the email. The message reads:
    Form Returned: 2014PrintingRequestForm.pdf
    The attached file is the filled-out form. Please open it to review the data.
    Is there any way to edit this message?

    majende,
    Adobe Reader for iOS does support a Submit button.
    (a) Button action to submit an entire PDF document via email
    (b) JavaScript submitForm to Adobe FormsCentral
    Do you use the desktop version of Adobe Acrobat to create a PDF form?
    For option (a)
    Add the "Submit a form" action to your Submit button.
    Enter "mailto:" (including a colon) followed by email recipient(s).  Please add a comma between two email addresses.
    Example: [email protected], [email protected]
    Select "PDF The complete document".
    This particular type of PDF form will work with Adobe Reader desktop and mobile products (including Adobe Reader for iOS and Android).
    In Adobe Reader for iOS, a user can do the following steps to submit the particular type of PDF form.
    Fill out the PDF form.
    Tap the Submit button in the PDF form.
    Select "Share Original Document" or "Share Flattened Copy" from the Share File dialog.
    Adobe Reader for iOS will automatically fill in the email address(es) that you specified when you created the PDF form.
    Tap the Send button in the upper right corner.
    Adobe Reader for iOS will send the PDF form as an email attachment via Apple Mail (the default mail app for iOS).
    Please let us know if you have additional questions.

  • Pe10: opening a previously saved and rendered project, the work area indicates non-rendered sections

    Pe10: when I open a previously saved and rendered project, the work area indicates a majority of non-rendered sections.
    When I open a previously saved and rendered project, the work area indicates non-rendered sections. My project is approximately 59 minutes and 27 seconds.
    What must be done to have a saved and rendered project, when open again, be rendered?

    TRUE_SEEKER wrote:
    The price tag of $245 for the Prodad's Mercalli  video software is too steep for me right now.
    Corel's Avid VideoStudio Pro X4 Ultimate (what a mouthful) includes Mercalli SE. It was on sale at half-price on Amazon Black Friday and I missed it - mostly because I was trying to find out what the 'SE' part of it meant.
    Annoyingly (very much so) it seems that Mercalli SE is pretty much the whole deal - a YouTube review of the Mercalli feature in VideoStudio by ProDAD (the Mercalli authors) included all the features I would expect to use.
    So it seems that the $80 VideoStudio product includes the $150 Mercalli plug-in. Thus a workflow starting with Mercalli stabilisation in VideoStudio and then switching to PRE is viable. I can't really afford the full price VideoStudio product so I'm hoping for a similar 50% reduction after Christmas.
    Cheers,
    Neale
    Insanity is hereditary, you get it from your children

  • Saving and sending Adobe Form pdf from WebDynpro

    Hi,
    I'm developing an application which receives data from a RFC to a R/3. The datas are displayed on a pdf-Document in a Webdynpro. This works fine.
    Now I want to send this form as attachment in an email. Do I have to save it first as pdf or can I send it directly?
    On SapHelp I found a tutorial how to save a form as pdf:
    http://help.sap.com/saphelp_nw04/helpdata/en/dc/f1783fe3263042e10000000a114084/frameset.htm
    I tried out the describtion but without success. I defined an action on the view where the form should be displayed and added the coding in the implementation of the event. In the form I added a button Submit to SAP from the Web Dynpro Library. When I press the button, nothing happens. Do I have to make any changes under Object->Field->Control Type?
    Another question about the coding:
    public void onActionsubmit(com.sap.tc.webdynpro.progmodel.api.IWDCustomEvent wdEvent )
        //@@begin onActionsubmit(ServerEvent)
              IPrivateResultView.IContextElement contextElement =
                   wdContext.currentContextElement();
              byte[] bytes = contextElement.getPdfSource();
              try {
                   File file = new File("C:
    temp
    example.pdf");
                   FileOutputStream os = new FileOutputStream(file);
                   os.write(bytes);
                   os.close();
              } catch (IOException e) {
                    // do something
                   e.printStackTrace();
              wdThis.wdGetAPI().getComponent().getMessageManager().reportSuccess(
                   "You have pressed Submit!");
        //@@end
    The path where the pdf shall be saved is "C:
    temp
    example.pdf", I expected something like "C:\temp\example.pdf" on a windows machine.
    Where will the pdf be saved? On the machine i deployed the application (what about rights for saving) to or localy on the machine I start the app?
    Does anyone knows how to send the pdf by email when saving the form or knows a helpful tutorial?
    Many thanks for your help
    Mathias Lange

    Hi all,
    doing Tutorial 31 from SDN (Interactive Forms using E-Mail) I have a problem with the entries for the smtp-host in the coding.
    I always get the error message: 
    Sending failed;  nested exception is: com.sap.engine.services.javamail.exception.JavaMailMessagingException: Cannot send message to host xxx:25 using the SMTP protocol.
    //@@begin onActionSendForm(ServerEvent)
    Properties props = new Properties();
    String host = "xxx";
    props.put("mail.smtp.host", host);
    In host I entered the entrie for the smtp i use in Outlook, where it works fine. In the Tutorial i get the errormessage.
    I have an smtp-server from our company with which it works too, but it is not the smtp used by Outlook.
    And i can't use this smtp at my customers.
    Could it be a problem with the used ports or a needed authentication? In the Tutorial is no coding for this.
    Does anyone use a freemailer for this tutorial and have success with the smtp of this freemailer?
    Kind Regards
    Mathias
    Message was edited by: Mathias Lange

  • Problems with saving and sending info in PDF form

    Hi,
    I'm trying to make a PDF form in Indesign CS5, exporting it to PDF, opening in Acrobat 9 Pro, and get the form to be able to send the info I type in the fields.
    So far I've had no problems making the form, exporting it, opening it in Acrobat 9 Pro, getting Acrobat 9 Pro to recognize the fields and save the form.
    However, I'd opened the form and filled it out and attached it to an email, and when I got the email, the form was blank.
    How do I get the form to save the data so it can be emailed?
    thanks for any help.
    Phil

    (Acrobat Pro and Pro Extended) Choose Advanced > Extend Features In Adobe Reader.
    I have somehow solved the problem. I tried using the above direction and it seems to have fixed the problem. I don't seem to get the message about not being able to save anymore and can send a completed PDF form that retains the information typed into the form.
    Thanks for all who made suggestions.
    Phil

  • Submitting a PDF form --- save and send completed PDF document?

    A small government site has a number of 'submittable' PDF
    form documents
    that they'd like me to include on the website. I am not very
    familiar
    with PDF forms in this way, and hope someone here can help
    sort out a
    few things...
    Can a PDF form be submitted so that
    a) the completed PDF doc is saved on the server (and renamed)
    b) a printable , completed PDF (looks just like the one they
    filled out,
    with all their values saved in the input boxes) is emailed to
    specific
    address
    c) the raw user data is saved to database (maybe a list of
    fields in one
    column of a db table, and a matching list of values in
    another? this
    would just be for backup in case the completed PDF did not
    save
    correctly to the server, or for later reference)
    We've looked at the standard Acrobat 'submit via email' and
    that won't
    cut it... that method appears to simply trigger a 'mailto'
    popup, with
    the pdf as an attachment. Our system needs to be automated
    via CFmail.
    None of these would handle any 'sensitive' information, the
    main
    concern, from their part, is people being able to submit the
    form and
    have both the city office and the recipient get a copy that
    prints just
    as if they had hit 'print' when filling out the actual PDF.
    Is all of this possible ??
    if so... any tips appreciated!
    Michael Evangelista, Evangelista Design
    Web : www.mredesign.com Blog : www.miuaiga.com
    Developer Newsgroups: news://forums.mredesign.com

    nobody?
    seems i can do some of this with 'cfpdfform'... looking into
    it but also
    seeking live examples/experience.
    Michael Evangelista, Evangelista Design
    Web : www.mredesign.com Blog : www.miuaiga.com
    Developer Newsgroups: news://forums.mredesign.com

  • Sending a PDF form without a desktop email application

    I developed a PDF form using Livecycle and now discoved that the computers that users have do not have an email client installed. instead, they use OWA. So my Save and Send Email button will save the PDF but not email it. Is there a way to send the PDF (I've read something about http or server-side scripts) that will be automatic so that the user doesn't manually have to attach the saved file to an OWA email and type in an email address? We've used pdformail.asp in the past, but, for some reason, it's not working for me now.I get a message saying that the page can't be displayed. The code for this action page is copied below.
    <%
    Dim strMasterPath
    Dim PDForm
    ' Acquire the server default path
    strMasterPath = Server.MapPath(Request.ServerVariables("PATH_INFO"))
    strMasterPath = Left(strMasterPath,InstrRev(strMasterPath,"\"))
    ' Initiate the formium object and call the Render function
    Set PDForm = Server.CreateObject("formium.core")
    Call PDForm.render_PDForMail(0)
    ' Close out the object       
    Set renderPDF = Nothing
    %>

    Here's the javascript on the Submit button, and I'd like a script that would grab user-entered values in the PDF form in the same way. Is this possible?
    form1.page3.emailSubform.emailToBtn::preSubmit:form - (JavaScript, client)
    app.execMenuItem("SaveAs");
    //either way below works
    //event.target.submitForm({cURL:"mailto:"+ strToAddress + "?cc=" + strCCAddress + "&subject=" + strSubject + "&body=" + strMessage,cSubmitAs:"PDF",cCharset:"utf-8"});
    if (txtCCAddress.rawValue == null) {
    var strToAddress, strSubject, strMessage, strSuffix, strMgrFirstName, strMgrLastName, strStoreNum, strRegionNum
    strToAddress = txtToAddress.rawValue;
    strSuffix = form1.Page1.DropDownList1.rawValue;
    strMgrFirstName = form1.page3.MgrFirstName.rawValue;
    strMgrLastName = form1.page3.MgrLastName.rawValue;
    strStoreNum = form1.Page1.storeNumber.rawValue;
    strRegionNum = form1.page3.distRegion.rawValue;
    this.resolveNode("#event").submit.target = "mailto:" + strToAddress + "?subject= " + "LOA request for " + strSuffix + " DSM " + strMgrFirstName + " " + strMgrLastName + " Store# " + strStoreNum + " Region# " + strRegionNum;
        else
        var strToAddress, strCCAddress, strSubject, strMessage, strSuffix, strMgrFirstName, strMgrLastName, strStoreNum, strRegionNum
    strToAddress = txtToAddress.rawValue;
    strCCAddress = txtCCAddress.rawValue;
    strSuffix = form1.Page1.DropDownList1.rawValue;
    strMgrFirstName = form1.page3.MgrFirstName.rawValue;
    strMgrLastName = form1.page3.MgrLastName.rawValue;
    strStoreNum = form1.Page1.storeNumber.rawValue;
    strRegionNum = form1.page3.distRegion.rawValue;
        this.resolveNode("#event").submit.target = "mailto:"+ strToAddress + "?cc=" + strCCAddress + "&subject=" + "LOA request for "  + strSuffix + " DSM " + strMgrFirstName + " " + strMgrLastName + " Store# " + strStoreNum + " Region# " + strRegionNum;

  • Sending Filled PDF Form ONLINE without promting outlook/windowsmail etc

    This question has been placed serveral times. But no one seemed to have THE anwers/script for it.
    now we all know that a filled pdf form, can be send as an attachment when you click on the submit button. It prompts, your computer mail software and place the e-mail adress and subject on the right place with the filed pdf file attached. That's cool.
    And also we know you can save the pdf form on your local disk. Login in your gmail, hotmail or yahoo and attach the saved pdf form file and send it there.
    But what I want is something more simpler. The above mention is tricky when someone dont have mail client. I just want the complete filled pdf form, send online (through mailserver?). just the send button. without prompting outlook/windowsmail. Just the submit and send the whole damn thing to the right address.
    So what's the script to do so?

    I have the same question, did you have any luck  finding an answer/script ? It seems like this process its much more complicated than it should be.

  • Save and Close the PDF form

    I've created PDF Form (Acrobat XI standard) with various field and button for sending the link of document location by outlook mail. I need the adobe java script for save the document in same location and close the document while i use the button for sending the link.

    You can only save the file to a specific location if you can install a script on the local machine where the file is used.
    Otherwise the best you can do is cause the Save As dialog to open, but you can't force the file to be saved.

  • ALV output converted into PDF format and send that PDF to user through mail

    Hi Experts,
    I have report earlier its output was in alv grid.
    Now i want that ALV output converted into PDF format.And that PDF output send to user through mail.
    Can u please tell how to do?
    My code is here(output is displaying in ALV grid).
    INCLUDE <icon>.
    TYPE-POOLS: slis, kkblo.
    TABLES : zmsd_freight_hdr, zmsd_freight_det, zmsd_blinfo, zmsd_diheader.
    TABLES : lfa1.
    DATA : t_hdr   LIKE   zmsd_freight_hdr   OCCURS 0 WITH HEADER LINE,
           T_DET   LIKE   ZMSD_FREIGHT_DET   OCCURS 0 WITH HEADER LINE,
           t_bl    LIKE   zmsd_blinfo        OCCURS 0 WITH HEADER LINE,
           t_di    LIKE   zmsd_diheader      OCCURS 0 WITH HEADER LINE.
    DATA: BEGIN OF t_det OCCURS 0.
            INCLUDE STRUCTURE zmsd_freight_det.
    DATA    type(30).
    DATA: END OF t_det.
    DATA: v_target2(30),
          v_zsammg LIKE t_det-zsammg,
          v_gsttotal LIKE t_det-zamount.
    DATA : BEGIN OF t_data OCCURS 0,
             zsammg       LIKE  zmsd_freight_hdr-zsammg,
             zdidbl       LIKE  zmsd_freight_hdr-zdidbl,
             zvkorg       LIKE  zmsd_freight_hdr-zvkorg,
             zinvno       LIKE  zmsd_freight_hdr-zinvno,
             zttlamt      LIKE  zmsd_freight_hdr-zttlamt,
             zstatus      LIKE  zmsd_freight_hdr-zstatus,
             ztype        LIKE  zmsd_freight_hdr-ztype,
             zconfirm     LIKE  zmsd_freight_hdr-zconfirm,
             zconfirmdate LIKE  zmsd_freight_hdr-zconfirmdate,
             erdat        LIKE  zmsd_freight_hdr-erdat,
             ernam        LIKE  zmsd_freight_hdr-ernam,
             erzet        LIKE  zmsd_freight_hdr-erzet,
             aedat(10),
             aenam        LIKE  zmsd_freight_hdr-aenam,
             aezet        LIKE  zmsd_freight_hdr-aezet,
             zline        LIKE  zmsd_freight_det-zline,
             zfptype      LIKE  zmsd_freight_det-zfptype,
             zchrcode     LIKE  zmsd_freight_det-zchrcode,
             zcurcode     LIKE  zmsd_freight_det-zcurcode,
             zqty         LIKE  zmsd_freight_det-zqty,
             zuom         LIKE  zmsd_freight_det-zuom,
             zrate        LIKE  zmsd_freight_det-zrate,
             zamount      LIKE  zmsd_freight_det-zamount,
             zexrate      LIKE  zmsd_freight_det-zexrate,
           zccode       LIKE  zmsd_blinfo-zccode,      "MADK991565
             zccode       like  ZMSD_FREIGHT_HDR-zfcode, "MADK991565
             zbldate(10),
             zbl          LIKE  zmsd_blinfo-zbl,
             type(3),
             waerk        LIKE  zmsd_freight_det-zcurcode,
             zamountl     LIKE  zmsd_freight_det-zamount,
           END OF t_data.
    DATA : w_layout      TYPE   slis_layout_alv,
           w_catalog     TYPE   slis_fieldcat_alv,
           t_catalog     TYPE   slis_t_fieldcat_alv,
           w_sort        TYPE   slis_sortinfo_alv,
           t_sort        TYPE   slis_t_sortinfo_alv.
    DATA   V_ZINVNO    like   T_HDR-ZINVNO.                   "MADK991565
    DATA : v_count  TYPE  i.
    SELECTION-SCREEN BEGIN OF BLOCK a0 WITH FRAME TITLE text-001.
    PARAMETERS     :  p_zvkorg LIKE zmsd_freight_hdr-zvkorg  OBLIGATORY .
    SELECT-OPTIONS :  s_zdidbl FOR  zmsd_freight_hdr-zdidbl             ,
                      s_zccode FOR  lfa1-lifnr                          ,
                      s_status FOR  zmsd_freight_hdr-zstatus            ,
                      s_ztype  FOR  zmsd_freight_hdr-ztype              ,
                      s_erdat  FOR  zmsd_freight_hdr-erdat              ,
                      s_ernam  FOR  zmsd_freight_hdr-ernam              ,
                      s_zconfd FOR  zmsd_freight_hdr-zconfirmdate       .
    PARAMETERS     :  p_zconf  AS   CHECKBOX                            .
    SELECTION-SCREEN END OF BLOCK a0.
    SELECTION-SCREEN BEGIN OF BLOCK a1 WITH FRAME TITLE text-002.
    PARAMETERS     :  p_hdr    RADIOBUTTON GROUP rad DEFAULT 'X'        ,
                      p_det    RADIOBUTTON GROUP rad                    .
    SELECTION-SCREEN END OF BLOCK a1.
    INITIALIZATION.
    AT SELECTION-SCREEN.
    START-OF-SELECTION.
      PERFORM get_data.
      PERFORM process.
      PERFORM display.
    END-OF-SELECTION.
      PERFORM fm_get_num_pages.
    AT USER-COMMAND.
    AT LINE-SELECTION.
    TOP-OF-PAGE.
      PERFORM fm_top_of_page USING '7010' sy-title space.
    FORM get_data.
      SELECT   *
        FROM   zmsd_freight_hdr
        INTO   TABLE t_hdr
       WHERE   zvkorg        EQ  p_zvkorg
         AND   zdidbl        IN  s_zdidbl
         AND   zstatus       IN  s_status
         AND   ztype         IN  s_ztype
         AND   erdat         IN  s_erdat
         AND   ernam         IN  s_ernam
         AND   zconfirmdate  IN  s_zconfd
         AND   ZFCODE        IN  S_ZCCODE.                      "MADK991565
      IF p_zconf = 'X'.
        DELETE t_hdr WHERE zconfirm NE 'C'.
      ENDIF.
      CHECK NOT t_hdr[] IS INITIAL.
      SELECT   *
        FROM   zmsd_blinfo
        INTO   TABLE t_bl
         FOR   ALL ENTRIES IN t_hdr
       WHERE   zsammg = t_hdr-zsammg.
      SORT t_bl BY zsammg.
      SELECT   *
        FROM   zmsd_diheader
        INTO   TABLE t_di
         FOR   ALL ENTRIES IN t_hdr
       WHERE   zsammg = t_hdr-zsammg.
      SORT t_di BY zsammg.
    IF P_DET = 'X'. "MADK933361
      SELECT   *
        FROM   zmsd_freight_det
        INTO   TABLE t_det
         FOR   ALL ENTRIES IN t_hdr
       WHERE   zsammg  =  t_hdr-zsammg
       AND ZINVNO =  T_HDR-ZINVNO .                           "MADK991565
    SORT t_det BY zsammg zline.                            "MADK991565
       SORT T_DET BY ZSAMMG ZINVNO ZLINE.                     "MADK991565
    ENDIF. "MADK933361
    ENDFORM.
    FORM process.
      REFRESH t_data.
      CLEAR v_gsttotal.                                         "MADK933361
      LOOP AT t_hdr.
    Start of MADK933361
        CLEAR: v_target2.
        v_zsammg = t_hdr-zsammg.
        V_ZINVNO = T_HDR-ZINVNO.                                "MADK991565
       AT NEW zsammg.                                         "MADK991565
         AT NEW ZINVNO.                                         "MADK991565
          PERFORM get_gst_value.
        ENDAT.
    End of MADK933361
        PERFORM move_header.
        CHECK t_data-zccode IN s_zccode.
        IF p_det = 'X'.
    CSF Project Changes Starts   DEV34    MADK985782
        LOOP AT T_DET WHERE ZSAMMG = T_HDR-ZSAMMG..
          LOOP AT t_det WHERE zsammg = t_hdr-zsammg AND
                              zinvno = t_hdr-zinvno.
    CSF Project Changes Ends     DEV34    MADK985782
            PERFORM move_header.
            CHECK t_data-zccode IN s_zccode.
            MOVE-CORRESPONDING t_det TO t_data.
            t_data-zamountl = t_data-zamount * t_data-zexrate.
            APPEND t_data.
            CLEAR t_data.
          ENDLOOP.
        ELSE.
          APPEND t_data.
          CLEAR t_data.
        ENDIF.
        AT END OF zsammg.
          CLEAR v_gsttotal.
        ENDAT.
    *Start of changes for  IS090901289-PIA MADK991565
        AT END OF ZINVNO.
          CLEAR V_GSTTOTAL.
        ENDAT.
    *End of changes for  IS090901289-PIA MADK991565
      ENDLOOP.
    ENDFORM.
    FORM move_header.
      MOVE-CORRESPONDING t_hdr TO t_data.
      t_data-zttlamt = t_data-zttlamt + v_gsttotal.             "MADK933361
      t_data-waerk = 'SGD'.
      IF NOT t_hdr-aedat IS INITIAL.
        WRITE: t_hdr-aedat TO t_data-aedat.
      ELSE.
        CLEAR : t_data-aedat.
      ENDIF.
      READ TABLE t_bl WITH KEY zsammg = t_hdr-zsammg BINARY SEARCH.
      IF sy-subrc EQ 0.
      t_data-zccode  = t_bl-zccode.   "MADK991565
        T_DATA-ZCCODE = T_HDR-ZFCODE.   "MADK991565     
        IF NOT t_bl-zbldate IS INITIAL.
          WRITE: t_bl-zbldate TO t_data-zbldate.
        ENDIF.
        t_data-zbl     = t_bl-zbl.
        t_data-type    = 'DBL'.
      ELSE.
        READ TABLE t_di WITH KEY zsammg = t_hdr-zsammg BINARY SEARCH.
        IF sy-subrc EQ 0.
        t_data-zccode  = t_di-zdiforcode.     "MADK991565
          T_DATA-ZCCODE = T_HDR-ZFCODE.         "MADK991565
          t_data-type    = 'DI'.
        ENDIF.
      ENDIF.
    ENDFORM.
    FORM display.
      IF t_data[] IS INITIAL.
        MESSAGE s398(00) WITH 'No Data Selected'.
        EXIT.
      ENDIF.
      DATA : l_repid LIKE sy-repid.
      l_repid = sy-repid.
      REFRESH t_catalog.
      CLEAR   t_catalog.
      w_layout-cell_merge = 'X'.
      PERFORM map_fields.
      CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
           EXPORTING
                i_callback_program      = l_repid
                i_callback_user_command = 'ALV_USER_COMMAND'
                is_layout               = w_layout
                it_fieldcat             = t_catalog[]
                i_grid_title            = sy-title
                i_save                  = 'A'
                it_sort                 = t_sort[]
           TABLES
                t_outtab                = t_data
           EXCEPTIONS
                program_error           = 1
                OTHERS                  = 2.
      IF sy-subrc <> 0.
      ENDIF.
    ENDFORM.
    FORM map_fields.
    Sort Order
      CLEAR v_count.
      PERFORM sf USING 'ZDIDBL'   'X'  'X'.
    Fields to be displayed
      CLEAR v_count.
      IF p_hdr = 'X'.
        PERFORM af USING :
       DESCRIPTION       FIELD        LEN   RTABLE             RFIELD
        'DI/DBL         ' 'ZDIDBL'     '14' '                ' '        ',
        'Type           ' 'TYPE'       '04' '                ' '        ',
        'Forwarder Code ' 'ZCCODE'     '14' '                ' '        ',
        'BL Number      ' 'ZBL'        '14' '                ' '        ',
        'BL Date        ' 'ZBLDATE'    '10' '                ' '        ',
        'Invoice Number ' 'ZINVNO'     '15' '                ' '        ',
        'Extraction     ' 'ZSTATUS'    '05' 'ZMSD_FREIGHT_HDR' 'ZSTATUS ',
        'Freight Type   ' 'ZTYPE'      '05' 'ZMSD_FREIGHT_HDR' 'ZTYPE   ',
        'Confirmation   ' 'ZCONFIRM'   '05' 'ZMSD_FREIGHT_HDR' 'ZCONFIRM',
        'Confirm Date   ' 'ZCONFIRMDATE' '10' 'ZMSD_FREIGHT_HDR'
    'ZCONFIRMDATE',
        'Total Amount   ' 'ZTTLAMT'    '18' '                ' '        ',
        'Created On     ' 'ERDAT'      '10' '                ' '        ',
        'Created By     ' 'ERNAM'      '10' '                ' '        ',
        'Changed On     ' 'AEDAT'      '10' '                ' '        ',
        'Changed By     ' 'AENAM'      '10' '                ' '        '.
      ELSE.
        PERFORM af USING :
       DESCRIPTION         FIELD     LEN   RTABLE             RFIELD
        'DI/DBL           ' 'ZDIDBL'   '14' '                ' '        ',
        'Type             ' 'TYPE'     '04' '                ' '        ',
        'Forwarder Code   ' 'ZCCODE'   '14' '                ' '        ',
        'BL Number        ' 'ZBL'      '14' '                ' '        ',
        'BL Date          ' 'ZBLDATE'  '10' '                ' '        ',
        'Invoice Number   ' 'ZINVNO'   '15' '                ' '        ',
        'Extraction       ' 'ZSTATUS'  '05' 'ZMSD_FREIGHT_HDR' 'ZSTATUS ',
        'Freight Type     ' 'ZTYPE'    '05' 'ZMSD_FREIGHT_HDR' 'ZTYPE   ',
        'Confirmation     ' 'ZCONFIRM' '05' 'ZMSD_FREIGHT_HDR' 'ZCONFIRM',
        'Confirm Date     ' 'ZCONFIRMDATE' '10' 'ZMSD_FREIGHT_HDR'
    'ZCONFIRMDATE',
        'Total Amount     ' 'ZTTLAMT'  '18' '                ' '        ',
        'Freight Payment  ' 'ZFPTYPE'  '14' '                ' '        ',
        'Charge Code      ' 'ZCHRCODE' '10' '                ' '        ',
        'Currency         ' 'ZCURCODE' '08' '                ' '        ',
        'Quantity         ' 'ZQTY'     '13' '                ' '        ',
        'UoM              ' 'ZUOM'     '04' '                ' '        ',
        'Rate             ' 'ZRATE'    '15' '                ' '        ',
        'Amt(Foreign Curr)' 'ZAMOUNT'  '16' '                ' '        ',
        'Exchange Rate    ' 'ZEXRATE'  '13' '                ' '        ',
        'Amt(Local Curr)  ' 'ZAMOUNTL' '16' '                ' '        ',
        'Created On       ' 'ERDAT'    '10' '                ' '        ',
        'Created By       ' 'ERNAM'    '10' '                ' '        ',
        'Changed On       ' 'AEDAT'    '10' '                ' '        ',
        'Changed By       ' 'AENAM'    '10' '                ' '        '.
      ENDIF.
    ENDFORM.
    FORM af USING text
                  field
                  len
                  table
                  reffield.
      v_count = v_count + 1.
      w_catalog-col_pos       = v_count.
      w_catalog-fieldname     = field.
      w_catalog-ref_tabname   = table.
      w_catalog-ref_fieldname = reffield.
      w_catalog-seltext_s     = text.
      w_catalog-seltext_m     = text.
      w_catalog-seltext_l     = text.
      w_catalog-outputlen     = len.
      IF field = 'ZTTLAMT' OR field = 'ZAMOUNTL'.
        w_catalog-no_zero     = 'X'.
        w_catalog-cfieldname  = 'WAERK'.
        w_catalog-datatype    = 'CURR'.
      ENDIF.
    IF FIELD = 'ZRATE' OR FIELD = 'ZAMOUNT'.
      IF field = 'ZAMOUNT'.
        w_catalog-no_zero     = 'X'.
        w_catalog-cfieldname  = 'ZCURCODE'.
        w_catalog-datatype    = 'CURR'.
      ENDIF.
      IF field = 'ZQTY' OR field = 'ZRATE'.
        w_catalog-no_zero     = 'X'.
        w_catalog-datatype  =  'DEC'.
      ENDIF.
      APPEND w_catalog TO t_catalog.
      CLEAR  w_catalog.
    ENDFORM.
    FORM sf    USING   fieldname  sortup  group.
      v_count = v_count + 1.
      CLEAR w_sort.
      w_sort-fieldname = fieldname.
      w_sort-spos      = v_count.
      w_sort-up        = sortup.
      w_sort-group     = group.
      APPEND w_sort TO t_sort.
    ENDFORM.
    FORM alv_user_command USING  in_ucomm    LIKE sy-ucomm
                                 in_selfield TYPE slis_selfield.
      DATA: lfs_data LIKE t_data.
      IF in_ucomm = '&IC1'.
        READ TABLE t_data INDEX in_selfield-tabindex INTO lfs_data.
        CHECK NOT lfs_data-zdidbl IS INITIAL.
        IF lfs_data-type = 'DBL'.
          DATA: l_zdbl LIKE zmsd_diheader-zdinum.
          l_zdbl = in_selfield-value.
          EXPORT l_zdbl TO MEMORY ID 'VBL'.
          CALL TRANSACTION 'ZMSD_BL01'.
        ENDIF.
        IF lfs_data-type = 'DI'.
          DATA: v_dinum LIKE zmsd_diheader-zdinum.
          v_dinum = in_selfield-value.
          EXPORT v_dinum TO MEMORY ID 'VDI'.
          CALL TRANSACTION 'ZMSD_DI01'.
        ENDIF.
      ENDIF.
    ENDFORM.
    FORM get_gst_value.
      LOOP AT t_det WHERE zsammg = v_zsammg
         AND ZINVNO = V_ZINVNO.                              "MADK991565
        CHECK t_data-zccode IN s_zccode.
        t_det-zamount  = t_det-zamount * t_det-zexrate.
        SELECT SINGLE  y0mmtarget2
                INTO   v_target2
                FROM   y0mmipstranslate
                WHERE  y0mmdatatype = '70' AND
                       y0mmsource = t_det-zchrcode.
        SELECT SINGLE y0mmtarget1
               INTO   t_det-type
               FROM   y0mmipstranslate
               WHERE  y0mmdatatype = '76' AND
                      y0mmsource = v_target2.
        IF t_det-type NE '3Z'.
          v_gsttotal    = v_gsttotal +
                               ( t_det-zamount * 5 / 100 ).
        ENDIF.
      ENDLOOP.
    Regards,
    Raj.

    Hello,
    Following is the procedure to convert alv output to spool and then it to PDF Format.
    After we display the ALV, we can check whether it is running in the background using system field u2018sy-batchu2018. Then,we call an function module named u2018GET_JOB_RUNTIME_INFOu2019 to get the current job information. Then go to spool request table tbtcp to get the spool id.
    Get current job details
      CALL FUNCTION u2018GET_JOB_RUNTIME_INFOu2019
           IMPORTING
                eventid                 = gd_eventid
                eventparm               = gd_eventparm
                external_program_active = gd_external_program_active
                jobcount                = gd_jobcount
                jobname                 = gd_jobname
                stepcount               = gd_stepcount
           EXCEPTIONS
                no_runtime_info         = 1
                OTHERS                  = 2.
    SELECT * FROM  tbtcp
                     INTO TABLE it_tbtcp
                     WHERE      jobname     = gd_jobname
                               AND jobcount = gd_jobcount
                               AND stepcount = gd_stepcount
                               AND listident <> u20180000000000u2032
                               ORDER BY   jobname
                                                   jobcount
                                                   stepcount.
      READ TABLE it_tbtcp INTO wa_tbtcp INDEX 1.
    Finally, we can call function module u2018CONVERT_ABAPSPOOLJOB_2_PDFu2018 to convert spool reqeust(which is stored in OTF format) to PDF format. Then we can call either function module u2018SO_DOCUMENT_SEND_API1u2032 or SAP BCS (Business Communication Service) to send the pdf as an email attachment.
    CALL FUNCTION u2018CONVERT_ABAPSPOOLJOB_2_PDFu2019
           EXPORTING
                src_spoolid              = gd_spool_nr
                no_dialog                = c_no
                dst_device               = c_device
           IMPORTING
                pdf_bytecount = gd_bytecount
           TABLES
                pdf = it_pdf_output
           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.
    Regards,
    Sayali
    Edited by: Sayali Paradkar on Apr 20, 2010 12:51 PM

  • How can I send a PDF form for someone to complete, then lock it for no one to see except us when they send it back?

    We would like to create a PDF form to collect sensitive information (phone numbers, payment information) from our customers. Ideally, we would like for them to be able to fill it out, then hit a button to encrypt it when completed, and send it back to us for us to view. Kind of like sending out an open, self-locking box for them to fill, and once they close it no one can see the contents without the key (which we would have).
    I’m using Adobe Acrobat Pro XI (11.0.07) on Mac OSX (10.9.4).
    Is this possible? If so, how do I do this? Thank you in advance!

    You can use certificate encryption. Each of your customers needs to have a digital certificate with a private key and send you the public key version of his/her certificate. You also need to have a digital certificate with private key and to send each customer the public version of your certificate.  Then after each customer fills in your form, she encrypts it with certificate encryption entering as recipients herself and you before sending this PDF to you. This way only this particular customer and you can open and see PDF filled with sensitive information.
    This workflow presumes that you and each of your customers can procure a digital certificate (Digital ID in Acrobat-speak).

  • Making spool, convert it into PDF and send that PDf throgh EMAIl

    Hi,
    In my making ALV report. In that i want to make the spool  and then convert it into the pdf and send mail to the recepient.
    Atul

    Hi,
    please try the following code. It works for me.
    DATA : itab LIKE tline OCCURS 0 WITH HEADER LINE.
    DATA : file_name TYPE string.
    DATA : path LIKE pcfile-path.
    DATA : extension(5) TYPE c.
    DATA : name(100) TYPE c.
    DATA:receiver TYPE somlreci1-receiver  ,
         p_file   LIKE rlgrap-filename.
    declarations for PDF convertion
    DATA:  path1       TYPE string ,
           fullpath    TYPE string.
    DATA :textlines LIKE tline OCCURS 100 WITH HEADER LINE.
    DATA otf LIKE itcoo OCCURS 1000 WITH HEADER LINE.
    DATA it_lines LIKE tline OCCURS 100 WITH HEADER LINE.
    DATA options LIKE itcpo.
    DATA header LIKE thead.
    DATA result     LIKE     itcpp.
    DATA: bin_filesize TYPE i.
        fullpath type string.
    DATA: docdata LIKE sodocchgi1,
    objpack LIKE sopcklsti1 OCCURS 1 WITH HEADER LINE,
    objhead LIKE solisti1 OCCURS 1 WITH HEADER LINE,
    objtxt LIKE solisti1 OCCURS 10 WITH HEADER LINE,
    objbin LIKE solisti1 OCCURS 10 WITH HEADER LINE,
    objhex LIKE solix OCCURS 10 WITH HEADER LINE,
    reclist LIKE somlreci1 OCCURS 1 WITH HEADER LINE.
    DATA: tab_lines TYPE i,
    doc_size TYPE i,
    att_type LIKE soodk-objtp.
    DATA: listobject LIKE abaplist OCCURS 1 WITH HEADER LINE.
    DATA: filesize TYPE i,
          convcount TYPE i,
          cancel(1).
    textlines-tdformat = '*'.
    textlines-tdline    = 'Hello Hao'.
    APPEND textlines.
    options-tdgetotf = 'X'.
    options-tdnoprev = 'X'.
    CALL FUNCTION 'PRINT_TEXT'
      EXPORTING
      APPLICATION                    = 'TX'
      ARCHIVE_INDEX                  = ' '
      ARCHIVE_PARAMS                 = ' '
      DEVICE                         = 'PRINTER'
       dialog                         = ' '
        header                         = header
       OPTIONS                        = options
    IMPORTING
      NEW_ARCHIVE_PARAMS             =
       RESULT                         = RESULT
      tables
        lines                          =  textlines
       otfdata                        = otf
    EXCEPTIONS
      CANCELED                       = 1
      DEVICE                         = 2
      FORM                           = 3
      OPTIONS                        = 4
      UNCLOSED                       = 5
      UNKNOWN                        = 6
      FORMAT                         = 7
      TEXTFORMAT                     = 8
      COMMUNICATION                  = 9
      BAD_PAGEFORMAT_FOR_PRINT       = 10
      OTHERS                         = 11
    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 FUNCTION 'CONVERT_OTF'
         EXPORTING
              format            = 'PDF'
         IMPORTING
              bin_filesize      = filesize
         TABLES
              otf               = otf
              lines             = it_lines
         EXCEPTIONS
              err_conv_not_possible = 1
              err_bad_otf           = 2.
    fullpath = 'C:/foldername/test.pdf'.
    CALL FUNCTION 'GUI_DOWNLOAD'
      EXPORTING
        bin_filesize                  = bin_filesize
        filename                      = fullpath
        filetype                      = 'BIN'
      APPEND                        = ' '
      CODEPAGE                      = ' '
      NO_BYTEORDER_MARK             = ' '
    IMPORTING
       FILELENGTH                    = c
      TABLES
        data_tab                      = it_lines
      FORMAT_TAB                    =
      EXCEPTIONS
        file_write_error              = 1
        no_batch                      = 2
        gui_refuse_filetransfer       = 3
        invalid_type                  = 4
        no_authority                  = 5
        unknown_error                 = 6.
    *filename = fullpath.
    CLEAR docdata.
    REFRESH objpack.
    CLEAR objpack.
    REFRESH objhead.
    REFRESH objtxt.
    CLEAR objtxt.
    REFRESH objbin.
    CLEAR objbin.
    REFRESH objhex.
    CLEAR objhex.
    REFRESH reclist.
    CLEAR reclist.
    REFRESH listobject.
    CLEAR listobject.
    CLEAR tab_lines.
    CLEAR doc_size.
    CLEAR att_type.
    Set Variables
    docdata-obj_name = 'Tst'.
    docdata-obj_descr = 'Testing'.
    reclist-receiver = give the mail id.
    reclist-rec_type = 'U'.
    APPEND reclist.
      CALL FUNCTION 'GUI_UPLOAD'
        EXPORTING
          filename                = fullpath
          filetype                = 'BIN'
        TABLES
          data_tab                = itab
        EXCEPTIONS
          file_open_error         = 1
          file_read_error         = 2
          no_batch                = 3
          gui_refuse_filetransfer = 4
          invalid_type            = 5
          no_authority            = 6
          unknown_error           = 7
          bad_data_format         = 8
          header_not_allowed      = 9
          separator_not_allowed   = 10
          header_too_long         = 11
          unknown_dp_error        = 12
          access_denied           = 13
          dp_out_of_memory        = 14
          disk_full               = 15
          dp_timeout              = 16
          OTHERS                  = 17.
      path = fullpath.
      CALL FUNCTION 'PC_SPLIT_COMPLETE_FILENAME'
      EXPORTING
      complete_filename = path
    CHECK_DOS_FORMAT =
      IMPORTING
    DRIVE =
      extension = extension
      name = name
    NAME_WITH_EXT =
    PATH =
      EXCEPTIONS
      invalid_drive = 1
      invalid_extension = 2
      invalid_name = 3
      invalid_path = 4
      OTHERS = 5
    DATA : pos TYPE i.
    DATA : len TYPE i.
    Loop And Put Data
    LOOP AT itab.
    pos = 255 - len.
    IF pos > 134.                         "length of pdf_table
    pos = 134.
    ENDIF.
    objbin+len = itab(pos).
    len = len + pos.
    IF len = 255.                         "length of out (contents_bin)
    APPEND objbin.
    CLEAR: objbin, len.
    IF pos < 134.
    objbin = itab+pos.
    len = 134 - pos.
    ENDIF.
    ENDIF.
    ENDLOOP.
    IF len > 0.
    APPEND objbin.
    ENDIF.
    Packing Info For Text Data
    DESCRIBE TABLE objtxt LINES tab_lines.
    READ TABLE objtxt INDEX tab_lines.
    docdata-doc_size = ( tab_lines - 1 ) * 255 + STRLEN( objtxt ).
    CLEAR objpack-transf_bin.
    objpack-head_start = 1.
    objpack-head_num = 0.
    objpack-body_start = 1.
    objpack-body_num = tab_lines.
    objpack-doc_type = 'TXT'.
    APPEND objpack.
    Packing Info Attachment
    name = extension.
    DESCRIBE TABLE objbin LINES tab_lines.
    READ TABLE objbin INDEX tab_lines.
    objpack-doc_size = ( tab_lines - 1 ) * 255 + STRLEN( objbin ).
    objpack-transf_bin = 'X'.
    objpack-head_start = 1.
    objpack-head_num = 0.
    objpack-body_start = 1.
    objpack-body_num = tab_lines.
    objpack-doc_type = name.
    objpack-obj_name = 'ATTACHMENT'.
    objpack-obj_descr = name.
    APPEND objpack.
    CALL FUNCTION 'SO_NEW_DOCUMENT_ATT_SEND_API1'
    EXPORTING
    document_data = docdata
    put_in_outbox = 'X'
    commit_work = 'X' "used from rel. 6.10
    TABLES
    packing_list = objpack
    object_header = objhead
    contents_bin = objbin
    contents_txt = objtxt
    receivers = 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 <> 0.
    MESSAGE ID 'SO' TYPE 'S' NUMBER '023'
    WITH docdata-obj_name.
    ENDIF.
    Keerthi

Maybe you are looking for