cancel
Showing results for 
Search instead for 
Did you mean: 

Uniqueness of a master data

amine_lamkaissi
Active Contributor
0 Kudos

Hi experts,

I have to create a new Master Data in BW. The issue is that 5 fields ensure the uniqueness of a record, below an example:

account

func area from

func area to

profit center from

profit center to

virtual account

6010101

0

0

1050013

1050013

R96101M

6010101

39

1050013

1050013

R96101M

6010101

0

0

1100016

1100031

R96101M

6010101

39

1100016

1100031

R96101M

6010101

0

0

3010101

3010206

R96101M

6010101

39

3010101

3010206

R96101M

6010101

0

0

3010208

3031443

R96101M

6010101

39

3010208

3031443

R96101M

I tought about creating the green fields as compounding. What do you think? Is that technically possible? Any other ideas?

Thanks for your support.

Amine

Accepted Solutions (1)

Accepted Solutions (1)

anshu_lilhori
Active Contributor
0 Kudos

Hi Amine,

Green Flag from my side as well.But this is important before you implement this model:

A maximum of 13 characteristics can be compounded for an InfoObject.

Note that characteristic values can also have a maximum of 60 characters.

This includes the concatenated value, meaning the total length of the characteristic in
compounding plus the length of the characteristic itself.

Hope that helps.

Regards,

AL

Answers (8)

Answers (8)

Former Member
0 Kudos

Hi Amine,

Please make a note that your master data nfoobject itself is also a part of Key field along with Compunding. And master data IO must exist to add Compounding in that, so in your case according to data you have shown, Account will be master data IO and other 4 fields will be placed in Componding.

And if my understanding is wrong and you are talking about additional 5 fields along with 1 master data IO, then means you have total 6 fields to make record unique then its correct that you will add this 5 fields in Compounding. but i think that is not the case. you have only 5 fields to make record as unique as shown in your query.

Regards,

Dipti

amine_lamkaissi
Active Contributor
0 Kudos

I agree with you Dipti.

Amine

Former Member
0 Kudos

Yes in that situations we will create  compounding attribute on that objects or Else the records will get overwritten.If you have same combination of objects coming from both the files, then you need to have 0SOURCESYTEM in the compounding.If you add 0SOURCESYSTEM in the master data, then you have to populate this in the transaction data where you are planning to use this infoobject.

amine_lamkaissi
Active Contributor
0 Kudos

Actually, the MD will be loaded from a CSV file.

Amine

amine_lamkaissi
Active Contributor
0 Kudos

Thanks Guys,

@Anshu, lf my compounding produces a total lenght of 66 instead of 60. How can i bypassit?

Thanks.

Amine

amine_lamkaissi
Active Contributor
0 Kudos

I guess reducing the lenght of some infoobjects, but if not possible i mean...

former_member186445
Active Contributor
0 Kudos

one char can be up to 60 long. the total compounded length can be longer (13 * 60)

BR,

M.

RamanKorrapati
Active Contributor
0 Kudos

Hi Amine,

Just guessing:

While adding objects to compounding, you can add func are from and func area to at last.

while doing reproting time we may see results of func area to will be truncated due to 60 length restriction.

if func area to length was 8 to 16 , then there won't be problem even if truncated. because in func area to values may take place 2 to 4 spaces.

if func area to object was selected alpha conversion then above idea may not be good .

Thanks

RamanKorrapati
Active Contributor
0 Kudos

Hi Amine,

Reducing of info object length may not be good practise, its troubles you lot. as suggested tibollo if one char length up to 60 and 13chars * 60 then no need any truncate option. just compound the required objects and go on.

Thanks

amine_lamkaissi
Active Contributor
0 Kudos

Hi Tibollo,

I testet it, the total coumpounding has to be less than 60 char.

Amine

amine_lamkaissi
Active Contributor
0 Kudos

@Raman,

Can you explain me the alpha conversion thing, because i am going to use this master data in an Abap Program.

Thanks.

Amine

RamanKorrapati
Active Contributor
0 Kudos

Hi Amine,

If we selected ALPHA conversion to info object. while loading data into bw side, 0 will be padding to record  value as per the info object length.

For example func are to length as 10.

from source we are getting value 49 and bw side its shows 0000000049.

Due to the 60 length restriction on compounding, if last digits truncated then no use in your case.

if compounding length 60 for one info object then no need any other options.

Thanks

amine_lamkaissi
Active Contributor
0 Kudos

Thanks Raman,

My tests confirmed me that compounding is limited to 60 digits, so i must reduce some infobjects lenght or create copy of them with less lenght to bypass my issue.

Amine

RamanKorrapati
Active Contributor
0 Kudos

Hi Amine,

Reducing length is not good idea. better to go with custom defined info object with less length.

Thanks

Former Member
0 Kudos

Hi Amine,

Another idea is compounding a sequence number.

e.g.

account 1, 1, <other values...>

account 1, 2, <other values...>

account 1, 3, <other values...>

Regards

Bill

RamanKorrapati
Active Contributor
0 Kudos

Hi Amine,

Compounding options was best one. if you go with routine, its may impact your loading performance slightly. master data may load always full load. your option was good. go on.

Thanks

former_member182470
Active Contributor
0 Kudos

Hi Amine,

Your idea of "Compounding" is the perfect approach to achieve uniqueness.

Using compounded InfoObjects extensively, particularly if you include a lot of InfoObjects in compounding, can influence performance.

Regards,

Suman

former_member209895
Contributor
0 Kudos

Hi Amine,

     You have a composite key, and as you answered your question, the best way is a COMPOUNDING attribute. Having all in one field is a good option, but might make it tough to read the data. Compounding sounds to be the best way out here.

Regards,

  Manohar. D

former_member186445
Active Contributor
0 Kudos

it's the best choice, else the values will be overwritten.

if you want all in one field, then solution would be to write a routine in the transformation and use concatenate to put it all in one field. but this is less interesting.

BR,

M.