Posting invoice with attachments in SRM

Hello All,
We have a requirement in SRM to create a module pool program which will post an invoice (like standard invoice without PO reference). Once the invoice is posted, a custom worklfow is triggered to determine the approver for this invoice. After determining the approver, an e-mail will be sent to him along with the details of the invoice for approval.
We need to attach some documents while posting the invoice and the same need to be sent along with the e-mail as attachments. Currently we are using the standard FM's 'BBP_PD_INV_CREATE', 'BBP_PD_INV_UPDATE' and 'BBP_PD_INV_SAVE' to post the invoice with attachments.
Can you please suggest whether this is the correct way to post the invoice and if so how to retrieve these attachments from the invoice and attach it to our e-mail?
Thank you.
Regards,
Vishnu

why not use offline approval functionality which has option for sending ataachment

Similar Messages

  • To post invoice with higher amount

    Hi all,
    We want to try out a scenario, where in we want to post invoice with higher amount than PO. This is owing to big lead time between ordering and delivery. (And this is not the case of currency exchange rate changes). Can anyone suggest a solution / FI settings to do Invoice posting.

    hi,
    I see two ways:
    1. You can see the setting for the over posting in the MIRO itself...FOr this go through:
    Spro --> MM --> Logistics invoice verification --> define Vendor specific tolerances --> Here you can provide the tolerances as per your requirement...Here check for Automatic accpetence of the positive differences....
    2. You can use the tolerance B1 for the GR where you can post for the more amount , only you get the mail for more amount posted, and use the GR based IR indicator in the po...so taht invoice will be made of the same amount...
    Check the path for the tolerance setting:
    Spro --> MM --> Inventory mana. and PI ---> GR --> Set tolerance limit --> here enter for new details...
    Regards
    Priyanka.P

  • ERP invoice with reference to SRM Basic Contract?

    Hi
    In SAP SRM you can create a shopping cart or a PO with reference to a SRM Basic Contract by setting the item number to 0 like: 4700000107/0
    But with the new Ehp1 SAP states that ERP invoices can be created with reference to a SRM central contract (via SRM_SERVICE_PROC_1). But can you create the invoice with reference to contract item 0?
    The idea is to have the non PO related invoices registrered on the basic contract in SRM along with the PO's. A basic contract can't be copied to ERP, as there is no lines on it, but is the ERP contract copy needed for this scenario?
    So two questions:
    - is the ERP contract copy from SRM needed to use the Ehp1 functionality of creating invoices with reference to a SRM contract?
    - can the ERP invoice be created with reference to a basic SRM contract by giving the contract item as 0 or in another way?
    BR
    Jacob

    Hello,
    With SRM 70 EHP1 you can create ERP invoice against your SRM Central Contract distributed to ERP.
    To enable this you need to do few settings in ERP, for the same you can refer to the config guides available at Service market place for SRM701 releases.
    Configuring Contract Handling for Invoices : You use this procedure to configure contract handling for invoices in the SAP ERP system. You have activated the Procurement - SRM Integration 2 (LOG_MM_P2PSE_2) business function in the SAP ERP system.
    Steps :
    1. In Customizing for SAP ERP, perform the activity under :  Materials Management -- Logistics Invoice Verification -- Incoming Invoice -- Activate Direct Posting to Contracts , to allow direct references to contracts when creating invoices and parking documents.
    2. In Customizing for SAP ERP, perform the activity under : Materials Management -- Logistics Invoice Verification -- Invoice Block -- Set Tolerance Limits , to set the tolerance key for contracts (PC: Price variance for contract).
    The feature is termed as Invoice Reconciliation here.
    Best Regards,
    Rahul

  • Tax jurisdiction code creates a difference when posting invoice with PO ref

    I have added a tax jurisdiction code since the client wants to be able to sort taxes by location.  The problem now is that, I have posted a PO with a tax jurisdiction code but upon posting the invoice with reference to this PO, there's an error saying that there still exists a balance even though the balance on the screen is zero.  Any ideas on how this can be solved?

    Hi ,
    Can you please tell us how you resolved? We do facing the same problem.
    Thanks
    Ganesh

  • Hold and Post Invoice with Same Reference

    Hi,
    We have activated the check for duplicate invoices.
    Now, we hold an invoice with reference 123 in MIRO.  Then, we click on worklist and open the held invoice and post it.  But the system throws a duplicate invoice error.
    Why is the system checking duplicate invoice where it is actually the same invoice?
    Am I doing something wrong?
    Thanks.

    Hello,
    Invoice Duplication check takes place when we try to post an invoice based on the configuration. Our finding is that this check will not take place at the time of creation of invoice.
    However, this check can be introduced during the creation of invoice in user exit EXIT_SAPLMRME_003 and you have all the parameters for this check here.
    Thanks,
    Venu

  • Post Invoice with cost difference - TECO in accrual order

    Hi experts,
    I have the following problem:
    I want to post an invoice in MIRO with a different tax code (--> that results in a different cost) than in the original purchase order and already performed goods entry. The accounting assignment is done with an accrual (internal order). This internal order has been set to TECO and does not let me post an invoice with a different cost than in the purchase order.
    Is there a workaround without resetting the status of the internal order from TECO to OPEN?
    Thank you,
    Stefan

    Hi Srinivas,
    I need to set the VAT tolerance with 1 or 2 p.
    Hence its not available in OMR6.
    Any other settings ?
    Thanks,
    Ramya.

  • Transfer of legacy open P.O with attachments to SRM

    Hello SRM Folks,
    Can some one let me know How we can transfer Open P.O or closed P.O from Legacy system to SRM with  Attachments directly..
    Need your inputs..
    Thanks in advance

    Hi Ivy,
             Thanks for the quick response. the note provided is for SRM 7.0 and SRM 7.0 EHP1 packages and currently we are in SRM 7.0 EHP2
    Can you please guide me in configuring the settings required in DMS in ECC side.
    1. Is it mandatory to use only document type of SRM in ECC or any Z-Document type can be used ?
    2. Wat is the relevant settings to be mapped in DC10, DC20 and DC30 . If possible guide me step by step of settings for the document type to send the attachment in PR.
    3. Does the system sends the document in URL or as an attachment to SC ?
    Regards,
    Ramprakash N

  • Runtime Error when Posting Invoice with text added (MIRO)

    Hi Gurus,
    We are getting a shortdump (runtime error) when we post certain invoices in MIRO. This happens when we input some text in the text field or add some text to the NOTE tab.
    We are having exception ERROR_DP raised in the program c_textedit_control.
    If the text field is blank and nothing is writing in the NOTE tab, the invoice gets posted with no problem.
    Has anyone come accross this issue before and how did you solve it please.
    Thanks.

    are u processing thru BADI, then it is very easy there are interfaces and methods for handling texts. u sud not get any error and plz never write commit work in BADI.
    May be i cud provide more help if u share more details but let me tell more but let me share one recent development that i did.
    In ME59n when we do PR TO PO then texdts sud be copied to header text in PO and get reflected in PO. the coding is like below may be can give some clues wid ur MIRO stuff.
    METHOD if_ex_me_process_po_cust~process_header.
    *  Author        : Prasenjit Bist                                          *
    *  ID            : PRBIST                                                  *
    *  Date          : 04.08.2011                                              *
    *  Changes       : New Devlopment                                          *
    *  Change Request:                                                         *
    *  Description: To copy LSP information in PO                               *
    TYPES:
            BEGIN OF ty_text,
              auto_pr_po TYPE zman_auto_pr_po,
              plant TYPE zman_plant,
              vendor TYPE zman_vendor,
              lsp_vendor TYPE zman_lsp_name,
              contract_no_text TYPE zman_contract_no_text,
            END OF ty_text.
      TYPES:
           BEGIN OF ty_address,
             ort01      TYPE ort01_gp,  " city
             ort02      TYPE ort02_gp,  " district
             pfach      TYPE pfach,     " PO Box
             pstlz      TYPE pstlz,     " Postal code
             region     TYPE regio,     "Region (State, Province, County)
             telf1      TYPE telf1,     "1st telephone number
             telf2      TYPE telf2,     "2nd telephone number
             telfx      TYPE telfx,     "Fax number
             land1      TYPE land1,
           END OF ty_address.
      DATA:
       get the header level details
            ls_mepoheader TYPE mepoheader,
            lt_purchase_order_items TYPE purchase_order_items,
            ls_purchase_order_items LIKE LINE OF lt_purchase_order_items,
       get the line item details
            lt_mepoitem TYPE STANDARD TABLE OF mepoitem,
            ls_mepoitem TYPE mepoitem,
            lt_textlines TYPE mmpur_t_textlines,
            ls_textlines LIKE LINE OF lt_textlines,
    TEXT TYPES
            lt_texttypes TYPE mmpur_t_texttypes,
            ls_texttypes LIKE LINE OF lt_texttypes.
      DATA: l_name TYPE thead-tdname,
            ls_header TYPE thead,
            lt_lines TYPE STANDARD TABLE OF tline,
            ls_lines TYPE tline,
            l_tdobject TYPE thead-tdobject,
            l_metafield TYPE mmpur_metafield.
      DATA: ls_text TYPE ty_text,
            l_text(50).
      DATA: l_continue(1).
      DATA: l_pass_vendor TYPE lifnr,
            l_pass_plant TYPE werks,
            l_name1(35).
    fetch the address
      DATA: ls_address TYPE ty_address,
            l_landx    TYPE landx.
      CONSTANTS: lc_id TYPE thead-tdid     VALUE 'F01',
                 lc_langu TYPE thead-tdspras  VALUE 'E',
                 lc_object TYPE thead-tdobject VALUE 'EKKO'.
      CONSTANTS: lc_set(1) VALUE 'X',
                 lc_vendor(11) VALUE 'Vendor:    ',
                 lc_lsp_vendor(11) VALUE 'LSP Vendor:',
                 lc_contract_no_text(14) VALUE 'Contract Text:'.
      CLEAR: l_continue.
      IF sy-uname EQ 'PRBIST'.
    Read the header data
        ls_mepoheader = im_header->get_data( ).
    read teh item level data.
       break prbist.
        lt_purchase_order_items = im_header->get_items( ).
        LOOP AT lt_purchase_order_items INTO ls_purchase_order_items.
    The item attribute of the structure is reference to line item
          ls_mepoitem = ls_purchase_order_items-item->get_data( ).
          APPEND ls_mepoitem TO lt_mepoitem.
        ENDLOOP.
    CHECK VENDOR IS THE ONE WE WANT.
        SELECT SINGLE name1 FROM lfa1 INTO l_name1 WHERE lifnr = ls_mepoheader-lifnr.
    First read the vebdor name based on LIFNR.
        TRANSLATE l_name1 TO UPPER CASE.
        IF ( l_name1 EQ 'LSP1' ) OR ( l_name1 EQ 'LSP2' ).
          LOOP AT lt_mepoitem INTO ls_mepoitem.
            TRANSLATE ls_mepoitem-werks TO UPPER CASE.
            IF ls_mepoitem-werks EQ 'FI01'.
              l_continue = lc_set.
              l_pass_vendor = ls_mepoheader-lifnr.
              l_pass_plant = ls_mepoitem-werks.
              EXIT.
            ENDIF.
          ENDLOOP.
        ENDIF.
        IF l_continue EQ lc_set AND sy-tcode EQ 'ME21N'.
    Call the POP UP screen to display LPS information.
          CALL FUNCTION 'ZMAN_LSP_POP_UP'
            EXPORTING
              im_vendor = l_pass_vendor
              im_plant  = l_pass_plant
            IMPORTING
              ex_text   = l_text.
    GET Text Object (TTXOB)
          im_header->if_longtexts_mm~get_textobject(
                        IMPORTING ex_tdobject = l_tdobject
                                  ex_metafield = l_metafield ).
    GET TEXT IDS
          im_header->if_longtexts_mm~get_types(
                        IMPORTING ex_texttypes = lt_texttypes ).
    CHECK TEXT TYPE 'F01' EXISTS.
          READ TABLE lt_texttypes INTO ls_texttypes WITH  KEY tdid = lc_id.
          IF sy-subrc EQ 0.
    UPDATING ITEM TEXT.
            MOVE: l_tdobject TO ls_textlines-tdobject,
                  ls_texttypes-tdid TO ls_textlines-tdid,
                  '*' TO ls_textlines-tdformat.
         break prbist.
            ls_text = l_text.
         CONCATENATE l_text ls_texttypes-tdtext INTO ls_textlines-tdline.
           CONCATENATE ls_text-vendor
                       ls_text-plant
                       ls_text-lsp_vendor
                       ls_text-contract_no_text
                                               INTO ls_textlines-tdline SEPARATED BY space.
           APPEND ls_textlines TO lt_textlines.
          INSERT VENDOR
           CLEAR ls_textlines-tdline.
           CONCATENATE lc_vendor ls_text-vendor INTO ls_textlines-tdline SEPARATED BY space.
           APPEND ls_textlines TO lt_textlines.
          INSERT LSP VENDOR
            CLEAR ls_textlines-tdline.
            CONCATENATE lc_lsp_vendor ls_text-lsp_vendor INTO ls_textlines-tdline SEPARATED BY space.
            APPEND ls_textlines TO lt_textlines.
          INSERT CONTRACT TEXT.
            CLEAR ls_textlines-tdline.
            CONCATENATE lc_contract_no_text ls_text-contract_no_text INTO ls_textlines-tdline SEPARATED BY space.
            APPEND ls_textlines TO lt_textlines.
         INSERT A BLANK LINE.
            CLEAR ls_textlines-tdline.
            APPEND ls_textlines TO lt_textlines.
    INSERT addreSS CAPTION.
            CLEAR ls_textlines-tdline.
            MOVE 'Address:' TO ls_textlines-tdline.
            APPEND ls_textlines TO lt_textlines.
            break prbist.
    READ THE ADDRESS
            SELECT SINGLE   ort01      " city
                            ort02      " district
                            pfach      " PO Box
                            pstlz      " Postal code
                            regio      "Region (State, Province, County)
                            telf1      "1st telephone number
                            telf2      "2nd telephone number
                            telfx      "Fax number
                            land1      "COUNTRY
            FROM lfa1 INTO ls_address WHERE lifnr = ls_mepoheader-lifnr.
    GET COUNTRY
            SELECT SINGLE landx FROM t005t INTO l_landx WHERE spras = 'E' AND land1 = ls_address-land1.
    INSERT ADDRESS DETAILS.
            CLEAR ls_textlines-tdline.
            CONCATENATE ls_address-ort01 ls_address-ort01 INTO ls_textlines-tdline SEPARATED BY space.
            APPEND ls_textlines TO lt_textlines.
    INSERT COUNTRY.
            CLEAR ls_textlines-tdline.
            MOVE l_landx TO ls_textlines-tdline.
            APPEND ls_textlines TO lt_textlines.
    TELEPHONE DETAILS
            CLEAR ls_textlines-tdline.
            CONCATENATE 'Tel:' ls_address-telf1 '/' ls_address-telf2 INTO ls_textlines-tdline.
            APPEND ls_textlines TO lt_textlines.
    FAX DETAILS.
            CLEAR ls_textlines-tdline.
            CONCATENATE 'Fax:' ls_address-telfx INTO ls_textlines-tdline.
            APPEND ls_textlines TO lt_textlines.
          SAVE THE HEADER LONG TEXT.
            im_header->if_longtexts_mm~set_text(
                          EXPORTING im_tdid = ls_texttypes-tdid
                                    im_textlines = lt_textlines ).
          ENDIF.
        ELSEIF l_continue EQ lc_set AND sy-tcode EQ 'ME59N'.
    No need to display POPUP simply read the values and show.
    if not
        ENDIF. "(l_continue = 'X' and transaction code is ME21N or ME59N)
        CLEAR l_continue.
      ENDIF. "(sy-uname)
    ENDMETHOD.
    Edited by: Prasenjit Singh Bist on Aug 14, 2011 10:15 AM
    Edited by: Prasenjit Singh Bist on Aug 14, 2011 10:21 AM

  • Default due date , payment method when posting invoice with Special G/L

    Hi Gurus,
    I have a question is when I am posting an invocie to a vendor (FB60), Due On date, payment method  are automatically calculated based on the defaulted baseline date and the payment term in the vendor master. But when I am posting the invocie to the same vendor with Special G/L indicator, Due On date, payment method are not automatically calculated and system are expecting me to enter this date manually. Is there a way we can default this Due On date, payment thod based on payment term like it happens when posting to other invoices without Sp GL indicator ?
    Thanks
    Edited by: Ngoc Hoang on Nov 29, 2011 8:30 AM

    Dear Ngog,
    In general, special G/L transactions are used to map special processes
    to be stated separately in the balance sheet.So if you use special GL
    indicator, the fields relevant to payment terms (including baseline
    date) are not displayed. This is not controlled by field status.
    To make the fields You need ready for input for posting
    with special G/L indicator, the following Customizing setting is
    necessary:
    Financial Accounting -> Accounts Receivable and Accounts Payable
    ->Business Transactions -> Outgoing Payments -> Automatic Outgoing
    Payment-> Payment Method/Bank Selection -> Configure payment program ->
    All company codes -> double-click on corresponding company code -> under
    Vendor -> 'Sp. G/L transactions to be paid' you should enter the special
    G/L indicator A,B, etc.
    As explained in SAP note 4683, the only standard possibility to get the
    field payment terms on creating a posting with a special G/L indicator
    is by setting in the payment program configuration (trans. FBKP) for
    'All company codes' for customers/vendors 'Sp. G/L transaction to be
    paid'.
    Mauri

  • Post invoice with 1p or 2p difference

    Dear Experts,
    I need to post the invoice even if the balance with difference untill 2p.
    Can you please guide me how to do the same.
    If this post is in the wrong place,please guide me where to post the same.
    Thanks,
    RR.

    Hi Srinivas,
    I need to set the VAT tolerance with 1 or 2 p.
    Hence its not available in OMR6.
    Any other settings ?
    Thanks,
    Ramya.

  • Moveing average price after posting invoice with different value  than GR

    Hello all
    I have a question as in subject.
    If I will post goods receipt and after this I would like to post an invoice in MIRO with different value than in goods receipt , the MAP on my stock will change about this different???

    Hi,
    Your MAP will get recalculated as the price difference will change the total value of the stock and the stock quantity will remain the same
    MAP=Total value/Total stock
    Hope this will help you
    Reward if useful
    Thanx and Regards
    SHYAM.R

  • To be post invoice with different currency

    Hi,
    I have created PO in USD currency, local currency is Singapore dollors.In the vendor master i maintained in USD.
    I do the GR it post in to Local currency.
    When i do the MIRO it is possible to post in to Hong Kong dollor. Pl advice
    Regards,
    Kumar

    hi,
    Go to MIRO screen, enter Hong kong currency in Basic data field,
    Go to Details tab, enter exchange rate (if required ) from Singapore dollar to Hong kong. and enter the vendor code.
    Now you enter the reference Purchase order number. (make sure you have maintained exchange rate for singapore dollar and Hong kong in OB08 transaction.)
    Regards

  • Posting Invoice with FB60

    Dear ABAP Gurus!
    I need to create vendor invoice/credit note using in the same way like in transaction FB60.
    How can it be done?
    Is there any BAPI which can be used for that?
    Thank you very much,
    Svetlana

    Hi Svetlana,
    There're some alternatives:
    1) report RFBIBL00 (-> here's a docu)
    2) batch input
    3) Bapi ->BAPI to Park the Invoice Document
    4) BAPI_INCOMINGINVOICE_CREATE
    Regards Andreas

  • Posting of invoice with no reference to a PO from MIRO transaction

    Dears,
    I'm wokring on a SAP R/3 4.6 release and I would like to know if it is possible to post invoices with no PO from MIRO transaction. If it is so would it be possible for you to let me know which are the customizing steps to undertake and/or the fields to be populated in the MIRO transaction.
    I know that this kind of invoices should be processed throught transaction FB60 but in this case the use of MIRO transactino is required.
    Thanks in advance for the help.
    Davide

    Hi Davide,
    You have first to fill in the header the tab basic details and then in the tab Details "Inv.Party"
    Now you can go to the tab G/L account.
    With a PO the system take the vendor from the PO now you have first to fill the vendor number
    Paul

  • Post Vendor invoice with Down Payment via BAPI_INCOMINGINVOICE_CREATE

    Hi Experts,
    We have configured downpayment functionality for PO's. We have below process
    Create PO with down Payment request -> Create down payment request -> Run payment program for paying down payment -> Post GR -> Post invoice with BAPI (considering down payments against invoice)
    But unfortunately when I am trying to post PO invoice with downpayment details using BAPI_INCOMINGINVOICE_CREATE I do not see any fields related to down payment. Can some one confirm me if SAP has provided this functionality? if NO any workarounds?
    Rgds,
    Harish

    Hi experts,
    any suggestions?
    Regards,
    Elena

Maybe you are looking for