SAP SRM 7.0 Customer enhancement in Supplier Registration form
Summary:
Supplier registration process is a mandatory process for sourcing activity. For any new prospect suppliers to participate in a bid, they must exist in SRM system. We can bring these bidders into system using Supplier registration process. SAP does provide a standard form for registration but most of the customers has their custom requirement which requires enhancements in it.
Process to activate standard Form:
In SRM 7.0 SAP has provided ABAP WebDyn Pro form for Registration of supplier.
Step 1: Activate SRM_SUCO_1 switch and then active Supplier Self-Registration node (@ RoS Client).
Step 2:- Under Node Questionnaire Settings maintain below configuration (RoS Client).This configuration is required to send Questionnaire after submitting registration from.
Create/Change Questionnaire
Select Product Categories for Registration
Language Selection for Questionnaire
Assign Questionnaire and Language to Product Category
Step 3:- Activate SICF service for supplier form at RoS Client. Test this service & it will open a standard form.
Enhancement section
SAP main form consists of a main component which holds multiple view containers; each view container is linked with a webdynpro component.
Step 1:- In this example Customer wants to add custom fields at General Company data component which is one of the webdynpro component linked with main form (I will be showing here for few fields for a single view).
- Go to transaction SE80 and open webdynpro component /SAPSRM/WDC_SUCO_SREG_GEN for General data.
- Add a append structure in INCL structure INCL_EEW_BP_CSF_COMPANY_DATA. Here we are adding a custom field ZZ_SUP_TYPE. This INCL is associated with the above webdynpro view.
- Now we want to make sure that data of this custom field should also store into data base table BUT000 (Master table for business partner).
- For this we need to enhance BUT000 INCL structure INCL_EEW_BUT000 with the similar fields, add a custom append structure here as well.
- Create an UI element and bind it with custom field inserted into INCL structure.
Step 2:
Meta data settings; Go to transaction SM30 and maintain meta data view /SAPSRM/V_MDF_S1 for RoS
Step 3:- Test Service, it will open the form, now you will able to view custom field on the screen.
Test the changes:
A Questionnaire email should have floated to Supplier provided address.
You can find that data has been saved in business partner table BUT000 (@RoS client)
Good Work..thanks for sharing nice document..
Hello Sir,
Its a great document.Thanks for sharing this with us.Helped me to learn a lot.
Thanks
Gaurav
Dear Devraj,
Nice document. Thank you for sharing the Knowledge.
Thanks & Regards
Arun.K.P
Hello sir,
Its very good document. Thanks for sharing this.
I have one question regarding mail to vendor manager.
Whether is this standard functionality mail should go to vendor about the new supplier registration. If yes, please let us know, where that setting needs to be maintained.
Regards
Venkatesh P
Thanks everyone for your inspiring comments.
@Venkatesh You just need to configure SCOT for emails. Sending email is a standard function in this process. if you check below class then there is a method which is used for sending Questionnaire with email.
Class --> /SAPSRM/CL_SUCO_QSTNR_PUBLISH
Method --> QSTNR_SEND
HI Devraj,
Thank you for your reply.
Sorry for confusion. I mean mail regarding new vendor registration information to the manager/buyer with the content "A new supplier has been registered XXX...." . This mail is not trigerring in our case.
Is this standard mail configuration or do we need to configure mail any where?
Questionnaire mail is getting trigggered to vendor.
Only problem is triggering mail to manager/buyer for the new supplier registration.
Regards
Venkatesh P
Hi Venkatesh,
As per my understanding these is no such provision in standard to send an email to buyer, most of the time buyers get to know about new supplier registered while checking "Supplier Pre Select Tab" using Operational purchaser role in role client but I believe there is a scope of custom development here.
Let me know if need more information on the same.
Regards
Devraj
Thank you Devraj.
Thanks Devraj for gr8 document,
please advise, how to handle supplier renewals in ROS.
Regards,
Ravi
Hi Devraj,
Thank you for your steps.
We have followed the steps as per your steps for adding the custom field.
But BUT000 table is getting updated with custom values and also value is disappaering in the form after save.
Also could you please let me know, what to add in the table /SAPSRM/V_MDF_S1 .
Thanks
Venkatesh P
Hi Devraj and Venkatesh,
I followed the steps as per above process for adding the custom fields.
After activation of /SAPSRM/WDC_SUCO_SERG_GEN, custom fields are not displaying in the registration form.
I tested custom UI element bind with standard field in the structure. Then it displaying custom UI element in the form.
Can you please advice.
Thanks
Ravi
Dear Ravi,
Have you done with meta data config?
Regards
Devraj
Hi Venkat,
Sorry for delay ..
You need to add meta data information here.
i.e for Gen Data
Set type - BC
BO type - BUP002
Filed name - Zfield
and visibility parameter, It will make you field visible. Let me know incase of any other issue.
Regards
Devraj
Hi Devraj,
Thanks for response.
I am done with that part. it displaying custom fields. Custom fields data not saving into the table and can you please let me know correct place to put custom field validations.
Thanks
Ravi
Can u let me know in which component you have done changes (i.e. there are multiple components in ROS form like Gen data, Contact person etc)? Provide me component names.
for Validation Check
ROS_BUPA_DATA_CHECK
if it does not work then check "Note 1678039 - BAdi ROS_BUPA_DATA_CHECK not getting called in ROS"
Or implement BUPA_EXTINCL_CHECK
Regards
Devraj
Hi Devraj,
I added my custom fields in Gen Data Component.
Thanks for validation check information, I will check and let u know.
Thanks
Ravi
Hi Devraj,
I followed the steps as for adding the custom fields.
The z field it is not obligatory, therefore, and valid in webdynpro:
Created action in ivew V_SUPP_GENERAL - > VAL_USER. And corrected validate.
But when pressed the send button, not valid, so the enhancement, but the value is not sent. why?
and implemented ROS_BUPA_DATA_CHECK but dont see the field in any structure.
in BUPA_EXTINCL_CHECK. I see the field, but it's clear
Therefore does not record to a but000
Thanks & Regards
Edward.
Hi Devraj,
I have followed all the steps here.
Additionally i have done the meta data config with the below details for General WDC for all my custom fields-
Structure Field Name- Zfield
BO Set Type- BC
Bus Object Type- BUP002
Metadata field Type- S
Set level- HEADER
and the required/mandatory/visible parameters.
Everything comes fine on form, it accept input and i am able to aubit the form too,
but when i open this form from the portal, the data for all the custom fields on the general WDC gets cleared automatically.
Any expert comment here?
Anticipating your response here.
Regards,
Mrityunjai
Dear Mrityunjai,
Confirm me.
1 - What all view you have enhanced?
2 - Is data getting saved into BUT000 (RoS Client).
Regards
Devraj
Hi Devraj,
We are also getting same issue, ROS custom field data not saving into BUT000.
According to the sap note 1848510, there is no standard way to enhance the ROS.
Can you please help me to save the custom fields to BUT000 table.
Thanks
Ravi
Data is getting clear at this stage, It seems, a Bug in SAP code!!
Hi All,
We had also same issue. So we have written our enhancement to update the same.
To update the custom field value in the BUT000 table, we need to implement the Implicit enhancement in the class : /SAPSRM/CL_PDO_BP_UPDATE_BUFF , Method : PREPARE_PD_CP_BASIC_DATA
Regards
Venkatesh P
Thanks Devraj and Venkatesh,
We implemented the enhancement and custom fields are saving into but00. When we try to edit the custom fields not updating with new value.
Can you please help me on this.
Thanks
Ravi
Hi Ravi,
Have you implemented the Enhancement?
/SAPSRM/CL_PDO_BP_UPDATE_BUFF , Method : PREPARE_PD_CP_BASIC_DATA
IF ms_buffer_change-company_data-zz_ind_key NE ms_buffer_master-company_data-zz_ind_key. " Update action
MOVE 'X' TO ms_pd_bupa-data_central_ext_x-zz_ind_key.
MOVE-CORRESPONDING ms_buffer_change-company_data-ext_csf TO ms_pd_bupa-data_central_ext.
ELSE. " Create action
MOVE-CORRESPONDING ms_buffer_change-company_data-ext_csf TO ms_pd_bupa-data_central_ext.
ENDIF.
This is the code we have written for both update and create action of value.
Hope this helps.
Regards
Venkatesh P
Hi Ravi!!
Into the view of webdynpro. in the method tab. click in icon (web dynpro code wizard) and insert code get and set the custom field for validation.
* get single attribute
lo_el_context->get_attribute(
EXPORTING
name = `ZZ_XXX`
IMPORTING
value = lv_zz_xxx).
if lv_zz_xxx is initial.
validate
endif.
***
***
***
* set single attribute
lo_el_context->set_attribute(
name = `ZZ_xxx`
value = lv_zz_xxx ).
Then value traveller .
Regards,
Edward.
Thanks Devraj Singh for sharing such a useful article π
Thank you very much.
Can you help suggest more articles about ROS?
Regards,
Hayashi
Hi Devraj,
Thank you so much for the expert help.
Regards,
Mrityunjai
Thanks for the article . Its helpful in my upcoming assignment
Rgds
Ankit
Hello Devraj,
First of all thanks for this post it's been very useful for me.
I have followed the steps you have indicated in the post, but once i execute the service i cannot see the newly added fields. I can see them in the layout but not in the service.
Any idea?
Regards
Hello Jon,
True, you won't be able to see the newly added fields, since you have missed one part of it, which is configuration for all the custom fields. This is a brilliant document, but incomplete without this config part π
I am including here one example, please use it suitably and your job will be done π
Please let me know if you face any further issue after this config.
Regards,
Mrityunjai
Thanks Devraj for your help.
Helpful link!!
but does anybody know which are the values i have to indicate in fields:
BO Set type
Bus Object Type
If I want to add the fields in the supplier registration process?
Regards
Jon,
please take help from the above attached screen shot.
It varies and depends on your requirement.
You can select the different values based on the component, view, data section where you have appended the fields.
BO set type- BCPB as in i had appended fields on contact data view only, select this value based on the Data type added on ROS form.
BO Object Type- BCPB for ROS.
Rest you can put as it is in the screenshot.
Regards
Hello Mrityunjai,
You are right, i have maintained the view with the field i want to add. In my case i want to add a new field for VAT in company data.
So the table entry is:
BC
BUP002
and my new field.
I have saved it but i cannot see it in the dynpro.
Any idea?
Regards
Hi Jon,
As Mrityunjai said field should be visible.Please cross check if you maintained it as per the screenshot.Please make sure to update the webdynpro screen with the new field.In case of issue please provide your screenshot.
Thanks a lot.
sorry Jon to be late here.
Thanks Sardar for helping out Jon, you have these properties, visible/enabled/required/editable, which you have to mark accordingly.
You could always refer the detailed screenshot for the same.
Anyways it's good to find your problem is resolved π
Curious, i made a mistake now it works!!
By the way, i would like to make another question... does anybody know how can I avoid the email dupplicate message when i try to create a new supplier in the supplier registration form?
Thank you.
Jon
Hi Jon,
Its a standard functionality and you can check the CHECK_DUPLICATES method of the BADI ROS_BUPA_DATA_CHECK
Thanks
Shuvrajyoti
Thanks I saw it before but i was not sure about it would suit my requirements because when I introduced a breakpoint in the exithandler class that badi was not being showed. I will try and tell if its ok for me.
Thanks
Shuvrajyoti
Hi Jon,
Please check Note 1678039:BAdi ROS_BUPA_DATA_CHECK not getting called in ROS once.
Thanks
Shuvrajyoti Sardar
HI,
Our SRM version is higher than the ones that apply that note.
Regards
Hi Jon,
Suggession is to set debug point inside method /SAPSRM/IF_PDO_AO~SAVE of Class Object /SAPSRM/CL_PDO_AO_BP_POT_SUPPL and check step by step.
Thanks
Shuvrajyoti Sardar
Hi Jon,
Please explain your concern in detail.
Are you looking to stop the email triggering to the supplier upon registration for response to questionnaire based on category selection in ROS form?
Regards,
Mrityunjai
Hi again,
First of all thanks a lot.
I try to explain, when i try to register a supplier in the supplier reistration form, if there's a supplier with the mail i have indicated for the new one an error message is showed. I want to skip this error message ( diable the check ).
I have implemented the ros_bupa_data_check badi, but it does not work i ( i set the duplicate value in method check_duplicate by debugging ) and i do not get rid of that message.
Any idea?
Regards
Hi again,
Do you know which badi i have to implement to validat the value i introduce in a custom field?
Regards
Jon
Hi Jon,
You need to create Post-Exist of CHECK_MANDATORY_FIELDS method of class object /SAPSRM/CL_PDO_AO_BP_POT_SUPPL to validate the custom fields.
Thanks
Shuvrajyoti Sardar
Thanks a lot for all the comments. I have made the implicit enhancement in the method indicated by devraj and it works.
Now I have seen another problem, when I try to edit the Z fields of Potential supplier form data is no¡t being saved, any idea of where I have to check this?
Regards π
Dear Jon,
It was already mentioned in this blog.Please try following .
/SAPSRM/CL_PDO_BP_UPDATE_BUFF , Method : PREPARE_PD_CP_BASIC_DATA
ENHANCEMENT 1 ZPREPARE_PD_CP_BASIC_DATA. "active version
IF ms_buffer_change-company_data-zz_acptrjt_rsn NE ms_buffer_master-company_data-zz_acptrjt_rsn. " Update action
MOVE 'X' TO ms_pd_bupa-data_central_ext_x.
MOVE-CORRESPONDING ms_buffer_change-company_data-ext_csf TO ms_pd_bupa-data_central_ext.
ELSE. " Create action
MOVE-CORRESPONDING ms_buffer_change-company_data-ext_csf TO ms_pd_bupa-data_central_ext.
ENDIF.
ENDENHANCEMENT.
Thanks
Shuvrajyoti
Dear Shuvrajyoti,
That's what i did, and it works:D thenk you so much for your answer.
Regards
Hi,
I have done all the settings but could not see the input field in my Registration portal.
So, i thought of maintaining the calues in the View /SAPSRM/V_MDF_S1 for RoS. But, is not available in my system. Can someone help with the right view, so that i can maintain the values.
Please suggest.
Thanks and Regards,
Satish