cancel
Showing results for 
Search instead for 
Did you mean: 

MDM internal ID

Former Member
0 Kudos

Hi All,

Could anyone help me in understanding where can i find the Internal ID which is generated in MDM.If it is at database table which is the table name for the same.

Is internal ID visible in MDM repository?

We are evaluating a way to syndicate the internal ID for the record.Is it possible and if yes please help me in this?

Are there any documents or sapnotes regarding this Internal ID?

Helpful answers would be rewarded

Regards

Nitin

Accepted Solutions (0)

Answers (9)

Answers (9)

Former Member
0 Kudos

Hi Yasir,

Thank you for ur quick reply.

Do you have any idea about class/methods/database which can be used to retrieve Material records IDs.

Also, do you have any idea about how to know the name of the database table which contains master data records?

I need this as we need to see the record id's for a specific record kept at the database level.

Thanks & Regards,

SDN User

Former Member
0 Kudos


Is the table you want to query a Main or Flat table in MDM?

Have a look at this sample code which searches for records in table PRODUCTS with an END_DATE after todays, and displays all of the RecordIds that are in the resultset.

//create search

Search search = new Search(tableId);

FieldSearchDimension fsd = new FieldSearchDimension(repoSchema.getFieldId(tableCode, "END_DATE"));

Calendar cal = Calendar.getInstance();

SearchConstraint sc = new DateTimeSearchConstraint(cal,DateTimeSearchConstraint.GREATER_THAN);

SearchParameter sp = new SearchParameter(fsd,sc);

search.addSearchItem(sp);

try{

      RetrieveLimitedRecordsCommand retCommand= new RetrieveLimitedRecordsCommand   

(userSessionContext);

      retCommand.setSearch(search);

      retCommand.setResultDefinition(new ResultDefinition(tableId));

      retCommand.execute();

RecordResultSet recordsResult = retCommand.getRecords();

Record[] records = recordsResult.getRecords();

for(Record rec : records){

      System.out.println("rec idValue:"+rec.getId().getIdValue());

}

} catch (ConnectionException e){

wdComponentAPI.getMessageManager().reportException("conn exception");

e.printStackTrace();

} catch (CommandException e) {

wdComponentAPI.getMessageManager().reportException("command exception");

e.printStackTrace();

}

Former Member
0 Kudos

We are using main as well as image tables for which we need the database table name.We are using SAL server 2008 as MDM Database.

We have record Ids stored at database level and not in MDM DataManager.

We need these record Id's for the records to be  kept in MDM tables.

So,we are looking for an option thru which we can populate these record Id in an MDM field.

Regards,

SDN

Former Member
0 Kudos

You can create a RecordId field in MDM and then using the APIs I mentioned above, you can retrieve all records and IDs and then set the RecordId field using a ModifyRecordsCommand.

Yassir

Former Member
0 Kudos

Thanks yasir for you help.

Much appreciated.

Regards,

SDN User

Former Member
0 Kudos

Hi Everyone,

We are also looking for the same requirement.

I have used the tooltip method to see the RecordId's in MDM but we want them to be extracted thru syndication map.

Is it possible to use java api's to extract record Id's from DataBase and populate it into a Newly created field in MDM ?

If someone help me out with this?

Regards,

SDN

Former Member
0 Kudos

Hi,

Using the APIs, if you use a retrieve class like RetrieveLimitedRecordsCommand and specify a search criteria, then once you execute the command, the resultset will contain Records from which you can get the RecordId.

Yassir

Former Member
0 Kudos

Hello Guys,

Though this post is of 2012, Still replying for the readers of this post.

If you want Internal Record id from a record.

Create a field of type Auto ID in the table.

Auto ID field shows MDM Internal ID.

Former Member
0 Kudos

I know its another year later but I had to say that Shailesh's post is incorrect in MDM 7.1.

A field that is set to type Auto ID always increments by +1 and never revisits an old Auto ID even if you deleted all the records.

