Purchase order smart form - e-mail smartform output and item attachments

Hi,
Our release is ECC5.0. By configuration the PO smartform can be e-mailed to vendor as PDF attachment by standard output medium,external send. And this already works. However, the additional functionality required is:
1.) The documents attached to the actual PO line items should also be e-mailed as attachments to the vendor.
How can I accomplish this?
Do I need to write addition logic in my print program to retrieve these attachments by PO number and send them as a seperate e-mail with attachment? OR
Is there any way to send these attachments on the same e-mail where the PO is sent as a PDF attachment. OR
Can this be done by configuration?
Regards,
K..

Hi Ahmad ,
I got the same problem with a little more complexity because the mail can b send to several mails adresses ( some in copy ).
For the requirement to send also the document linked in PO's item , there's no standard solution . So you need to write a specific program for this .
You can have a look at this Sending DMS documents  as Email attachments , you will find information on how to retrieve the content of the document.
Let me know if you need more explanation.
Best regards.

Similar Messages

  • Regarding building a purchase order smart form

    hi guys,
    i got to design a  purchase order smart form  which consists of 3 pages and i need to enclose " terms and conditions " on the back side of every page. To be more elaborative on first page purchase order details and back side of it " terms and conditions " and same way on other 2 pages.
    how do i do it, can any one help me with this.
    thank you very much
         pavan

    Hi
    If the smartform purchase order is not available in your system
    means you can download the form IDES and you can upload the form in ur ecc 6.0 system.we faced a similar kind of problem in our system and we did as i said.
    Once you uploaded the things you can easily view the form interface and rest of the things related to smartforms.
    Thanks and Regards
    Arun Joseph

  • Purchase order smart forms

    i have copied the purchase order smart form and activated it and know i have the function moudule which need to be used in program but i am not shure how to do that can any one tell me how i need to write the coding for simple purchae order and then pass on the data to the smart form so that it displays the output.

    What you do for inserting lines is to select line one of the screen table and then click the insert button.
    Do this for each line in your BDC and then you only have to worry about line one of the table:
    Code:
    Form Add_Item_Line Tables t_Item_Data
                        using pu_program     type Program_Name
                              pu_screen      like sy-dynnr
                              pu_insert_line like sy-ucomm
                              pu_insert_at   like sy-tabix
                              pu_werks       like Zorder_Header-Dwerk.
         Data: t_characteristics type Order_Lines,
               w_Characteristic like Zorder_Line.
         Perform Zbdc_Screen using pu_Program pu_Screen.
         Perform Zbdc_Field  using c_OkCode pu_insert_line.           <----
         Perform Zbdc_Screen using pu_Program pu_Screen.
         Loop at t_Item_Data into w_Characteristic.
            Is this actually part of the item line or is it a
            Characteristic ?
              Translate w_Characteristic-AtNam to Upper Case.
              Case w_Characteristic-AtNam.
                   When 'MATNR'.              " Material
                        Perform Zbdc_Subscript using 'VBAP-MATNR'
                                                     pu_insert_at
                                                     W_Characteristic-AtWrt.
                        Perform Zbdc_Subscript using 'VBAP-WERKS'
    Looking at it from a modification point of view, the aim will be always to bring the line of the table that you're interested in to line one of the table
    so again you only need to handle line one of the screen table. Some of the codes for this are 'POPO' in Purchase order processing, and 'SORT' in CO02:
    Code:
    Now loop round the P/O and delete all of those that we don't want
       Loop at t_ekpo.
          Keep this P/O Line item ?
            MOVE SY-TABIX TO W_POPO.
            PERFORM ZBDC_SCREEN USING 'SAPMV50A'   '0270'.
            PERFORM ZBDC_FIELD  USING 'BDC_OKCODE' '=POPO'.
            PERFORM ZBDC_SCREEN USING 'SAPMV50A'   '0111'.
            PERFORM ZBDC_FIELD  USING 'RV50A-POSNR' W_POPO.
            PERFORM ZBDC_FIELD  USING 'BDC_OKCODE' '/00'.
            Read Table t_vl31_asn with key ebeln = t_ekpo-ebeln
                                           ebelp = t_ekpo-ebelp.
            If sy-subrc <> 0.
             Not found - discard this one.
               PERFORM ZBDC_SCREEN USING 'SAPMV50A'   '0270'.
               PERFORM ZBDC_FIELD  USING 'RV50A-LIPS_SELKZ(01)' 'X'.
            ELSE.
             Change the quantity....
               WRITE T_VL31_ASN-MENGE TO W_MENGE UNIT T_VL31_ASN-LMEIN.
               CONDENSE W_MENGE NO-GAPS.
               PERFORM ZBDC_SCREEN USING 'SAPMV50A' '0270'.
               PERFORM ZBDC_FIELD  USING 'LIPS-LFIMG(01)' W_MENGE.
            EndIf.
       EndLoop.
    Hope this helps.
    Award points if found usefull.
    Cheers,
    Chandra Sekhar.

  • Purchase order smart forms and scripts

    i need to create a smart form and script in simple purchase order there is no requirements has given to me, can any one tell me in detail how i need to do and what are the procedures i need to follow, example code will be usefull and steps to build it.

    Hi,
    Go through the links mentioned below.
    http://www.****************/Tutorials/Smartforms/SFMain.htm
    https://www.sdn.sap.com/irj/sdn/go/portal/prtroot/docs/library/uuid/3c5d9ae3-0501-0010-0090-bdfb2d458985
    http://www.sapmaterial.com/smartform_example.html
    Re: Hands on SAP Smart Forms
    smartforms
    A Simple Smartform Tutorial
    SAP Smartforms can be used for creating and maintaining forms for mass printing in SAP Systems. The output medium for Smartforms support printer, fax, e-mail, or the Internet (by using the generated XML output).
    According to SAP, you need neither have any programming knowledge nor use a Script language to adapt standard forms. However, basic ABAP programming skills are required only in special cases (for example, to call a function module you created or for complex and extensive conditions).
    1. Create a new smartforms
    Transaction code SMARTFORMS
    Create new smartforms call ZSMART
    2. Define looping process for internal table
    Pages and windows
    First Page -> Header Window (Cursor at First Page then click Edit -> Node -> Create)
    Here, you can specify your title and page numbering
    &SFSY-PAGE& (Page 1) of &SFSY-FORMPAGES(Z4.0)& (Total Page)
    Main windows -> TABLE -> DATA
    In the Loop section, tick Internal table and fill in
    ITAB1 (table in ABAP SMARTFORM calling function) INTO ITAB2
    3. Define table in smartforms
    Global settings :
    Form interface
    Variable name Type assignment Reference type
    ITAB1 TYPE Table Structure
    Global definitions
    Variable name Type assignment Reference type
    ITAB2 TYPE Table Structure
    4. To display the data in the form
    Make used of the Table Painter and declare the Line Type in Tabstrips Table
    e.g. HD_GEN for printing header details,
    IT_GEN for printing data details.
    You have to specify the Line Type in your Text elements in the Tabstrips Output options.
    Tick the New Line and specify the Line Type for outputting the data.
    Declare your output fields in Text elements
    Tabstrips - Output Options
    For different fonts use this Style : IDWTCERTSTYLE
    For Quantity or Amout you can used this variable &GS_ITAB-AMOUNT(12.2)&
    5. Calling SMARTFORMS from your ABAP program
    REPORT ZSMARTFORM.
    Calling SMARTFORMS from your ABAP program.
    Collecting all the table data in your program, and pass once to SMARTFORMS
    SMARTFORMS
    Declare your table type in :-
    Global Settings -> Form Interface
    Global Definintions -> Global Data
    Main Window -> Table -> DATA
    Written by : SAP Hints and Tips on Configuration and ABAP/4 Programming
    http://sapr3.tripod.com
    TABLES: MKPF.
    DATA: FM_NAME TYPE RS38L_FNAM.
    DATA: BEGIN OF INT_MKPF OCCURS 0.
    INCLUDE STRUCTURE MKPF.
    DATA: END OF INT_MKPF.
    SELECT-OPTIONS S_MBLNR FOR MKPF-MBLNR MEMORY ID 001.
    SELECT * FROM MKPF WHERE MBLNR IN S_MBLNR.
    MOVE-CORRESPONDING MKPF TO INT_MKPF.
    APPEND INT_MKPF.
    ENDSELECT.
    At the end of your program.
    Passing data to SMARTFORMS
    call function 'SSF_FUNCTION_MODULE_NAME'
    exporting
    formname = 'ZSMARTFORM'
    VARIANT = ' '
    DIRECT_CALL = ' '
    IMPORTING
    FM_NAME = FM_NAME
    EXCEPTIONS
    NO_FORM = 1
    NO_FUNCTION_MODULE = 2
    OTHERS = 3.
    if sy-subrc <> 0.
    WRITE: / 'ERROR 1'.
    MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
    WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
    endif.
    call function FM_NAME
    EXPORTING
    ARCHIVE_INDEX =
    ARCHIVE_INDEX_TAB =
    ARCHIVE_PARAMETERS =
    CONTROL_PARAMETERS =
    MAIL_APPL_OBJ =
    MAIL_RECIPIENT =
    MAIL_SENDER =
    OUTPUT_OPTIONS =
    USER_SETTINGS = 'X'
    IMPORTING
    DOCUMENT_OUTPUT_INFO =
    JOB_OUTPUT_INFO =
    JOB_OUTPUT_OPTIONS =
    TABLES
    GS_MKPF = INT_MKPF
    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.
    Additional Fonts for your SMARTFORMS
    You can create additional fonts and style with transaction SMARTSTYLES
    This can then be define in the paragraph and character formats, which you can then be assign to texts and fields in the Smart Form.
    The character formats includes effects such as superscript, subscript, barcode and font attributes.
    Also, you can refer to the below link for the explanation:
    http://help.sap.com/saphelp_46c/helpdata/en/4b/83fb42df8f11d3969700a0c930660b/frameset.htm
    Reward if helpful.
    Regards,
    Harini.S

  • Creating a Purchase Order Smart Form (Form Interface)

    After reading up on all the posts about making a PO smart form I know this:
    - An SAP script "medruck" is the current output
    - A smartform exists for PO's named "/SMB40/MMPO_L" or "/SMB40/MMPO_A"
    - You need to install an update to get those smartforms if you are using ECC 6.0
    So my dilemma is that the SAP administrator is on vacation for a week, so I can't install the update to our system.  I'm trying to just create it from scratch using the medruck SAP script as a reference, but I am a little confused.
    Basically all I need to know is what form interface parameters do I pass in?  Meaning how do I find out what structures and tables are imported into the function module when print preview is called from t-code ME22N?  Can you please provide proper syntax for form interface solution or instructions on how to determine imported variables into the smartform?

    Hi
    If the smartform purchase order is not available in your system
    means you can download the form IDES and you can upload the form in ur ecc 6.0 system.we faced a similar kind of problem in our system and we did as i said.
    Once you uploaded the things you can easily view the form interface and rest of the things related to smartforms.
    Thanks and Regards
    Arun Joseph

  • Purchase order smart form - Version number and link to RFQ

    Hi I am making enhancements to the purchase order smartform and wanted to print the version number (ekko-revno) on the print layout.
    The structure for ekko which is being filled in at runtime from print program ZMMS_640FM06P has the field 'revno' blank. It is filling in the rest all fields. When I go into the ekko table I can see a value in this field. Does anyone know why this field is NOT being filled. I do not want to do a select on this field again in my smart form.
    I would also like to know if there is a any way you can track back the RFQ number for a particular PO.
    Thanks in advance..

    I hope It wil be there in table, check the entry & check teh work area entry.
    Quotation will be available in PO item data. Keep  a break point in Table and workarea.
    Tx
    Parthi
    If helpful, reward points.

  • Modificatin in standard Purchase order smart forms

    Hi all,
       i m facing a prob.plz give guidelines to solve this problem.
       I m copying standard smartform /SMB11/MMPO_L  in a Prog. I want to add one colom in main window and in header window (WINHEADER and MAIN window) when ever i m adding one colum in header window (WINHEADER ) header window is disappeared in print preview . I m doing Following Steps .
    1) adding one col. in line type of Table structure T_HEADER by adjusting the total length 19.50 .
    2) add one text element in table structure .
    3) modifying their line indexes .
    after activating the samrtform , when i run it header is not displayed in the print preview .
    when i revert back these changes then header is again not displayed in Print Preview .

    HI i check all this all is correct . i have tried one more option
    first I add a coloumn in winheader table templet and adjust their length and indexes . Then activate it and with out running. i remove all the changes made and then again activate it and run it. Then header is  also not  displayed. while i revert all changes made.
    so help me to sort out this problem .
    Thanks & Regards
    Nitin

  • Purchase order sent as a mail

    CAn anyone please tell me the basic settings for the Purchase order output to be sent as the mail.

    Hi,
    Refer SAPNote 191470 - Purchase order as an e-mail
    Basically there are two mail types: Internet mail (external mail) and SAPOffice mail.
    Mail is sent via the output determination in both cases.
    If you use the external mail, the message for the purchasing document is converted into a corresponding text file which is sent to the vendor via the Internet.
    SAPOffice mail is sent only within the R/3 System and has mainly the function of providing information.
    In particular, it is not possible to attach a message (form) for a purchasing document to a SAPOffice mail.
    When using external mail , the following basic settings are required:
    1. You must maintain an e-mail address in the address in the vendor master.
    2. The same applies to your own user master. You also have to specify an e-mail address there in order to identify the sender.
    o Note that it is not possible to change the e-mail address of the vendor via the SAP purchase order transaction (ME21N, ME22N, and so on).
    o You can only make a permanent change using the vendor master transactions XK02 or MK02.
    o You can use a temporary email address in Transaction ME21N.
    3. For the output type for default values, a communication strategy needs to be maintained in the Customizing that supports the e-mail. You can find the definition of the communication strategy in the Customizing
    via the following path: (SPRO -> IMG -> SAP Web Application Server -> Basic Services -> Message Control -> Define Communication Strategy).
    As a default, communication strategy CS01 is delivered. This already contains the necessary entry for the external communication. Bear in mind that without a suitable communication strategy it is not possible to communicate with a partner via Medium 5 (external sending).
    4. Use the standard SAP environment (program 'SAPFM06P', FORM routine 'ENTRY_NEU' and form 'MEDRUCK') as the processing routines.
    5. In the condition records for the output type (for example, Transaction MN04), use medium '5' (External send).
    6. You can use Transaction SCOT to trigger the output manually. The prerequisite for a correct sending is that the node is set correctly. This is not described here, but it must have already been carried out.
    7. To be able to display, for example, the e-mail in Outlook, enter PDF as the format in the node.
    To use the SAPOffice mail, the following basic settings are required:
    1. For the output type for default values, a communication strategy needs to be maintained in the Customizing that supports the e-mail. You can branch to the maintenance of the communication strategy via the input
    help.
    2. Use the SAP standard environment (program "RSNASTSO" and FORM routine "SAPOFFICE_AUFRUF") as the processing routines.
    3. In the condition records for the output type (for example, Transaction MN04), use medium '7' (SAPOffice) and also partner role 'MP' (mail partner).
    Additional settings:
    Problem:
    How can you both change the mail title and text for the sending of a mail message and maintain a replacement parameter, for example a document number.
    Solution:
    1. The replacement routine is maintained in the Customizing for the output type in the detail screen on the 'General data' tab under 'Replacement of text symbols' (for Release < 4.6B, this can be found on the 'Mail' tab page).
    Program: SAPMM06E
    FORM routine: TEXT_SYMBOL_REPLACE
    2. If you work with the new Enjoy Transaction ME21N, ME22N or ME23N, Notes 370522 and 420066 are required.
    3. Maintain mail title and text.
    o If you want to send a purchase order within an R/3 system using the SAP office, you can maintain both the mail title ('Re:') and also a mail text in the Customizing for the output type To do this, select the directory mail title and text for the corresponding message type.
    o If you want to send a purchase order as (external) mail, for example, to a vendor, you have to maintain the mail title in the condition record for the output type (for example in Transaction MN05) on the 'Communication method' tab page. Enter the mail title in the 'Text for cover page' field. You cannot maintain an additional mail text.
    o Note that the values from the mail title are used to create the description for the attachment.
    4. The replacement parameters must be enclosed by &. Example: You want to enter the title 'PO number 450000001'. For this you have to enter the following in the Document Title field (Message Customizing -> sub-option: Mail title and texts) 'PO number &EKKO-EBELN&'
    o Note that the replacement via TEXT_SYMBOL_REPLACE can only be executed as of Release 4.6B.
    If you also want to use the purchase order number in a release < Release 4.6B, refer to Note 120474 - as an alternative, you have the option of implementing the text replacement functions by Consulting, priced separately
    Problem:
    You send a purchase order by e-mail and want to attach the document as a file type (for example, PDF).
    Solution:
    The file type is maintained in the corresponding node in SAPConnect (Transaction SCOT). If you have any further questions, contact your Basis administration.
    Attaching purchasing documents to e-mails is only possible for external (Internet) mails. This is not possible with SAPOffice mails.
    Problem:
    Although LET (print) for example is still set as the alternative to INT (e-mail) in the communication strategy, a program termination occurs because of a missing e-mail address.
    Solution:
    See Note 310234.
    Problem:
    When you send a mail message for a purchase order, a short dump occurs if the purchase order was created with reference to an outline agreement.
    Solution:
    See Note 502250

  • List of script and smart forms(except TNAPR) with output type or print prog

    How to find out List of SAP SCRIPT and SMART FORMS (except TNAPR)with output type or print program..I like to chk in output type WMTA  whch form should use.kindly help on this

    Hi
    WMTA is special msg and doesn't create any print: so you can't find a sapscript or smartform to link to it.
    WMTA is a message for delivery, so you can find it by NACE trx or TNAPR table (It's the same): infact here it can find only all messages of logistic modules (SD & MM).
    The routine ENTRY of RLAUTA20 is called by WMTA and creates a Transfer Order (for WM, Warehouse Management, module), so if you need to create a print for that msg you need to change prg RLAUTA20,
    Max

  • For this program i could send the smart form thru mail but in the inbox ..

    *& Report  ZSFOO
    REPORT  ZSFOO.
    *& Report  ZSFINV
    TABLES : KNA1,         " General Data In Customer Master
             KNB1,         " Customer Master(Company Code)
             BSID,         " Accounting: Secondary Index for Customers
             ZSMARTFORM,   " Custom table for Storing Bank Details
             zsf_exp_inv,  " Structure that stores required fields from all tables used
             KNVK.         " Customer Master Contact Partner
    data : Begin of it_struct occurs 0.
            include structure zsf_exp_inv01.
    data : End of it_struct.
    types : begin of ty_bsid,
            kunnr like bsid-kunnr,
            WAERS like bsid-WAERS,
            XBLNR LIKE BSID-XBLNR,
            BUDAT LIKE BSID-BUDAT,
            WRBTR LIKE BSID-WRBTR,
            BUKRS LIKE BSID-BUKRS,
            end of ty_bsid.
    types : begin of ty_kna1,
            kunnr like kna1-kunnr,
            NAME1 LIKE KNA1-NAME1,
            STRAS LIKE KNA1-STRAS,
            MCOD3 LIKE KNA1-MCOD3,
            LAND1 LIKE KNA1-LAND1,
            SORTL LIKE KNA1-SORTL,
            end of ty_kna1.
    types : begin of ty_knb1,
            kunnr like knb1-kunnr,
            ZTERM LIKE KNB1-ZTERM,
            end of ty_knb1.
    types : begin of ty_knVK,
            kunnr like kNVK-kunnr,
            NAME1 LIKE KNVK-NAME1,
            end of ty_knVK.
    types : begin of ty_ZSMARTFORM,
            SNO      LIKE ZSMARTFORM-SNO,
            CURRENCY LIKE zsmartform-currency,
            BANKNAME LIKE zsmartform-bankname,
            ADDRESS1 LIKE ZSMARTFORM-ADDRESS1,
            ADDRESS2 LIKE ZSMARTFORM-ADDRESS2,
            ADDRESS3 LIKE ZSMARTFORM-ADDRESS3,
            ADDRESS4 LIKE ZSMARTFORM-ADDRESS4,
            ADDRESS5 LIKE ZSMARTFORM-ADDRESS5,
            ADDRESS6 LIKE ZSMARTFORM-ADDRESS6,
            VALIDFROM LIKE ZSMARTFORM-VALIDFROM,
            VALIDTO   LIKE ZSMARTFORM-VALIDTO,
            end of ty_ZSMARTFORM.
    data : it_bsid type table of ty_bsid,
           it_kna1 type table of ty_kna1,
           it_knb1 type table of ty_knb1,
           it_zsmartform type table of ty_zsmartform,
           it_knVK type table of ty_kNVK.
    data : wa_bsid like line of it_bsid,
           wa_kna1 like line of it_kna1,
           wa_knb1 like line of it_knb1,
           wa_zsmartform like line of it_zsmartform,
           wa_knVK like line of it_knVK.
    *****************Selection Screen**********************************
    SELECTION-SCREEN BEGIN OF BLOCK B1 WITH FRAME TITLE TEXT-000.
    SELECT-OPTIONS : S_KUNNR FOR KNA1-KUNNR,
                     S_belnr FOR BSID-belnr,
                     S_BUKRS FOR BSID-BUKRS,
                     S_CURR FOR ZSMARTFORM-CURRENCY.
    SELECTION-SCREEN END OF BLOCK B1.
    DATA : BEGIN OF IT_PARAM OCCURS 0.
            INCLUDE STRUCTURE ZPARAMETERS.
    DATA :  END OF IT_PARAM.
    SELECTION-SCREEN BEGIN OF BLOCK B2 WITH FRAME TITLE TEXT-001.
    SKIP 1.
    Parameters : OPTION1 AS CHECKBOX,
                 P_POINF(300) type c,
                 OPTION2 AS CHECKBOX,
                 P_DESC(300) TYPE C,
                 OPTION3 AS CHECKBOX,
                 P_MONTH(200) TYPE C,
                 OPTION4 AS CHECKBOX,
                 P_RATE(100)  TYPE C.
    SELECTION-SCREEN END OF BLOCK B2.
    **********************PARAMETERS***********************************
    data :  l type i,
            Y(300) type c,
            j type i,
            k type i value 1,
            s type i,
            m(300) type c,
            p type i,
            z type i.
    data :  l1 type i,
            Y1(300) type c,
            j1 type i,
            k1 type i value 1,
            s1 type i,
            m1(300) type c,
            p1 type i,
            z1 type i.
    data :  l2 type i,
            Y2(300) type c,
            j2 type i,
            k2 type i value 1,
            s2 type i,
            m2(300) type c,
            p2 type i,
            z2 type i.
    data :  l3 type i,
            Y3(300) type c,
            j3 type i,
            k3 type i value 1,
            s3 type i,
            m3(300) type c,
            p3 type i,
            z3 type i.
    IF OPTION1 = 'X'.
      concatenate  P_POINF  ',' into P_POINF.
      l = strlen( P_POINF ).
      do l times.
        Y = P_POINF+j(k).
        case Y.
          when ','.
            m = P_POINF+s(z).
            s = j + 1.
            z = -1.
            p = p + 1.
            if p = 1.
              IT_PARAM-LINE1 = m.
            endif.
            if p = 2.
              IT_PARAM-LINE2 = m.
            endif.
            if p = 3.
              IT_PARAM-LINE3 = m.
            endif.
         when '.'.
            if p = 4.
              IT_PARAM-LINE4 = m.
            endif.
        endcase.
        j = j + 1.
        z = z + 1.
      enddo.
    ENDIF.
    IF OPTION2 = 'X'.
      concatenate  P_DESC  ',' into P_DESC.
      l1 = strlen( P_DESC ).
      do l1 times.
        Y1 = P_DESC+j1(k1).
        case Y1.
          when ','.
            m1 = P_DESC+s1(z1).
            s1 = j1 + 1.
            z1 = -1.
            p1 = p1 + 1.
            if p1 = 1.
              IT_PARAM-LINE5 = m1.
            endif.
            if p1 = 2.
              IT_PARAM-LINE6 = m1.
            endif.
            if p1 = 3.
              IT_PARAM-LINE7 = m1.
            endif.
         when '.'.
            if p1 = 4.
              IT_PARAM-LINE8 = m1.
            endif.
        endcase.
        j1 = j1 + 1.
        z1 = z1 + 1.
      enddo.
    ENDIF.
    IF OPTION3 = 'X'.
      concatenate  P_MONTH  ',' into P_MONTH.
      l2 = strlen( P_MONTH ).
      do l2 times.
        Y2 = P_MONTH+j2(k2).
        case Y2.
          when ','.
            m2 = P_MONTH+s2(z2).
            s2 = j2 + 1.
            z2 = -1.
            p2 = p2 + 1.
            if p2 = 1.
              IT_PARAM-LINE9 = m2.
            endif.
            if p2 = 2.
              IT_PARAM-LINE10 = m2.
            endif.
            if p2 = 3.
              IT_PARAM-LINE11 = m2.
            endif.
         when '.'.
            if p2 = 4.
              IT_PARAM-LINe12 = m2.
            endif.
        endcase.
        j2 = j2 + 1.
        z2 = z2 + 1.
      enddo.
    ENDIF.
    IF OPTION4 = 'X'.
      concatenate  P_RATE  ',' into P_RATE.
      l3 = strlen( P_RATE ).
      do l3 times.
        Y3 = P_RATE+j3(k3).
        case Y3.
          when ','.
            m3 = P_RATE+s3(z3).
            s3 = j3 + 1.
            z3 = -1.
            p3 = p3 + 1.
            if p3 = 1.
              IT_PARAM-LINE13 = m3.
            endif.
            if p3 = 2.
              IT_PARAM-LINE14 = m3.
            endif.
            if p3 = 3.
              IT_PARAM-LINE15 = m3.
            endif.
            if p3 = 4.
              IT_PARAM-LINe16 = m3.
            endif.
        endcase.
        j3 = j3 + 1.
        z3 = z3 + 1.
      enddo.
    ENDIF.
    APPEND IT_PARAM.
    select * from kna1 into corresponding fields of table it_kna1 where kunnr in s_kunnr.
    select * from knb1 into corresponding fields of table it_knb1 for all entries in it_kna1 where kunnr = it_kna1-kunnr.
    select * from bsid into corresponding fields of table it_bsid for all entries in it_kna1 where kunnr = it_kna1-kunnr and belnr in s_belnr and bukrs in s_bukrs..
    SELECT * FROM KNVK INTO CORRESPONDING FIELDS OF TABLE IT_KNVK FOR ALL ENTRIES IN IT_KNA1 WHERE KUNNR = IT_KNA1-KUNNR.
    select * from zsmartform into corresponding fields of table it_zsmartform .
    DATA :  AMT LIKE SPELL.
    loop at it_bsid into wa_bsid.
      read table it_kna1 into wa_kna1 with key kunnr = wa_bsid-kunnr.
      read table it_knb1 into wa_knb1 with key kunnr = wa_bsid-kunnr.
      read table it_zsmartform into wa_zsmartform with key  CURRENCY =  wa_bsid-WAERS.
      READ TABLE IT_KNVK INTO WA_KNVK WITH KEY KUNNR = WA_BSID-KUNNR.
      it_struct-name1 = wa_kna1-name1.
      it_struct-stras = wa_kna1-stras.
      it_struct-mcod3 = wa_kna1-mcod3.
      it_struct-land1 = wa_kna1-land1.
      it_struct-sortl = wa_kna1-sortl.
      it_struct-zterm = wa_knb1-zterm.
      it_struct-xblnr = wa_bsid-xblnr.
    it_struct-currency = wa_zsmartform-currency.
      it_struct-currency = wa_bsid-waers.
      it_struct-budat = wa_bsid-budat.
      it_struct-BANKNAME = wa_zsmartform-BANKNAME.
      it_struct-ADDRESS1 = wa_zsmartform-ADDRESS1.
      it_struct-ADDRESS2 = wa_zsmartform-ADDRESS2.
      it_struct-ADDRESS3 = wa_zsmartform-ADDRESS3.
      it_struct-ADDRESS4 = wa_zsmartform-ADDRESS4.
      it_struct-ADDRESS5 = wa_zsmartform-ADDRESS5.
      it_struct-ADDRESS6 = wa_zsmartform-ADDRESS6.
      it_struct-CURR = WA_BSID-WRBTR.
      IT_STRUCT-NAME = WA_KNVK-NAME1.
    IT_STRUCT-AMOUNT = IT_SPELL-AMT.
      append it_struct.
    endloop.
    data : x type i,
           x1 type i,
           a type string.
    loop at it_struct.
      x = strlen( it_struct-curr ).
      x1 = x - 3.
      a = it_struct-curr+0(x1).
      CALL FUNCTION 'SPELL_AMOUNT'
          EXPORTING
            AMOUNT          = a
      CURRENCY        = ' '
      FILLER          = ' '
      LANGUAGE        = SY-LANGU
          IMPORTING
            IN_WORDS        = AMT.
    EXCEPTIONS
      NOT_FOUND       = 1
      TOO_LARGE       = 2
      OTHERS          = 3
    *IF SY-SUBRC <> 0.
    MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
            WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
    *ENDIF.
    endloop.
    DATA: ws_ucomm LIKE sy-ucomm.
    DATA: form_name TYPE rs38l_fnam.
    DATA: wa_ctrlop TYPE ssfctrlop,
    wa_outopt TYPE ssfcompop.
    data : i_receivers TYPE TABLE OF somlreci1 WITH HEADER LINE,
          i_record LIKE solisti1 OCCURS 0 WITH HEADER LINE.
    DATA: t_otfdata TYPE ssfcrescl,
    t_pdf_tab LIKE tline OCCURS 0 WITH HEADER LINE,
    i_objpack LIKE sopcklsti1 OCCURS 0 WITH HEADER LINE,
          i_objtxt LIKE solisti1 OCCURS 0 WITH HEADER LINE,
          i_objbin LIKE solisti1 OCCURS 0 WITH HEADER LINE,
          i_reclist LIKE somlreci1 OCCURS 0 WITH HEADER LINE.
      data : wa_objhead TYPE soli_tab,
      wa_doc_chng typE sodocchgi1,
          w_data TYPE sodocchgi1,
          wa_buffer TYPE string,
          v_len_in LIKE sood-objlen,
          v_len_out LIKE sood-objlen,
          v_len_outn TYPE i,
          v_lines_txt TYPE i,
          v_lines_bin TYPE i.
    DATA: t_otf TYPE itcoo OCCURS 0 WITH HEADER LINE.
    DATA: w_filesize TYPE string.
    DATA: w_bin_filesize TYPE i.
    wa_ctrlop-getotf = 'X'.
    CALL FUNCTION '/1BCDWB/SF00000001'
    EXPORTING
    control_parameters = wa_ctrlop
    output_options = wa_outopt
    user_settings = 'X'
    IN_WORDS = amt
    importing
    job_output_info = t_otfdata
    TABLES
    I_ZSF_EXP_INV = it_struct
    I_ZPARAMETERS = it_param.
    IF SY-SUBRC <> 0.
    MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
    WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
    ENDIF.
    t_otf[] = t_otfdata-otfdata[].
    CALL FUNCTION 'CONVERT_OTF'
    EXPORTING
    format = 'PDF'
    max_linewidth = 132
    IMPORTING
    bin_filesize = w_bin_filesize
    TABLES
    otf = t_otf
    lines = t_pdf_tab
    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.
    CALL FUNCTION 'WS_DOWNLOAD'
    EXPORTING
    bin_filesize = w_bin_filesize
    CODEPAGE = ' '
    filename = 'c:     est59.PDF'
    filetype = 'BIN'
    IMPORTING
    filelength = w_filesize
    TABLES
    data_tab = t_pdf_tab
    EXCEPTIONS
    file_open_error = 1
    file_write_error = 2
    invalid_filesize = 3
    invalid_type = 4
    no_batch = 5
    unknown_error = 6
    invalid_table_width = 7
    gui_refuse_filetransfer = 8
    customer_error = 9
    OTHERS = 10
    IF sy-subrc <> 0.
    *You should include message-id in the report heading
    WRITE : sy-subrc.
    ELSE.
    WRITE : 'File Test.pdf downloaded succesfully'.
    ENDIF.
    loop at t_pdf_tab.
        translate t_pdf_tab using '~'.
        concatenate wa_buffer t_pdf_tab into wa_buffer.
      endloop.
      translate wa_buffer using '~'.
      do.
        i_record = wa_buffer.
        append i_record.
        shift wa_buffer left by 255 places.
        if wa_buffer is initial.
          exit.
        endif.
      enddo.
    Attachment
      refresh:
        i_reclist,
        i_objtxt,
        i_objbin,
        i_objpack.
      clear wa_objhead.
      i_objbin[] = i_record[].
    Create Message Body
    Title and Description
      i_objtxt = 'test with pdf-Attachment!'.
      append i_objtxt.
      describe table i_objtxt lines v_lines_txt.
      read table i_objtxt index v_lines_txt.
      wa_doc_chng-obj_name = 'smartform'.
      wa_doc_chng-expiry_dat = sy-datum + 10.
      wa_doc_chng-obj_descr = 'smartform'.
      wa_doc_chng-sensitivty = 'O'.
      wa_doc_chng-doc_size = v_lines_txt * 255.
    Main Text
    wa_doc_chng-doc_size = ( v_lines_txt - 1 ) * 255 + strlen( i_objtxt )
      clear i_objpack-transf_bin.
      i_objpack-head_start = 1.
      i_objpack-head_num = 0.
      i_objpack-body_start = 1.
      i_objpack-body_num = v_lines_txt.
      i_objpack-doc_type = 'RAW'.
      append i_objpack.
    i_objpack-transf_bin = 'X'.
    i_objpack-head_start = 1.
    i_objpack-head_num = 1.
    i_objpack-body_start = 1.
    i_objpack-body_num = v_lines_bin.
    i_objpack-doc_type = 'PDF'.
    i_objpack-obj_name = 'Smartform'.
    CONCATENATE 'Hazard report-' p_load '.pdf' INTO i_objpack-obj_descr.
    describe table i_objbin lines v_lines_bin.
    read table i_objbin index v_lines_bin.
    i_objpack-doc_size =  v_lines_bin * 255 .
    i_objpack-obj_descr = 'test'.
    i_objpack-doc_size = v_lines_bin * 255.
    APPEND i_objpack.
    Attachment
    (pdf-Attachment)
    i_objpack-transf_bin = 'X'.
    i_objpack-head_start = 1.
    i_objpack-head_num = 0.
    i_objpack-body_start = 1.
    Länge des Attachment ermitteln
    describe table i_objbin lines v_lines_bin.
    read table i_objbin index v_lines_bin.
    i_objpack-doc_size =  v_lines_bin * 255 .
    i_objpack-body_num = v_lines_bin.
    i_objpack-doc_type = 'PDF'.
    i_objpack-obj_name = 'smart'.
    i_objpack-obj_descr = 'test'.
    append i_objpack.
      clear i_reclist.
      i_reclist-receiver = '[email protected]'.
         i_reclist-express = 'X'.
      i_reclist-rec_type = 'U'.
      append i_reclist.
        call function 'SO_NEW_DOCUMENT_ATT_SEND_API1'
             EXPORTING
                  document_data              = wa_doc_chng
                  COMMIT_WORK = 'X'
                  put_in_outbox              = 'X'
             TABLES
                  packing_list               = i_objpack
                  object_header              = wa_objhead
                  CONTENTS_BIN               = i_objbin
                  contents_txt               = i_objtxt
                  receivers                  = i_reclist
             EXCEPTIONS
                  too_many_receivers         = 1
                  document_not_sent          = 2
                  document_type_not_exist    = 3
                  operation_no_authorization = 4
                  parameter_error            = 5
                  x_error                    = 6
                  enqueue_error              = 7
                  others                     = 8.
    for this program i could send the smart form thru mail but in the inbox i could not
    download it it says needed to be decoded properly.file not starting with pdf....
       IF sy-subrc <> 0.
         MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
         WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
       ELSE.
         CALL FUNCTION 'POPUP_TO_INFORM'
           EXPORTING
             titel = 'Mail sent'(003)
             txt1  = 'The report is sent via e-mail.'(004)
             txt2  = '  '.
         LEAVE PROGRAM.
       ENDIF.

    hi krishna,
    u r right. there is no error  in sending the mail and the file but the problem is that file created and converted to pdf is not done properly.jst verify whether the file is created properly or not .thats the only problem that can occurs else ur program is absolutely right.

  • How to get the Purchase Order sample form to have 2 detail regions?

    I would like to use the "Purchase Order" sample form as the base, and add one more "detail header" and "detail" subform to it.
    So I copy and paste the "detail header" + "detail" subforms, and position them right beneath the first "detail" subform.
    It works to certain extend.  I can click the "Add Item" button(s), and it would expand the respective "detail" region.
    The problem comes when things get expanded to the 2nd page.
    Say, I first add 5 rows to the 2nd "detail" region, everything still fits in one page;
    then I keep adding rows to the 1st "detail" region, and it begins to expand to the 2nd page....
    everything in the first "detail" region can still fit in the first page,
    the rows in the 2nd "detail" region should get pushed to the 2nd page...
    but when I look at the 2nd page of the form, the "detail header" on the 2nd page is that of the "FIRST" detail header, not the 2nd detail header!!
    So, when you look at the entire form, you have
    First Detail Header
    some First Detail Rows
    2nd Detail Header
    some 2nd Detail rows
    --- end of page 1---
    --- page 2---
    First Detail Header
    some detail rows (can't tell if they belong to the first detail region or 2nd detail region)
    This obviously is not right.
    So, how do I fix it such that the Detail Header on the 2nd page is that of the 2nd Detail header???

    an update:
    I have found out that the detail rows on the 2nd page are all that of the 2nd detail region.
    so, it's like this:
    when you look at the entire form, you have
    First Detail Header
    all the First Detail Rows
    2nd Detail Header
    some 2nd Detail rows
    --- end of page 1---
    --- page 2---
    First Detail Header
    some 2nd detail rows

  • Merging Smartform Output and Adobe Form Output in a single PDF File

    Hi All,
    My Requirement is as follows -
    I have multiple Smartforms and a single Adobe Form.
    I want to merge the Smartform Outputs and Adobe Form output in a single PDF.
    I am able to merge multiple Smartform Output in a PDF , but not able to find any way to merge smartform and adobe form output as the Smartform output is in OTF Format and Adobe form output is in PDF Format itself.
    I have tried few ways , but could not find any success.
    Request you all to give me some direction to this problem.
    Thanks & Regards
    Bhavika

    Kumar,
    I am afraid this is not possible using SAP functionality. There are probably 3rd party tools which allow you to merge several PDFs into one, but SAP itself does not offer such a mechanism. There is an internal SAP function, though, which can merge several "parts" (=several PDFs) within an Adobe-created spool request into a single PDF, intended for downloading this PDF from SP01.
    This is described in note 1717357.
    Best regards,
    Alexander

  • Approve a purchase order from an e-mail

    Greetings experts
    Is there any way to approve a purchase order from an e-mail which was sent to the approver from SAP?
    Please if anyone knows how to do help me.
    In advance thanks a million.

    Extended Notifications.
    Please search the forum before posting.

  • Purchase order summary form

    Hi
    In purchase order summary form i query the purchase order with release number it is showing some amount in the headers summary form ,
    Now i want to know the how this amount filed is return value.based on which values it is calculated.
    ex:-My po_num:-11177 and release_num=5 once i query combination of this in the purchase order summary form it is showing in the headers amount filed is 32,054.25,
    But i query from back end based this po_number po_headers_all table showing BLANKET_TOTAL_AMOUNT=3953444.9
    Now i need help how amount filed calculated in the purchase order form .
    thank's
    Narendra

    Hi Narendra,
    blanket amount is SUM of amount for all releases under that Blanket.
    Release amount is SUM of amount for all shipments for that release i.e. SUM (quantity x price) for all shipments under that release.
    e.g. you have a blanket with 2 releases for the same item with unit price $ 1000.
    Release 1: Quantity = 3. So here the release amount will be $ 3000 (3 x 1000).
    Release 2: Quantity = 5. So here the release amount will be $ 5000 (5 x 1000).
    And the blanket amount will be $ 8000 (3000 + 5000)
    When you are querying using the blanket number and release number in PO summary the system is showing only the release record and corresponding amount for that. As per above example you'll see $ 3000 for 1st release and $ 5000 for 2nd release.
    Now query in PO summary with blanket number and without any release number. Check the 'View Releases' checkbox and press find. You'll see the blanket and all associated releases. There the release amount will add up the total blanket amount.
    Thanks
    - Supro

  • I have two Apple IDs - one associated with iPad and iPhone and the other associated with iMac and MacAir. I am going to lose the former e-mail address imminently and would like to associate all devices with just one ID. How do I do this? Thanks

    I have two Apple IDs - one associated with iPad and iPhone and the other associated with iMac and MacAir. I am going to lose the former e-mail address imminently and would like to associate all devices with just one ID. How do I do this? Thanks

    Thanks - I guess it is like there were two of me!
    I bought the iPhone first and it seemed natural to link it to the (work) e-mail address which was in constant use. The iMac for home use came next and it seemed natural to use my home e-mail address, particularly as I knew by then that I would lose the work address after my imminent retirement. The same logic went for the recent puchase of the MacAir. I am not sure what happened with the iPad (also a recent purchase) - iTunes seemed to puch me towards the same ID as the iPhone.
    It is not a huge problem - just makes my persona look schizoid! Otherwise very happy with everything Apple.

Maybe you are looking for

  • Flex 4/Spark UI Design

    How exactly do "most" Flex developers do this nowadays?  I'm coming from Flex 3 with a lot of experience in Flex Builder 3, where "Design View" and doing basic visual customizations were a no-brainer.  Does anyone even use Design View anymore?  (Plea

  • Absolute URLs  not working when file is on a remote server.

    My client has asked me to provide a template for an investor relations section of their website. The HTML page or template for this page will be at the service providers site, but all the images etc. for the page will be linked to files on my clients

  • Add a group of  number  in double

    I have a for and get a few input value , and every text input 's size is 8 then when the form submit get the total so I have a_total = Double.valueOf(FormateData(field_one)).doubleValue() + Double.valueOf(FormateData(field2)).doubleValue() + Double.v

  • Problems with CC Questions

    I have CS6 and I keep getting questions to start or sign-up for CC. Now it won't let me open CS6. This is wasting my time!!!

  • How to remove phone backups from the cloud

    I had trouble with my Iphone a while back, and now I have two copies of my phone on the cloud.  I would really like to remove them both and save a new version, but I can not figure out how to delete the older copies.