顯示具有 User Exits 標籤的文章。 顯示所有文章
顯示具有 User Exits 標籤的文章。 顯示所有文章

2011年5月18日 星期三

[Link] Change Material Document DATA Using BADI: MB_DOCUMENT_BADI

BADI: MB_DOCUMENT_BADI 

MB_DOCUMENT_BADI 並沒有 Exporting / Changing 任何物料文件的資料結構,但是可以用 Field-Symbols 來修改到其中的資料:
FIELD-SYMBOLS: <ERFMG>   TYPE any,
                            <ERFMG1> TYPE any.
ASSIGN '(SAPMM07M)MSEG-ERFMG' TO <ERFMG>.
ASSIGN (<erfmg>) TO <erfmg1>.

<ERFMG1> = '0.001'.


Source URL: http://forums.sdn.sap.com/thread.jspa?threadID=1688671

Reference:
1. http://scn.sap.com/thread/367073 ((SAPMV45A)XVBAP : Table XVBAP)

2011年3月30日 星期三

[Link] Enhancements and Business add-ins used in standard t-codes of SD

Enhancements represent potential customer requirements that have not been developed in the standard software. Instead, the standard provides for further development of such exits at the customer site, using logic specific to the customer. Upward compatibility is assured since SAP guarantees that the call of an enhancement from the standard software and the calling interface will remain valid in future releases.

[SD] User Exits For Billing

  • USEREXIT_NUMBER_RANGE (Module pool SAPLV60A, program RV60AFZZ)
    The internal number range used in the standard system is specified in the billing type table and can be changed in this user exit. This user exit is only called when the billing documents is created.
  • USEREXIT_ACCOUNT_PREP_KOMKCV (Module pool SAPLV60A, program RV60AFZZ)
    In this user exit additional fields for account determination that are not provided in the standard system are copied into communication structure KOMKCV (header fields).
  • USEREXIT_ACCOUNT_PREP_KOMPCV (Module pool SAPLV60A)
    In this user exit additional fields for account determination that are not provided in the standard system are copied into communication structure KOMPCV (item fields).
  • USEREXIT_NUMBER_RANGE_INV_DATE (Module pool SAPLV60A, program RV60AFZC)
    Depending on the number range, table TVFKD is used to set the billing date (country-specific requirments in Italy). USEREXIT_NUMBER_RANGE is automatically deactivated when this user exit is being applied.
  • USEREXIT_FILL_VBRK_VBRP (Module pool SAPLV60A, program RV60AFZC)
    This user exit is only called when the billing document is created. It is used to provide the header and the item of the new billing document with deviating or additional data.
  • USEREXIT_PRINT_ITEM (Module pool SAPLV61A, program RV61AFZB)
    Printing the item line of a billing document can be supplemented or changed.
  • USEREXIT_PRINT_HEAD (Modulpool SAPLV61A, Programm RV61AFZB)
    Printing the header line of a billing document can be supplemented or changed.
  • User exits in program RV60AFZD
    Short descriptions of the user exits are contained in the program:
    • USEREXIT_RELI_XVBPAK_AVBPAK
    • USEREXIT_NEWROLE_XVBPAK_AVBPAK
    • USEREXIT_NEWROLE_XVBPAP_AVBPAK
The following user exits are available in report SAPLV60B for transfer to accounting (function group V60B):
  • EXIT_SAPLV60B_001: Change the header data in the structure acchd
    You can use this exit to influence the header information of the accounting document. For example, you can change the business transaction, "created on" date and time, the name of the person who created it or the transaction with which the document was created.
  • EXIT_SAPLV60B_002: Change the customer line ACCIT
    You can use this exit to change the customer line in the accounting document. This exit is processed once the ACCIT structure is filled in with data from document header VBRK.
  • EXIT_SAPLV60B_003: Change the customer line in costing
    The customer line is filled in differently for costing. You can use exit 003 to influence the ACCIT structure.
  • EXIT_SAPLV60B_004: Change a GL account item ACCIT You can add information to a GL account item (such as quantity specifications) with this exit.
  • EXIT_SAPLV60B_005: User exit for accruals
    Once all relevant data for accruals was entered in the GL account item, you can add to this data with this exit.
  • EXIT_SAPLV60B_006: Change the control line ACCIT
    You can use exit 006 to add information to the control line.
  • EXIT_SAPLV60B_007: Change the installment plan (Enhancement: SDVFX007)
    You can use exit 007 to add information to the installment plan
    parameters in the GL account item.
  • EXIT_SAPLV60B_008: Change the transfer structure ACCCR, ACCIT and ACCHD (Enhancement: SDVFX008)
    After the accounting document is filled in with data, you can use exit 008 to change the document once again.
    Example Code:
    *&---------------------------------------------------------------------*
    *& INCLUDE ZXVVFU08 *
    *&---------------------------------------------------------------------*
    CHECK CVBRK-KALSM = 'Z001'.
    CHECK CVBRK-VKORG = '1000' OR
    CVBRK-VKORG = '2000'.
    LOOP AT CVBRP.
    CHECK CVBRP-MATNR(2) = 'XX'.
    READ TABLE XACCIT WITH KEY PAOBJNR = CVBRP-PAOBJNR.
    CHECK SY-SUBRC = 0.
    XACCIT-SGTXT = CVBRP-ARKTX.
    MODIFY XACCIT INDEX SY-TABIX.
    ENDLOOP.
  • EXIT_SAPLV60B_010: Item table for customer lines (Enhancement: SDVFX010)
    You can use exit 10 to influence the contents of customer lines before they are created.
  • EXIT_SAPLV60B_0011: Change the parameter for cash account determination or reconciliation account determination (Enhancement: SDVFX011)
    You can use this exit to change inbound parameters in order to influence account determination.

