This project has moved and is read-only. For the latest updates, please go here.

Error caused by 'inactive' languages

Feb 5, 2014 at 2:29 PM
Trying to convert a picklist to a new global option set, I get this error:

Searching for Option Set contact.hdm_title1
Option Set contact.hdm_title1 found
Searching for Option Set contact.hdm_title1_t_
Option Set contact.hdm_title1_t_ not found
System.ServiceModel.FaultException`1[Microsoft.Xrm.Sdk.OrganizationServiceFault]: The language code 1030 is not a valid language for this organization (Fault Detail is equal to Microsoft.Xrm.Sdk.OrganizationServiceFault).

The reason is that even though we have removed some language packs (in this case 1030), the label transalations are still in the stringmapbase table. I guess that confuse the LocalToGlobalOptionSetConverter tool.
We have created a case with MS, however, if the tool could bypass this 'error', that accept this like MS-CRM does, that would be nice.

/PG
Feb 17, 2014 at 12:22 PM
This discussion has been copied to a work item. Click here to go to the work item and continue the discussion.
Feb 17, 2014 at 12:53 PM
I'm blindly copying all settings over so I'm guessing one of two things are happening, 1030 is the default language of the user running the tool, or the local option set contains a label for the 1030 language code. Can you verify if either of these cases are true?
Feb 17, 2014 at 2:59 PM

Yes, you are correct about reason two: In the source system we have some languages we do not intend to support in the future, i.e. those languages are not installed in the new CRM 2013 system. We are working with MS to see of it is possible to clean-up the stringmapbase table, but I thought your tool might be a little more tolerant for that situation. Anyhow, thanks for your efforts. /Per



Confidentiality note:
The information in this email and any attachment may contain confidential and proprietary information of Heidelberger Druckmaschinen AG and/or its affiliates and may be privileged or otherwise protected from disclosure. If you are not the intended recipient, you are hereby notified that any review, reliance or distribution by others or forwarding without express permission is strictly prohibited and may cause liability. In case you have received this message due to an error in transmission, we kindly ask you to notify the sender immediately and to delete this email and any attachment from your system.
Feb 17, 2014 at 3:03 PM
I have a potential fix for this as well as for it not working with the latest version of the XrmToolBox. Would you be willing to test it for me since I can not easily recreate your problem?
Feb 17, 2014 at 3:05 PM

Sure I will be happy to test it since we are waiting for either you to fix it or MS to help us or, ultimately, create new fields and do ‘manual’ conversion.

/Per



Confidentiality note:
The information in this email and any attachment may contain confidential and proprietary information of Heidelberger Druckmaschinen AG and/or its affiliates and may be privileged or otherwise protected from disclosure. If you are not the intended recipient, you are hereby notified that any review, reliance or distribution by others or forwarding without express permission is strictly prohibited and may cause liability. In case you have received this message due to an error in transmission, we kindly ask you to notify the sender immediately and to delete this email and any attachment from your system.
Feb 17, 2014 at 3:22 PM

Downloaded three ddls to XrmToolBox directory and the tool now shows up. Running the tool, it gets a little longer, i.e. removes options for languages not installed, but the stops. It is correct that we no longer have the languages 1028, 1030, 1042, 1053 and 1054 installed.

This is the log:

Searching for Option Set contact.hdm_title1

Option Set contact.hdm_title1 found

Searching for Option Set contact.hdm_title1_t_

Option Set contact.hdm_title1_t_ not found

Removing Localization Label 'Major' for language code '1030'

Removing Localization Label 'Major' for language code '1053'

Removing Localization Label '主要' for language code '1028'

Removing Localization Label '주요한' for language code '1042'

Removing Localization Label 'Major' for language code '1054'

Removing Localization Label 'Hr.' for language code '1030'

Removing Localization Label 'Herr' for language code '1053'

Removing Localization Label '先生' for language code '1028'

Removing Localization Label 'Mr.' for language code '1042'

Removing Localization Label 'Mr.' for language code '1054'

Removing Localization Label 'Fru' for language code '1030'

Removing Localization Label 'Fru' for language code '1053'

Removing Localization Label '夫人' for language code '1028'

Removing Localization Label 'Mrs.' for language code '1042'

Removing Localization Label 'Mrs.' for language code '1054'

Removing Localization Label 'Frk.' for language code '1030'

Removing Localization Label 'Ms.' for language code '1053'

Removing Localization Label '女士' for language code '1028'

Removing Localization Label 'Ms.' for language code '1042'

Removing Localization Label 'Ms.' for language code '1054'

Removing Localization Label 'Professor' for language code '1030'

Removing Localization Label 'Professor' for language code '1053'

Removing Localization Label '教授' for language code '1028'

Removing Localization Label '교수' for language code '1042'

Removing Localization Label 'Professor' for language code '1054'

Removing Localization Label 'Reverend' for language code '1030'

Removing Localization Label 'Reverend' for language code '1053'

Removing Localization Label '牧師' for language code '1028'

Removing Localization Label '목사' for language code '1042'

Removing Localization Label 'Reverend' for language code '1054'

Removing Localization Label 'Sergeant' for language code '1030'

Removing Localization Label 'Sergeant' for language code '1053'

Removing Localization Label '軍士' for language code '1028'

Removing Localization Label '수위' for language code '1042'

Removing Localization Label 'Sergeant' for language code '1054'

Removing Localization Label 'Sir' for language code '1030'

Removing Localization Label 'Sir' for language code '1053'

Removing Localization Label '先生' for language code '1028'

Removing Localization Label 'Sir' for language code '1042'

Removing Localization Label 'Sir' for language code '1054'

Removing Localization Label 'Warrant Officer' for language code '1030'

Removing Localization Label 'Warrant Officer' for language code '1053'

Removing Localization Label '準尉' for language code '1028'

Removing Localization Label '준위' for language code '1042'

Removing Localization Label 'Warrant Officer' for language code '1054'

System.ServiceModel.FaultException`1[Microsoft.Xrm.Sdk.OrganizationServiceFault]: The language code 1030 is not a valid language for this organization (Fault Detail is equal to Microsoft.Xrm.Sdk.OrganizationServiceFault).



