We have CRM 2011 on premises.
In our world, Contracts sometimes get cancelled and then reinstated. In effect, since a Contract cannot be changed once it is Active except to set a Cancel date, we are creating a new Contract with the same expireson date as the original, an activeon date equal to the original's Cancel date, and a custom field containing the original's Guid so we can track back.
I have something similar to:
newContract = oldContract; newContract.activeon = oldContract.expireson; newContract.new_OriginatingContract = new EntityReference(Contract.EntityLogicalName, oldContract.contractid);
But I just learned about the CopySystemFormRequest
command and I was hoping someone on the forum could describe what the pros and cons are of using one method over the other.
And, since ContractDetails are cancelled when their parent Contract is cancelled, I also need to reinstate the ContractDetails that were Existing at the time of the cancellation. What is the best way to do this?