[SD] User Exits For Credit Checks And Risk Management

Credit Check

If you want to carry out your own individual credit checks, that differ from those in the standard system, you must define them in the following user exits:
  • LVKMPTZZ
  • LVKMPFZ1: USER_CREDIT_CHECK1
  • LVKMPFZ2: USER_CREDIT_CHECK2
  • LVKMPFZ3: USER_CREDIT_CHECK3
User exit for availability check
User exit USEREXIT_AVAIL_CHECK_CREDIT exists in Include MV45AFZF.
This user exit allows you to determine whether the system should or should not carry out an availability check after a blocked document has been released or after a new credit check.

Risk Management for Receivables

  • RVKMPUS2
    Using this user exit, you can define new forms of payment guarantee.

[SD] User Exits For Price Determination

  • USEREXIT_PRICING_PREPARE_TKOMK (module pool SAPLV60A, program RV60AFZZ)
    This user exit allows you to copy additional fields for pricing in the TKOMK communication structure (header fields), which have not been provided in the standard SAP system. These fields can also be used for pricing in the billing document.
    This user exit is described in detail in the "New fields in pricing" section.
  • USEREXIT_PRICING_PREPARE_TKOMP (module pool SAPLV60A, program RV60AFZZ)
    This user exit allows you to copy additional fields for pricing in the TKOMP communication structure (item fields), which have not been provided in the standard SAP system. These fields can also be used for pricing.
    This user exit is described in detail in the "New fields in pricing" section.
  • USEREXIT_FIELD_MODIFICATION (module pool SAPMV61A, program MV61AFZA)
    You can use this user exit to adjust the display of individual lines in the condition screen by changing the display attributes of the screen fields. This does not include the display of subtotals.
    This user exit is also used in order processing.
  • USEREXIT_FIELD_MODIFIC_KZWI (module pool SAPMV61A, program MV61AFZB)
    You can change the display of subtotals in the condition screen by changing the display attributes of the screen fields.
    This user exit is also used in order processing.
  • USEREXIT_FIELD_MODIFIC_KOPF (module pool SAPMV61A, program MV61AFZB)
    You can adjust the display of subtotals in the condition screen to your requirements by changing the display attributes of the screen fields.
    This user exit is also used in order processing.
  • USEREXIT_FIELD_MODIFIC_LEER (module pool SAPMV61A, program MV61AFZB)
    You can adjust the display of blank lines in the condition screen to your requirements by changing the display attributes of the screen fields.
    This user exit is also used in order processing.
  • USEREXIT_PRICING_CHECK (module pool SAPMV61, program MV61AFZA)
    You can install additional checks to the standard checks of condition lines (e.g. maximum/minimum value).
  • USEREXIT_PRICING_RULE (module pool SAPLV61A, program RV61AFZA)
    In the standard SAP system, it is predefined which condition categories and classes can be copied or recalculated per pricing type. You can change the predefined standard procedure for each pricing type.
  • USEREXIT_CHANGE_PRICING_RULE (module pool SAPMV61A, program MV61AFZA)
    You can use this user exit to change the pricing type that has been predefined in the copying control table in billing.
  • USEREXIT_XKOMV_BEWERTEN_INIT (module pool SAPLV61A, program RV61AFZB)
    This field is used in the formulas and therefore initialized before the loop for the pricing procedure starts.
  • USEREXIT_XKOMV_BEWERTEN_END (module pool SAPLV61A, program RV61AFZB)
    Within a loop for the price components during pricing, specific values can be transferred into the communication structures in pricing to be further processed.
  • USEREXIT_XKOMV_ERGAENZEN (module pool SAPLV61A, program RV61AFZB)
    In change mode, you can change the dynamic part of the condition record (KONVD) that is always redetermined (i.e. it is not stored in database table KONV).
  • USEREXIT_XKOMV_ERGAENZEN_MANU (module pool SAPLV61A, program RV61AFZB)
    You can use this user exit to change the ready-for-input fields of the manually entered condition record in add mode in the condition screen.
  • USEREXIT_XKOMV_FUELLEN (module pool SAPLV61A, program RV61AFZB)
    This user exit is always called up during a redetermination of all or individual price components. You can change the work fields of the condition line. However, this only applies to conditions that have been determined via a condition record.
  • USEREXIT_XKOMV_FUELLEN_O_KONP (module pool SAPLV61A, program RV61AFZB)
    This user exit is always called up during a redetermination of all or individual price components. You can change the work fields of the condition line. However, this only applies to conditions that have been determined via a condition record. This may include subtotals, manually entered conditions or conditions that have been calculated with a formula.
  • USEREXIT_PRICING_COPY (module pool SAPLV61A, program RV61AFZA)
    You can change the KONV fields for copied price components.