Internal ID on the other hand takes the first available internal ID in that table, so if you delete a record, its internal ID becomes available for use again.

If you create records which have an Auto ID field from scratch and never delete any records, then your Auto ID and internal ID will be in sync but otherwise not.

Yassir

Former Member
0 Kudos

InternalID can be get mostly from Java API call to Record object by method getId().

It is newer visible from MDM Data Manager

It is rarely visible from some MDM iViews on portal, as a sample for event mapping.

All records within database under MDM tables has  a key which is a InternalID.
Only by opening DataBase on which you created MDM repository you can see InternalID.

Former Member
0 Kudos

Hi,

If i go one step forward and look in database table i can find these internal ID there corresponding to the material number.

But i want to use extract ID's for the combination of 3 fields which are not there in single table as all know.

Is there a solution for this.

Nitin

Former Member
0 Kudos

Hi Nitin,

If you just want to see the internal id for a particular record you can follow the document which Prasad has suggested.It will just give you information of id when you place the curson on a particular record.

But if you want to syndicate the record with internal ID from MDM there is not direct method you have to write an API to retrieve records and when you retrieve you will get mdmkeys (i.e Internal ID) which you can extract in an excel.

Regards,

Neethu Joy

Former Member
0 Kudos

Hello,

Would you please help us understand, the business scenario to use MDM Internal ID.

Any example would be useful, and a apt solution could be suggested.

As per my knowledge, the MDM Internal Id is not available for mapping, you would have to run a assignment to assign the MDM Internal ID, to a custom Z field and use theZfield in syndicator, as per your business scenario.

Regards,

Abhishek.

Former Member
0 Kudos

Hi Abhishek,

I tried by going the assignment way but still i am not finding any Internal ID fiedl which i can choose.

Can you please guide me what should be the assignment look like nad any pointers would be helpful

Nitin

Former Member
0 Kudos

Hello Nitin,

Once you done the setting suggested in the document, you will be able to see the MDM Internal ID in Data Manager.

Once the MDM Internal ID is displayed in Data Manager, check if the same is available in Syndicator, if yes then create a Z field and just assign the MDM Internal ID to this Z field and map that in the syndicator map.

and if the in the syndicator the field is not displaying, only option is to go with JAVA API's, and access the MDM Database, directly

Regards,

Abhishek

Former Member
0 Kudos

Hi Abhishek,

Please let me know to which document are you refererring to.

If you are referring to one which Prasad has given then that link is useful to display the ID as we get the matching score in matching mode.We cannot create a field in model to capture those directly in repository

Please reply back if my understanding is correct

Nitin

Former Member
0 Kudos

Hello,

Yes i was referring  to the document mentioned by Prasad,

I followed but it does not service the purpose.

Only option is to use the JAVA API and access the database directly and retrieve the value for MDM Internal ID.

One option you may explore is to use calculated field, try to develop the same logic in the calculated field as per the MDM Internal ID.

Regards,

Abhishek

Former Member
0 Kudos

Hello Nitin,

Please go through the below link which might help

http://scn.sap.com/community/mdm/netweaver-mdm/blog/2012/03/21/enable-record-ids-tooltip-in-data-man...

Internal ID's can be seen by following the procedure as described in the above link and then by placing the cursor on the record.

Rgds,

Prasad

Former Member
0 Kudos

Hi Prasad,

Thanks for the reply.

This method only dispalys the ID's but cannot be extracted

Regards

Nitin

Former Member
0 Kudos

Hi,

I hope your asking about MDM auto id. You can find out this field in console with field type 'Auto id'. It is visible in MDM repository.

Yes, you can syndicate this id. It is available in syndicator mapping. You can map this MDM id with target field as per your business requirement.

Regards,

Gaurang

Former Member
0 Kudos

Hi Gaurang,

I am not asking about Auto ID.I was asking about MDM Internal ID

Regards

Nitin