Purchase order in PDF Form

Hi Gurus,
What is the procedure to get purchase order print out in the form of PDF
Regards
Vivek

Use RSTXPDFT4 in SE38 / SA38 Program To convert po into PDF Format with Spool Request Number.
Regards,
Ashok

Similar Messages

  • Purchase order in PDF formate

    Hi experts,
    How can i get a purchase order  NUMBER PDF formate  .
    when i save the PURCHASE order  allways the file name is Purchase order.
    but we need it like   PO-4500096   
    with PO number ...  is thre any settings where can i take thi table and fealds to save PO in PDF with number..
    Regards,
    Anthyodaya.

    Thank you fo r the reply,
    when i save po now getting allways same file name like ( purchas order)
    but the problem is  I need to save PO  as PDF formate with PO number in PDF file name like ( PO450094)
    depends on po number ..
    How can i get a purchase order NUMBER PDF formate .
    when i save the PURCHASE order allways the file name is Purchase order.
    but we need it like PO-4500096
    with PO number ... is thre any settings where can i take thi table and fealds to save PO in PDF with number

  • Saving Purchase order as PDF

    Hello all,
    we would like to save our purchase orders as pdf file on the pc. We use SAPscript to create the POs.
    I have already searched the forums, but I didn't find a solution for me so far.
    I don't wanna use the way over the spool requests and the program RSTXPDFT4, because the end users don't have access to that.
    My question is, do I have to create a new output type for that? How does that work? Or what else do I have to do (step by step)?
    Thank you,
    Anne
    Message was edited by:
            Anne Jannasch

    Hi Anne,
    *PO to PDF to string
      CALL FUNCTION 'ECP_PDF_DISPLAY'
        EXPORTING
          purchase_order       = p_ebeln
       IMPORTING
    *   PDF_BYTECOUNT        =
         pdf                  = file
    *Converting Xstring to binary_tab
      CALL FUNCTION 'SCMS_XSTRING_TO_BINARY'
        EXPORTING
          buffer                = file
    *   APPEND_TO_TABLE       = ' '
    * IMPORTING
    *   OUTPUT_LENGTH         =
        TABLES
          binary_tab            = int_tab1
    **Downloading into PDF file
      CALL FUNCTION 'GUI_DOWNLOAD'
        EXPORTING
    *   BIN_FILESIZE                    =
          filename                        = 'D:RDsample1.pdf'
          filetype                        = 'BIN'
         TABLES
          data_tab                        = int_tab1
    With the help of above code and triggering user exit while saving PO , you are able to get PO PDF into PC.
    Just try it.
    Regards,
    Madhu

  • Disable Purchase Order (PO) PDF Print button

    Hi,
    We are using SRM 550.
    When a user views/changes a PO in the browser they can use the Preview Purchase Order button to view the PO as a PDF  document.
    This is OK, but we want to disable users from printing the form using the Adobe PDF  print button as there is no print log recorded for this action and so the audit trail is compromised.
    I have heard that this can be disabled by SAP when the PDF  is generated does anyone know how this is acheived.
    Thanks in advance
    Allen Brooks
    SRM BPO
    Sunderland City Council

    Hi Allen
    field control you can do either via below badi or templates.
    BBP_UI_CONTROL_BADI BAdI
    BBP_PO_UI_CTRL - field control in Purchase order
    you must control the output preview button to disable . if you still finding problem then only this note is applicable . got it.
    You do not want to provide the output preview button in the purchase order using the BBP_UI_CONTROL_BADI BAdI, however, this appears as soon as you go to the output area in the header data of the purchase order. However, the button no longer has the label "Output preview", instead it just has the label "Preview".
    This problem is caused by a program error: The display area contains a hidden "preview" button (the button is invisible but nevertheless it exists in the GUI) (Function group BBP_OUTPUT, screen 1100). This has the same name as the button for the "output preview" that exists separately in the button area of the purchase order (Function group BBP_PO_UI_ITS screen 2200). In the described case, the data of the output button is used for the purchase order button.
    Solution
    This note ensures that the output button does not exist (that is, not even in the GUI) if a calling application (in this case, purchase order) requires the generic output screen using the BBPS_OUTPUT_PUT_PBO function module without the preview button (IV_WITH_PREVIEW = ' '). Therefore, the data of the output button cannot be used for the purchase order button. This correction is available with Support Package 04 (SAPKIBKT04). For an advance correction, use Transaction SNOTE to implement the correction instructions attached to this note.

  • Imitating the Predefined Text Item Details of Purchase Order in AddOn Form

    Hello Experts,
    I want to know if it is possible to imitate the Item Details features of SAP Purchase Order Form in my customised Form.
    Means :-
    In Purchase Order Form , when we enable the Item Details Column and while entering the data we double click on that column
    then a Row Details Text window appears and we can enter the Summary Details or even we can select the Predefined Text
    in the column .
    The same feature i want to use in my customised AddOn .
    How to do this one ??????
    Thanks ,
    Amit

    Hi Amit ,
    You can achive this by creating the UDO(User Defined Objects)
    Link: [url]  http://wiki.sdn.sap.com/wiki/display/B1/FAQ_sdk#FAQ_sdk-UDOTutorial
    Link: [url] Creating scrrens with ou UDO
    Thanks
    Shafi

  • Standard Purchase Order (PO) MEDRUK form

    Hi,
        I am copying the standard MEDRUCK form to ZMEDRUCK. I believe standard MEDRUK form will be used for new purchase orders
    as well changed purchased orders and for the changed purchase orders it will print only changed lines and header.  In the form depending upon the new order or changed order, i will display the title of the order as NEW ORDER or CHANGED ORDER.
    Could you please help to fix this issue.
    Regards
    Ganesh

    Hi,
    For the Title you have to use Purchase Order.
    For the Purchase order the Form is MEDRUCK ..whether it is used for change and  to create New PO.
    only one this is you have to assigh the PO in the NACe transcation and to the Out put type.
    if you want to maintain two titles one for new ond other ofr change.
    give the Condition in the form ZMEDRUCK.
    if SY-tcode = 'ME21'.
    New Order.
    end if.
    if sy-tcode = 'ME22.
    Change Order.
    Endif.
    Thanks,
    Nelson
    Edited by: Nelson karunakar on Sep 18, 2008 12:04 PM

  • Generate Purchase Order with Adobe Forms.

    Hello SAPients!
    Can someone give me a general idea of the steps that I have to follow to generate the Purchase Order as an Adobe Form?
    Thanks!

    PLS CHECK THIS IF USEFUL
    http://help.sap.com/saphelp_nw2004s/helpdata/en/44/bca11fc60b7006e10000000a155369/frameset.htm

  • Purchase order to pdf conertion

    Hi,
      I am working on 4.7 version. I need to generate pdf file for po fom.
    My senario is when i am executing in me9f in back ground at the end of the day it should genarate po forms in pdf files in application server.

    Two options are there
    1. Customize your print program so that it converts script layout to PDF format.
    2. you can use ME9f and create spool of all the PO at the ned of the day & using program RSTXPDFT4 convert these spools to PDF one by one.
    anya

  • Reg Purchase Order in pdf format

    Hi ...
    1. We want to save PO as Pdf format suggest a way
    2. any other alternative other than generating spool and then running program RSTXPDFT4 ??
    3. I believe i cant get spool number from PO directly, if so many spools get created how do we know which spool belongs to which PO ?
    Thanks

    I managed to meet 'believe i cant get spool number from PO directly, if so many spools get created how do we know which spool belongs to which PO ?'
    by maintaining mail title and text of Po message as 'PO No. &EKKO-EBELN&'
    Now spool got generated as Po XXXXXXXX successfully ...

  • How to send PDF attachment through Email For Purchase Order

    Hi,
         Can you please tell me how to send the Purchase Order with PDF attachment. Thank you.
    Thanks & Regards,
    Rani.

    Find the below example
    *& Report  ZSPOOLTOPDF                                                 *
    *& Converts spool request into PDF document and emails it to           *
    *& recipicant.                                                         *
    *& Execution                                                           *
    *& This program must be run as a background job in-order for the write *
    *& commands to create a Spool request rather than be displayed on      *
    *& screen                                                              *
    REPORT  zspooltopdf.
    PARAMETER: p_email1 LIKE somlreci1-receiver
                                        DEFAULT '[email protected]',
               p_sender LIKE somlreci1-receiver
                                        DEFAULT '[email protected]',
               p_delspl  AS CHECKBOX.
    *DATA DECLARATION
    DATA: gd_recsize TYPE i.
    Spool IDs
    TYPES: BEGIN OF t_tbtcp.
            INCLUDE STRUCTURE tbtcp.
    TYPES: END OF t_tbtcp.
    DATA: it_tbtcp TYPE STANDARD TABLE OF t_tbtcp INITIAL SIZE 0,
          wa_tbtcp TYPE t_tbtcp.
    Job Runtime Parameters
    DATA: gd_eventid LIKE tbtcm-eventid,
          gd_eventparm LIKE tbtcm-eventparm,
          gd_external_program_active LIKE tbtcm-xpgactive,
          gd_jobcount LIKE tbtcm-jobcount,
          gd_jobname LIKE tbtcm-jobname,
          gd_stepcount LIKE tbtcm-stepcount,
          gd_error    TYPE sy-subrc,
          gd_reciever TYPE sy-subrc.
    DATA:  w_recsize TYPE i.
    DATA: gd_subject   LIKE sodocchgi1-obj_descr,
          it_mess_bod LIKE solisti1 OCCURS 0 WITH HEADER LINE,
          it_mess_att LIKE solisti1 OCCURS 0 WITH HEADER LINE,
          gd_sender_type     LIKE soextreci1-adr_typ,
          gd_attachment_desc TYPE so_obj_nam,
          gd_attachment_name TYPE so_obj_des.
    Spool to PDF conversions
    DATA: gd_spool_nr LIKE tsp01-rqident,
          gd_destination LIKE rlgrap-filename,
          gd_bytecount LIKE tst01-dsize,
          gd_buffer TYPE string.
    Binary store for PDF
    DATA: BEGIN OF it_pdf_output OCCURS 0.
            INCLUDE STRUCTURE tline.
    DATA: END OF it_pdf_output.
    CONSTANTS: c_dev LIKE  sy-sysid VALUE 'DEV',
               c_no(1)     TYPE c   VALUE ' ',
               c_device(4) TYPE c   VALUE 'LOCL'.
    *START-OF-SELECTION.
    START-OF-SELECTION.
    Write statement to represent report output. Spool request is created
    if write statement is executed in background. This could also be an
    ALV grid which would be converted to PDF without any extra effort
      WRITE 'Hello World'.
      new-page.
      commit work.
      new-page print off.
      IF sy-batch EQ 'X'.
        PERFORM get_job_details.
        PERFORM obtain_spool_id.
    Alternative way could be to submit another program and store spool
    id into memory, will be stored in sy-spono.
    *submit ZSPOOLTOPDF2
           to sap-spool
           spool parameters   %_print
           archive parameters %_print
           without spool dynpro
           and return.
    Get spool id from program called above
    IMPORT w_spool_nr FROM MEMORY ID 'SPOOLTOPDF'.
        PERFORM convert_spool_to_pdf.
        PERFORM process_email.
        if p_delspl EQ 'X'.
          PERFORM delete_spool.
        endif.
        IF sy-sysid = c_dev.
          wait up to 5 seconds.
          SUBMIT rsconn01 WITH mode   = 'INT'
                          WITH output = 'X'
                          AND RETURN.
        ENDIF.
      ELSE.
        SKIP.
        WRITE:/ 'Program must be executed in background in-order for spool',
                'request to be created.'.
      ENDIF.
          FORM obtain_spool_id                                          *
    FORM obtain_spool_id.
      CHECK NOT ( gd_jobname IS INITIAL ).
      CHECK NOT ( gd_jobcount IS INITIAL ).
      SELECT * FROM  tbtcp
                     INTO TABLE it_tbtcp
                     WHERE      jobname     = gd_jobname
                     AND        jobcount    = gd_jobcount
                     AND        stepcount   = gd_stepcount
                     AND        listident   <> '0000000000'
                     ORDER BY   jobname
                                jobcount
                                stepcount.
      READ TABLE it_tbtcp INTO wa_tbtcp INDEX 1.
      IF sy-subrc = 0.
        message s004(zdd) with gd_spool_nr.
        gd_spool_nr = wa_tbtcp-listident.
        MESSAGE s004(zdd) WITH gd_spool_nr.
      ELSE.
        MESSAGE s005(zdd).
      ENDIF.
    ENDFORM.
          FORM get_job_details                                          *
    FORM get_job_details.
    Get current job details
      CALL FUNCTION 'GET_JOB_RUNTIME_INFO'
           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.
    ENDFORM.
          FORM convert_spool_to_pdf                                     *
    FORM convert_spool_to_pdf.
      CALL FUNCTION 'CONVERT_ABAPSPOOLJOB_2_PDF'
           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.
      CHECK sy-subrc = 0.
    Transfer the 132-long strings to 255-long strings
      LOOP AT it_pdf_output.
        TRANSLATE it_pdf_output USING ' ~'.
        CONCATENATE gd_buffer it_pdf_output INTO gd_buffer.
      ENDLOOP.
      TRANSLATE gd_buffer USING '~ '.
      DO.
        it_mess_att = gd_buffer.
        APPEND it_mess_att.
        SHIFT gd_buffer LEFT BY 255 PLACES.
        IF gd_buffer IS INITIAL.
          EXIT.
        ENDIF.
      ENDDO.
    ENDFORM.
          FORM process_email                                            *
    FORM process_email.
      DESCRIBE TABLE it_mess_att LINES gd_recsize.
      CHECK gd_recsize > 0.
      PERFORM send_email USING p_email1.
    perform send_email using p_email2.
    ENDFORM.
          FORM send_email                                               *
    -->  p_email                                                       *
    FORM send_email USING p_email.
      CHECK NOT ( p_email IS INITIAL ).
      REFRESH it_mess_bod.
    Default subject matter
      gd_subject         = 'Subject'.
      gd_attachment_desc = 'Attachname'.
    CONCATENATE 'attach_name' ' ' INTO gd_attachment_name.
      it_mess_bod        = 'Message Body text, line 1'.
      APPEND it_mess_bod.
      it_mess_bod        = 'Message Body text, line 2...'.
      APPEND it_mess_bod.
    If no sender specified - default blank
      IF p_sender EQ space.
        gd_sender_type  = space.
      ELSE.
        gd_sender_type  = 'INT'.
      ENDIF.
    Send file by email as .xls speadsheet
      PERFORM send_file_as_email_attachment
                                   tables it_mess_bod
                                          it_mess_att
                                    using p_email
                                          'Example .xls documnet attachment'
                                          'PDF'
                                          gd_attachment_name
                                          gd_attachment_desc
                                          p_sender
                                          gd_sender_type
                                 changing gd_error
                                          gd_reciever.
    ENDFORM.
          FORM delete_spool                                             *
    FORM delete_spool.
      DATA: ld_spool_nr TYPE tsp01_sp0r-rqid_char.
      ld_spool_nr = gd_spool_nr.
      CHECK p_delspl <> c_no.
      CALL FUNCTION 'RSPO_R_RDELETE_SPOOLREQ'
           EXPORTING
                spoolid = ld_spool_nr.
    ENDFORM.
    *&      Form  SEND_FILE_AS_EMAIL_ATTACHMENT
          Send email
    FORM send_file_as_email_attachment tables it_message
                                              it_attach
                                        using p_email
                                              p_mtitle
                                              p_format
                                              p_filename
                                              p_attdescription
                                              p_sender_address
                                              p_sender_addres_type
                                     changing p_error
                                              p_reciever.
      DATA: ld_error    TYPE sy-subrc,
            ld_reciever TYPE sy-subrc,
            ld_mtitle LIKE sodocchgi1-obj_descr,
            ld_email LIKE  somlreci1-receiver,
            ld_format TYPE  so_obj_tp ,
            ld_attdescription TYPE  so_obj_nam ,
            ld_attfilename TYPE  so_obj_des ,
            ld_sender_address LIKE  soextreci1-receiver,
            ld_sender_address_type LIKE  soextreci1-adr_typ,
            ld_receiver LIKE  sy-subrc.
    data:   t_packing_list like sopcklsti1 occurs 0 with header line,
            t_contents like solisti1 occurs 0 with header line,
            t_receivers like somlreci1 occurs 0 with header line,
            t_attachment like solisti1 occurs 0 with header line,
            t_object_header like solisti1 occurs 0 with header line,
            w_cnt type i,
            w_sent_all(1) type c,
            w_doc_data like sodocchgi1.
      ld_email   = p_email.
      ld_mtitle = p_mtitle.
      ld_format              = p_format.
      ld_attdescription      = p_attdescription.
      ld_attfilename         = p_filename.
      ld_sender_address      = p_sender_address.
      ld_sender_address_type = p_sender_addres_type.
    Fill the document data.
      w_doc_data-doc_size = 1.
    Populate the subject/generic message attributes
      w_doc_data-obj_langu = sy-langu.
      w_doc_data-obj_name  = 'SAPRPT'.
      w_doc_data-obj_descr = ld_mtitle .
      w_doc_data-sensitivty = 'F'.
    Fill the document data and get size of attachment
      CLEAR w_doc_data.
      READ TABLE it_attach INDEX w_cnt.
      w_doc_data-doc_size =
         ( w_cnt - 1 ) * 255 + STRLEN( it_attach ).
      w_doc_data-obj_langu  = sy-langu.
      w_doc_data-obj_name   = 'SAPRPT'.
      w_doc_data-obj_descr  = ld_mtitle.
      w_doc_data-sensitivty = 'F'.
      CLEAR t_attachment.
      REFRESH t_attachment.
      t_attachment[] = it_attach[].
    Describe the body of the message
      CLEAR t_packing_list.
      REFRESH t_packing_list.
      t_packing_list-transf_bin = space.
      t_packing_list-head_start = 1.
      t_packing_list-head_num = 0.
      t_packing_list-body_start = 1.
      DESCRIBE TABLE it_message LINES t_packing_list-body_num.
      t_packing_list-doc_type = 'RAW'.
      APPEND t_packing_list.
    Create attachment notification
      t_packing_list-transf_bin = 'X'.
      t_packing_list-head_start = 1.
      t_packing_list-head_num   = 1.
      t_packing_list-body_start = 1.
      DESCRIBE TABLE t_attachment LINES t_packing_list-body_num.
      t_packing_list-doc_type   =  ld_format.
      t_packing_list-obj_descr  =  ld_attdescription.
      t_packing_list-obj_name   =  ld_attfilename.
      t_packing_list-doc_size   =  t_packing_list-body_num * 255.
      APPEND t_packing_list.
    Add the recipients email address
      CLEAR t_receivers.
      REFRESH t_receivers.
      t_receivers-receiver = ld_email.
      t_receivers-rec_type = 'U'.
      t_receivers-com_type = 'INT'.
      t_receivers-notif_del = 'X'.
      t_receivers-notif_ndel = 'X'.
      APPEND t_receivers.
      CALL FUNCTION 'SO_DOCUMENT_SEND_API1'
           EXPORTING
                document_data              = w_doc_data
                put_in_outbox              = 'X'
                sender_address             = ld_sender_address
                sender_address_type        = ld_sender_address_type
                commit_work                = 'X'
           IMPORTING
                sent_to_all                = w_sent_all
           TABLES
                packing_list               = t_packing_list
                contents_bin               = t_attachment
                contents_txt               = it_message
                receivers                  = t_receivers
           EXCEPTIONS
                too_many_receivers         = 1
                document_not_sent          = 2
                document_type_not_exist    = 3
                operation_no_authorization = 4
                parameter_error            = 5
                x_error                    = 6
                enqueue_error              = 7
                OTHERS                     = 8.
    Populate zerror return code
      ld_error = sy-subrc.
    Populate zreceiver return code
      LOOP AT t_receivers.
        ld_receiver = t_receivers-retrn_code.
      ENDLOOP.
    ENDFORM.
    Reward if helpful.
    Thanks,
    Kishore S N

  • Sending purchase order through e-mail

    Hi,
    I need to send purchase order in PDF through e-mail. I know it is possible to automatically have it sent to the vendor, but my requirement is different. PO is created as conversion of PREQ, so I need to send it not to vendor directly, but to the PREQ creator first (for possible corrections etc.) Is this somehow possible? I'm using exit EXIT_SAPMM06E_020 where I'd like to paste call to the function module (in update task), which would send the e-mail.
    Thanks in advance.
    Tomas

    Hi,
    Use this program
    *& Report  YMSL_ORDER_ACCEPTANCE
    REPORT  YMSL_ORDER_ACCEPTANCE.
    *********Variable Declarations *****************************
    DATA: GV_FORM_NAME TYPE RS38L_FNAM, " Used to store the function module generated by Smartform
          GV_BIN_FILESIZE TYPE I, " Store the file size
          GV_POS TYPE I,
          GV_LEN TYPE I,
          GV_TAB_LINES TYPE I,
          gv_desc_lines type i.
    ********Constants *******************************************
    DATA : GC_TEXT(11) TYPE C VALUE 'Form Output',
           GC_TST(3) TYPE C VALUE 'TST',
           GC_TESTING(20) TYPE C VALUE 'Order Acceptance'.
    *********Work Area Declarations *****************************
    DATA: GS_DOCDATA TYPE SODOCCHGI1, " Data of an object which can be changed
          GS_CTRLOP TYPE SSFCTRLOP, " Smart Forms: Control structure
          GS_OUTOPT TYPE SSFCOMPOP, " SAP Smart Forms: Smart Composer (transfer) options
          GS_OTFDATA TYPE SSFCRESCL, " Smart Forms: Return value at end of form printing
          GS_RECLIST TYPE SOMLRECI1, " SAPoffice: Structure of the API Recipient List
          GS_PDF_TAB TYPE TLINE, " Workarea for SAP Script Text Lines
          GS_OBJBIN TYPE SOLISTI1, " SAPoffice: Single List with Column Length 255
          GS_OBJPACK TYPE SOPCKLSTI1. " SAPoffice: Description of Imported Object Components
    DATA : w_doc_chng typE sodocchgi1.
    *********Internal tables Declarations *****************************
    DATA : I_OBJTXT LIKE SOLISTI1 OCCURS 0 WITH HEADER LINE.
    DATA: GT_RECLIST TYPE TABLE OF SOMLRECI1, " SAPoffice: Structure of the API Recipient List
          GT_PDF_TAB TYPE TABLE OF TLINE, " SAPscript: Text Lines
          GT_OTF TYPE TABLE OF ITCOO, " OTF Structure
          GT_OBJBIN TYPE TABLE OF SOLISTI1, " SAPoffice: Single List with Column Length 255
          GT_OBJPACK TYPE TABLE OF SOPCKLSTI1. " SAPoffice: Description of Imported Object Components
    DATA : BEGIN OF IT_ADR6 OCCURS 0,
              SMTP_ADDR TYPE ADR6-SMTP_ADDR,
            END OF IT_ADR6.
    DATA : W_FILE_NAME TYPE STRING,
          W_FILE_PATH TYPE STRING,
          W_FULL_PATH TYPE STRING.
    CLEAR : GV_FORM_NAME,
            GS_CTRLOP,
            GS_OUTOPT,
            GS_OTFDATA,
            GV_BIN_FILESIZE,
            GV_POS,
            GV_LEN,
            GV_TAB_LINES.
    SELECTION-SCREEN:  BEGIN OF SCREEN 1001 AS WINDOW  TITLE scr_ttl .
    SELECTION-SCREEN BEGIN OF BLOCK B1 WITH FRAME TITLE TXT_B1 NO INTERVALS.
    SELECTION-SCREEN BEGIN OF LINE .
    SELECTION-SCREEN COMMENT 1(15) TX_VBELN.
    PARAMETER : P_VBELN TYPE VBAK-VBELN .
    SELECTION-SCREEN END OF LINE.
    SELECTION-SCREEN END OF BLOCK B1.
    *SELECTION-SCREEN BEGIN OF BLOCK B2 WITH FRAME TITLE TXT_B2 .
    SELECTION-SCREEN BEGIN OF LINE.
    PARAMETERS: R_OUT RADIOBUTTON GROUP R1 DEFAULT 'X' USER-COMMAND RAD11 .
    SELECTION-SCREEN COMMENT 5(20) TXT_OUT.  "  roles by t-code
    SELECTION-SCREEN END OF LINE.
    SELECTION-SCREEN BEGIN OF LINE.
    PARAMETER R_PDF RADIOBUTTON GROUP R1 .
    SELECTION-SCREEN COMMENT 5(20) TXT_PDF.
    SELECTION-SCREEN END OF LINE.
    SELECTION-SCREEN BEGIN OF LINE.
    PARAMETER R_MAIL RADIOBUTTON GROUP R1 .
    SELECTION-SCREEN COMMENT 5(15) TXT_MAIL.
    *SELECTION-SCREEN END OF LINE.
    *SELECTION-SCREEN BEGIN OF LINE.
    SELECTION-SCREEN COMMENT 20(7) TXT_MAL1.
    PARAMETER : P_MAIL TYPE ADR6-SMTP_ADDR MODIF ID M1 .
    SELECTION-SCREEN END OF LINE.
    *SELECTION-SCREEN END OF BLOCK B2.
    SELECTION-SCREEN: END OF SCREEN 1001 .
    CALL SELECTION-SCREEN 1001 STARTING AT 20 5 ENDING AT 105 10.
    *SET PF-STATUS 'STATUS'.
    INITIALIZATION.
      TX_VBELN = 'Order'.
      TXT_B1 = 'Selection Criteria '.
    TXT_B2 = 'Output Criteria '.
      scr_ttl = 'Order Acceptance'.
      TXT_OUT = 'Print Output'.
      TXT_PDF = 'Save To PDF'.
      TXT_MAIL = 'Mail the Output'.
      TXT_MAL1 = 'E-mail'.
    AT SELECTION-SCREEN OUTPUT.
      LOOP AT SCREEN.
        IF R_MAIL <> 'X'.
          IF SCREEN-GROUP1 = 'M1'.
           SCREEN-INVISIBLE =  1.
            SCREEN-INPUT = 0. " Disable for input.
            MODIFY SCREEN.
          ENDIF.
        ENDIF.
      ENDLOOP.
    AT SELECTION-SCREEN ON VALUE-REQUEST FOR P_MAIL.
      PERFORM TABLE_HELP.
    START-OF-SELECTION..
    IF P_VBELN IS NOT INITIAL.
        PERFORM GET_SF.
        IF R_PDF = 'X' .
          PERFORM CONVERT_OTF.
          PERFORM SAVE_DIALOG.
          PERFORM DOWNLOAD.
        ELSEIF R_MAIL = 'X'.
          IF P_MAIL IS NOT INITIAL.
           PERFORM CONVERT_OTF.
           PERFORM SEND_MAIL.
          ELSE.
            MESSAGE 'Please Enter Email Address' TYPE 'S'.
            CALL TRANSACTION 'YMSL20'.
            LEAVE LIST-PROCESSING.
          ENDIF.
        ENDIF.
    ELSE.
       MESSAGE 'Please Enter Order No' TYPE 'S'.
         CALL TRANSACTION 'YMSL20'.
         LEAVE LIST-PROCESSING.
    *ENDIF.
    END-OF-SELECTION.
    *&      Form  TABLE_HELP
    FORM TABLE_HELP .
      IF R_MAIL = 'X'.
        SELECT SMTP_ADDR FROM ADR6 INTO TABLE IT_ADR6.
        SORT IT_ADR6.
        DELETE ADJACENT DUPLICATES FROM IT_ADR6 COMPARING ALL FIELDS.
        CALL FUNCTION 'F4IF_INT_TABLE_VALUE_REQUEST'
          EXPORTING
        DDIC_STRUCTURE         = ' '
            RETFIELD               = 'IT_ADR6-SMTP_ADDR'
        PVALKEY                = ' '
           DYNPPROG               = SY-REPID
           DYNPNR                 = SY-DYNNR
           DYNPROFIELD            = 'EMAIL'
        STEPL                  = 0
           WINDOW_TITLE           = 'SELECT MAIL ADDRESS'
        VALUE                  = ' '
           VALUE_ORG              = 'S'
        MULTIPLE_CHOICE        = ' '
        DISPLAY                = ' '
        CALLBACK_PROGRAM       = ' '
        CALLBACK_FORM          = ' '
        MARK_TAB               =
      IMPORTING
        USER_RESET             =
          TABLES
            VALUE_TAB              = IT_ADR6
        FIELD_TAB              =
        RETURN_TAB             =
        DYNPFLD_MAPPING        =
      EXCEPTIONS
        PARAMETER_ERROR        = 1
        NO_VALUES_FOUND        = 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.
      ENDIF.
    ENDFORM.                    " TABLE_HELP
    *&      Form  GET_SF
    FORM GET_SF .
    *u2022 Generate Function Module name
      CALL FUNCTION 'SSF_FUNCTION_MODULE_NAME'
        EXPORTING
          FORMNAME           = 'Z_CHK'
        IMPORTING
          FM_NAME            = GV_FORM_NAME
        EXCEPTIONS
          NO_FORM            = 1
          NO_FUNCTION_MODULE = 2
          OTHERS             = 3.
      IF SY-SUBRC  <> 0.
        MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
        WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
      ENDIF.
    *u2022 Assigning values to Form Control Structure and Form Composer
      IF R_OUT <> 'X'.
        GS_CTRLOP-GETOTF = 'X'.
        GS_CTRLOP-NO_DIALOG = 'X'.
        GS_OUTOPT-TDNOPREV = 'X'.
      ENDIF.
    */1BCDWB/SF00000368
    CALL FUNCTION  GV_FORM_NAME "'/1BCDWB/SF00000368'
    EXPORTING
      ARCHIVE_INDEX              =
      ARCHIVE_INDEX_TAB          =
      ARCHIVE_PARAMETERS         =
       CONTROL_PARAMETERS         = GS_CTRLOP
      MAIL_APPL_OBJ              =
      MAIL_RECIPIENT             =
      MAIL_SENDER                =
       OUTPUT_OPTIONS             = GS_OUTOPT
       USER_SETTINGS              = 'X'
    IMPORTING
      DOCUMENT_OUTPUT_INFO       =
       JOB_OUTPUT_INFO            = GS_OTFDATA
      JOB_OUTPUT_OPTIONS         =
    EXCEPTIONS
      FORMATTING_ERROR           = 1
      INTERNAL_ERROR             = 2
      SEND_ERROR                 = 3
      USER_CANCELED              = 4
      OTHERS                     = 5
    IF SY-SUBRC <> 0.
    MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
            WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
    ENDIF.
    CALL FUNCTION GV_FORM_NAME
       EXPORTING
      ARCHIVE_INDEX              =
      ARCHIVE_INDEX_TAB          =
      ARCHIVE_PARAMETERS         =
         CONTROL_PARAMETERS         = GS_CTRLOP
      MAIL_APPL_OBJ              =
      MAIL_RECIPIENT             =
      MAIL_SENDER                =
         OUTPUT_OPTIONS             = GS_OUTOPT
         USER_SETTINGS              = 'X'
         TEMP_VBELN                 =  P_VBELN
      IMPORTING
      DOCUMENT_OUTPUT_INFO       =
         JOB_OUTPUT_INFO            = GS_OTFDATA
      JOB_OUTPUT_OPTIONS         =
      EXCEPTIONS
        FORMATTING_ERROR           = 1
        INTERNAL_ERROR             = 2
        SEND_ERROR                 = 3
        USER_CANCELED              = 4
        OTHERS                     = 5
    IF SY-SUBRC <> 0.
       MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
               WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
    ENDIF.
    ENDFORM.                    " GET_SF
    *&      Form  CONVERT_OTF
    FORM CONVERT_OTF .
    *u2022 Assigning the OTFDATA to OTF Structure table
      CLEAR GT_OTF.
      GT_OTF[] = GS_OTFDATA-OTFDATA[].
    *u2022 Convert the OTF DATA to SAP Script Text lines
      CLEAR GT_PDF_TAB.
      CALL FUNCTION 'CONVERT_OTF'
       EXPORTING
         FORMAT                      = 'PDF'
         MAX_LINEWIDTH               = 132
      ARCHIVE_INDEX               = ' '
      COPYNUMBER                  = 0
      ASCII_BIDI_VIS2LOG          = ' '
      PDF_DELETE_OTFTAB           = ' '
       IMPORTING
         BIN_FILESIZE                = GV_BIN_FILESIZE
      BIN_FILE                    =
        TABLES
          OTF                         = GT_OTF
          LINES                       = GT_PDF_TAB
       EXCEPTIONS
         ERR_MAX_LINEWIDTH           = 1
         ERR_FORMAT                  = 2
         ERR_CONV_NOT_POSSIBLE       = 3
         ERR_BAD_OTF                 = 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.
    *t_otf[] = t_otf_from_fm-otfdata[].
    Function Module CONVERT_OTF is used to convert the OTF format to PDF
    *CALL FUNCTION 'CONVERT_OTF'
    *EXPORTING
    *FORMAT = 'PDF'
    *MAX_LINEWIDTH = 132
    ARCHIVE_INDEX = ' '
    COPYNUMBER = 0
    ASCII_BIDI_VIS2LOG = ' '
    PDF_DELETE_OTFTAB = ' '
    *IMPORTING
    *BIN_FILESIZE = W_bin_filesize
    BIN_FILE =
    *TABLES
    *otf = T_OTF
    *lines = T_pdf_tab
    *EXCEPTIONS
    *ERR_MAX_LINEWIDTH = 1
    *ERR_FORMAT = 2
    *ERR_CONV_NOT_POSSIBLE = 3
    *ERR_BAD_OTF = 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.
    ENDFORM.                    " CONVERT_OTF
    *&      Form  SAVE_DIALOG
    FORM SAVE_DIALOG .
    To display File SAVE dialog window
      CALL METHOD CL_GUI_FRONTEND_SERVICES=>FILE_SAVE_DIALOG
       EXPORTING
       WINDOW_TITLE = 'Download to PDF '
    DEFAULT_EXTENSION = '(*.PDF)'
       DEFAULT_FILE_NAME = 'file.pdf'
       FILE_FILTER = 'PDF Format(*.PDF)'
       INITIAL_DIRECTORY = 'C:\Documents and Settings\Administrator\Desktop'
    WITH_ENCODING =
       PROMPT_ON_OVERWRITE = 'X'
      CHANGING
      FILENAME = W_FILE_NAME
      PATH = W_FILE_PATH
      FULLPATH = W_FULL_PATH
    USER_ACTION =
    FILE_ENCODING =
      EXCEPTIONS
      CNTL_ERROR = 1
      ERROR_NO_GUI = 2
      NOT_SUPPORTED_BY_GUI = 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.
    ENDFORM.                    " SAVE_DIALOG
    *&      Form  DOWNLOAD
    FORM DOWNLOAD .
    Use the FM GUI_DOWNLOAD to download the generated PDF file onto the
    presentation server
      CALL FUNCTION 'GUI_DOWNLOAD'
      EXPORTING
      BIN_FILESIZE = GV_BIN_FILESIZE
      FILENAME = W_FULL_PATH
      FILETYPE = 'BIN'
    APPEND = ' '
    WRITE_FIELD_SEPARATOR = ' '
    HEADER = '00'
    TRUNC_TRAILING_BLANKS = ' '
    WRITE_LF = 'X'
    COL_SELECT = ' '
    COL_SELECT_MASK = ' '
    DAT_MODE = ' '
    CONFIRM_OVERWRITE = ' '
    NO_AUTH_CHECK = ' '
    CODEPAGE = ' '
    IGNORE_CERR = ABAP_TRUE
    REPLACEMENT = '#'
    WRITE_BOM = ' '
    TRUNC_TRAILING_BLANKS_EOL = 'X'
    WK1_N_FORMAT = ' '
    WK1_N_SIZE = ' '
    WK1_T_FORMAT = ' '
    WK1_T_SIZE = ' '
    IMPORTING
    FILELENGTH =
      TABLES
      DATA_TAB = GT_PDF_TAB
    FIELDNAMES =
    EXCEPTIONS
    FILE_WRITE_ERROR = 1
    NO_BATCH = 2
    GUI_REFUSE_FILETRANSFER = 3
    INVALID_TYPE = 4
    NO_AUTHORITY = 5
    UNKNOWN_ERROR = 6
    HEADER_NOT_ALLOWED = 7
    SEPARATOR_NOT_ALLOWED = 8
    FILESIZE_NOT_ALLOWED = 9
    HEADER_TOO_LONG = 10
    DP_ERROR_CREATE = 11
    DP_ERROR_SEND = 12
    DP_ERROR_WRITE = 13
    UNKNOWN_DP_ERROR = 14
    ACCESS_DENIED = 15
    DP_OUT_OF_MEMORY = 16
    DISK_FULL = 17
    DP_TIMEOUT = 18
    FILE_NOT_FOUND = 19
    DATAPROVIDER_EXCEPTION = 20
    CONTROL_FLUSH_ERROR = 21
    OTHERS = 22
      IF SY-SUBRC <> 0.
    MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
    WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
      ENDIF.
    ENDFORM.                    " DOWNLOAD
    *&      Form  SEND_MAIL
    FORM SEND_MAIL .
    ***changes by rajan
    *DATA : v_first TYPE USER_ADDR-NAME_FIRST,
         V_LAST   TYPE USER_ADDR-NAME_LAST.
    DATA : detail TYPE STRING.
    *SELECT SINGLE NAME_FIRST NAME_LAST FROM
    USER_ADDR INTO (V_FIRST,V_LAST)
    WHERE BNAME = syst-UNAME.
    CONCATENATE v_first V_LAST INTO detail SEPARATED BY space.
    data : v_po_no TYPE vbkd-bstkd,
          v_po_date TYPE vbkd-bstdk.
    data : day TYPE STRING,
           month type STRING,
           year  TYPE STRING.
    data : date TYPE STRING.
    SELECT SINGLE BSTKD BSTDK
      FROM VBKD
      INTO (v_po_no,v_po_date)
      WHERE VBELN = P_VBELN.
    day = v_po_date+6(2).
    month = v_po_date+4(2).
    year = v_po_date+0(4).
    CONCATENATE day '/' month '/' year INTO date.
      CONCATENATE 'Please Find attached Order Acceptance against your P.O.No.' v_po_no 'dated' date  '.' INTO detail SEPARATED BY
    space.
    **u2022 Assigning the Description of the object sent in the mail
    CLEAR GS_DOCDATA.
    GS_DOCDATA-OBJ_NAME = GC_TST.
    GS_DOCDATA-OBJ_DESCR = GC_TESTING.
    *u2022 Assigning the email id to Structure of the API Recipient List table
      CLEAR : GT_RECLIST, GS_RECLIST.
      GS_RECLIST-RECEIVER =  P_MAIL.       "
      GS_RECLIST-REC_TYPE = 'U'."'G' ."'O'. "'B'. "'U'.
      APPEND GS_RECLIST TO GT_RECLIST.
    mail body rajan
      I_OBJTXT = 'Dear Sir/Madam.'.
      APPEND I_OBJTXT.
      I_OBJTXT = detail.
      APPEND I_OBJTXT.
      I_OBJTXT = ''.
      APPEND I_OBJTXT.
      I_OBJTXT = 'Thanks.'.
      APPEND I_OBJTXT.
      I_OBJTXT = 'Best Regards,'.
      APPEND I_OBJTXT.
      I_OBJTXT = 'For Bilcare Ltd.'.
      APPEND I_OBJTXT.
      DESCRIBE TABLE i_objtxt LINES gv_desc_lines.
    *DESCRIBE TABLE i_objtxt LINES v_lines_txt.
      CLEAR I_OBJTXT.
      READ TABLE I_OBJTXT INDEX gv_desc_lines.
      if sy-subrc = 0.
    Document information.
    GS_DOCDATA-obj_name = 'ord_accept'.
    GS_DOCDATA-expiry_dat = sy-datum + 10.
    GS_DOCDATA-obj_descr = 'Order Acceptance'.
    GS_DOCDATA-sensitivty = 'F'. "Functional object
    GS_DOCDATA-doc_size = gv_desc_lines * 255.
    CLEAR Gs_OBJPACK-transf_bin.
    Start line of object header in transport packet
       GS_OBJPACK-TRANSF_BIN = 'X'.
        GS_OBJPACK-doc_size = gv_desc_lines * 255.
        GS_OBJPACK-HEAD_START = 1.
        GS_OBJPACK-HEAD_NUM = 0.
        GS_OBJPACK-BODY_START = 1.
        GS_OBJPACK-BODY_NUM = gv_desc_lines.
        GS_OBJPACK-DOC_TYPE = 'RAW'.
       GS_OBJPACK-OBJ_NAME = 'ORDER_ACCEPTANCE'.
       GS_OBJPACK-OBJ_DESCR = 'ORDER_ACCEPTANCE.PDF'.
        APPEND GS_OBJPACK TO GT_OBJPACK.
    GS_OBJPACK-HEAD_START = 1.
       GS_OBJPACK-HEAD_NUM = 0.
       GS_OBJPACK-BODY_START = 1.
    GS_OBJPACK-doc_type = 'RAW'.
    *APPEND GS_OBJPACK TO GT_OBJPACK.
      ENDIF.
    *u2022 Passing the SAP Script text lines to SAPoffice: Single List with Column Length 255 table
      CLEAR : GS_OBJBIN, GS_PDF_TAB.
      LOOP AT GT_PDF_TAB INTO GS_PDF_TAB.
        GV_POS = 255 - GV_LEN.
        IF GV_POS > 134. "length of pdf_table
          GV_POS = 134.
        ENDIF.
        GS_OBJBIN+GV_LEN = GS_PDF_TAB(GV_POS).
        GV_LEN = GV_LEN + GV_POS.
        IF GV_LEN = 255. "length of out (contents_bin)
          APPEND GS_OBJBIN TO GT_OBJBIN.
          CLEAR: GS_OBJBIN, GV_LEN.
          IF GV_POS < 134.
            GS_OBJBIN = GS_PDF_TAB+GV_POS.
            GV_LEN = 134 - GV_POS.
          ENDIF.
        ENDIF.
      ENDLOOP.
      IF GV_LEN > 0.
        APPEND GS_OBJBIN TO GT_OBJBIN.
      ENDIF.
    *u2022 Filling the details in SAPoffice: Description of Imported Object Components table
      DESCRIBE TABLE GT_OBJBIN LINES GV_TAB_LINES.
      CLEAR GS_OBJBIN.
      READ TABLE GT_OBJBIN INTO GS_OBJBIN INDEX GV_TAB_LINES.
        IF SY-SUBRC = 0.
        GS_OBJPACK-DOC_SIZE = ( GV_TAB_LINES - 1 ) * 255 + STRLEN( GS_OBJBIN ).
        GS_OBJPACK-TRANSF_BIN = 'X'.
        GS_OBJPACK-HEAD_START = 1.
        GS_OBJPACK-HEAD_NUM = 0.
        GS_OBJPACK-BODY_START = 1.
        GS_OBJPACK-BODY_NUM = GV_TAB_LINES.
        GS_OBJPACK-DOC_TYPE = 'PDF'.
        GS_OBJPACK-OBJ_NAME = 'ORDER_ACCEPTANCE'.
        GS_OBJPACK-OBJ_DESCR = 'Order Acceptance'.
        APPEND GS_OBJPACK TO GT_OBJPACK.
      ENDIF.
      CALL FUNCTION 'SO_NEW_DOCUMENT_ATT_SEND_API1'
        EXPORTING
          DOCUMENT_DATA                    = GS_DOCDATA
         PUT_IN_OUTBOX                    = 'X'
         COMMIT_WORK                      = 'X'
    IMPORTING
      SENT_TO_ALL                      =
      NEW_OBJECT_ID                    =
        TABLES
          PACKING_LIST                     = GT_OBJPACK
      OBJECT_HEADER                    =  I_OBJTXT
         CONTENTS_BIN                     = GT_OBJBIN
         CONTENTS_TXT                     = I_OBJTXT
      CONTENTS_HEX                     =
      OBJECT_PARA                      =
      OBJECT_PARB                      =
          RECEIVERS                        = GT_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 SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
               WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
      ELSE.
       WRITE 'Sent Successfully'.
        MESSAGE 'Sent Successfully' TYPE 'I'.
         CALL TRANSACTION 'YMSL20'.
         LEAVE LIST-PROCESSING.
      ENDIF.
      SUBMIT RSCONN01
      WITH MODE EQ 'INT'
      AND RETURN.
    ENDFORM.                    " SEND_MAIL
    Thanks
    Ankur Sharma

  • Spool number of purchase order

    Hi experts
    How do I get the spool number of a purchase order to send email?
    I need to know this spool because I use the FM 'CONVERT_OTFSPOOLJOB_2_PDF' and 'SO_NEW_DOCUMENT_ATT_SEND_API1' to send email with purchase order in PDF format.
    Thanks.

    Thanks Ernesto.
    I get the number spool otherwisw.
    temprally in Device, I change MAIL for PRINTER.
    then in the call function 'CLOSE_FORM'
    CALL FUNCTION 'CLOSE_FORM'
        IMPORTING
          RESULT     = RESULT
          rdi_result = rdi_result.
    I get the spool number in RESULT-TDSPOOLID
    Thanks

  • Purchase Order Information in Self Service Pages in HRMS

    Hi,
    Our system is on 12.1.3. We have a requirement such that a OAF page needs to be built and put after Location Changes (Self Service) which would give the Accounting segments and some other details as in Personal Info --> Assignemnts --> Purchase Order Info (D2K Forms of HRMS). User woudl select the values and then proceed to the review page.
    1. How the data which the users would enter will be saved in the Transaction_API tables?
    2. will that Automatically populate the review page with the old and new valuues.
    if any one has worked on this please share the approach.
    Thanks

    Hi,
    As far as my understanding and experience goes, page build is very complex using SSHR architecture as you will need to inherit SSHR AMs and Controller modules in your pages and also understand the code and supply of parameters etc to the pages. This will need a lot of research and though I want to help, It will be difficult to put it in a forum post in sufficient detail.
    I can assure you the work involved will be in weeks than in days. Also, there is no way to display the review page based on a new region without custom build to do it.
    However, a possible workaround which you could do is to use DFF or EIT to capture this information and then transfer it to the "Correct Home" of the data offline through a CP or via another node in the workflow.
    Sorry to be pessimistic. Please let me know if I can help with anything else.
    Edited by: Vinayaka Prabhu on Feb 7, 2012 4:31 PM

  • To find name for standard smartform of purchase order in Tcode me21n.......

    Please do not offer rewards
    Hi Abapers,
                 I had doubt, regarding how to find the name of standard smartform available for purchase order in tcode - ME21N.
              After executing ME21N, n print preview i get a form without logo. So i want to customize the form according to my clients requirement.For this i want to know the Smartform name, so tat i can copy to 'Z.....' and make the customization.
              Can anybody assist me overcome this problem of how to find out the name of smartform without knwing functionmodule name also....
                <<Text removed>>
    Advanced Thanks..............
    Edited by: Matt on Mar 25, 2009 10:26 AM

    DESIGN ONE SMARTFORM AS PERUR NEED.
    DRIVER PROGRAM FOR THISIS
    *& ZSAPFM06P
    &----     Print of a PO by SMART FORMS               *
    *& Purchase order printing program
    &----      FORM ENTRY
    SmartForm from customizing table TNAPR
    determine smartform function module for invoice
                    variant            = ' '
                    direct_call        = ' '
    control-no_open   = 'X'.
    control-no_close  = 'X'.
    call smartform invoice
                         archive_index        = toa_dara
                         archive_parameters   = arc_params
                    mail_appl_obj        =
                         mail_recipient       = ls_recipient
                         mail_sender          = ls_sender
                         output_options       = ls_composer_param
                         is_bil_invoice       = ls_bil_invoice
                         is_repeat            = repeat
              importing  job_output_info      = ls_job_info
                        document_output_info =
                        job_output_options   =
      error handling
       message id sy-msgid type sy-msgty number sy-msgno
               with sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
    analyse internal error table of Smart Forms
      add your handling
    REPORT ZSAPFM06P.
    TABLES: TNAPR,
            nast.
    DATA: lf_fm_name TYPE rs38l_fnam,
          lf_formname TYPE  tdsfname,
          control type ssfctrlop,
          errtab  type tsferror.
    FORM entry_neu using ent_retco ent_screen.
      lf_formname = tnapr-sform.
        CALL FUNCTION 'SSF_FUNCTION_MODULE_NAME'
             EXPORTING  formname           = lf_formname
             IMPORTING  fm_name            = lf_fm_name
             EXCEPTIONS no_form            = 1
                        no_function_module = 2
                        OTHERS             = 3.
        IF sy-subrc <> 0.
          message id sy-msgid type sy-msgty number sy-msgno
                with sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
        ENDIF.
      control-no_dialog = 'X'.
      control-preview   = 'X'.
      control-langu     = sy-langu.
          CALL FUNCTION lf_fm_name
               EXPORTING
                           control_parameters   = control
                           user_settings        = 'X'
                           is_nast              = nast
               EXCEPTIONS formatting_error     = 1
                          internal_error       = 2
                          send_error           = 3
                          user_canceled        = 4
                          OTHERS               = 5.
      if sy-subrc <> 0.
        ent_retco = 0.
      else.
        ent_retco = 0.
      endif.
      call function 'SSF_READ_ERRORS'
           importing
                errortab = errtab.
      if not errtab is initial.
      endif.
    ENDFORM.
    DEFINE UR PROGRAM NAME AND SMARTFORM NAME IN NACE.

  • Attachments to Purchase order via e-mail

    Hi,
    Im working on SRM5.5, Extended classic scenario,
    I have a requirement where :
    Right now , users can send Purchase Orders by mail to vendors but apart from the PDF version of the Purchase Order no other document can be attached to the email.
    I have to attach  an other document to this purchase order in PDF format and send it via email.
    Could anyone tell me if there is any BADI for this ?
    Any technical solution would be of great help.
    Thanks and Regards,
    Aravind Nair.

    Hi Yann.
    At this moment I have the a similar problem... In my case I'm woeking with MySAP Enterprise 4.7 and I want to send the PO and their attachament vía e-mail, currently only the PO is being sent to the Vendor and the attachment only appears like texts into the "body" of PO.  Is there some way to send PO and attachments at the same time??
    Thanks in advanced for your answer and help!!
    Regards,
    Blanca Reyes

Maybe you are looking for