【问题标题】:Get CRM OptionSet data获取 CRM 选项集数据
【发布时间】:2014-01-21 14:51:15
【问题描述】:

我正在尝试从我的 CRMOnline 中获取 OptionSet 键=>值。我可以访问 SOAP 端点并且能够执行所有 CRUD 操作。对如何从选项集 SalesStageCode 获取信息稍作停留,以便我可以将其显示在外部帐户创建表单的下拉列表中。

【问题讨论】:

    标签: php soap dynamics-crm


    【解决方案1】:

    我相信你应该使用 RetrieveAttribute 消息。复查this article

    【讨论】:

      【解决方案2】:

      CRM 2011 Programatically Finding the Values of Picklists, Optionsets, Statecode, Statuscode and Boolean (Two Options). 的 C# 版本

      static Dictionary<String, int> GetNumericValues(IOrganizationService service, String entity, String attribute)
      {
          RetrieveAttributeRequest request = new RetrieveAttributeRequest
          {
              EntityLogicalName = entity,
              LogicalName = attribute,
              RetrieveAsIfPublished = true
          };
      
          RetrieveAttributeResponse response = (RetrieveAttributeResponse)service.Execute(request);
      
          switch (response.AttributeMetadata.AttributeType)
          {
              case AttributeTypeCode.Picklist:
              case AttributeTypeCode.State:
              case AttributeTypeCode.Status:
                  return ((EnumAttributeMetadata)response.AttributeMetadata).OptionSet.Options
                      .ToDictionary(key => key.Label.UserLocalizedLabel.Label, option => option.Value.Value);
      
              case AttributeTypeCode.Boolean:
                  Dictionary<String, int> values = new Dictionary<String, int>();
      
                  BooleanOptionSetMetadata metaData = ((BooleanAttributeMetadata)response.AttributeMetadata).OptionSet;
      
                  values[metaData.TrueOption.Label.UserLocalizedLabel.Label] = metaData.TrueOption.Value.Value;
                  values[metaData.FalseOption.Label.UserLocalizedLabel.Label] = metaData.FalseOption.Value.Value;
      
                  return values;
      
              default:
                  throw new ArgumentOutOfRangeException();
          }
      }
      
      OptionSetValue optionSetValue = new OptionSetValue(GetNumericValues(proxy, "new_test", "new_local")["One"]);
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2015-10-25
        • 1970-01-01
        • 1970-01-01
        • 2012-07-09
        • 1970-01-01
        • 2014-12-26
        • 1970-01-01
        相关资源
        最近更新 更多