Ansicht
Dokumentation

ISH_NEW_PRICE_FIELDS - New Fields for Pricing

ISH_NEW_PRICE_FIELDS - New Fields for Pricing

Vendor Master (General Section)   General Material Data  
This documentation is copyright by SAP AG.
SAP E-Book

Prerequisites

This IMG activity requires you to have knowledge of the data dictionary, price determination and programming of Business Add-Ins. To prevent errors, SAP recommends that you thoroughly test the new functionality before using it in production operation.

Enhancement of Relevant Database Structures

The following structures and tables are relevant for price determination in IS-H:

  • KOMK (pricing communication header)
  • KOMP (pricing communication item)
  • KOMG (allowed fields for condition structures)
For technical reasons, communication structure KOMG is used. It combines the fields from KOMK and KOMP that are relevant for price determination in the standard system and are offered in the field catalog of condition tables. If you want to use a new field in the field catalog, you must add the field to KOMP or KOMK in the following INCLUDES:
  • Header data in INCLUDE KOMKAZ in KOMK

  • Item data in INCLUDE KOMPAZ in KOMP

When you use INCLUDES, the field is automatically added to KOMG and the field catalog.

Assigning Values to the New Fields in Programs

You have to assign values to the new fields in two different locations in the following order:

  1. Business Add-In (BAdI) ISH_PRICING_FIELDS
You must first assign values to your new fields using the BAdI ISH_PRICING_FIELDS.
  1. User Exits in INCLUDE LN60AFZZ
Use the user exits USEREXIT_PRICING_PREPARE_TKOMK or USEREXIT_PRICING_PREPARE_TKOMP in INCLUDE LN60AFZZ. Make sure that the new fields are filled with the same values as previously in the BAdI ISH_PRICING_FIELDS. You could also call the actual BAdI again. A subprogram already exists for this repeated call. You can call this subprogram directly (see example).
  • Example for implementation in User Exit USEREXIT_PRICING_PREPARE_TKOMP:

* subprogram CALL_BADI_PRICING_FIELDS already exists and can * be called directly. perform call_badi_pricing_fields using xvbrk-ishkostr                                       xvbrp-vgbel                                        xvbrp-ishbegdt                                        xvbrk-vbtyp                               changing tkomk                                        tkomp.

Note on Pricing Analysis

The system cannot access the fields you've just defined during the subsequent condition analysis. For this reason, the fields are empty at condition analysis. The system issues the message: Field is initial.

If you also require your new pricing fields in condition analysis, you have to add the new fields to the database tables VBRK (billing: header data) and VBRP (billing: item data) using appends.

Modified Procedure for Adding New Pricing Fields to Billing Data VBRK and VBRP

Database Structures

Proceed in the same way as described above. In addition, you have to add the new fields to database table VBRK or VBRP using an append.

Assigning Values to the New Fields in Programs

  1. BAdI ISH_PRICING_FIELDS
  2. User Exits in INCLUDE RV60AFZC
Use the user exit USEREXIT_FILL_VBRK_VBRP in INCLUDE RV60AFZC. Make sure that the new fields are filled with the same values as previously in the BAdI ISH_PRICING_FIELDS.
The fields are then automatically made available for pricing - the user exits USEREXIT_PRICING_PREPARE_TKOMK/TKOMP are not relevant.
Example for implementation of USEREXIT_FILL_VBRK_VBRP:

* subprogram CALL_BADI_PRICING_FIELDS already exists

* and can be called directly.

perform call_badi_pricing_fields(SAPLN60A)

                                  using vbrk-ishkostr

                                        vbap-vbeln

                                        vbrp-ishbegdt

                                        vbrk-vbtyp

                                  changing tkomk tkomp.
* Fields from TKOMK or TKOMP must be transferred INDIVIDUALLY
* into the corresponding fields of VBRK or VBRP. On no account
* use the command MOVE-CORRESPONDING, otherwise existing
* filled fields in the structures VBRK or VBRP will be overwritten
* with an empty value.
* Example:
* [your field] acts as a placeholder for the field you
* have defined
vbrk-[your field] = komk-[your field].
vbrp-[your field] = komp-[your field].
...

In this example, you want to use the patient's age for pricing. Proceed as follows:

  1. Check the data elements in the standard system.
    If there is no such data element, you have to create a new data element, for example ZZAGE.
Remember that new data fields must start with the letters "ZZ" or "YY", since SAP reserved these letters to protect them from being overwritten during a release upgrade.
  1. Check whether the new field is to be added at header or at item level. In this example, we assume that the patient's age relates to all services in the same way. Consequently, add the new field at header level.
  2. Integrate the field name ZZAGE in the communication structure KOMK using the INCLUDE KOMKAZ and assign the data element ZZAGE to it.
  3. Activate the structure.
  4. Check in which table the field exists, or how it can be determined.
The field can be determined from the birthdate and the current date, or for example, the admission date.
  1. Assign an appropriate value to the new field in the BAdI ISH_PRICING_FIELDS.
  2. Assign a value to the new field in the USEREXIT_PRICING_PREPARE_TKOMK (INCLUDE LN60AFZZ).
Call the BAdI ISH_PRICING_FIELDS again.
  1. Assign the specifications A, V and 001 to the field ZZAGE in table T681F.
To do this, call transaction SM30. Specify V_T681F as the Table/View, and choose Maintain. In the Usage field enter A, in the Application field enter V, and in the Field Group field, enter 001. The field catalog appears. Enter your new field in this list.





Vendor Master (General Section)   ABAP Short Reference  
This documentation is copyright by SAP AG.

Length: 9529 Date: 20240420 Time: 065122     sap01-206 ( 90 ms )