cancel
Showing results for 
Search instead for 
Did you mean: 

Vendor Master Extension in SRM

Former Member
0 Kudos

Hi,

I am working on Vendor master table enhancement in SRM 4.0. I have added a new field in the master table using transaction EEWB. The new field is created successfully and can be seen in table BUT000.

Using badi BBP_BUPA_GET_CUF I am showing this field on SRM transaction BBPMAININT and is getting maintained correctly from there.

It is not getting maintained when I am replicating vendors in SRM from R/3 i.e. transaction BBPGETVD. For this I have implemented badi BBP_MAP_VMDATA_CF in backend R/3 system and badi BBP_GET_VMDATA_CF on SRM side. In the debug mode I can see that the data mapped in R/3 is coming correctly in SRM badi. In this BADI I am using Function Module ZZG00_BUPA_EVENT_DSAVB generated during EEWB transaction. But this FM is not storing any value in the tables. Badi help doc says for single field creation using EEWB, a FM ZZG01_BUPA_API_DETAIL_ADD gets generated and by passing Partner No and new fields Value (captured from R/3) the field can be populated. But in actual such FM is not generated and above mentioned FM (ZZG00_BUPA_EVENT_DSAVB) does not have any importing or exporting values. Is this caz of EEWC configuration? Or is there any other way by which I can achieve this.

Please do update if any one have ever worked on such requirement before.

Thanks in advance.

Rahul.

Accepted Solutions (1)

Accepted Solutions (1)

Former Member
0 Kudos

Hi Rahul,

this is right.

When using EEWB, the system will generate all needed ABAP objects (tables, data elements, structure, FM, BUPA events...).

The object name depends on the customer name space you have defined before using EEWB: Z or ZZ or YY...

So the FM can look like this:

ZZZG01_BUPA_API_GET_DETAILS

ZZZG01_BUPA_API_DETAIL_ADD

ZZZG01_BUPA_API_DETAIL_REMOVE

ZZZG01_BUPA_API_DETAIL_CHANGE

01 can be replaced by 02, 03, etc...

So you must first use the GET_DETAILS, the CHANGE if some data already exist or the ADD if not.

You must not call FM ZZG00_BUPA_EVENT_DSAVB because this one will be called in the standard by save events.

And your added/updated data will be stored in DB.

Rgds

Christophe

Answers (3)

Answers (3)

Former Member
0 Kudos

Thank you Christophe again for the valuable input.

I have successfully achieved the desired result.

Thanks a lot,

Rahul.

Former Member
0 Kudos

Hi,

I have the same problem than Rahul, but I cann't use FM BUPA_CENTRAL_CI_CHANGE because FM needs import parameter PARTNR_GUID instead of PARTNER_ID. PARTNR_GUID is generated once Partner is created in SRM.

I have PARTNER_ID (input parameter IV_PARTNER), but my problem is to obtain PARTNR_GUID to use BUPA_CENTRAL_CI_CHANGE.

Thanks,

Felix

0 Kudos

Hi Rahul,

I too have the same problem but slightly different.

The field NATPERS is already there in the table BUT000.It is not there in the SRM 7.0 Screen.I created that field on the screen using Webdynpro Enhancement.Now that field has to be downloaded to backend using transaction BBPGETVD and it has get updated in the database.

Could you please help me in this.Where exactly I need to do the changes in the program BBP_VENDOR_GET_DATA.Reply at the earliest.Explain in detail.

Thanks in advance,

Smitha K

Former Member
0 Kudos

Hi

Ideally, This field NATPERS should be available in SRM 7 as well. Please re-check again in table - BUT000 and find this field name in SE11 transaction.. Also check it, whether the Append structure - APP_BUT000_TAX is existing in the system...

See related SAP OSS Note ->

Note 789400 BP: Nat Pers flag is not retained when BP category changes

Do let me know.

Regards

- Atul

Former Member
0 Kudos

Hello Smitha,

This NATPERS field does not seam to be processed by SRM vendor replication mechanism.

Note 790572 is providing a correction to update this field when using BUPA migration tool.

Note 454565 is providing a solution to update this field when using CRM middleware tool (BDOC), in older CRM releases.

It should be standard now via this tool (see note 864232).