Confidentiality note:
The information in this email and any attachment may contain confidential and proprietary information of Heidelberger Druckmaschinen AG and/or its affiliates and may be privileged or otherwise protected from disclosure. If you are not the intended recipient, you are hereby notified that any review, reliance or distribution by others or forwarding without express permission is strictly prohibited and may cause liability. In case you have received this message due to an error in transmission, we kindly ask you to notify the sender immediately and to delete this email and any attachment from your system.
Feb 17, 2014 at 4:15 PM

This is the end of the log:

Removing Localization Label '' for language code '1042'

Removing Localization Label 'Warrant Officer' for language code '1054'

System.Runtime.Serialization.InvalidDataContractException: Type 'Microsoft.Xrm.Sdk.Metadata.OptionMetadataCollection' cannot be serialized. Consider marking it with the DataContractAttribute attribute, and marking all of its members you want serialized with the DataMemberAttribute attribute. If the type is a collection, consider marking it with the CollectionDataContractAttribute. See the Microsoft .NET Framework documentation for other supported types.

at System.Runtime.Serialization.DataContract.DataContractCriticalHelper.ThrowInvalidDataContractException(String message, Type type)

at System.Runtime.Serialization.CollectionDataContract.GetValidContract(SerializationMode mode)

at System.Runtime.Serialization.DataContract.GetDataContract(Int32 id, RuntimeTypeHandle typeHandle, SerializationMode mode)

at System.Runtime.Serialization.XmlObjectSerializerWriteContextComplex.GetDataContract(Int32 id, RuntimeTypeHandle typeHandle)

at System.Runtime.Serialization.XmlObjectSerializerWriteContext.InternalSerialize(XmlWriterDelegator xmlWriter, Object obj, Boolean isDeclaredType, Boolean writeXsiType, Int32 declaredTypeID, RuntimeTypeHandle declaredTypeHandle)

at System.Runtime.Serialization.XmlObjectSerializerWriteContext.InternalSerializeReference(XmlWriterDelegator xmlWriter, Object obj, Boolean isDeclaredType, Boolean writeXsiType, Int32 declaredTypeID, RuntimeTypeHandle declaredTypeHandle)

at WriteOptionSetMetadataToXml(XmlWriterDelegator , Object , XmlObjectSerializerWriteContext , ClassDataContract )

at System.Runtime.Serialization.ClassDataContract.WriteXmlValue(XmlWriterDelegator xmlWriter, Object obj, XmlObjectSerializerWriteContext context)

