Payment Term Text Determination in VK11 Using BTE
For our monthly policy customized application, there was a requirement to maintain multiple Pricing records for different Payment Terms but with same Validity period (Payment Term should be at Item level). As per Standard SAP we can’t have multiple records in the same condition under key values Valid on the same date. Condition Valid From and Valid To Dates are part of the primary key in the database table hence date ranges between the records cannot overlap. When we create a new record system will pick the most recent record and overwrite the previous one.
So in order to achieve the same we’ve added ZTERM (Payment Term) so that the system proposed the field in the field catalog.
Included ZTERM as a new entry. Now we can use field ZTERM as a key field when we’ll create new Condition Table.
So what we’ve done is created a Condition Table as:
Sales org./Distr. Chl/Matl Group/Price grp/Mat.pr.grp/Payt T
Issue arises after this point as when we’ve tried to maintain condition record in this Condition Table system does not display the description from the text table i.e; Payment Term Description was missing.
In Standard there are some fields which are not prepared in standard condition maintenance regarding field text determination and that does not handle text determination from the relevant text table. Few standards field are ZTERM, REGIO etc.
During the condition maintenance for Prices/Surcharges/Discounts in VK11 the descriptive text has not been determined for ZTERM (Payment Term) in the Header/Line item of the condition maintenance so we used BTE (Business Transaction Event) in order to determine the text.
Give the Product name that will link the event with the function module. Enter the product name description and check box A is required in order activate the product.
Select the appropriate event which gets triggered during the execution and against the event assign the Product name which was created above and assign a function module name. Take appropriate event which will fulfill the requirement and in my case it is 00503306 (Maintain conditions: Text determination)
Against the corresponding BTE check the Sample Function Module in SE37 and copy the same into the Custom Function Module Z*.
The desired logic will be encoded in the Custom Function Module. Save and Activate the FM. Be noted that the Creation of correct Function Module is necessary.
Further link the newly created customized Function Module and the Event using the product created.
Test the BTE. Now Description field is coming up while Condition Record maintenance.
NOTE: This might be considered as a common Knowledge but posting on SCN with this surety that it will also be helpful for many. Any feedback will be highly valued and appreciated. Thanks.