This field should be part of BUPA central data or part of tax data. But I can't find it in BUPA_CREATE_FROM_DATA, neither in BUPA_TAX_ADD.

I think you will try to replicate this value from LFA1-STKZN.

So you can try to use the BADI BBP_GET_VMDATA_CF to update BUPA memory from LT_T_LFA1-STKZN field.

Maybe you could test using BUP_MEMORY_BUT000_GET and FILL functions to update the BUPA memory before it is physically saved into the DB.

Or maybe the best solution is to call the BUPA_TAX_COMMON_CHANGE inside this BADI, to update NATPERS field (it calls 2 previous FM on BUP_MEMORY_BUT000...).

This FM is specifically designed to update this field.

Kind regards

Christophe

0 Kudos

Hi Christophe,

Thanks for our reply.

The BADI BBP_GET_VMDATA_CF is for customer fields I think.So I am using the BADI BBP_BDI_VM_ADD_DATA_CREA and trying to create a implementation in that BBP_ICC_BDI_ENH__VM_CREATE_BR.The implementing class is CL_EX_BBP_ICC_BDI_VM_CREATE_BR and the interface is IF_EX_BBP_BDI_VM_AD_DAT_CRE.

Now I am nt getting what exactly I need to code in the implementation method ADD_DATA_DURING_CREATION.How to pass the NATPERS field,which function module i need to call to update this field n all.

Can you throw some more light on this.It will be helpful.

Thanks and Regards,

Smitha K

Former Member
0 Kudos

Thanks Christophe for the inputs again.

So does that mean we do not have any means by which we can populate customer enhanced fields in BUT000 table, while replicating vendors from backend R/3 system?

As FM BUPA_CENTRAL_CI_CHANGE needs import parameter as PARTNER_ID which can only be generated once Partner is created in SRM.

Please confirm. If so I will scrap all the enhancement and will create field using 'ADD_NEW_TABLE' option.

Thanks again.

Rahul.

Former Member
0 Kudos

Hi Rahul,

The BADI documentation provides samples for EEWB table extensions only, but:

- The BADI to replicate customer fields BBP_GET_VMDATA_CF has got input parameter IV_PARTNER.

- The BADI is called at the real end of BBP_VENDOR_GET_NON_BAPI, just before BAPI_TRANSACTION_COMMIT --> this parameter is correctly populated with SRM vendor ID (internal or external).

So there is no problem.

Rgds

Christophe

Former Member
0 Kudos

Hi Christophe,

Thanks for the response.

I am sorry if I have not narrated my problem correctly. But the problem itself is that the said FMs like

ZZZG01_BUPA_API_GET_DETAILS

ZZZG01_BUPA_API_DETAIL_ADD

ZZZG01_BUPA_API_DETAIL_REMOVE

ZZZG01_BUPA_API_DETAIL_CHANGE

are not generated after adding a field in BUPA using 'ADD NEW FIELDS' in TC EEWB.

The only FMs generated are:

ZZG00_BUPA_EVENT_DLVE1

ZZG00_BUPA_EVENT_DSAVB

ZZG00_BUPA_EVENT_ISDST

ZZG00_BUPA_EVENT_ISSTA

ZZG00_BUPA_EVENT_XCHNG

ZZG00_BUPA_PAI_ZG000100

ZZG00_BUPA_PBO_ZG000100

Beside these there are some reports, tables, domains, FG etc created. As I can not find any FM like "*_BUPA_API_DETAIL_ADD" I am not able to populate the newly created field using badi BBP_BUPA_GET_CUF.

I just want to know why these FMs not generated? Is it caz I am using 'ADD NEW FIELDS' instead of 'ADD NEW TABLE'? I am using FIELDS caz the new field will be maintained in Vendor general data.

Please throw some light if you can.

Thanks once again.

Rahul.

Former Member
0 Kudos

Hi Rahul,

Sorry,

you are right, those Fm are generated for table extensions, not for field extensions.

Field extensions must be in structure CI_EEW_BUT000, used as an include of table BUT000, part of general data.

CI fields are not handled by BUPA_CREATE_FROM_DATA, but by specific FM.

You could use one of the following:

BUPA_CENTRAL_CI_CHANGE

BUPA_CENTRAL_CI_GET_DETAIL

BUPA_CENTRAL_CI_SEARCH

Rgds

Christophe