We got one issue in dynamics portal form. Multi-select option set field is the new feature in Dynamics 365. But this field is not supported in Dynamics portal. So we need to find a workaround for this.
In Dynamics 365, Multi-select options selected values are stored as semi-colon separated (;). So we decided to create one text field and update the field whenever the change is happen at the option-select field.
- Thought of using workflow to trigger on update of the field, unfortunately we are not able to access then multi-select option set field in the Workflow designer. Looks like its an limitation as of now.
- Finally, decided to go with plugin.
Next difficulty is we are not able to access the option set label like we do traditionally. Because option set field returns selected value as “OptionSetValueCollection“. So here is the code block which helps to achieve the result in the required format.
var attributeRequest = new RetrieveAttributeRequest
{
EntityLogicalName = "entityname",
LogicalName = "fieldname",
RetrieveAsIfPublished = true
};
var attributeResponse = (RetrieveAttributeResponse)service.Execute(attributeRequest);
var attributeMetadata = (EnumAttributeMetadata)attributeResponse.AttributeMetadata;
var optionList = (from o in attributeMetadata.OptionSet.Options
select new { Value = o.Value, Text = o.Label.UserLocalizedLabel.Label }).ToList();
string concatText = "";
var sOptList = (OptionSetValueCollection)inputEntity.Attributes["fieldname"];
foreach (var item in sOptList)
{
var text = optionList.Where(o => o.Value == item.Value)
.Select(o => o.Text)
.FirstOrDefault();
concatText = concatText + ";" + text;
}
string requiredFormat = concatText.Substring(1, concatText.Length - 1);
hope this re-usable code block helps to minimize your effort in this work.
As usual, I love to hear feedback.
Do let me know, if you need any help…
Hi there, after reading this remarkable paragraph i am as well delighted to share my knowledge here with mates.|
Thanks.