10. Juli 2013 14:22
public void setOriginatingContractState()
{
if (newEntity.Contains("originatingcontract"))
{
EntityReference originatingContractId = newEntity.GetAttributeValue<EntityReference>("originatingcontract");
String fetchXml = "<fetch mapping='logical' version='1.0'>"
+ "<entity name='contract'>"
+ "<attribute name='originatingcontract' />"
+ "<attribute name='statecode' />"
+ "<attribute name='statuscode' />"
+ "<filter>"
+ "<condition attribute='contractid' operator='eq' value='" + originatingContractId.Id.ToString() + "' />"
+ "</filter>"
+ "</entity>"
+ "</fetch>";
EntityCollection fetchresult = Utils.excecuteFetchXml(this.Helper, fetchXml.ToString());
if (fetchresult.Entities.Count == 1)
{
Entity originatingContract = fetchresult[0];
if (originatingContract.GetAttributeValue<OptionSetValue>("statecode").Value == 2)
{
SetStateRequest stateRequest = new SetStateRequest();
stateRequest.EntityMoniker = originatingContractId;
stateRequest.State = originatingContract.GetAttributeValue<OptionSetValue>("statecode");
stateRequest.Status = new OptionSetValue(383910000);
this.Helper.Service.Execute(stateRequest);
}
}
}
}
10. Juli 2013 16:17
stateRequest.EntityMoniker = new EntityReference();
stateRequest.EntityMoniker.Id = originatingContractId;
stateRequest.EntityMoniker.Name = "contract";
stateRequest.EntityMoniker.LogicalName = contract.EntityLogicalName;
10. Juli 2013 18:50
SetStateRequest _SetStateRequest = new SetStateRequest();
_SetStateRequest.EntityMoniker = new EntityReference(ENTITY, GUID));
_SetStateRequest.State = new OptionSetValue(1);
_SetStateRequest.Status = new OptionSetValue(8);
SetStateResponse _SetStateResponse = (SetStateResponse)lclCrmService.Execute(_SetStateRequest);
11. Juli 2013 08:17
du must deinem Moniker schon sagen, für welche Entität er arbeiten soll.
if (newEntity.Contains("originatingcontract"))
{
EntityReference originatingContractId = newEntity.GetAttributeValue<EntityReference>("originatingcontract");
11. Juli 2013 10:37
11. Juli 2013 14:02
eine EntityReference besteht immer aus dem Logical Entityname und der Guid des Datensatzes. Sowie ich das sehe fehlt bei dir die Guid. Wichtig ist auch, dass der Status auch zum richtigen statecode passt!
11. Juli 2013 18:58