at System.Runtime.Serialization.XmlObjectSerializerWriteContext.SerializeWithoutXsiType(DataContract dataContract, XmlWriterDelegator xmlWriter, Object obj, RuntimeTypeHandle declaredTypeHandle)

at System.Runtime.Serialization.XmlObjectSerializerWriteContext.InternalSerialize(XmlWriterDelegator xmlWriter, Object obj, Boolean isDeclaredType, Boolean writeXsiType, Int32 declaredTypeID, RuntimeTypeHandle declaredTypeHandle)

at System.Runtime.Serialization.XmlObjectSerializerWriteContext.InternalSerializeReference(XmlWriterDelegator xmlWriter, Object obj, Boolean isDeclaredType, Boolean writeXsiType, Int32 declaredTypeID, RuntimeTypeHandle declaredTypeHandle)

at WritePicklistAttributeMetadataToXml(XmlWriterDelegator , Object , XmlObjectSerializerWriteContext , ClassDataContract )

at System.Runtime.Serialization.ClassDataContract.WriteXmlValue(XmlWriterDelegator xmlWriter, Object obj, XmlObjectSerializerWriteContext context)

at System.Runtime.Serialization.NetDataContractSerializer.InternalWriteObjectContent(XmlWriterDelegator writer, Object graph, DataContract contract, Hashtable surrogateDataContracts)

at System.Runtime.Serialization.NetDataContractSerializer.InternalWriteObject(XmlWriterDelegator writer, Object graph)

at System.Runtime.Serialization.XmlObjectSerializer.WriteObjectHandleExceptions(XmlWriterDelegator writer, Object graph, DataContractResolver dataContractResolver)

at System.Runtime.Serialization.NetDataContractSerializer.WriteObject(XmlWriter writer, Object graph)

at DLaB.Xrm.Extensions.Serialize(IExtensibleDataObject obj)

at DLaB.LocalToGlobalOptionSet.Logic.CreateTempAttribute(IOrganizationService service, AttributeMetadata oldAtt)

at DLaB.LocalToGlobalOptionSet.Logic.Run(String entityName, String attributeName, String globalOptionSetName, String globalOptionSetPrefix, Steps stepsToPerform)

at DLaB.LocalToGlobalOptionSet.LocalToGlobalOptionSet.<>c__DisplayClass15.<ExecuteSteps>b__11(BackgroundWorker w, DoWorkEventArgs e)



Confidentiality note:
The information in this email and any attachment may contain confidential and proprietary information of Heidelberger Druckmaschinen AG and/or its affiliates and may be privileged or otherwise protected from disclosure. If you are not the intended recipient, you are hereby notified that any review, reliance or distribution by others or forwarding without express permission is strictly prohibited and may cause liability. In case you have received this message due to an error in transmission, we kindly ask you to notify the sender immediately and to delete this email and any attachment from your system.
Feb 17, 2014 at 7:23 PM

For whatever reason, I do not see the tool under XrmToolBox anymore



Confidentiality note:
The information in this email and any attachment may contain confidential and proprietary information of Heidelberger Druckmaschinen AG and/or its affiliates and may be privileged or otherwise protected from disclosure. If you are not the intended recipient, you are hereby notified that any review, reliance or distribution by others or forwarding without express permission is strictly prohibited and may cause liability. In case you have received this message due to an error in transmission, we kindly ask you to notify the sender immediately and to delete this email and any attachment from your system.
Feb 17, 2014 at 7:36 PM

Still blowing up:

Searching for Option Set contact.hdm_title1

Option Set contact.hdm_title1 found

Searching for Option Set contact.hdm_title1_t_

Option Set contact.hdm_title1_t_ not found

Removing Localization Label 'Major' for language code '1030'

Removing Localization Label 'Major' for language code '1053'

Removing Localization Label '主要' for language code '1028'

Removing Localization Label '주요한' for language code '1042'

Removing Localization Label 'Major' for language code '1054'

Removing Localization Label 'Hr.' for language code '1030'

Removing Localization Label 'Herr' for language code '1053'

Removing Localization Label '先生' for language code '1028'

Removing Localization Label 'Mr.' for language code '1042'

Removing Localization Label 'Mr.' for language code '1054'

