4

.Net CRM SDKを使用して、カスタムエンティティのStateStatusCodeを設定する必要があります。 次のコードは実行されますが、エンティティフォームを確認してもStatusCodeは変更されません。

private void SetState(Entity entity, int statuscode)
{
  SetStateRequest setState = new SetStateRequest
  {
    EntityMoniker = new EntityReference(
      entity.LogicalName, new Guid(entity.Id.ToString())),
    State = new OptionSetValue(0),
    Status = new OptionSetValue(statuscode)
  };
  SetStateResponse myres = (SetStateResponse)svc.Execute(setState);
}
4

1 に答える 1

13

次のコードを試してみてください。私はこのコードを使用して状態を設定します。

Microsoft.Xrm.Sdk.EntityReference moniker = new EntityReference();
moniker.LogicalName = "contract";
moniker.Id = newContractId;

Microsoft.Xrm.Sdk.OrganizationRequest request 
  = new Microsoft.Xrm.Sdk.OrganizationRequest() { RequestName = "SetState" };
request["EntityMoniker"] = moniker;
OptionSetValue state = new OptionSetValue(1);
OptionSetValue status = new OptionSetValue(2);
request["State"] = state;
request["Status"] = status;

_service.Execute(request);

または、次のようにステータスを設定できます。

int statusCode = 123456;
entity["statuscode"] = new OptionSetValue(statusCode);
_service.Update(entity);
于 2012-10-02T10:00:34.193 に答える