Inserire, aggiornare, eliminare e ordinare opzioni del set di opzioni globale

 

Data di pubblicazione: gennaio 2017

Si applica a: Dynamics 365 (online), Dynamics 365 (on-premises), Dynamics CRM 2016, Dynamics CRM Online

Gli esempi di codice illustrano come inserire, aggiornare, eliminare e ordinare le opzioni di un set di opzioni globale.

In questo argomento

Inserire una nuova opzione

Aggiornare un'opzione

Eliminare un'opzione

Ordinare opzioni

Inserire una nuova opzione

Nell'esempio seguente viene illustrato come aggiungere una nuova opzione a un set di opzioni globale utilizzando InsertOptionValueRequest.


// Use InsertOptionValueRequest to insert a new option into a 
// global option set.
InsertOptionValueRequest insertOptionValueRequest =
    new InsertOptionValueRequest
    {
        OptionSetName = _globalOptionSetName,
        Label = new Label("New Picklist Label", _languageCode)
    };

// Execute the request and store the newly inserted option value 
// for cleanup, used in the later part of this sample.
_insertedOptionValue = ((InsertOptionValueResponse)_serviceProxy.Execute(
    insertOptionValueRequest)).NewOptionValue;

//Publish the OptionSet
PublishXmlRequest pxReq2 = new PublishXmlRequest { ParameterXml = String.Format("<importexportxml><optionsets><optionset>{0}</optionset></optionsets></importexportxml>", _globalOptionSetName) };
_serviceProxy.Execute(pxReq2);

' Use InsertOptionValueRequest to insert a new option into a 
' global option set.
Dim insertOptionValueRequest As InsertOptionValueRequest = New InsertOptionValueRequest With {
 .OptionSetName = _globalOptionSetName,
 .Label = New Label("New Picklist Label", _languageCode)
}

' Execute the request and store the newly inserted option value 
' for cleanup, used in the later part of this sample.
_insertedOptionValue =
 (CType(_serviceProxy.Execute(insertOptionValueRequest), InsertOptionValueResponse)).NewOptionValue

'Publish the OptionSet
Dim pxReq2 As PublishXmlRequest = New PublishXmlRequest With {
 .ParameterXml = String.Format("<importexportxml><optionsets><optionset>{0}</optionset></optionsets></importexportxml>", _globalOptionSetName)
}
_serviceProxy.Execute(pxReq2)

Aggiornare un'opzione

Nell'esempio seguente viene illustrato come aggiornare un'opzione in un set di opzioni globale utilizzando UpdateOptionValueRequest.


// In order to change labels on option set values (or delete) option set
// values, you must use UpdateOptionValueRequest 
// (or DeleteOptionValueRequest).
UpdateOptionValueRequest updateOptionValueRequest =
    new UpdateOptionValueRequest
    {
        OptionSetName = _globalOptionSetName,
        // Update the second option value.
        Value = optionList[1].Value.Value,
        Label = new Label("Updated Option 1", _languageCode)
    };

_serviceProxy.Execute(updateOptionValueRequest);

//Publish the OptionSet
PublishXmlRequest pxReq3 = new PublishXmlRequest { ParameterXml = String.Format("<importexportxml><optionsets><optionset>{0}</optionset></optionsets></importexportxml>", _globalOptionSetName) };
_serviceProxy.Execute(pxReq3);

' In order to change labels on option set values (or delete) option set
' values, you must use UpdateOptionValueRequest 
' (or DeleteOptionValueRequest).
Dim updateOptionValueRequest As UpdateOptionValueRequest =
 New UpdateOptionValueRequest With {
  .OptionSetName = _globalOptionSetName,
  .Value = optionList(1).Value.Value,
  .Label = New Label("Updated Option 1", _languageCode)
 }
' Update the second option value.

_serviceProxy.Execute(updateOptionValueRequest)

