I am keeping track of the execution through a trace. In my current method I can see the execution log and interrupt the execution with an exception to verify that everything is in order:
tracingService.Trace("Create History for new Active Saleslist");
Entity salesList = service.Retrieve(postList.LogicalName, postList.Id, new ColumnSet(new String[] { "custom_saleslistid" }));
tracingService.Trace("sales list id : " + salesList.Id);
SalesListLogic salesListLogic = new SalesListLogic(context, service, tracingService, salesList);
salesListLogic.CreateSalesHistoryRecord(new EntityReference(entity.LogicalName, entity.Id));
tracingService.Trace("Remove History for old Active Saleslist");
Entity preSalesList = service.Retrieve(preList.LogicalName, preList.Id, new ColumnSet(new String[] { "custom_saleslistid" }));
SalesListLogic preSalesListLogic = new SalesListLogic(context, service, tracingService, preSalesList);
preSalesListLogic.DeleteSalesHistoryRecord(new EntityReference(entity.LogicalName, entity.Id));
I can also do it in the DeleteSalesHistoryRecord method.
public void DeleteSalesHistoryRecord(EntityReference slotRef)
{
tracingService.Trace("retrieving saleshistory");
QueryExpression historyQuery = new QueryExpression("custom_saleshistory");
historyQuery.ColumnSet = new ColumnSet(true);
historyQuery.Criteria.AddCondition("custom_slot", ConditionOperator.Equal, slotRef.Id);
historyQuery.Criteria.AddCondition("custom_saleslist", ConditionOperator.Equal, record.Id);
var historyRecords = service.RetrieveMultiple(historyQuery);
if (historyRecords.Entities.Count == 1)
{
tracingService.Trace("deleting saleshistory");
Entity historyRecord = historyRecords.Entities[0];
service.Delete(historyRecord.LogicalName, historyRecord.Id);
}
tracingService.Trace("Done deleting the record");
}
The problem is that if I put a statement to throw an Exception after the method call, no exception is raised. If I put an exception before quitting than the trace is empty.
I cannot debug the code, since the code is published in an on cloud deployment without server access. What's going on?