[SD] User Exits for Partner Determination

Partner determination contains the following user exits for your use:
  • EXIT_SAPLV09A_001
    You can use this user exit to control whether an address that was entered manually and has already been used in other documents (referenced), should be referenced again if it changes or whether a new address shold be created (duplicated).
  • EXIT_SAPLV09A_002
    Call up this user exit if a customer has not been maintained in the current sales area.
  • EXIT_SAPLV09A_003
    Use this user exit to control the origin of partners in the partner determination procedure (origin X, Y or Z). If X, Y, or Z has been entered in the Origin field, this user exit is automatically called up during partner determination.
  • EXIT_SAPLV09A_004
    Use this user exit to integrate your own check in a program, that runs before the partner is saved in the document.
For more detailed information, see the program documentation for each ofthe user exits.

[SD] User Exits For Availability Check

The user exits named here are planned for projects that are to be carried out in agreement with SAP development as they may only be used in consultation with SAP. SAP provides no guarantee if they are used without our advice!
USEREXIT_PLANT_SELECTION in program RV03VFZZ is an exception to this rule (see below).

User exits in program FV45VFZZ

  • USEREXIT_ADD_FIELD_TO_HEADER
  • USEREXIT_ADD_FIELD_TO_LINE

User exits in program FV45VFZY

  • USEREXIT_DELIVERY_GROUPS
  • USEREXIT_MVERF_INIT
  • USEREXIT_QUOTA_KEY_VALUE

User exits in program RV03VFZZ

  • USEREXIT_AVAILABILITY_IN
  • USEREXIT_AVAILABILITY_OUT
  • USEREXIT_DARA_REFRESH
  • USEREXIT_PLANT_SELECTION
    This user exit is used to adjust the flow during plant transfer. A list of permitted plants, where this material is created, is determined and checked in the standard R/3 delivery. A dialog box appears where you can select the plants. The user exits allow you to modify the plant table so that plant selection takes place in advance for every flagged selection and a dialog box becomes unnecessary.

[SD] User Exits For Contract Processing

The following SAP enhancement is available in sales processing:
  • V45W0001 Function module exit for copying sales header data into items.
    This enhancement contains the user exit:
    • EXIT_SAPLV45W_001

Activities

  1. Create your enhancement, using a project. You can either use an existing one or create a new one.
Supplement the coding delivered by SAP. SAP provides you with the necessary function modules with short texts, interface and documentation.
  1. Activate the project.
The ABAP coding will only run once the project has been activated. Until then the enhancements will not take effect.

Further notes

In contrast to modifications, enhancements can be used in any release. This is because they are defined in your own system and not in the SAP original system. You can find the documentation about the enhancement by activating the "SAP docu" key in the enhancement transaction.

[SD] User Exits For Product Allocation Processing

The following SAP enhancements are available for the area of 'product allocation':
  • SDQUX0001 Function module exit for enhanced check in SD product allocation
Activities
  1. Create the enhancement. Create a new project for it or use an existing project.
Supplement the coding supplied by SAP. SAP will provide you with the necessary function modules with short text, interface and
  1. documentation.
Activate the project. This will run the ABAP coding. If you do not activate the project the
user exit will not come into affect.
In contrast to modifications, user exits are suitable for release as they are not carried out in original coding provided by SAP but in your own particular program.
You will find a more detailed description of the procedures for configuring extensions in the "Extension of SAP Transactions" documentation. Select the path Help --> Online help. in the extension transaction.

[SD] User Exits In Sales Document Processing

This IMG step describes additional installation-specific processing in sales document processing. In particular, the required INCLUDES and user exits are described.

Involved program components

System modifications for sales document processing affect different areas. Depending on the modification, you make the changes in the program components provided:
  • MV45ATZZ
    For entering metadata for sales document processing. User-specific metadata must start with "ZZ".
  • MV45AOZZ
    For entering additional installation-specific modules for sales document processing which are called up by the screen and run under PBO (Process Before Output) prior to output of the screen. The modules must start with "ZZ".
  • MV45AIZZ
    For entering additional installation-specific modules for sales document processing. These are called up by the screen and run under PAI (Process After Input) after data input (for example, data validation). The modules must start with "ZZ".
  • MV45AFZZ and MV45EFZ1
    For entering installation-specific FORM routines and for using user exits, which may be required and can be used if necessary. These program components are called up by the modules in MV45AOZZ or MV45AIZZ.