'Publish the OptionSet
Dim pxReq3 As PublishXmlRequest =
 New PublishXmlRequest With {
  .ParameterXml =
  String.Format("<importexportxml><optionsets><optionset>{0}</optionset></optionsets></importexportxml>",
                _globalOptionSetName)
 }
_serviceProxy.Execute(pxReq3)

Eliminare un'opzione

Nell'esempio seguente viene illustrato come eliminare un'opzione in un set di opzioni globale utilizzando DeleteOptionValueRequest.


// Use the DeleteOptionValueRequest message 
// to remove the newly inserted label.
DeleteOptionValueRequest deleteOptionValueRequest =
    new DeleteOptionValueRequest
{
    OptionSetName = _globalOptionSetName,
    Value = _insertedOptionValue
};

// Execute the request.
_serviceProxy.Execute(deleteOptionValueRequest);

' Use the DeleteOptionValueRequest message 
' to remove the newly inserted label.
Dim deleteOptionValueRequest As DeleteOptionValueRequest =
 New DeleteOptionValueRequest With {
  .OptionSetName = _globalOptionSetName,
  .Value = _insertedOptionValue
 }

' Execute the request.
_serviceProxy.Execute(deleteOptionValueRequest)

Ordinare opzioni

Nell'esempio seguente viene illustrato come impostare l'ordine delle opzioni in un set di opzioni globale utilizzando OrderOptionRequest.


// Change the order of the original option's list.
// Use the OrderBy (OrderByDescending) linq function to sort options in  
// ascending (descending) order according to label text.
// For ascending order use this:
var updateOptionList =
    optionList.OrderBy(x => x.Label.LocalizedLabels[0].Label).ToList();

// For descending order use this:
// var updateOptionList =
//      optionList.OrderByDescending(
//      x => x.Label.LocalizedLabels[0].Label).ToList();

// Create the request.
OrderOptionRequest orderOptionRequest = new OrderOptionRequest
{
    // Set the properties for the request.
    OptionSetName = _globalOptionSetName,
    // Set the changed order using Select linq function 
    // to get only values in an array from the changed option list.
    Values = updateOptionList.Select(x => x.Value.Value).ToArray()
};

// Execute the request
_serviceProxy.Execute(orderOptionRequest);

//Publish the OptionSet
PublishXmlRequest pxReq4 = new PublishXmlRequest { ParameterXml = String.Format("<importexportxml><optionsets><optionset>{0}</optionset></optionsets></importexportxml>", _globalOptionSetName) };
_serviceProxy.Execute(pxReq4);

' Change the order of the original option's list.
' Use the OrderBy (OrderByDescending) linq function to sort options in  
' ascending (descending) order according to label text.
' For ascending order use this:
Dim updateOptionList = optionList.OrderBy(Function(x) x.Label.LocalizedLabels(0).Label).ToList()

' For descending order use this:
' var updateOptionList =
'      optionList.OrderByDescending(
'      x => x.Label.LocalizedLabels[0].Label).ToList();

' Create the request.
Dim orderOptionRequest As OrderOptionRequest =
 New OrderOptionRequest With {
  .OptionSetName = _globalOptionSetName,
  .Values = updateOptionList.Select(Function(x) x.Value.Value).ToArray()
 }
' Set the properties for the request.
' Set the changed order using Select linq function 
' to get only values in an array from the changed option list.

' Execute the request
_serviceProxy.Execute(orderOptionRequest)

'Publish the OptionSet
Dim pxReq4 As PublishXmlRequest =
 New PublishXmlRequest With {
  .ParameterXml = String.Format("<importexportxml><optionsets><optionset>{0}</optionset></optionsets></importexportxml>",
                                _globalOptionSetName)
 }
_serviceProxy.Execute(pxReq4)

Vedere anche

Personalizzare set di opzioni globali
Messaggi del set di opzioni globale
Valori dei metadati del set di opzioni globale

Microsoft Dynamics 365

© 2017 Microsoft. Tutti i diritti sono riservati. Copyright