BADI in Billing Transaction (VF01)

Dear All,
I am new to BADIs Development. And I want to put a BADI in Billing Transaction VF01. My users want some extra fields for putting the data. So please guide me how can I do that.
Regards,
Vishal

Hi vishal
if u specify exact fields and requirements , i think more forum memebers can guide u.
take help of technical consultant for finding out exact BADI  in applicable abap code u can use t.code SE17 and Se18 for the same.
a generic info for you is from sap help check this if it helps
Enhancement of Tables of Billing Document  
Use
For all components of the billing document there are customer includes that you can use to add your own fields without the need for modifications.
Features
All layers use the same customer includes. This means that, for example, when you include a field in the customer include of the document header, this field exists in the database layer, the logical layer, and the display layer. You cannot enhance the structures of the inbound interface of BAPI_ISTBILLDOC_CREATEMULTIPLE using customer includes. In accordance with the guidelines for programming BAPIs, you have to use the import table EXTENSIONIN to fill the fields in the customer include of the billing document.
For technical reasons, there are two customer includes in the components of the billing document. One customer include is designed for fields of a character nature that can be transferred automatically. The transfer is supported by predefined BAPI table enhancements. If you use this predefined BAPI table enhancement when you fill table EXTENSIONIN, the fields in the customer include are provided with data automatically. You do not need a BAdI implementation. For more information, see the section  Customer Enhancement and Modification of BAPIs (CA-BFA) in the documentation for SAP NetWeaver under Cross-Services ® Further Development, Modifications, u2026 (CA-BFA).
The predefined BAPI table enhancements also include the above-mentioned customer includes. The following table shows the names of the BAPI table enhancements and customer includes:
Part     BAPI Table Enhancement     Customer Include
Header     BAPI_TE_FKKINVBILL_H     CI_FKKINVBILL_H
Items     BAPI_TE_FKKINVBILL_I     CI_FKKINVBILL_I
Tax Items     BAPI_TE_FKKINVBILL_T     CI_FKKINVBILL_T
Additional Items     BAPI_TE_FKKINVBILL_A     CI_FKKINVBILL_A
A further customer include is designed for customer-defined fields that are not of a character nature or required for mapping. An example is additional currency fields. For these fields you have to implement a method of the BAdI ISTINV_BAPIBILL. The following table shows the names of the customer includes and the related methods that you have to implement for the transfer of the data:
Part     BAdI Method     Customer Include
Header     MAP_HEADER     CI_M_FKKINVBILL_H
Items     MAP_ITEM     CI_M_FKKINVBILL_I          
Tax Items     MAP_TAXITEM     CI_M_FKKINVBILL_T          
Additional Items     MAP_ADDITEM     CI_M_FKKINVBILL_A
The following figure shows how you can use the EXTENSION table to fill customer-defined fields:
       1.      The standard SAP fields are provided with data automatically. This means, for example, that the values of the structure HEADERS are transferred to the standard fields of the structure FKKINVBILL_H. Usually no BAdI implementation is required.
       2.      Use the customer include CI_FKKINVBILL_H for customer-defined character fields whose value is to be transferred from the interface to the billing document header unchanged. This include is also included in the BAPI table enhancement BAPI_TE_FKKINVBILL_H. Entries in table EXTENSIONIN that refer to this structure are processed automatically. A BAdI implementation is not required. However, we recommend BAdI implementation for checking. In the same way, you can add character fields to other parts of the billing document and provide them with data.
       3.      If you want to add a numerical field to the billing document header, you have to use the customer include CI_M_FKKINVBILL_H. Also define a BAPI table enhancement. We recommend that you only use character fields in the BAPI table enhancement. Implement method MAP_HEADER of the BAdI ISTINV_BILL. Use your BAPI table enhancement to identify the corresponding entries in table EXTENSIONIN in the method. Convert the character field from your BAPI table enhancement into the numerical field from the customer include CI_M_FKKINVBILL_H. In the same way, you can add numerical fields to other parts of the billing document and provide them with data.
       4.      You can also use the EXTENSIONIN table to provide a customer-defined table with values.
Regards
Mandar