Removing Localization Label 'Fru' for language code '1030'

Removing Localization Label 'Fru' for language code '1053'

Removing Localization Label '夫人' for language code '1028'

Removing Localization Label 'Mrs.' for language code '1042'

Removing Localization Label 'Mrs.' for language code '1054'

Removing Localization Label 'Frk.' for language code '1030'

Removing Localization Label 'Ms.' for language code '1053'

Removing Localization Label '女士' for language code '1028'

Removing Localization Label 'Ms.' for language code '1042'

Removing Localization Label 'Ms.' for language code '1054'

Removing Localization Label 'Professor' for language code '1030'

Removing Localization Label 'Professor' for language code '1053'

Removing Localization Label '教授' for language code '1028'

Removing Localization Label '교수' for language code '1042'

Removing Localization Label 'Professor' for language code '1054'

Removing Localization Label 'Reverend' for language code '1030'

Removing Localization Label 'Reverend' for language code '1053'

Removing Localization Label '牧師' for language code '1028'

Removing Localization Label '목사' for language code '1042'

Removing Localization Label 'Reverend' for language code '1054'

Removing Localization Label 'Sergeant' for language code '1030'

Removing Localization Label 'Sergeant' for language code '1053'

Removing Localization Label '軍士' for language code '1028'

Removing Localization Label '수위' for language code '1042'

Removing Localization Label 'Sergeant' for language code '1054'

Removing Localization Label 'Sir' for language code '1030'

Removing Localization Label 'Sir' for language code '1053'

Removing Localization Label '先生' for language code '1028'

Removing Localization Label 'Sir' for language code '1042'

Removing Localization Label 'Sir' for language code '1054'

Removing Localization Label 'Warrant Officer' for language code '1030'

Removing Localization Label 'Warrant Officer' for language code '1053'

Removing Localization Label '準尉' for language code '1028'

Removing Localization Label '준위' for language code '1042'

Removing Localization Label 'Warrant Officer' for language code '1054'

Removing Localization Label '新的選擇列表條目的規則:1。檢查他們是否可以使用和翻譯的現有值。 2。如果不能使用現有的值,添加新的價值觀' for language code '1028'

Removing Localization Label '새로운 피크 목록 항목에 대한 규칙 : 1. 그들이 사용하고 번역될 있는지 여부를 기존의 가치를 확인합니다. 2. 기존 값을 사용할 수없는 경우, 새로운 가치를 추가' for language code '1042'

Removing Localization Label 'Titel' for language code '1030'

Removing Localization Label 'Rubrik' for language code '1053'

Removing Localization Label '職稱' for language code '1028'

Removing Localization Label '직함' for language code '1042'

Removing Localization Label 'ชื่อ' for language code '1054'

Error Creating Attribute hdm_title1_t_

