共用方式為


插入、更新、刪除以及排列全域選項組選項

發行︰ 2017年1月

適用於: Dynamics 365 (online)、Dynamics 365 (on-premises)、Dynamics CRM 2016、Dynamics CRM Online

這些程式碼範例顯示如何插入,更新,刪除與排列全域選項組的選項。

本主題內容

插入新選項

更新選項

刪除選項

排列選項

插入新選項

下列範例將說明如何使用 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)

更新選項

下列範例將說明如何使用 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)

刪除選項

下列範例將說明如何使用 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)

排列選項

下列範例將說明如何使用 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)

另請參閱

自訂全域選項組
全域選項組訊息
全域選項組中繼資料值

Microsoft Dynamics 365

© 2017 Microsoft. 著作權所有,並保留一切權利。 著作權