Application Development Discussions
Join the discussions or start your own on all things application development, including tools and APIs, programming models, and keeping your skills sharp.
cancel
Showing results for 
Search instead for 
Did you mean: 

How to substitute additional information to a Vendor during creation via XK01?

Former Member
0 Kudos

Hello Experts,

Can one of you advise any idea for following requirement about substition during Vendor Creation.Any idea including BAdI,Exit,BDC or anythig else is welcome!

<Requirement>

Overview:

I want to substitute a value of PO_BOX and SCAC field of a CORPORATION Vendor related to the Vendor being created via XK01.

Detail:Supposing steps are as follows;

1.Input Corporate Group field during creating a Vendor.

2.Save the Vendor, then EXIT, BAdI or anythig else is exectuted.

3.Search and extract information of the CORPORATION Vendor from LFA1 with key Corporate Group.

4.Substitute PO_BOX and SCAC extracted above to the Vendor being created.

5.The Vendor is saved with PO_BOX and SCAC values extracted above.

8 REPLIES 8

former_member241258
Active Participant
0 Kudos

use some bapi or fm for change vendor

0 Kudos

Thank you for your comment Krishna!

Could you tell me the bapi or fm you are thinking of?

I couldn't find the bapi for changing vendor data.

Also, I tried some fm to achive the requirement but didn't work well.

0 Kudos

i think no fm or bapi

use bdc for this

raymond_giuseppi
Active Contributor
0 Kudos

Did you try something with a BAdI like VENDOR_ADD_DATA_CS (even if it's not its initial purpose, it offer a GET_DATA method to change master data from customer screen, and you may find the fields you require in its signature)

Which BAdI/Exit did you already analyze, did you debug the Address function groups for fields unavailable on the master data record only in address records?

You could also considering scheduling a call of method VMD_EI_API=>MAINTAIN_BAPI (wrap it in a RFC enabled FM and schedule it IN BACKGROUND TASK/UNIT)

0 Kudos

Thank you Raymond!

I searched for Customer Exit and BAdI by using Tr-CD:SE84(Resistory Info System) with following condition.

Search condition is Package = FBK(Vendor) or SZAD(Address).

I found the BAdIs shown in inserted image(including your suggestion VENDOR_ADD_DATA_CS, I wll check this BAdI).

Then, I narrowed the possible BAdIs by checking their import parameters. I excluded the BAdIs which doesn't have LFA1 stractures in its import parameters.

As you mentioned, I might have to consider the scheduling. However, my client's requirement is to update the data by realtime and so I am now looking for BAdI,Exit solutions.

Please tell me if there is a better way.

This is a correct way to find BAdI (there is also debug/trace as already described in this forum)

You could also set a break-point in MF BF_FUNCTIONS_FIND to indentify some good old BTE (implemented thru FIBF, look with BERE for vendor master data BTE, range 00001400-00001499)

If no BTE/BAdI/Exit is suitable, then go on debug on the PAI of the dynpro where the group is input (0120?) and find a suitable enhancement spot to read the group master data and update the required address fields.

0 Kudos

Thank you Raymond!!

I will try what you suggested.

My concern is that even if I found the suitable enhancement spot to update LFA1 data, the ADRC data might not be changed. Because one of the requirement field is PO BOX and that data is registerd both in LFA1 and ADRC.

If you have some suggestion about function module or BAPI to solve above concerns, please tell me.

0 Kudos

Then you have to change the values both in LFA1 and in memory of address managing function group. First set break-points at start of FM like ADDR_MEMORY_PUSH and POP, to find how to handle the data of the SZA0 function group (GT_MEMORY_STACK)