4

CRM インストールから情報を取得しようとしていますが、これまでのところ、既定のフィールドを使用しても問題ありません。ただし、カスタム フィールドの取得に問題があります。たとえば、連絡先には web_username というカスタム フィールドがあります。

現在の私のコードは

        QueryExpression query = new QueryExpression();
        query.EntityName = "contact";
        ColumnSet cols = new ColumnSet();
        cols.Attributes = new string[] { "firstname", "lastname" };
        query.ColumnSet = cols;

        BusinessEntityCollection beReturned = tomService.RetrieveMultiple(query);
        foreach (contact _contact in beReturned.BusinessEntities)
        {
            DataRow dr = dt.NewRow();
            dr["firstname"] = _contact.firstname;
            dr["lastname"] = _contact.lastname;
            dt.Rows.Add(dr);
        }

クエリにカスタム フィールドを含めるにはどうすればよいですか? 検索してみましたが、まだうまくいきませんでしたが、CRM 用語に慣れていないため、間違った検索をしている可能性があります。

事前に乾杯!

4

2 に答える 2

6

それ以来、私はこれを解決することができました。それが他の誰かに役立つ場合、これは私がしたことです。カスタム フィールドを ColumnSet に追加したことを除いて、クエリは前と同じように設定されます。

cols.Attributes = new string[] { "firstname", "lastname", "new_web_username" };

次に、RetrieveMultipleResponse と Request を ReturnDynamicEntities を true に設定して使用しました

        RetrieveMultipleResponse retrived = new RetrieveMultipleResponse();

        RetrieveMultipleRequest retrive = new RetrieveMultipleRequest();
        retrive.Query = query;
        retrive.ReturnDynamicEntities = true;

        retrived = (RetrieveMultipleResponse)tomService.Execute(retrive);

これを行うためのより良い方法があれば、まだコメントしてください。

編集 連絡先にキャストする場合、元の質問の例を使用します

contact myContact = (contact)myService.Retrieve(EntityName.contact.ToString(), userID, cols);

その後、オブジェクトのプロパティにアクセスできます

                phone = myContact.telephone1;
            password = myContact.new_password;

CRM Web 参照カスタム フィールドを更新すると、CRM に追加したものが利用可能になります。

于 2009-06-30T10:28:49.090 に答える