cancel
Showing results for 
Search instead for 
Did you mean: 

How to change product master data in GTS?

gopalkrishna_baliga
Participant
0 Kudos

Hi Experts,

   I want to change additional data of a product master in GTS.

     

  

   I want to update the values in the screen below (Additional data)

     


   How can I do this? are there any function modules?

   Please help.

Thanks

Gopal

Accepted Solutions (0)

Answers (2)

Answers (2)

Former Member
0 Kudos

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

former_member215181
Active Contributor
0 Kudos

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

gopalkrishna_baliga
Participant
0 Kudos

Hi Dave,

  In the FM /SAPSLL/PRODUCT_MNTN_OBJECT I found that it needs GUID as mandatory key value.

   How to create GUID?

Thanks

Gopal

former_member215181
Active Contributor
0 Kudos

Hi Gopal,

New GUIDs should only be required if you are creating table entries - in that case call Function Module GUID_CREATE.  Otherwise the GUIDs must already exist - in that case, please explain more about what you have found in the code.

Regards,

Dave

gopalkrishna_baliga
Participant
0 Kudos

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?

former_member215181
Active Contributor
0 Kudos

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

gopalkrishna_baliga
Participant
0 Kudos

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

Former Member
0 Kudos

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

former_member215181
Active Contributor
0 Kudos

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

Former Member
0 Kudos

Sorry.. Just read your message stating you don't use ECC. Can you check how is this data sent from PI. I am not a PI expert. Probably, you will need someone from PI team to help you.

Regards

Dhilipan

gopalkrishna_baliga
Participant
0 Kudos

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:

Product "0000000000000000000000000000000XXXXXXXX" was transferred

Thanks

Gopal

Former Member
0 Kudos

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

gopalkrishna_baliga
Participant
0 Kudos

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?

Former Member
0 Kudos

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

gopalkrishna_baliga
Participant
0 Kudos

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?

Former Member
0 Kudos

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

gopalkrishna_baliga
Participant
0 Kudos

Hi Branio,

  Can you give me the class name that I have to use? I am new to GTS hence not aware of such class.

Thanks

Gopal

Former Member
0 Kudos

Hi Gopal,

Pls find a screenshot from me few posts up in the discussion.

Cheers,

Branio