on 09-23-2014 9:56 AM
Hi Gopal,
Please check the source of these fields in your feeder system and then update the data there to have the changes sync'd in GTS. Its not advisable to update this directly in GTS.
If you are 100% sure that these fields are not being pulled from ECC, then you may have to look at the list of FMs and Programs using table /sapsll/prgen by running where-used list.
Let me know if you need any more help.
Regards
Dhilipan
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
Hi Gopal,
The idea is to make the changes in the feeder system Product Master records, and re-transfer them to GTS.
If you really want to make one-sided changes for some reason, then take a look at Function Module /SAPSLL/PRODUCT_MNTN_OBJECT, based on Class /SAPSLL/CL_PR.
Regards,
Dave
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
I want to just update one of the attributes (under additional data) for an existing product.
I have setup the changing parameter CS_OBJ. Here i have given the GUID_PR of the product.
Then I filled PRGEN internal table. In this table I have filled GUID_PRGEN, GUID_PR and ATTR01B.
But then I get below dump. What am I missing?
Hi Gopal,
What you're missing is a good developer who can guide you on these technicalities.
What we are missing is the business logic. As Dhilipan says, it's not advisable to update the attributes directly. The data is designed to be transferred from the feeder system. Why aren't you doing that?
Your answer may help us to find a better solution for you.
Regards,
Dave
I am really sorry, I new to SAP GTS.
Can you tell me what is a feeder system and how do we use that to send/update data?
In my scenario, the product attribute value that I am changing is coming from another system via SAP PI.
Third party System -> PI --> GTS
In GTS, in my ABAP proxy code I was thinking to call this FM to update the attribute.
Thanks
Gopal
Hi Gopal,
Feeder system is your ECC box. Go to ECC system and see if you have any of the following exits active.
Enhancement: SLLLEG04
These are function exits.
EXIT_SAPLSLL_LEG_PRR3_001
EXIT_SAPLSLL_LEG_PRR3_002
EXIT_SAPLSLL_LEG_PRR3_003
EXIT_SAPLSLL_LEG_PRR3_004
Additional data attributes are pushed in EXIT_SAPLSLL_LEG_PRR3_004. You should see updates to cs_api6850-attr structure.
Once you reach this point, see what all fields or data being pushed. This will give you an idea on the list of data being pushed from feeder to GTS. We can then check on how to change this in feeder/ECC system and sync the same in GTS.
Do let us know if you are stuck.
Regards
Dhilipan
Hi Gopal,
Ah, ok. In that case, you would be much better to call the standard API - that's Function Module /SAPSLL/API_6850_SYNCH (or _SYNCH_MASS, if you want to update several Products). You will need to fill the header structure and table IT_6850_ATTR.
Hope that helps a little more..
Regards,
Dave
Hi Dave,
Looks like I am close to my solution.
I have tried /SAPSLL/API_6850_SYNCH.
In the header structure IS_API6850_HDR I have filled only the PRODUCT_GUID, PRODUCT_ID, CHANGEDBY, DATAB (mm/dd/yyyy) and PRBUM_ISO. Is that enough?
Then I filled attribute table with PRODUCT_GUID, PRODUCT_ID and ATTR01B
I unchecked IV_UPDATE_TASK. IV_COMMIT is checked.
CV_LOG_HANDLE is blank.
But still it is not updating the required attribute.
I don't get any error either.
In application log I see the below success message:
Thanks
Gopal
Hi Gopal, guys
Sorry if i`m repeating what someone else said before as its a long thread.
The preferable option that we implemented is a small custom Z transactio where users maintain these attributes. Selection screen same as the ususal /sapsll/product_02, and then get the PRGEN entry and maintain on second screen.
Using the API FM used for ECC system sync... well maybe its a bit unnecessary & overcomplicated. Once you get the Product Object, you can use the maintain object/ maintain subobject methods that is standard and works without simulating inbound api call..
heres the screenshot
Hope this helps,
UPDATE : Mind you, that if you do changes to the attributes in GTS, they will stay for as long as there is no new update for the material in ECC...
Once a change pointer or manual transfer triggers a re-transfer, manuall changes will most likely be flushed and set back to what comes from ECC api.. just bear this in mind pls & test this case...
Branio
Hi All,
I came one step closer.
Earlier I did not fill the input parameter IS_TCOGVA. This contains the feeder system.
Now I filled it and it is now updating the attribute. However it is making another copy of the product.
In the copy of the same product, a new internal product number is also there.
Is this normal behavior? Or am I missing something?
Hi Gopal,
i believe this is due to what you inserted into that internal tcogva table. If you`re trying to update material that was created from another system than your PI which is only updating the entry (is this your setup?) for attributes, that the parameters need to match. That API FM looks in the pointer table first (/sapsll/pntpr) and if there is no entry for combination of - the same external material number X logical system group it will make a new entry for a new material..
Cheers,
Branio
Yes my case is: trying to update material that was created from another system than
PI which is only updating the entry.
One more Q: Do I need to fill the header structure: IS_API6850_HDR?
What all fields in header I need to fill? Should it be same as existing in system or I need to enter new values for CHANGED_BY, etc?
Hi Gopal,
If you use this approach - this perhaps wasn`t mentioned before - and will call the inbound API FM, you need to provide ALL the existing information about the material currently in the system + the changes to the attributes. Otherwise you will risk losing this information on the product created from ECC originally.. or getting entry error if required entry fields are missing... field CHANGED_BY is perhaps not so important, but all the others like weight/Uom, validity periods.. are usually very important..
If you dont use the this API FM and instead go for Class methods get product object and then maintain object/subobject you can avoid this... at least you can choose
Cheers,
Branio
User | Count |
---|---|
14 | |
4 | |
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.