User exits in the program MV45AFZZ

The user exits which you can use for modifications in sales document processing are listed below.
  • USEREXIT_DELETE_DOCUMENT
    This user exit can be used for deleting data which was stored in a separate table during sales document creation, for example, if the sales document is deleted.
    For example, if an additional table is filled with the name of the person in charge (ERNAM) during order entry, this data can also be deleted after the sales order has been deleted.
    The user exit is called up at the end of the FORM routine BELEG_LOESCHEN shortly before the routine BELEG_SICHERN.
  • USEREXIT_FIELD_MODIFICATION
    This user exit can be used to modify the attributes of the screen fields.
    To do this, the screen fields are allocated to so-called modification groups 1 - 4 and can be edited together during a modification in ABAP. If a field has no field name, it cannot be allocated to a group.
    The usage of the field groups (modification group 1-4) is as follows:
    • Modification group 1: Automatic modification with transaction MFAW
    • Modification group 2: It contains 'LOO' for step loop fields
    • Modification group 3: For modifications which depend on check tables or on other fixed information
    • Modification group 4: is not used
    The FORM routine is called up for every field of a screen. If you require changes to be made, you must make them in this user exit.
    This FORM routine is called up by the module FELDAUSWAHL.
    See the Screen Painter manual for further information on structuring the interface.
  • USEREXIT_MOVE_FIELD_TO_VBAK
    Use this user exit to assign values to new fields at sales document header level. It is described in the section "Transfer of the customer master fields into the sales document".
    The user exit is called up at the end of the FORM routine VBAK_FUELLEN.
  • USEREXIT_MOVE_FIELD_TO_VBAP
    Use this user exit to assign values to new fields at sales document item level. It is described in the section "Copy customer master fields into the sales document".
    The user exit is called up at the end of the FORM routine VBAP_FUELLEN.
  • USEREXIT_MOVE_FIELD_TO_VBEP
    Use this user exit to assign values to new fields at the level of the sales document schedule lines.
    The user exit is called up at the end of the FORM routine VBEP_FUELLEN.
  • USEREXIT_MOVE_FIELD_TO_VBKD
    Use this user exit to assign values to new fields for business data of the sales document. It is described in the section "Copy customer master fields into sales document".
    The user exit is called up at the end of the FORM routine VBKD_FUELLEN.
  • USEREXIT_NUMBER_RANGE
    Use this user exit to define the number ranges for internal document number assignment depending on the required fields. For example, if you want to define the number range depending on the sales organization (VKORG) or on the selling company (VKBUR), use this user exit.
    The user exit is called up in the FORM routine BELEG_SICHERN.
  • USEREXIT_PRICING_PREPARE_TKOMK
    Use this user exit if you want to include and assign a value to an additional header field in the communication structure KOMK taken as a basis for pricing.
  • USEREXIT_PRICING_PREPARE_TKOMP
    Use this user exit if you want to include or assign a value to an additional item field in the communication structure KOMP taken as a basis for pricing.
  • USEREXIT_READ_DOCUMENT
    You use this user exit if further additional tables are to be read when importing TA01 or TA02.
    The user exit is called up at the end of the FORM routine BELEG_LESEN.
  • USEREXIT_SAVE_DOCUMENT
    Use this user exit to fill user-specific statistics update tables.
    The user exit is called up by the FORM routine BELEG-SICHERN before the COMMIT command.
    Note
    If a standard field is changed, the field r185d-dataloss is set to X. The system queries this indicator at the beginning of the safety routine. This is why this indicator must also be set during the maintenance of user-specific tables that are also to be saved.
  • USEREXIT_SAVE_DOCUMENT_PREPARE
    Use this user exit to make certain changes or checks immediately before saving a document. It is the last possibility for changing or checking a document before posting.
    The user exit is carried out at the beginning of the FORM routine BELEG_SICHERN.

User exits in the program MV45AFZA

  • USEREXIT_MOVE_FIELD_TO_KOMKD
    Use this user exit to include or assign values to additional header fields in the communication structure KOMKD taken as a basis for the material determination. This is described in detail in the section "New fields for material determination".
  • USEREXIT_MOVE_FIELD_TO_KOMPD
    Use this user exit to include or assign values to additional item fields in the communication structure KOMPD taken as a basis for the material determination. This is described in detail in the section "New fields for material determination".
  • USEREXIT_MOVE_FIELD_TO_KOMKG
    Use this user exit to include or assign values to additional fields in the communication structure KOMKG taken as a basis for material determination and material listing. This is described in detail in the section "New fields for listing/exclusion".
  • USEREXIT_MOVE_FIELD_TO_KOMPG
    Use this user exit to include or assign values to additional fields in the communication structure KOMPG taken as a basis for material determination and material listung. This is described in detail in the section "New fields for listing/exclusion".
  • USEREXIT_REFRESH_DOCUMENT
    With this user exit, you can reset certain customer-specific fields as soon as processing of a sales document is finished and before the following document is edited.
    For example, if the credit limit of the sold-to party is read during document processing, in each case it must be reset again before processing the next document so that the credit limit is not used for the sold-to party of the following document.
    The user exit is executed when a document is saved if you leave the processing of a document with F3 or F15.
    The user exit is called up at the end of the FORM routine BELEG_INITIALISIEREN.

