C#コードでDynamics CRM 2016ユーザーを無効にするには、現在SetStateRequestが使用されています。 例: Microsoft CRM:廃止予定のSetStateRequestを使用しないSystemuserを有効または無効にする方法
var requestToDisableUser = new SetStateRequest()
{
EntityMoniker = new EntityReference("systemuser", userGuid),
State = new OptionSetValue(1),
Status = new OptionSetValue(-1)
};
organizationService.Execute(requestToDisableUser);
はしかし、マイクロソフトによるとSetStateRequestが廃止されており、Update
を使用することによって置き換えしかし、私は、ユーザー
例を無効にするには、Updateを使用しようとすると、する必要があります。
var userToDisable = new Entity("systemuser", userGuid)
{
["statecode"] = new OptionSetValue(1),
["statuscode"] = new OptionSetValue(-1)
};
service.Update(userToDisable);
次に、エラーが発生します。
未処理の例外: System.ServiceModel.FaultException`1 [Microsoft.Xrm.Sdk.OrganizationServiceFault]: 'systemuser' 実体が名前= 'statecode' で属性が含まれていません。
これはtrueです。なぜなら、systemuserエンティティには状態コードがないからです。
そして、systemuserエンティティにはIsDisabled
属性がありますが、その属性は読み取り専用です。
したがって、SetStateRequest
を使用せずにユーザーをどのように無効/有効にすることができますか?
更新:MSからの連絡先を介して、それはまだバックログにある既知の問題であることが判明しました。 SetStateRequestは、システムユーザーまたはビジネスユニットを無効/有効にする現在の方法として推奨されていました。 – LukStorms