Dynamics CRM SDK に xRM が追加されて LINQ を使ったアクセスなどができるようになりました。
これを使うと非常に簡単に Dynamics CRM にアクセスできるようになったのですが、Update する際に StatusCode が変更できない問題にあたりました。

0x80048408 : 2 is not a valid status code for state code AccountState.Active on account.

まだ xRM のドキュメントが少なく、ステータスをアップデートする方法を探し、以下の方法で StatusCode / StateCode を更新できることがわかりました。

context.UsingService(service =>
   {
      var request = new Microsoft.Crm.SdkTypeProxy.SetStateAccountRequest()
      {
         AccountState = Microsoft.Crm.SdkTypeProxy.AccountState.Inactive,
         AccountStatus = 1 + (int)Microsoft.Crm.SdkTypeProxy.AccountState.Inactive,
         EntityId = entity.accountid
      };

      service.Execute(request);
    }
  );

もはや xRM の影がないのですが、べたべたな方法なもののこれでアップデート可能でした。

Be the first to rate this post

  • Currently 0/5 Stars.
  • 1
  • 2
  • 3
  • 4
  • 5
Comments are closed