User-Exits in program MV45AFZB

  • USEREXIT_CHECK_XVBAP_FOR_DELET
    In this user exit, you can enter additional data for deletion of an item. If the criteria are met, the item is not deleted (unlike in the standard system).
  • USEREXIT_CHECK_XVBEP_FOR_DELET
    In this user exit, you can enter additional data for deletion of a schedule line. If the criteria are met, the schedule line is not deleted (unlike in the standard system).
  • USEREXIT_CHECK_VBAK
    This user exit can be used to carry out additional checks (e.g. for completion) in the document header. The system could, for example, check whether certain shipping conditions are allowed for a particular customer group.
  • USEREXIT_CHECK_VBAP
    This user exit can be used to carry out additional checks (e.g. for completion) at item level.
  • USEREXIT_CHECK_VBKD
    The user exit can be used to carry out additional checks (e.g. for completion) on the business data in the order.
  • USEREXIT_CHECK_VBEP
    This user exit can be use to carry out additional checks (e.g. for completion) on the schedule line. During BOM explosion, for example, you may want certain fields to be copied from the main item to the sub-items (as for billing block in the standard system).
  • USEREXIT_CHECK_VBSN
    You can use this user exit to carry out additional checks (e.g. for completion) on the serial number.
  • USEREXIT_CHECK_XVBSN_FOR_DELET
    In this user exit, you can enter additional criteria for deletion of the serial number. If the criteria are met, the serial number is not deleted (unlike in the standard system).
  • USEREXIT_FILL_VBAP_FROM_HVBAP
    You can use this user exit to fill additional fields in the sub-item with data from the main item.
  • USEREXIT_MOVE_FIELD_TO_TVCOM_H
    You can use this user exit to influence text determination for header texts. For example, you can include new fields for text determination or fill fields that already exist with a new value.
  • USEREXIT_MOVE_FIELD_TO_TVCOM_I
    You can use this user exit to influence text determination for item texts. For example, you can include new fields for text determination or fill fields that already exist with a new value.
  • User-Exits for product allocation:
    The following user exits all apply to structure COBL, in which the data for account determination is copied to item level.
    • USEREXIT_MOVE_FIELD_TO_COBL
      Option to include new fields in structure COBL.
    • USEREXIT_COBL_RECEIVE_VBAK
      Option to assign values from the document header to the new fields.
    • USEREXIT_COBL_RECEIVE_VBAP
      Option to supply values from the item to the new fields.
    • USEREXIT_COBL_SEND_ITEM
      A changed field can be copied from the structure into the item. You could use the user exit to display a certain field in the account assignment block (see also MV45AFZB).
    • USEREXIT_COBL_SEND_HEADER
      A changed field can be copied from the structure to the header (see source text MV45AFZB)
  • USEREXIT_SOURCE_DETERMINATION
    You can use this user exit to determine which plant will be used for the delivery. In the standard system, the delivering plant is copied from the customer master or the customer-material info record. If you want to use a different rule, then you must enter it in this user exit.
  • USEREXIT_MOVE_FIELD_TO_ME_REQ
    With this user exit you can include additional fields for the following fields:
    • EBAN (purchase requisition)
    • EBKN (purchase requisition-account assignment)
  • USEREXIT_GET_FIELD_FROM_SDCOM
    Option to include new fields for the variant configuration. Fields that are included in structure SDCOM can be processed and then returned to the order.
  • USEREXIT_MOVE_WORKAREA_TO_SDWA
    You can use this user exit to format additional work areas for the variant configuration. You will find notes on the user exit in MV45AFZB.
  • User-Exits for first data transfer:
    The following user exits can only be used for the first data transfer.
    Note
    Only use the user exits if the names/fields do NOT have the same name.
    • USEREXIT_MOVE_FIELD_TO_VBAKKOM
      Option to include additional fields in structure VBAKKOM (communiction fields for maintaining the sales document header)
    • USEREXIT_MOVE_FIELD_TO_VBAPKOM
      Option to include additional fields in structure VBAPKOM (communication fields for maintaining a sales item)
    • USEREXIT_MOVE_FIELD_TO_VBEPKOM
      Option to include additional fields in structure VBEPKOM (communication fields for maintaining a sales document schedule line)
  • USEREXIT_MOVE_FIELD_TO_VBSN
    You can use this user exit to include fields in structure VBSN (scheduling agreement-related change status).
  • USEREXIT_MOVE_FIELD_TO_KOMKH
    You can use this user exit to include new fields for batch determination (document header).
  • USEREXIT_MOVE_FIELD_TO_KOMPH
    You can use this user exit to include new fields for batch determination (document item).
  • USEREXIT_CUST_MATERIAL_READ
    You can use this user exit to set another customer number in the customer material info record (e.g. with a customer hierarchy)
  • USEREXIT_NEW_PRICING_VBAP
    Option for entry of preconditions for carrying out pricing again (e.g. changes made to a certain item field could be used as the precondition for pricing to be carried out again). Further information in MV45AFZB.
  • USEREXIT_NEW_PRICING_VBKD
    Option for entry of preconditions for carrying out pricing again (e.g. changes to the customer group or price group could be set as the preconditions for the system to carry out pricing again). Further information in MV45AFZB.
  • User-Exits in Program MV45AFZD
  • USEREXIT_CONFIG_DATE_EXPLOSION
    The BOM is exploded in the order with the entry date. You can use this user exit to determine which data should be used to explode the BOM (explosion with required delivery date, for example).

