SBX - Search With Button

SBX - Forum Post Title

StringMapbase table in mscrm to store option set values

Microsoft Dynamics CRM Forum

sandeepc asked a question on 10 Jul 2018 10:28 AM
My Badges

Question Status

Verified

   we have 2 records in stringmapbase table .

by  running ssis package we update account related information from NAV to CRM .

question is how does crm application know to take 100000004 record into crm instead of 10000003 . is there any reason 

and what is the versionnumber do in stringmapbasetable 

Reply
sandeepc responded on 10 Jul 2018 10:41 AM
My Badges

any sugestions will be marked as verified

Reply
Adrian Begovich responded on 10 Jul 2018 7:29 PM
My Badges
Verified Answer

Hi sandeepc,

Examine the SSIS Package to see how it is mapping the AttributeValue column to the destination. You can use that information to work out how the value is set in CRM.

Reply
Goutam Das responded on 10 Jul 2018 9:00 PM
Verified Answer

Hi Sandeep,

String map table used in MSCRM for storing the details of Option Set Fields exists in an organization .It contains all the data (Attribute Name, OptionSet name, option value , option name) of option set.

You can see there is a field called ObjectTypeCode which referees the entity for which the attribute belongs.OrganizationId is GUID of the owning Organization. So stringmap table is link to each entity for your organization with internal relationship.So every time when you are pushing data to CRM  entity internally validate the value  with strin map table.

Timestamp for determining the version of the record (when it was last updated). This is used by the synchronization process.

Reply
Temmy Raharjo responded on 11 Jul 2018 12:26 AM
My Badges
Verified Answer

Hi,

From your picture, the first columns is for knowing the entity ObjectTypeCode. So if you query "select * from entity where objecttypecode='1'" you already know which entity that you need.

If you only want to get the optionsetname, you can used filteredtable instead of querying into entity_base or entity (which is view also). Filtered_entity will give you all the information (If the entity have lookup, it will have lookupname, if entity have optionset, it will have optionsetname). For instance FilteredAccount.

Reply
sandeepc responded on 11 Jul 2018 2:57 AM
My Badges
Verified Answer

but how does crm know that it should take the recent value instead of old one .is there any specific reasn or it is inbuilt feature of microsoft  crm to take recent value

Reply
sandeepc responded on 11 Jul 2018 2:58 AM
My Badges

I am near to answer and will make as verified once i get reply for above comment thanks

Reply
Goutam Das responded on 11 Jul 2018 3:31 AM
Verified Answer

I guess this is inbuilt off course as this is internal operation and reason why version number maintained in stringmap table.

Reply
Adrian Begovich responded on 11 Jul 2018 5:26 PM
My Badges
Verified Answer

Hi sandeepc,

It will be a feature of the SSIS Package. Depending on how it is setup you can import the 100000003 record, the 100000004 record, both records, or no records.

Reply
Temmy Raharjo responded on 14 Jul 2018 12:57 AM
My Badges
Verified Answer

Actually you can check of one of the Filtered Views to know how they built the optionsetname. Then you will have a broader view how they construct the relationship.

Reply
Adrian Begovich responded on 10 Jul 2018 7:29 PM
My Badges
Verified Answer

Hi sandeepc,

Examine the SSIS Package to see how it is mapping the AttributeValue column to the destination. You can use that information to work out how the value is set in CRM.

Reply
Goutam Das responded on 10 Jul 2018 9:00 PM
Verified Answer

Hi Sandeep,

String map table used in MSCRM for storing the details of Option Set Fields exists in an organization .It contains all the data (Attribute Name, OptionSet name, option value , option name) of option set.

You can see there is a field called ObjectTypeCode which referees the entity for which the attribute belongs.OrganizationId is GUID of the owning Organization. So stringmap table is link to each entity for your organization with internal relationship.So every time when you are pushing data to CRM  entity internally validate the value  with strin map table.

Timestamp for determining the version of the record (when it was last updated). This is used by the synchronization process.

Reply
Temmy Raharjo responded on 11 Jul 2018 12:26 AM
My Badges
Verified Answer

Hi,

From your picture, the first columns is for knowing the entity ObjectTypeCode. So if you query "select * from entity where objecttypecode='1'" you already know which entity that you need.

If you only want to get the optionsetname, you can used filteredtable instead of querying into entity_base or entity (which is view also). Filtered_entity will give you all the information (If the entity have lookup, it will have lookupname, if entity have optionset, it will have optionsetname). For instance FilteredAccount.

Reply
sandeepc responded on 11 Jul 2018 2:57 AM
My Badges
Verified Answer

but how does crm know that it should take the recent value instead of old one .is there any specific reasn or it is inbuilt feature of microsoft  crm to take recent value

Reply
Goutam Das responded on 11 Jul 2018 3:31 AM
Verified Answer

I guess this is inbuilt off course as this is internal operation and reason why version number maintained in stringmap table.

Reply
Adrian Begovich responded on 11 Jul 2018 5:26 PM
My Badges
Verified Answer

Hi sandeepc,

It will be a feature of the SSIS Package. Depending on how it is setup you can import the 100000003 record, the 100000004 record, both records, or no records.

Reply
Temmy Raharjo responded on 14 Jul 2018 12:57 AM
My Badges
Verified Answer

Actually you can check of one of the Filtered Views to know how they built the optionsetname. Then you will have a broader view how they construct the relationship.

Reply

SBX - Two Col Forum

SBX - Migrated JS