on 2020 Mar 18 7:13 PM
We are looking for some guidance or sample code on the best approach to implement dynamic phrase set assignment in SAP EHS module. We would like to dynamically change the phraseset assigned to a characteristic based on the value selected in another characteristic.
We saw that SAP enhancement C14X0001 is available to dynamically determine and assign phrase sets to characteristics based on the current value assignment usage.
Could we still leverage enhancement C14X0001 but drive the logic not on the assignment usage but on a value stored in another characteristic ?
What if this other characteristic is not even yet save in the database and has just been entered at the user interface level (SAP GUI) by the user, could we still use BAPI_BUS1077_GETDETAIL or another family of function needs to be use ? How can we access the current user interface context (SAP GUI) ?
Aside from enhancement C14X0001 would there be other recommended approach that we should try ?
Thanks
Request clarification before answering.
Hello
most of the "properties/"VAT" are "mixed" that means contain e.g. phrase based characteristic and other stuff (e.g. like "Density").
SAP EHS is enhanced a lot in the last 10 years. There is as well some useful "BADI" in place (may be check https://answers.sap.com/questions/135783/issue-of-bapibus1077change-in-atsavecheck-of-badi-.html)
The logic could be here: during the "save" process the data in the VAT is checked... and based on some "rule" you could "enter" a phrase in characteristic A during"save" process (based on data as identified in the VAT). It depends on your "rule".. but more or less this is the same like "MSDS maker" etc. the only difference; the data is enhanced in "save" part.
The "rules" are starting from hit list. E.g. a rule can be:
1.) create data record in e.g. "denisity" with usage "STANDARD/US" having this "phrase" and other data (you need a definition which data should show up; how many "variants" of data to be maintained is needed).
2.) Even if you have prepared the rule only to fill 80% of the "VAT" it is some benefit for the user as the user need only to adjust one "small piece" of data
I would prefer the use of "rule sets". You can stay on "hitlist" level and you need not to navigate to "specific VAT" etc.
Anyhow: The "dynamic phrase set" approach need clear "rules",.. and the set up of these rules is not easy and only if you have the rules you will see some reduction in maintenance time (and as mentioned: It should be a "VAT" which is used very often in maintenance process).
We do not have many "useful" rules to design such an approach. I have no clue if you have still your "rules" in mind
More or less: you need an "ABAPer" who knows by "heart" the data handling options in EHS (more or less: how EHS is "buffering" the data from "start of maintenance of something" until the "start of save process".
C.B.
PS: check e..g. BAPI_BUS1077_CLEARBUFFER; more or less any similar "BAPI" is helpful (e.g. https://answers.sap.com/questions/3623283/example-of-correct-bapibus1077create-call.html)
Check may be https://blogs.sap.com/2019/09/15/use-of-bapis-in-ehs-classic/
And there are some OSS Notes: https://www.stechno.net/sap-notes.html?id=1111161
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
Hi,
Thanks again for all the information and reference. Using MSDS Maker or EHS Workflow at the moment for us is not a option. Still when possible we already use some of the approach you mention, inheritance is for sure a very useful and powerful feature to avoid repetitive data entry and facilitate data maintenance. Still in other cases having a more dynamic user interface that limit the values to be entered is what we are looking for. We will continue to investigate further in that direction. Knowing which other group of functions could be use to access the data at the user interface level from within the C14X0001 enhancement is what we are missing. Any final input on that specific question would be great.
Thanks again for your input.
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
Hi,
Thanks for the initial feedback. We have many use cases where the data entry is complex and would really benefit from dynamic phrase set. We will eventually look into custom "EHS workflow" but short term our goal was to simply use the existing C14X0001 enhancement.
We are planning to continue in this direction for now. We have revised the sample function module provided by SAP "C14X_PHRSEL_DYNAMIC_SET" but this is a limited example. How could we extend that approach to access other characteristics value not yet stored in the database ? If you have additional technical guidance or sample code that may help us it would be great.
Thanks
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
Hello
I am not allowed to share code examples (or other details of our implementation). But we have implemented such requirement (as yours). I need to check later C14X_PHRSEL_DYNAMIC_SET.
Overall: the benefit of the use of this functionality depends on the requirement. If i need to decide now: yes we have implemented it..but the business support is,, from my point of view, limited and the ratio (reduction of maintenance time) is not good enough, So if need to implement it once again: I would not go on in this direction once again but I would prefer e.g. rule set etc. options.
C.B.
Hello
regarding "We have many use cases where the data entry is complex and would really benefit from dynamic phrase set."
Keep in mind this.. in EHS classic there is really a huge number of useful functionality which you can use as a "work around" so that you gain the same benefit but without programming. The use of the other approaches depends on "philosophy" / "User training" etc. and it depends on the number of "variants" you need in your maintenance process
Simple examples are like:
As mentioned above: an user has some specific idea in mind why he/she would like to maintain something . One easy to use option is
use REAL_GRPs having the data you need ; use inheritance; User need then only to "insert" a REAL_GRP in "inheritance" part with an "inheritance template"... The "trick" here is only the "organization" of the REAL_GRPs (you need "usefull" identifiers to search for such REAL_GRps)
A second simple example is: you can copy easily data from spec A to B. So if you have a hit lits with A and B and you would like to maintain B but A does have "similar" data: by using SAP standard copy/insert mechanism" you can populate "B" in < 1 min with use ful data and you need to adust may be only partially the data as copied.
These simple functions are very helpful easy to learn and you avoid complex development
C.B.
PS: please check the "MSDS Maker" options; SAP is now using a different Term since years.. (new term: COSSTA) but this approach is as well very flexible and can be a better solution than the "phrase set" option
E.g. https://answers.sap.com/questions/12501558/how-to-connect-msds-maker-tool-to-sap.html
https://answers.sap.com/questions/11960041/msds-maker-usage.html
https://answers.sap.com/questions/12603684/msds-maker-question.html
https://answers.sap.com/questions/12387806/use-of-msds-maker-and-set-up-process.html
Hello
EHS allows lot of enhancement options. The option you would like to use is one of the many options to improve the "business part" in maintaining something
In the maintenance dialog any how in most cases the data is not "stored" immediately... i can understand your concerns (the technical part). To make it short: it is possible to find a solution (we are using this options for some subprocesses) but the solution depends on the "exact" business requirement.
The "BAPI" i believe you can not use as the BAPI is looking on data which is "yet stored" in data base and not which is "entered in the mode of user".; in most cases: the "phrase set" approach is used for entering data.. so the data is not yet stored in database.
To enhance here: you should only go on if the "business need is big enough"; one criteria might be:
if you now use 5 min in the dialog (until the full value assignment is prepared according to your needs) the "extension" (by using this exit) must be designed so clever that you will need now only may be at least of 3 min (so there must be a dramatic reduce in time to go on). And the "extension" should refer to a property/value assignment type which is used quite often a day so that overall some profit might be gained. Example. such extensions might make sense in context of "core" properties like may be GHS Classification / Labeling stuff but not if you will enter data in the VAT very rarely.,
C.B.
PS: there is nearly "zero" discssions running for EHS workflow but a "EHS workflow" can help as well to reduce the "maintance times" (if you have a clever design !)
But e.g. by using of rulesets and other extension options: as well you can gain speed in maintenance. So the "dynamic phrase set option" is only one of the many options to gain speed in data handling. You should therefore consider the other options as well before you start implementing something. In most cases; the person acting does have a "specific" idea in mind; why they would like to maintain.. and here you should invest time to understand the focus to find the best solution
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
User | Count |
---|---|
2 | |
1 | |
1 | |
1 | |
1 | |
1 | |
1 | |
1 |
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.