Tips and Tricks on Field Modifications in Transaction BP, CVI in S/4HANA
Have you recently converted your system to SAP S/4HANA?
Are you still getting used to how the BP transaction works vs your already tried and true configurations on Customer/Vendors account group settings?
Well then, I hope I can shed some light with on how to make that processes easier.
But before I do that I would first like to point you to the main note of this process https://launchpad.support.sap.com/#/notes/2603898
That has been meticulously maintained by our development colleagues over our SAP S/4HANA releases, thus a lot of additional functionality has been added since the beginning. The note above contains all the information since the note was first published years ago and it is extremely important to understand the logic and how fields are reacting in the BP transaction of SAP S/4HANA, that is why I strongly urge you to read the information there.
Having said that one of the most important POST Processing phases concerning the Field settings in the BP transaction is moving the content of table CVI_BP_CV_ASSIGN. This table is delivered as a C table and that means the table contents are imported into client 000 and then must be distributed to the other clients actively in the customer systems !! – the details on the content of the table above are present in the note we talked in the beginning.
Please note that after transporting the table to your productive client you may face some specific errors that are going to be solved by a specific note. The details are again found in note https://launchpad.support.sap.com/#/notes/2603898
These were the basic and standard steps we need to take in the Field Modification part, so please bear with me with the most advanced ones and the tips and tricks.
! The information below is applicable from S4CORE101-104!
We now have a Visibility Check report that helps us understand how certain fields are maintained on the Customer/Vendor side vs the BP side:
The note that bring the report is: https://launchpad.support.sap.com/#/notes/2848273 , it can be either manually implemented(several post implementation steps!!) or it can already by in your system based on the SP you are on.
Assuming we now have the note in our system I will guide you step by step in the process of identification of certain issues and how to solve them.
- We first run the MDS_PPO2 transaction in our S/4HANA instance to see if we have issue when we are trying to create new BP/Customer or BP/Vendors, via the BP transaction, like the one below for example:
- We have an error on the Payment Methods field, which apparently is a required field.
- Run transaction code CVI_CHECK_VISIBILITY
This transaction is the one that will help us find the reason certain fields behave in certain ways according to specific customer/vendors.
The only thing we need now is the Table Name and the Field Name, or the field group that was causing our problems (Payment methods remember!).
- Go to the BP transaction on Display mode and find that field
We now have the technical names so let’s use our visibility check transaction.
- Go to transaction code CVI_CHECK_VISIBILITY and let’s enter our details
We also need to enter our Partner ID (which is the vendor number in this case) and the role we are looking at.
Therefor we have on our screen the Technical details of the field, the Vendor Number in question and the Role that we are trying to modify that vendor.
Please note that you can also select the activity (Create/Change/Display)
Once all the information is entered, select the option “All Statuses” and hit the Execute button.
(The information from the print screens are just examples from a test system)
- Interpreting the results
- It appears based on the information on the last two lines that we have a Company Code wide setting on field LFB1-ZWELS that is required, regardless of what account group I am using.
- That means that when creating/editing a Vendor in SAP ECC I need to fill in the Payment Method field.
- That translates into an adjustment we need to make on the BPs side in the FLVN00 role.
- If we look at the top of the print-screen we can see that we don’t have anything defined on field group 1997, which is the LFB1-ZWELS field. Which is correct hence the error that we received in the beginning.
- Go to SPRO/Cross Application Components/SAP Business Partner/Business Partner/Basic Settings/Field Groupings/Configure Field Attributes per BP Role
- Select the FLN00 Role and go to the Vendor: General Company Code Data
Where we can clearly see that we need to adjust the customizing and set this field as required.
Thus by doing so we keep our existing configuration on the Vendors side and now the BP transaction will mimic that configuration and we will be error free.
Please take the above example as just an example of a possible issue and treat it as such.
I hope I managed to explain the process of identifying a field setting in BP and correcting it, and please use the same logic in identifying problems in your specific case.
Thank you so much
I'm happy that you like my report CVI_CHECK_VISIBILITY and make it known 🙂 .
But the solution to the problem is NOT that they need to make the field also mandatory in the role. Quite the contrary. The notes that you mention make it so that the customer/vendor settings for mandatory (and hidden and display-only) fields will be taken into consideration automatically in transaction BP. The solution is found in the two warnings marked in yellow in the output of the report: The tables with the mappings are empty. As you mentioned yourself their content needs to be copied from client 000 or implemented with the BC Sets attached to that and other notes.
Also where you say "several post-implementation steps" there is only one, executing a report, very simply 😉 .
Oh, actually for LFB1-ZWELS the mapping tables are not necessary because this field is mapped based on naming conventions. And we see in the report that it should be mandatory in transaction BP already. So it's weird that it's not. You may want to open an incident. Maybe this is because the vendor is marked for deletion?
Thank you so much for the comments and especially the report you created.
In regards to the LFB1-ZWELS field I had some a particular scenario and as you said it is a “weird” behaviour, but I will look into it more and create an incident.. as it was actually involving an Employee-Vendor that had particular data coming in from the HR side.
In regards to the several post implementation steps, I had a couple of more notes to be installed since together with 2848273 I was doing the activities in an older 1809 system, and that is why I mentioned that I had a couple of other activities…however for our audience if you are implementing this in a newer 1909 system you may already have the report available.
Again I appreciate you jumping in and providing so much useful information for our community.
maybe you can of help to me with regards to do mass updating LFB1-ZWELS. Easy to do with a direct table update, but then there is no change history when using BP.
I tried creating BDC 's, but it does not have the desired outcome. I looked far and wide for a BAPI to use, but up to now could not find one to do it. Do you know of a BAPI that would allow me to do it - my input file contains a company code and the vendor number.
These are your options:
LTMC, a Fiori application. I am not sure if they already support updates or only creations (its main purpose is migration).
Write code that calls one of these: function CVI_EI_INBOUND_MAIN or method CL_MD_BP_MAINTAIN=>MAINTAIN (first call VALIDATE_SINGLE). For both you need a business partner ID, too.
If this is SAP_APPL and not S4CORE you can call customer APIs directly. I'm not so familiar with those, try class CMD_EI_API.
Thank you Monika,
maybe I am wrong, but I can not update it with the functions mentioned.
The following screens show which record we try to update. It is on the Vender: Payment Transactions tab, for the FI Vendor role.
transaction MASS did in the end do what we had in mind.
CVI_CHECK_VISIBILITY is an excellent report, many thanks