System.ServiceModel.FaultException`1[Microsoft.Xrm.Sdk.OrganizationServiceFault]: The language code 1030 is not a valid language for this organization (Fault Detail is equal to Microsoft.Xrm.Sdk.OrganizationServiceFault).



Confidentiality note:
The information in this email and any attachment may contain confidential and proprietary information of Heidelberger Druckmaschinen AG and/or its affiliates and may be privileged or otherwise protected from disclosure. If you are not the intended recipient, you are hereby notified that any review, reliance or distribution by others or forwarding without express permission is strictly prohibited and may cause liability. In case you have received this message due to an error in transmission, we kindly ask you to notify the sender immediately and to delete this email and any attachment from your system.
Feb 17, 2014 at 8:37 PM

Ok, got much further, but still a hiccup:

Searching for Option Set contact.hdm_title1

Option Set contact.hdm_title1 found

Searching for Option Set contact.hdm_title1_t_

Option Set contact.hdm_title1_t_ not found

Removing Localization Label 'Major' for language code '1030'

Removing Localization Label 'Major' for language code '1053'

Removing Localization Label '主要' for language code '1028'

Removing Localization Label '주요한' for language code '1042'

Removing Localization Label 'Major' for language code '1054'

Removing Localization Label 'Hr.' for language code '1030'

Removing Localization Label 'Herr' for language code '1053'

Removing Localization Label '先生' for language code '1028'

Removing Localization Label 'Mr.' for language code '1042'

Removing Localization Label 'Mr.' for language code '1054'

Removing Localization Label 'Fru' for language code '1030'

Removing Localization Label 'Fru' for language code '1053'

Removing Localization Label '夫人' for language code '1028'

Removing Localization Label 'Mrs.' for language code '1042'

Removing Localization Label 'Mrs.' for language code '1054'

Removing Localization Label 'Frk.' for language code '1030'

Removing Localization Label 'Ms.' for language code '1053'

Removing Localization Label '女士' for language code '1028'

Removing Localization Label 'Ms.' for language code '1042'

Removing Localization Label 'Ms.' for language code '1054'

Removing Localization Label 'Professor' for language code '1030'

Removing Localization Label 'Professor' for language code '1053'

Removing Localization Label '教授' for language code '1028'

Removing Localization Label '교수' for language code '1042'

Removing Localization Label 'Professor' for language code '1054'

Removing Localization Label 'Reverend' for language code '1030'

Removing Localization Label 'Reverend' for language code '1053'

Removing Localization Label '牧師' for language code '1028'

Removing Localization Label '목사' for language code '1042'

Removing Localization Label 'Reverend' for language code '1054'

Removing Localization Label 'Sergeant' for language code '1030'

Removing Localization Label 'Sergeant' for language code '1053'

Removing Localization Label '軍士' for language code '1028'

Removing Localization Label '수위' for language code '1042'

Removing Localization Label 'Sergeant' for language code '1054'

Removing Localization Label 'Sir' for language code '1030'

Removing Localization Label 'Sir' for language code '1053'

Removing Localization Label '先生' for language code '1028'

Removing Localization Label 'Sir' for language code '1042'

Removing Localization Label 'Sir' for language code '1054'

Removing Localization Label 'Warrant Officer' for language code '1030'

Removing Localization Label 'Warrant Officer' for language code '1053'

Removing Localization Label '準尉' for language code '1028'

Removing Localization Label '준위' for language code '1042'

Removing Localization Label 'Warrant Officer' for language code '1054'

Removing Localization Label '新的選擇列表條目的規則:1。檢查他們是否可以使用和翻譯的現有值。 2。如果不能使用現有的值,添加新的價值觀' for language code '1028'

Removing Localization Label '새로운 피크 목록 항목에 대한 규칙 : 1. 그들이 사용하고 번역될 있는지 여부를 기존의 가치를 확인합니다. 2. 기존 값을 사용할 수없는 경우, 새로운 가치를 추가' for language code '1042'

Removing Localization Label 'Titel' for language code '1030'

Removing Localization Label 'Rubrik' for language code '1053'

Removing Localization Label '職稱' for language code '1028'

Removing Localization Label '직함' for language code '1042'

Removing Localization Label 'ชื่อ' for language code '1054'

Removing Localization Label '新的選擇列表條目的規則:1。檢查他們是否可以使用和翻譯的現有值。 2。如果不能使用現有的值,添加新的價值觀' for language code '1028'

Removing Localization Label '새로운 피크 목록 항목에 대한 규칙 : 1. 그들이 사용하고 번역될 있는지 여부를 기존의 가치를 확인합니다. 2. 기존 값을 사용할 수없는 경우, 새로운 가치를 추가' for language code '1042'

Removing Localization Label 'Titel' for language code '1030'

Removing Localization Label 'Rubrik' for language code '1053'

Removing Localization Label '職稱' for language code '1028'

Removing Localization Label '직함' for language code '1042'

Removing Localization Label 'ชื่อ' for language code '1054'

Publishing Entity contact

Retrieving Views

Updating View My Active Contacts

Updating View Active Contacts

Updating View Inactive Contacts

Updating View Contact Associated View

Updating View Contacts Lookup View

Updating View Inactive Members

Updating View Active Members

Updating View All Members

Updating View Quick Find Active Contacts

Retrieving Forms

Updating Form Information

Updating Form Information Simone 2

Updating Form Contact Quick Create

Updating Form Contact

Updating Form Information

Updating Form Contact - old

Publishing Entity contact

Checking for Delete Dependencies for contact.hdm_title1

System.Exception: Dependencies found: EntityRelationship 097642d6-9f11-481a-9be3-54686d693102

at DLaB.LocalToGlobalOptionSet.Logic.AssertCanDelete(IOrganizationService service, AttributeMetadata oldAtt)

at DLaB.LocalToGlobalOptionSet.Logic.Run(String entityName, String attributeName, String globalOptionSetName, String globalOptionSetPrefix, Steps stepsToPerform)

at DLaB.LocalToGlobalOptionSet.LocalToGlobalOptionSet.<>c__DisplayClass15.<ExecuteSteps>b__11(BackgroundWorker w, DoWorkEventArgs e)



Confidentiality note:
The information in this email and any attachment may contain confidential and proprietary information of Heidelberger Druckmaschinen AG and/or its affiliates and may be privileged or otherwise protected from disclosure. If you are not the intended recipient, you are hereby notified that any review, reliance or distribution by others or forwarding without express permission is strictly prohibited and may cause liability. In case you have received this message due to an error in transmission, we kindly ask you to notify the sender immediately and to delete this email and any attachment from your system.
Feb 17, 2014 at 9:54 PM
You shouldn't have to restore the entity. When you start the tool, uncheck the Create Temporary Attribute step before running.

As far as your error, I have updated the download files to work with the latest version of the XrmToolBox. Try and see if using that solves your issue.
Feb 17, 2014 at 10:03 PM

I downloaded latest version of XrmToolBox (v1.2014.2.11) and still get the error after clicking ‘Retrieve Entities’.



Confidentiality note:
The information in this email and any attachment may contain confidential and proprietary information of Heidelberger Druckmaschinen AG and/or its affiliates and may be privileged or otherwise protected from disclosure. If you are not the intended recipient, you are hereby notified that any review, reliance or distribution by others or forwarding without express permission is strictly prohibited and may cause liability. In case you have received this message due to an error in transmission, we kindly ask you to notify the sender immediately and to delete this email and any attachment from your system.
Feb 17, 2014 at 10:12 PM

I create a new folder for XrmToolBox etc. and got the entity list. I’ll keep you posted.



Confidentiality note:
The information in this email and any attachment may contain confidential and proprietary information of Heidelberger Druckmaschinen AG and/or its affiliates and may be privileged or otherwise protected from disclosure. If you are not the intended recipient, you are hereby notified that any review, reliance or distribution by others or forwarding without express permission is strictly prohibited and may cause liability. In case you have received this message due to an error in transmission, we kindly ask you to notify the sender immediately and to delete this email and any attachment from your system.
Feb 18, 2014 at 2:34 AM
Seems like it worked, however, I wonder why you have to convert all the data, in this example +250K records. Also, I did this in a development system hoping that I then could migrate the solution to Staging and Production. That does not seem to be the
case, or what am I missing? Best regards, Per Confidentiality note: The information in this email and any attachment may contain confidential and proprietary information of Heidelberger Druckmaschinen AG and/or its affiliates and may be privileged or otherwise
protected from disclosure. If you are not the intended recipient, you are hereby notified that any review, reliance or distribution by others or forwarding without express permission is strictly prohibited and may cause liability. In case you have received
this message due to an error in transmission, we kindly ask you to notify the sender immediately and to delete this email and any attachment from your system.
Feb 18, 2014 at 4:08 AM
I wonder why you have to convert all the data
I updated the home page for the project and added a little more information, please ,read that and let me know if it doesn't make sense.

I did this in a development system hoping that I then could migrate the solution to Staging and Production.
There is no way to migrate the solution. This is a limitation of CRM and the reason I made the tool in the first place. Just run the tool in each environment.
Feb 18, 2014 at 2:39 PM

The job got a time-out eventually:

Copying 106801 / 50000

Copying 106901 / 50000

System.TimeoutException: The request channel timed out while waiting for a reply after 00:01:59.9950000. Increase the timeout value passed to the call to Request or increase the SendTimeout value on the Binding. The time allotted to this operation may have been a portion of a longer timeout. ---> System.TimeoutException: The HTTP request to 'https://crmdev.app.intra.heidelberg.com/HDMMSCRM/XRMServices/2011/Organization.svc' has exceeded the allotted timeout of 00:01:59.9960000. The time allotted to this operation may have been a portion of a longer timeout. ---> System.Net.WebException: The operation has timed out

at System.Net.HttpWebRequest.GetResponse()

at System.ServiceModel.Channels.HttpChannelFactory`1.HttpRequestChannel.HttpChannelRequest.WaitForReply(TimeSpan timeout)

