2012-05-04 18 views
5

Mam zestaw opcji w CRM 2011. Posiada cztery opcje:Jak ustawić wartość zestawu opcji w CRM 2011?

  1. Public
  2. Prywatna
  3. Zależna
  4. Inne

Dzięki wtyczce Chcę ustawić wartość ta opcja została ustawiona. Czy każdy może podać mi instrukcję, aby ustawić wartość tego zestawu opcji?

Odpowiedz

8

Można ustawić wartość ustawioną opcję przy użyciu następujących: -

OptionSetValue myOptionSet = new OptionSetValue(); 
myOptionSet.Value = xxxx 
myEntity.Attributes["optionSetAttributeName"] = myOptionSet; 

// Gdzie xxxx reprezentuje wartość pożądaną i można sprawdzić na stronie metadanych atrybut ciągu dostosowywać jednostki

czy " myEntity "to w rzeczywistości preImage/postImage lub po prostu dynamicznie tworzona encja w plug-inie określa, czy rzeczywiście trzeba wywołać metodę aktualizacji, ale zasadniczo jest to sposób ustawiania wartości zestawu opcji i aktualizowania atrybutu.

+0

tak, czy reprezentują xxxx faktyczna wartość tekstowa opcji lub indeks wybranej opcji? – CompanyDroneFromSector7G

+0

Indeks jest wartością, tekst jest tylko etykietą powiązaną z tą wartością. –

10

How to set optionsetvalue in plugins

W wtyczek można napisać yourEntity.yourAttribute = new OptionSetValue(INDEX); indeksu jest int można sprawdzić w edytorze optionset (wartości domyślne są kilka cyfr długo).

LUB

można ustawić optionset jak yourEntity.Attributes.Add(“yourAttribute”, new OptionSetValue(INDEX));

0

myślałem, że dzielić się trochę kodu do obsługi opcjonalnych zestawów CRM tutaj ...

fieldValue = ((OptionSetValue)entity.Attributes[field]).Value.ToString(); 

//need to get Option Set display label based on its value. This requires getting attribute metadata 
RetrieveAttributeRequest attributeRequest = new RetrieveAttributeRequest 
{ 
    EntityLogicalName = entity.LogicalName, 
    LogicalName = field, 
    RetrieveAsIfPublished = true 
}; 

RetrieveAttributeResponse attributeResponse = (RetrieveAttributeResponse)orgContext.Execute(attributeRequest); 
EnumAttributeMetadata attributeMetadata = (EnumAttributeMetadata)attributeResponse.AttributeMetadata; 

foreach (OptionMetadata om in attributeMetadata.OptionSet.Options) 
{ 
    if (om.Value == ((OptionSetValue)entity.Attributes[field]).Value) 
    { 
     fieldlabel = om.Label.UserLocalizedLabel.Label; 
    } 
} 

return fieldlabel; 
Powiązane problemy