User exits in the program FV45EFZ1

  • USEREXIT_CHANGE_SALES_ORDER
    In the standard SAP R/3 System, the quantity and confirmed date of the sales document schedule line is changed automatically if a purchase requisition is allocated, and it or the sales document is changed (for example, quantity, date).
    If you want to change this configuration in the standard system, you can define certain requirements in order to protect your sales orders from being changed automatically. Use this user exit for this purpose. Decide at this point whether the schedule lines are to be changed.

User-Exits in Program RV45PFZA

  • USEREXIT_SET_STATUS_VBUK
    In this user exit you can you can store a specification for the reserve fields in VBUK (header status). Reserve field UVK01 could, for example, be used for an additional order status (as for rejections status, etc.).
    The following workareas are available for this user exit:
    • VBUK (header status)
    • FXVBUP (item status)
    • FXVBUV (Incompletion)
  • USEREXIT_SET_STATUS_VBUP
    In this user exit you can you can store a specification for the reserve fields for VBUP (item status).
    The following workareas are available for this user exit:
    • FXVBAP (Item data)
    • FXVBAPF (Dynamic part of order item flow)
    • FXVBUV (Incompletion)
  • USEREXIT_STATUS_VBUK_INVOICE
    You can use this user exit to influence billing status at header level.

User exits in the screens

Additional header data is on screen SAPMV45A 0309, additional item data on screen SAPMV45A 0459. These screens contain the Include screens SAPMV45A 8309 or SAPMV45A 8459 as user exits.
Fields which are also to be included in the sales document for a specific installation should be included on the Include screens for maintaining. If an application-specific check module is needed for the fields, this can be included in the Include MV45AIZZ. The module is called up in the processing logic of the Include screens.
For field transports, you do not have to make changes or adjustments.

Example

A new field, VBAK-ZZKUN, should be included in table VBAK.
If the check is defined via the Dictionary (fixed values or check table) the field must be included with the fullscreen editor in the Include screen SAPMV45A 8309. In this case, no change has to be made to the processing logic.

User Exits in Program MV45AFZ4

  • USEREXIT_MOVE_FIELD_TO_KOMK
    You can use this user exit to add or edit additional header fields in the communication structure - KOMK- for free goods determination. For more information, see the New Fields for Free Goods Determination IMG activity.
  • USEREXIT_MOVE_FIELD_TO_KOMP
    You can use this user exit to add or edit additional item fields in the communication structure KOMP for free goods determination. For more information see the New Fields for Free Goods Determination IMG activity.

