The below code causes an ungraceful exit if the user click Cancel, because the edition is still locked by the user.
Dim editEditionAct = New EditObjects(Context) _
With {.Name = "editEditionAct", .Description = "Edit Edition"}
editEditionAct.ShowFinishButton = True
editEditionAct.ObjectIds = Context.ObjectIds
editEditionAct.ObjectUI = editEditionUI
Dim createEditionRes As EditObjectsResult = Await editEditionAct.Do()
Dim impEditionAct As ImportXml = New ImportXml(Context) _
With {.Name = "impEditionAct", .Description = "Import edition"}
impEditionAct.XmlIn = New XDocument(createEditionRes.XmlOut)
impEditionAct.Xslt = avoidNumberOrd
Dim impEditionRes As ImportXmlResult = impEditionAct.Do()
Dim undoCheckOutAct As UndoCheckOut = New UndoCheckOut(Context) _
With {.Name = "undoCheckOutAct", .Description = "undo checkout"}
undoCheckOutAct.ActivityRef = editEditionAct.InternalName
Dim undoCheckOutRes As UndoCheckOutResult = undoCheckOutAct.Do()
The following code shows how to avoid it:
Dim editEditionAct = New EditObjects(Context) _
With {.Name = "editEditionAct", .Description = "Edit Edition"}
Try
editEditionAct.ShowFinishButton = True
editEditionAct.ObjectIds = Context.ObjectIds
editEditionAct.ObjectUI = editEditionUI
Dim createEditionRes As EditObjectsResult = Await editEditionAct.Do()
Dim impEditionAct As ImportXml = New ImportXml(Context) _
With {.Name = "impEditionAct", .Description = "Import edition"}
impEditionAct.XmlIn = New XDocument(createEditionRes.XmlOut)
impEditionAct.Xslt = avoidNumberOrd
Dim impEditionRes As ImportXmlResult = impEditionAct.Do()
Finally
Dim undoCheckOutAct As UndoCheckOut = New UndoCheckOut(Context) _
With {.Name = "undoCheckOutAct", .Description = "undo checkout"}
undoCheckOutAct.ActivityRef = editEditionAct.InternalName
Dim undoCheckOutRes As UndoCheckOutResult = undoCheckOutAct.Do()
End Try