Ich versuche, einen benutzerdefinierten Workflow auf Dynamics CRM zu machen. Ich muss einige Entitäten löschen, wenn eine andere Entität gelöscht wird.Dynamics CRM benutzerdefinierten Workflow vor dem Löschen von Entitäten
ich meine class library
erstellt und ich die Guid
der gelöschten Einheit mit diesem Code abgerufen:
protected override void Execute(CodeActivityContext executionContext)
{
ITracingService tracingService = executionContext.GetExtension<ITracingService>();
IWorkflowContext context = executionContext.GetExtension<IWorkflowContext>();
IOrganizationServiceFactory serviceFactory =
executionContext.GetExtension<IOrganizationServiceFactory>();
IOrganizationService service =
serviceFactory.CreateOrganizationService(context.UserId);
mService = service;
mExecutionContext = executionContext;
Guid myTipologyTypeDeleted = context.PrimaryEntityId;
bool isReading = context.PrimaryEntityName.Equals(new_tipologialettura_richiesta.EntityLogicalName);
bool isMaintenance = context.PrimaryEntityName.Equals(new_tipologiamanutenzionerichiesta.EntityLogicalName);
bool myResult = AddOnIntervention(isReading, isMaintenance, myTipologyTypeDeleted);
// Retrieve the summands and perform addition
result.Set(executionContext, myResult);
}
Und hier alles funktioniert, bekomme ich die Guid
und ich erhalte die type
(Lesen oder Wartung).
Mein Problem ist, wenn ich versuche, die Entität mit diesem Code (der gleiche Code funktioniert perfekt in einem anderen Workflow bei der Datensatzerstellung funktioniert, aber auf Datensatz löscht mir einen Fehler).
Entity myReadingEntity = mService.Retrieve(new_tipologialettura_richiesta.EntityLogicalName, myTipologyTypeDeleted, new ColumnSet(true));
Hier erhalte ich eine Ausnahme zu sagen, dass kein Datensatz vom Typ MyType
mit id myId
gefunden wurde.
Ich überprüfte den Datensatz und es noch in der DB vorhanden, so dass es nicht gelöscht wurde. Was mache ich falsch?
Dank
1) Wenn Sie versuchen, Kind Datensätze löschen des Datensatzes, der gelöscht wird, haben Sie in Betracht gezogen, die Beziehungseigenschaften zu ändern, um den rec automatisch zu löschen Ords für dich? 2) Der Abruf, der fehlschlägt ... versuchen Sie, den Datensatz, der gerade gelöscht wird, abzurufen? Müssen Sie es abrufen, damit Sie Werte darauf überprüfen können? 3) Sie sagen, Sie haben die db für den Datensatz überprüft und es existiert immer noch, wann tust du das? Wenn Sie überprüfen, nachdem der Workflow ausgeführt wurde, der Workflow jedoch fehlgeschlagen ist, hat die Plattform möglicherweise den Löschvorgang zurückgesetzt. – Polshgiant
@Polshgiant danke für die antwort! Ich antworte hier: 1) Es ist nicht Kind, nur durch einen anderen Workflow-Vorgang verwandt. 2) Ich habe zwei entityRef in dieser Entität, die sich auf zwei Entitäten bezieht, die ich in meinen Operationen benötige. Wie kann ich den gesamten Datensatz abrufen, ohne zu versagen? 3) wahrscheinlich ja, es war ein Rollback, wie Sie gesagt haben –
Ich würde erwarten, dass die Plattform würde Sie den Datensatz abrufen, die gerade gelöscht wird, aber wenn nicht, dann könnten Sie Ihre benutzerdefinierte WF-Assembly akzeptieren mehr Eingabeparameter und dann in der Wf-Designer Sie könnten Werte aus dem Datensatz übergeben, der gelöscht wird. Ist das sinnvoll? – Polshgiant