User Exits in the SAPFV45PF0E and SAPFV45PF0C Programs

  • EXIT_SAPFV45P_001
    You can use this user exit to decide whether intercompany billing data is used in the profitability segment for cross-company code sales, or whether the data comes from external billing (external customer, sales data from the selling company code.

[SD] Previous User Exits in Shipping

Use

In shipping processing, there are other user exits available to you in addition to the Business Add-Ins:
  • User exits in the form of includes
    These special includes are no longer conventionally delivered by SAP through upgrades or support packages, which means that your own changes to these includes will be kept. The includes contain empty FORM routines that are called at various points during shipping processing. You can fill the FORM routines with your own coding, in order to process your own additional data or to change data from the standard processing.
    Because you can usually access various application data within these user exits, and no defined interfaces are available, there is a high risk of effects on the standard range of function. For this reason, you must take particular care with implementation and a wide range of tests to ensure your functional enhancements are completely failsafe.
  • Customer exits (SAP enhancements)
    You can assign, and therefore activate, projects using transaction CMOD. For more information on each of the enhancements, see the documentation for the enhancements or its components. To do this, call up transaction SMOD and enter the name of the relevant enhancement.
The following gives you an overview of the existing delivery processing and shipping processing functions that you can influence using user exits.

Processing Delivery Data

You can use the following includes to process delivery data:
  • MV50AFZ1
    This include contains routines for processing delivery header and item data, as well as for changing the entrie delivery at central points during delivery processing. For more information on the exit, see note 415716.
    • FORM USEREXIT_DELETE_DOCUMENT.
      This userexit can be used to delete data in additional tables when a delivery is deleted.
      This form is called in dialog at the end of form BELEG_LOESCHEN just before form BELEG_SICHERN is performed to delete the datas on the database.
    • FORM USEREXIT_MOVE_FIELD_TO_LIKP.
      This userexit can be used to move some fields into the delivery header workaerea LIKP.
      This form is called, when a header is created, This form is called at the end of form LIKP_FUELLEN.
    • FORM USEREXIT_MOVE_FIELD_TO_LIPS.
      This userexit can be used to move some fields into the delivery item workaerea LIPS.
      This form is called, when an item is created.
      This form is called at the end of form LIPS_FUELLEN.
    • FORM USEREXIT_NUMBER_RANGE USING US_RANGE_INTERN.
      This userexit can be used to determine the numberranges for the internal document number.
      US_RANGE_INTERN - internal number range
      This form is called from form BELEG_SICHERN
    • FORM USEREXIT_READ_DOCUMENT.
      This userexit can be used to read data in additional tables when the program reads a delivery.
      This form is called at the end of form BELEG_LESEN.
    • FORM USEREXIT_SAVE_DOCUMENT.
      This userexit can be used to save data in additional tables when a document is saved.
      If field T180-TRTYP contents 'H', the document will be created, else it will be changed.
      This form is called at from form BELEG_SICHERN, before COMMIT
    • FORM USEREXIT_SAVE_DOCUMENT_PREPARE.
      This userexit can be used for changes or checks, before a document is saved.
      If field T180-TRTYP contents 'H', the document will be created, else it will be changed.
      This form is called at the beginning of form BELEG_SICHERN
    • FORM USEREXIT_REFRESH_DOCUMENT.
      It is always necessary to refresh user-specific data before the next document will be processed.
      This can be done in this userexit.
      This userexit can be used to refresh user-specific data when the processing of a delivery is finished
      • after the document is saved
      • when you leave the document processing with F3 or F15
      It may be necessary to refresh user-specific data before the next document will be processed.
      This form is called in dialog at the end of form BELEG_INITIALISIEREN
  • MV50AFZ2
    You can use this user exit to influence distribution of the delivery quantity to the batches found.
    • FORM USEREXIT_BATCH_QUAN_ALLOCATION.
      Userexit zur Verteilung der offnen Menge auf die selektierten Chargen.
      Zur Verfung stehen:
      interne Tabelle SEL_CHARGEN (Tabelle der selektierten Chargen)
      Feld SAVE_CLIPS-LGMNG (offene, keiner Charge zugeordnete Menge)
      Dieses Beispiel zeigt die Verteilung gem魠 Sortierung.
      Charge f Charge wird die gesamte verfbare Menge der Charge als Liefermenge gesetzt, bis keine Menge mehr zu verteilen ist.
  • MV50AFZ3
    You can use this user exit to control the confirmation requirement of an individual delivery item. You can only use this user exit for picking without Warehouse Management.
    • FORM USEREXIT_LIPS-KOQUI_DETERMINE.
      • --> INPUT: LIKP
      • --> INPUT: LIPS
      • <-- OUTPUT: LIPS-KOQUI
  • MV50AFZK
    You can use this user exit to control material determination (material listing, material exclusion, product selection), by changing the communication structures for accessing the condition tables.
    The userexits in this include can be used to fill the condition tables for material listing and material exclusion (KOMKG and KOMPG) and product selection (KOMKD and KOMPD) with own data. They supplement the userexits
    • USEREXIT_MOVE_FIELD_TO_KOMKD
    • USEREXIT_MOVE_FIELD_TO_KOMPD
    • USEREXIT_MOVE_FIELD_TO_KOMKG
    • USEREXIT_MOVE_FIELD_TO_KOMPG
    in program MV45AFZA which are called during sales order processing.
    These form routines can not be called during delivery processing since they refer to a different main program.
    • FORM USEREXIT_MOVE_FIELD_TO_KOMKD.
      This userexit can be used to move some fields into the communication workarea for product substitution.
      This form is called from form KOMKD_KOMPD_FUELLEN.
    • FORM USEREXIT_MOVE_FIELD_TO_KOMPD.
      This userexit can be used to move some fields into the communication workarea for product substitution.
      This form is called from form KOMKD_KOMPD_FUELLEN.
    • FORM USEREXIT_MOVE_FIELD_TO_KOMKG.
      This userexit can be used to move some fields into the communication workarea for product listing or exclusion.
      This form is called from form KOMKG_KOMPG_FUELLEN.
    • FORM USEREXIT_MOVE_FIELD_TO_KOMPG.
      This userexit can be used to move some fields into the communication workarea for product listing or exclusion.
      This form is called from form KOMKG_KOMPG_FUELLEN.
  • MV50AFZL
    This exit allows you to control the behavior of delivery creation for order-based deliveries in the case of incomplete delivery groups.
    • Form KZKOR_DETERMINE
      In delivery creation process for sales orders there is the possibility to restrict the delivery creation to some order items.
      If these order items are member of a delivery group, but not all items of this delivery group are includes in the restriction range of the order item nubers, you can specify in this routine what to do.
      This effects Delivery creation in Dialog (VL01, VL01N) and delivery change, function deliver sales order (VL02, VL02N, FCode RAUF).
      • <-- CF_KZKOR flag, how to handle incomplete delivery groups
      • cf_kzkor = ' '. "Deliver incomplete delivery groups as specified
      • cf_kzkor = '1'. "Add items of incomplete selected delivery groups
      • cf_kzkor = '2'. "do not deliver any item of incomplete del-groups
  • MV50AFZZ
    You can use this exit to influence batch determination for an individual delivery item.
    • FORM USEREXIT_BATCH_DETERMINATION.
      Userexit zur Ermittlung einer Charge in einer Lieferposition zur Verfung stehen:
      LIPS (die bis dahin aufgebaute Lieferposition)
      Dieses Beispiel zeigt die Selektion einer Charge anhand ihres Verfbarkteitsdatums und ihres Verfalldatums.
      Es wird die erste Charge ermittelt, die gem魠 Daten verfbar ist. Die Mengenverfbarkteit erfolgt zu einem sp酹eren Zeitpunkt. Dies bedeutet, da?eine zu diesem
      Zeitpunkt gefundene Charge aufgrund mangelnder Verfbarkeit nicht in die Lieferposition wandert.
    • FORM USEREXIT_LGORT_DETERMINATION.
      This userexit can be used to fill the field LIPS-LGORT, when a delivery is created
      This form is called in the form LIPS-LGORT_ERMITTELN in the Include FV50XFLP
      you can use LIKP, some fields of LIPS, MAAPV, ...

Status Updates

  • Include LV50PFZA enables you to determine your own delivery item status.
  • You can use the include RV45PFZA to determine your own header status. This exit is also used by other applications in Sales and Distribution (sales order, billing document).
  • You can use the customer exit in enhancement V50PSTAT if you want to influence determination of the picking status in the case of rounding problems.

Incompletion Control of Deliveries

You can use the include FV50UZXX to program individual incompletion checks for a delivery document. Note 158807 contains more information on this.

Dezentralized Warehouse Management System

You can use enhancement V50S0001 to control system behavior when you create deliveries in the decentralized Warehouse Management System:
  • Control of the input attributes of delivery fields for distributed deliveries
  • Control of number assignment for a delivery created in the decentralized WMS

Collective Processing of Deliveries

  • You can use the customer exits in enhancements V50R0002 and V50R0004 to calculate the stocks for displaying in the delivery due list.
  • You can use the FORM routines in the include MV50SFZ4 to control output of the delivery due list in the old transaction VL04.
  • You can use the include RVV50TOP to branch to user exits that you can use to influence the list output in transaction VL10. For more information see note 198137.

Stock Transfer Process

You can use enhancement V02V0001 , if you want to control sales area determination of stock transport orders in a different way to the standard system.

Determinations in the Delivery

You can use the following enhancements to control determination of the organizational units that control the picking or putaway process of deliveries:
Enhancement Function influenced
V02V0002:Storage location determination
V02V0003:Gate and staging zone determination (Header)
V02V0004:Staging zone determination (item)

Delivery Monitor

You can use the enhancement V50Q0001 to influence the data selection for outputting the list. For more information, see note 128150.

Constructing Wave Picks

You can control the construction of wave picks using the customer exits in enhancement V53W0001 .

Subsequent Outbound Delivery Split

You can use the FORM routines in the include LV53SFZ1 to enhance the functions of the subsequent delivery split. The includeLV53STZ1 enables you to enhance the type group that is used by the function modlues of the delivery split. For more information see note 416765.

Processing Delivery IDocs

You can use the following enhancements to influence processing of delivery IDocs:
Enhancement Function
V55K0001:Delivery (Inbound) : Copy data
V55K0002:Delivery (Inbound) : Prepare processing
V55K0003:Delivery (Inbound) : Evaluate result
V55K0004:Shipping notification (Inbound): Modification of IDoc control data
V55K0005:Purchase order (Inbound): Modification of IDoc control data
V55K0011:Shipping notification (Inbound): Copy data
V55K0012:Shipping notification (Inbound): Prepare processing
V55K0013:Shipping notification (Inbound): Evaluate result
V50B0001:User exit for BAPI replication/confirmation of deliveries