Similar Messages

  • Suitable User-Exit or BAdi for transaction VF01

    Hi
    Is there any User-Exit or BAdi available for Transaction VF01, in which following fields are available.
    Invoice Number -> BELNR
    FI Doc. Type -> BLART
    Inv Date -> BLDAT
    Year -> GJAHR
    Thanks

    the following program are the user exit for billing.
    we often use RV60AFZC and RV60AFZZ.
    RV60AFZA
    RV60AFZB
    RV60AFZC
    RV60AFZD
    RV60AFZZ
    RV60BFZA
    For Sales order
    Pricing, item addtion deletion
    MV45AFZZ
    First, I did not find documentation for the BADI either. But at the first glance the process of implementing it looks quite straightforward. I assume you run R/3 Enterprise (4.7). So, you should implement BADI 'BADI_SD_SALES' - this must be done in transaction SE19. In particular for the purpose of adding some additional items into sales document I would implement method SAVE_DOCUMENT_PREPARE. This method has changing table parameter FXVBAP of type VA_VBAPVB_T - it holds all the sales document items. Just add items of yours to it. Certainly, you have to fill all the appropriate fields carefully.
    Hope this helps somehow.
    In that case you should use USEREXIT_DOCUMENT_SAVE_PREPARE subroutine (form). As far as I remember it has no parameters. To add items to the sales document you should modify internal table XVBAP.
    regards
    vinod

  • Additional Tab in Billing Transaction

    Hi,
    I have a requirement of adding an additional tab in the billing transaction VF01 / 02 / 03. Please can you help me suggesting any BADI or EXIT avaialable.
    I found BADI_SD_TAB_CUST_H and it is for internal use only.
    Thanks in advance.

    Hi
    SAP Note Number 302497 Additional cust. fields not displayed in 'Additional data B' and related notes tells you how to do it.
    Other useful notes:
    SAP Note 386694 - Additional data not displayed in screen 8459 and 8309
    SAP Note 420546 - Additional data B and transaction variants in sales order
    SAP Note 209278 - Display of customer-specific fields in sales doc
    Regards
    Eduardo
    Edited by: E_Hinojosa on Feb 17, 2011 3:48 PM

  • BADI For Transaction VF01

    Hi All,
    I have to trap the erro rlog which is generated in case of error while creating billing document using transaction VF01. That LOG can be viewed by using path EDIT->LOG.
    I debug the code and find out that it fill a structure VBFS in a Function 'RV_INVOICE_CREATE'. If i get the value of VBFS , i can easily trap the message.
    I check with some USER-EXIT, but did not get useful one. Can any one help me to find out any soultion or another approach like BADI. I also try with BADI VOR_WA_FAKTURA but when i put break point in the BADI, it does not stop here.
    PLease let me know, if any one of you know any soultion..
    Thanks
    Piyush

    HI,
    You can find the BADI your self, Check the class CL_EXITHANDLER.
    follow the below steps to find the suitable BADI for your case ..
    1) Goto se24 (Display class cl_exithandler)
    2) Double click on the method GET_INSTANCE.
    3) Put a break point at Line no.25 (CASE sy-subrc).
    Now
    4) Execute SAP standard transaction
    5) Press the required button for which you need to write an exit logic, the execution will stop at the break point.
    6) Check the values of variable 'exit_name', it will give you the BADI name called at that time.
    7) This way you will find all the BADIs called on click of any button in any transaction
    if you follow this 7 steps, you will find a suitable BADI.
    and also refer the thread
    Re: MB_MIGO_ITEM_BADI
    Regards
    Sudheer

  • Badi in transaction VF01

    Hello
    I am looking for a BADI (or user-exit) in transaction VF01, where I can do something AFTER save
    (User click on button "save")
    Thanks for any help
    Daniel
    Edited by: Daniel Müller on Aug 16, 2010 9:48 AM

    Hi,
      Please check the following link.
    Badi/User Exit for VF01
    You can find all the possible exits in VF01.
    Regards,
    Vamsi Krishna

  • Changes in Conditions in Billing in VF01 Transaction

    Dear All,
    I have a requirement that users (except Super User) should not be allowed to change certain condition types (e.g. Basic Price, Discounts and some more) in Conditions of VF01 Transaction. But some should be allowed to change such as Freight, Miscellaneous charges, Octroi etc. as these charges are decided only at the Invoicing time.
    Right now end user can change anything at Billing Level also. but we want to restrict the users.
    So tell me whether it is possible in SAP or not. If possible then please suggest the process of changing the settings.
    Kind Regards,
    Vishal
    +91 98123 35975

    Dear Yadav,
    Please confirm me that the this INCLUDE PROGRAM "MV45AOZZ" is also used in BILLING (in VF01 Transaction).
    Because I am checking that this Include program is used only in One main program i.e. Sales Order Program (SAPMV45A).
    MV45AOZZ is not getting called by Main Program of Billing i.e. SAPMV60A.
    Please check.
    Kind regards,
    Vishal

  • Badi/User Exit for VF01

    Hi Experts,
    Please understand my issue/requirement that, I have to make the item conditions tab in display or deactivate mode to prevent users to change or create the price or conditions while posting VF01.
    As std, system allows users to create or change the prices/qts and also add new conditions. My client needs to make it as display mode for all type of postings in VF01.
    Please guide me, how to arrive it through Exit or Enhancements.
    thanks & regards
    Sankar.

    Hi,
    Try these steps to find the BADI.
    1. Go to the TCode SE24 and enter CL_EXITHANDLER as object type.
    2. In 'Display' mode, go to 'Methods' tab.
    3. Double click the method 'Get Instance' to display it source code.
    4. Set a breakpoint on 'CALL METHOD cl_exithandler => get_class_name_by_interface'.
    5. Then run your transaction.
    6. The screen will stop at this method.
    7. Check the value of parameter 'EXIT_NAME'. It will show you the BADI for that transaction.
    These are exits in VF01.
    SDVFX001            User exit header line in delivery to accounting
    SDVFX002            User exit for A/R line in transfer to accounting
    SDVFX003            User exit cash clearing in transfer to accounting
    SDVFX004            User exit G/L line in transfer to accounting
    SDVFX005            User exit reserves in transfer to accounting
    SDVFX006            User exit tax line in transfer to accounting
    SDVFX007            User exit: Billing plan during transfer to Accounting
    SDVFX008            User exit: Processing of transfer structures SD-FI
    SDVFX009            Billing doc. processing KIDONO (payment reference number)
    SDVFX010            User exit item table for the customer lines
    SDVFX011            Userexit for the komkcv- and kompcv-structures
    V05I0001            User exits for billing index
    V05N0001            User Exits for Printing Billing Docs. using POR Procedure
    J_3RSINV            User Exits for Printing Billing Docs. using POR Procedure
    V60A0001            Customer functions in the billing document
    V60P0001            Data provision for additional fields for display in lists
    V61A0001            Customer enhancement: Pricing
    Hope this helps u.
    Thanks.

  • Badi/User-Exits for VF01

    Hi expert’s,
    I need to find a User-Exit or a BADI in transaction VF01 or VF02, I have found several but I need one  “before save” or “after save”.
    Anyone knows any User-Exit or Badi for this case?
    Thanks in advance
    Nuno Rodrigues

    SDVFX007            User exit: Billing plan during transfer to Accounting                  
    SDVFX008            User exit: Processing of transfer structures SD-FI                     
    SDVFX009            Billing doc. processing KIDONO (payment reference number)              
    SDVFX010            User exit item table for the customer lines                            
    SDVFX011            Userexit for the komkcv- and kompcv-structures                         
    V05I0001            User exits for billing index                                           
    V05N0001            User Exits for Printing Billing Docs. using POR Procedure              
    V60A0001            Customer functions in the billing document                             
    V60P0001            Data provision for additional fields for display in lists              
    V61A0001            Customer enhancement: Pricing                                          
    check out which exit suits ur reqirement.

  • User Exit/BADI/Enhancement Point  in VF01 before new document no assignment

    Hi Expert,
       I am looking for a user exit/BADI/Enhancement point which will trigger in VF01 before the new document no (Billing document no assign).
    I need to cross check few things in Billing via VF01 at billing document save and give error message accordingly. The problem is if new number assign and there is error due to my code then when user save the document next he get a new no. its mean a no skip.
    Example: The invoice no is 1000. User start creating a billing document with Vf01 and he get an error message due to my code at exit , at this point of time the next number assign to billing which is 1001 but document not save due to my error message. Now after applying correction user save data and billing document created with no 1002. So there is no skip.
    I tried BADI BADI_SD_ACCOUNTING but this will trigger after no assignment.  Can someone provide me a user exit/BADI/Enhancement point in VF01 which trigger before no range assignment and contain at least Billing header data to use in my code?
    Regards
    Swati
    Edited by: Swati Namdev on Nov 16, 2010 9:55 PM

    HI Brad and team,
       BRED is right. I check few user exit normally all of us have that list or easily available on net.
    BRED: my question is: I need to check the billing date VBRK-FKDAT of document should not be less than the sales order plan billing date VBAP-Oldate.
    If this check fail then won't allow the user to create billing document. The problem is I used one user exit SDVFX001 already define previously that's work fine but issue is that user exit trigger after the billing no assignment. That's why when user get that error message he correct the document and create billing this time he get a new number which is skip of one no.
    That why I need a User Exit/BADI/Enhancement Point  which trigger at save but before document no assignment.
    Please update more about your comment "Why not use a header level copy requirement routine to perform the checks and log the messages? This is the standard process."  .
    Suggest user exit USEREXIT_FILL_VBRK_VBRP  trigger before save. I need at save the reason is VBRK-FKDAT  this can be change.
    Feel free to contact me back if you need more clarification.
    Regards
    Swati
    Edited by: Swati Namdev on Nov 17, 2010 6:22 PM
    Edited by: Swati Namdev on Nov 17, 2010 6:25 PM
    Edited by: Swati Namdev on Nov 17, 2010 6:32 PM
    Edited by: Swati Namdev on Nov 17, 2010 6:47 PM

  • Billing document VF01

    Hi
    When i m trying to do billing at VF01..I m getting this error.
    Technical information about the message:
    Diagnosis
    Record type F is assigned to a number range group which does not
    assign numbers automatically.
    System response
    A document number is required to continue the transaction.
    Procedure
    If possible, enter a document number.
    If not, assign the record type (element) to a group with internal
    number ranges, or define an internal number range for the group
    currently assigned.
    Maintain number ranges for plan data
    Maintain number ranges for actual data
    Message classe...... "KE".
    Please advice how to rectify this....and it is talking about maintaining of number range...but where to assign.

    Hi,
    The issue seems to be associated with COPA. Recorde Type 'F' refers to billing data which will transfer data from SD to COPA.
    Please check whether you have defined the number ranges for actual postings in COPA (t.code: KEN1). If number range is already maintained, check whether it is external or internal. If it is external, change it to 'internal'.
    Hope this will help.
    Cheers.

  • Preview on BILL save (VF01)

    HI,
    I have a problem with the transaction VF01.
    The user request is that when he saves a new bill, he wants to see the bill print preview ...
    Actually when user try to save document the print is launched on the printer and new spool is created.
    I tried to valorize the structure ie_outputparams param 'preview' but it didn't work ...
    Someone have the solution for my problem???
    Best regards.

    Found another solution that worked for me, which did not involve going into terminal:
    Open Finder
    Click on GO in menu and a list box drops down
    Press the ALT key (This will show the Library folder int he drop down list box that appeared)
    Click LIBRARY which opens another list of folders
    Click CONTAINERS which will open the container folder and should show a Textedit and Preview folder.
    DELETE both these folders
    And that's it!!

  • Add customer fields on item level billing document VF01

    Hi gurus,
    Does anybody know a user exit (or another way) to add 3 customer fields on a subscreen during creation of a billing document (transaction VF01) ? I'm afraid I need to do a modification for this but maybe there is a better solution.
    Thanks for your reaction.
    Serge

    Hi
    These are the userexits
    SDVFX007            User exit: Billing plan during transfer to Accounting
    SDVFX008            User exit: Processing of transfer structures SD-FI
    SDVFX009            Billing doc. processing KIDONO (payment reference number)
    SDVFX010            User exit item table for the customer lines
    SDVFX011            Userexit for the komkcv- and kompcv-structures
    V05I0001            User exits for billing index
    V05N0001            User Exits for Printing Billing Docs. using POR Procedure
    V60A0001            Customer functions in the billing document
    V60P0001            Data provision for additional fields for display in lists
    V61A0001            Customer enhancement: Pricing
    may be you can look into this SDVFX010
    Please reward if useful.

  • NO Event created for Customer Billing Document (VF01) in Work Flow

    Hi expert ,
    I would like to trigger a work flow from the customer invoice created event.
    Bus Object should be "VBRK" or "BUS2037" ( Customer billing document )
    But ,I cannot get any event after the billing transaction in VF01.
    I use the "SWEL" transaction to monitor all events triggered, but I don't see any event related with billing ( I only see events for sales order creation ).
    Also in "SWO1" BUS2037 has only one event  : "ItCustBillingDoc.assigned"; but It doesn't make any sense to me .Why isn't there a created event for invoice ?
    Has any of you been thru that problem ?
    Thanks for advising .
    Sincerely
    Yvon.

    Hi thanks for your answer.
    SWELS is activated.
    PB still remains :
    In  SWEL i see no event triggered after the creation of a billing invoice .
    I can only see an event related to BUS2032 which is the sales order creation .
    But nothing related to the billing document although the doument is created in SD ( I have the record in VBRK ).
    Any idea Why ?
    Thanks again

  • Any BAPI for Transaction VF01??

    Hi Experts ,
    Is there any Bapi for transaction VF01.
    If it is then plz. do help me to use that one with coding .
    Regards,
    Rahul

    Hi,
    Check this sample code of creating the billing document using the bapi BAPI_BILLINGDOC_CREATEMULTIPLE.
    DATA: t_success TYPE STANDARD TABLE OF bapivbrksuccess WITH HEADER LINE.
    DATA: t_billing TYPE STANDARD TABLE OF bapivbrk WITH HEADER LINE.
    DATA: t_return TYPE STANDARD TABLE OF bapireturn1 WITH HEADER LINE.
    t_billing-salesorg = vbak-vkorg.
    t_billing-DISTR_CHAN = vbak-vtweg.
    t_billing-DIVISION = vbak-spart.
    t_billing-DOC_TYPE = vbak-auart.
    t_billing-ref_doc = vbak-vbeln.
    t_billing-ref_item = vbap-posnr.
    t_billing-doc_number = vbak-vbeln.
    t_billing-ITM_NUMBER = vbap-posnr.
    t_billing-ordbilltyp = 'BILLING TYPE'.
    t_billing-price_date = sy-datum.
    t_billing-ref_doc_ca = vbak-vbtyp.
    t_billing-sold_to = vbak-kunnr.
    t_billing-material = vbap-matnr.
    t_billing-plant = vbap-werks.
    APPEND t_billing.
    CALL FUNCTION 'BAPI_BILLINGDOC_CREATEMULTIPLE'
    TABLES
    billingdatain = t_billing
    return = t_return
    success = t_success.
    commit work.
    <b>Reward points</b>
    Regards

  • User exit / BADI for billing block in VL01n

    Hello Techies,
    Through custom transaction we are creating delivery notes. We run a background job to pick up these delivery notes & create return deliveries using BDC call transaction method calling VL01N (We also create order of type return for same). Though i can not see any place where billing block is filled in custom program but still there are some deliveries with billing block. Could you please let me know if there is any User exit / BADI for billing block or any configuration setting for same?

    Just to add more details:
    Our program sets memory id field.
    We call transaction VL01N.
    program clears memory id field value.
    all this happens in loop for number of deliveries.
    In VL01 user exit overwrites LIKP-FAKSK value to 05. However we have written code here which imports value from memory id. by this we come to know that we have created this delivery using custom transaction & billing block should not be set.
    From this we can conclude that only when sy-subrc for import memory id is not equal to 0 then billing block is set.
    what could be the reason for sy-subrc for import memory id is not equal to 0 ?
    can it be because of number of deliveries created at a time where memory id export / import is causing problem?
    we are not able to replicate this issue in Dev/Quality systems.
    Thanks & Regards,
    Sachin

Maybe you are looking for