--- End of inner exception stack trace ---

at System.ServiceModel.Channels.HttpChannelUtilities.ProcessGetResponseWebException(WebException webException, HttpWebRequest request, HttpAbortReason abortReason)

at System.ServiceModel.Channels.HttpChannelFactory`1.HttpRequestChannel.HttpChannelRequest.WaitForReply(TimeSpan timeout)

Also, checking the db, the two fields hdm_jobtitle1 and hdm_jobtitle1_t_ contain exactly the same data, so wonder what thos coping is good for.

Finally, checking the field definitions of those two fields, none refer to a global option set, and that doesn’t exists anyways.

I’ll restore the entity and consider my next steps. Thanks a lot for your efforts.

/Per



Confidentiality note:
The information in this email and any attachment may contain confidential and proprietary information of Heidelberger Druckmaschinen AG and/or its affiliates and may be privileged or otherwise protected from disclosure. If you are not the intended recipient, you are hereby notified that any review, reliance or distribution by others or forwarding without express permission is strictly prohibited and may cause liability. In case you have received this message due to an error in transmission, we kindly ask you to notify the sender immediately and to delete this email and any attachment from your system.
Feb 18, 2014 at 3:06 PM
Your timeout error is just that, a time out.

You could run the migration part of the tool again if you care about keeping the data. If you don't, you can skip that portion of it by unchecking Migrate Data, but then all your data in that field will be lost.

Once again, as specified on the front page the steps are:
  1. Create a temporary attribute that is a clone of the current Local Option Set attribute (use the Temporary Attribute Postfix value to ensure that the name is unique)
  2. Replaces the current local attribute on all forms and views with the temporary attribute (Does not currently handle Workflows), optionally copying the data from all existing entities to the temporary attribute.
  3. Removes the Local Option Set attribute.
  4. Checks to see if a Global Option Set exists for the given Global Option Set Name, if it doesn't, a new Global Option Set is created with same (or possibly same with a prefix) values. A new Global Option Set attribute is then created on the Entity with the same name as the original Local Option Set.
  5. Replaces the temporary local attribute on all forms and views with the temporary attribute (Does not currently handle Workflows), optionally copying the data from the temporary attribute to the global one.
  6. Removes the temporary attribute
You are on step 2. Once it completes migrating the data, it will remove the local and create the global.
Feb 18, 2014 at 3:24 PM

I definitely care about keeping the data – that’s the whole idea. And since it timed out after about 100K records (there are 350K I that table) and since there are a couple of other pick lists in the entity, which should be changed to global option sets, this does not seem as a solution. Part of the time-out problem is that I am running on a so-so connection between US and Europe. Moving the process to a local server may resolve that.

I understand your algorithm better now. One thing to add (which is the relationship error I got yesterday) is that is doesn’t handle field mapping, in this case from Lead to Contact.



Confidentiality note:
The information in this email and any attachment may contain confidential and proprietary information of Heidelberger Druckmaschinen AG and/or its affiliates and may be privileged or otherwise protected from disclosure. If you are not the intended recipient, you are hereby notified that any review, reliance or distribution by others or forwarding without express permission is strictly prohibited and may cause liability. In case you have received this message due to an error in transmission, we kindly ask you to notify the sender immediately and to delete this email and any attachment from your system.
Feb 18, 2014 at 4:44 PM
I'm not sure if the timeout your seeing is DB related or WCF related. I just updated the plugin to use the ExecuteMultiple Requests for updating, so that should help ease any WCF issues with so many calls (should drop from around 350,000 separate WCF calls down to 3,500). It also won't update any records that don't need to be (ie, if you only got through 100K without an error, the first 100k shouldn't be updated). If it's on premise, you can also try to run it from the CRM web server itself...

Good luck, sorry you've had so many issues.
Feb 18, 2014 at 9:43 PM

Ok, down loaded latest version and got going with some example with less data volume. However, for major updates it still takes about one minute per 1000 records. So I tried to move XrmToolBox to a platform server physically located near the db server etc. The recovery service finds the org but when I try to connect I get this error: “could not load type 'system.runtime.compilerservices.extensionattribute' from assembly 'mscorlib”. Probably because .Net 4.5 is missing there. Anyways, that is not your problem.



Confidentiality note:
The information in this email and any attachment may contain confidential and proprietary information of Heidelberger Druckmaschinen AG and/or its affiliates and may be privileged or otherwise protected from disclosure. If you are not the intended recipient, you are hereby notified that any review, reliance or distribution by others or forwarding without express permission is strictly prohibited and may cause liability. In case you have received this message due to an error in transmission, we kindly ask you to notify the sender immediately and to delete this email and any attachment from your system.
Feb 18, 2014 at 9:59 PM
Yeah that's definitely an issue with .Net 4.5 not being on the machine.

At one per 1000 records you're looking at around 6 hours to move to the temporary attribute, and another 6 to move back.

If you have access to the SQL server (and this is not supported, but I would think should work with minimal issues) you could migrate the data via an SQL update once you figure out the correct table involved. Using this approach you'd have to perform the upgrade like this:
  1. Run steps 1, and 2. Once step 2 starts coping data, kill it.
  2. Run a SQL script to migrate the data from the local to the temp local
  3. Run Steps 3, 4 & 5.
  4. Run a SQL script to migrate the data from the temp local to the newly created global
  5. Run Step 6
Feb 18, 2014 at 10:32 PM

Yes, I agree that the SQL path shouldn’t have any side effects at this stage of the system (no offline clients activated) so I will check that tomorrow.



Confidentiality note:
The information in this email and any attachment may contain confidential and proprietary information of Heidelberger Druckmaschinen AG and/or its affiliates and may be privileged or otherwise protected from disclosure. If you are not the intended recipient, you are hereby notified that any review, reliance or distribution by others or forwarding without express permission is strictly prohibited and may cause liability. In case you have received this message due to an error in transmission, we kindly ask you to notify the sender immediately and to delete this email and any attachment from your system.
Feb 20, 2014 at 3:05 AM

I’ve be doing the native SQL updates for huge tables (instead on 6 hours, we are talking about minutes). Anyhow, I do thing you can speed up the two steps where date is copied from att to att_t_ and vice versa by only retrieve records, where att <> att_t_t. In my timing, it doesn’t look like that is what you are doing.



Confidentiality note:
The information in this email and any attachment may contain confidential and proprietary information of Heidelberger Druckmaschinen AG and/or its affiliates and may be privileged or otherwise protected from disclosure. If you are not the intended recipient, you are hereby notified that any review, reliance or distribution by others or forwarding without express permission is strictly prohibited and may cause liability. In case you have received this message due to an error in transmission, we kindly ask you to notify the sender immediately and to delete this email and any attachment from your system.
Feb 20, 2014 at 4:13 AM

Another comment: looks to me as if when you have selected only the last step and the process finalizes, you the select a new attribute and click all steps, it didn’t convert data in some case. Not sure about the actual steps, but there seems to be a bug, where the work-around is to restart XrmToolBox.



Confidentiality note:
The information in this email and any attachment may contain confidential and proprietary information of Heidelberger Druckmaschinen AG and/or its affiliates and may be privileged or otherwise protected from disclosure. If you are not the intended recipient, you are hereby notified that any review, reliance or distribution by others or forwarding without express permission is strictly prohibited and may cause liability. In case you have received this message due to an error in transmission, we kindly ask you to notify the sender immediately and to delete this email and any attachment from your system.
Feb 20, 2014 at 1:21 PM
pergeert wrote:
I’ve be doing the native SQL updates for huge tables (instead on 6 hours, we are talking about minutes). Anyhow, I do thing you can speed up the two steps where date is copied from att to att_t_ and vice versa by only retrieve records, where att <> att_t_t. In my timing, it doesn’t look like that is what you are doing.
You're correct that I'm retrieving all records, and not just the ones that need to be updated. This is because for the "happy path", the attribute to copy the values to, is always going to be null. It does have logic to not update it if the values are equal, but it is still doing a client side search for the values not being equal.

It sounds like, with the help of a few SQL update statements, you are getting the tool work for you?
Feb 20, 2014 at 1:26 PM
pergeert wrote:
Another comment: looks to me as if when you have selected only the last step and the process finalizes, you the select a new attribute and click all steps, it didn’t convert data in some case. Not sure about the actual steps, but there seems to be a bug, where the work-around is to restart XrmToolBox.
So when you finish converting an option set, when you are only running the final step, and then attempt to do a full conversion of another optionset, not all the data is migrated?