cancel
Showing results for 
Search instead for 
Did you mean: 

Master Data Load for New Attribute

former_member206475
Active Participant
0 Kudos

Hi Users,

We had to implement a separate load flow for a new field coming from R3. This field was to be added to existing master data object.

I added a new Display attribute for an existing 0GL_ACCOUNT master data object.

This new attribute along with some other existing fields is getting data from another master data object with an infosource in between because two transformations cannot be created for same source and target.

When i load the data i dont see data being populated for this new field. I did ACR, checked the keys e.t.c.

Source object has data but after executing DTP no data comes to this attribute. No routines or anything.

Please suggest

Regards

Zabi

Accepted Solutions (1)

Accepted Solutions (1)

former_member185132
Active Contributor
0 Kudos

Hi Syed,


This new attribute along with some other existing fields is getting data from another master data object with an infosource in between because two transformations cannot be created for same source and target.

Do you already have a transformation from the source IOBJ to your IOBJ? If so then consider using the existing (direct) path instead of the new transformation via the InfoSource.

Regards,

Suhas

former_member206475
Active Participant
0 Kudos

Hi Suhas,

The situation is:

Field x from source maps to

1. field y ( which was existing field ) and also maps to

2. field z which is the new attribute.

field y has to get updated for company codes 10 for example.

field z for company codes 30.

now if i use same flow and map field x to both y and z then there is overwriting happening if 10 does not have value for x and 20 has then its not good.

So if i use a separate flow with infosource then i will map only x to z so after loads which means for 10 code if no value went in first dtp to y then if code 30 has value for x then z will only be updated and y remains empty....

former_member185132
Active Contributor
0 Kudos

Hi Syed,

You can implement this quite easily using field routines in one transformation.

Field Y : IF compcode = 10, RESULT = Field_X ELSE clear Result

Field Z : IF compcode = 30, RESULT = Field_X ELSE clear Result

Creating two transformations for this is not needed.

Regards,

Suhas

purvang_zinzuwadia
Active Participant
0 Kudos

Hi Syed,

optimal solution would be to use existing transformation only (no need to create new transformation)

in the existing transformation

- map incoming field (field x) to both target fields (field y and field z)

- also map the company code field to both target field (field y and field z)

- write a field level routine to populate the fields on simple if else condition based on company code value

e.g if comp code = 10

        populate field y from x

      else if comp code = 20

        populate field z from x

Hope this helps,

Purvang

former_member206475
Active Participant
0 Kudos

Hi,

Tried this option but something seems wrong.

I cannot load both company codes from same dtp because the keys could be same sometimes. So it will fail.

I have two DTPs now.

Attached is the situation.

former_member206475
Active Participant
0 Kudos

I modified the routine for R0LCL

IF SOURCE_FIELDS-COMP_CODE = 'IT20'.

   RESULT = RESULT.

   ELSEIF

     SOURCE_FIELDS-COMP_CODE BETWEEN 'FR00' AND 'FR99'.

     RESULT = SOURCE_FIELDS-/BIC/R0LCL_ACC.

ENDIF.


Still no use.

purvang_zinzuwadia
Active Participant
0 Kudos

Hi Syed,

what I understand is, in source you have two records and in master data you are expecting only one record, is this correct?

If there should be two records in master data for two records in source then routine should work just fine

Hope this helps,

Purvang

former_member206475
Active Participant
0 Kudos

Yes, i need one record. and based on key fields i will get only one record even if i load with two dtps.

my point is why is the field i mentioned dissapaearing when i run 2nd dtp.

purvang_zinzuwadia
Active Participant
0 Kudos

Hi,

ok, now I got your situation. In current setting, your 2nd field will always get cleared because master data is updated for all fields, whether they are mapped or not.

what you should do here is,

- keep the routine on field Y as it is

- for routine on field Z,

  in comp code condition is true, update the field

  else if comp code condition is false, read the field from /bic/p(object name) table and update it

by this way, you will avoid overwriting the field Z.

keep in mind, you will run DTP for field Y first and then run the DTP for for field Z

for this sequence, you should have correct values populated.

Hope this helps,

Purvang

former_member206475
Active Participant
0 Kudos

Thanks guys for the suggestions..

i got the catch..

it was just that the new DTP was not using the info source flow i created. Instead was using the same flow.

What i did was:

Created new DTP and we have option of list selection in DTP where there are other existing transformations. I selected the new flow and executed.

Seems working now.

Assigning points.

And routines will not help in this case. Its a typical scenario...

Answers (1)

Answers (1)

RamanKorrapati
Active Contributor
0 Kudos

Hi,

Can you check your transformations for your newly added info object mapped to source field properly or not.Have you tested at source side, newly added field have data at source side or not.

Thanks

former_member206475
Active Participant
0 Kudos

Hi,

Transformation is fine.

Source has the data for the source field supplying the attribute..

RamanKorrapati
Active Contributor
0 Kudos

if transformation fine why no data at target level.

Are your sure about rule details are correct? direct mapping?

at psa have data for added field?

During your load have you got any error?

Can you share source and bw data screen shot.

former_member206475
Active Participant
0 Kudos

If you see there are two flows. One was existing and one i created for this new attribute.

and two dtps because we have filters for different company codes.

I am trying to know how can i change the DTP to use the new transformations i created. Might be new DTP is using same old transformation. I checked in DTP screen but it does not the new transformations.

RamanKorrapati
Active Contributor
0 Kudos

Hi,

Sorry, not clear to me.

leave about your other data flows.

just explain the data flow which you changed/added new field.

Thanks

KodandaPani_KV
Active Contributor
0 Kudos

Hi,

i think your running the old DTP please check.

after mapping the fields form source to target create the one more DTP then run.

check the transformation mapping.

Thanks,

Phani.

former_member206475
Active Participant
0 Kudos

Hi,

The situation is:

Field x from source maps to

1. field y ( which was existing field ) and also maps to

2. field z which is the new attribute.

field y has to get updated for company codes 10 for example.

field z for company codes 30.

now if i use same flow and map field x to both y and z then there is overwriting happening if 10 does not have value for x and 20 has then its not good.

So if i use a separate flow with infosource then i will map only x to z so after loads which means for 10 code if no value went in first dtp to y then if code 30 has value for x then z will only be updated and y remains empty....