2

SOAP Web サービスを使用して CRM に接続する aspx ページに投稿する html フォームがあります。ページの背後にあるコードは、CRM にエンティティを作成します。コードビハインドで IOrganizationService を使用しています。

コードは次のようになります

IOrganizationService service = (IOrganizationService)serviceProxy;                       
Entity lead = new Entity("lead");
string fieldValue = string.Empty;

foreach (string key in Request.Form.AllKeys)
{
    if (key.Equals(SubmitKey, StringComparison.InvariantCultureIgnoreCase) == false &&
        key.Equals(CRMHostKey, StringComparison.InvariantCultureIgnoreCase) == false &&
        key.Equals(redirectErrorURLKey, StringComparison.InvariantCultureIgnoreCase) == false && 
        key.Equals(redirectSuccessURLKey, StringComparison.InvariantCultureIgnoreCase) == false)
    {
        if (!string.IsNullOrEmpty(Request.Form[key]))
        {
            fieldValue = Request.Form[key].Trim();
        }
        else
        {
            fieldValue = string.Empty;
        }

        if (key.Equals("new_contacttypechoices", StringComparison.InvariantCultureIgnoreCase))
        {
            lead[key] = new KeyValuePair<string, int>("Email", 100000000);
            //OptionMetadata objOM = GetOptionMetadata("lead", "new_contacttypechoices", fieldValue, service);
            //lead[key] = objOM;
            //lead[key] = 100000000; //Incorrect attribute value type System.Int32
            //lead[key] = fieldValue; //Incorrect attribute value type System.String
        }
        else
        {
            lead[key] = fieldValue;
        }
    }
    newLeadID = service.Create(lead);
}

フィールドのスクリーンショットここに画像の説明を入力

しようとするとエラーが発生する

lead[key] = fieldValue

しようとするとエラーが発生する

lead[key] = 100000000

しようとするとエラーが発生する

lead[key] = new KeyValuePair<string, int>("Email", 100000000);

OptionMetaData を取得してエンティティに設定すると、エラーが発生します。オプションセットを使用してエンティティを作成する方法に関するアイデアはありますか?

ありがとう

4

1 に答える 1

3

発生しているエラーによって異なりますが、リードのタイプが の場合Microsoft.Xrm.Sdk.Entity、既存の値を置き換えるか、新しい値を追加する必要がある可能性があります。

if (lead.Attributes.Contains(key))
{
    lead[key] = new OptionSetValue(100000000);        
}
else 
{
    lead.Attributes.Add(key, new OptionSetValue(100000000));        
}

再読すると、(おそらく)エラーをコメントに入れていることに気づきました。その場合、タイプの値を割り当てる必要があるという問題があることをお勧めしますOptionSetValue

于 2012-05-01T22:53:11.750 に答える