Example: Allow graceful exit on form or on error

Build 1501 on 14/Nov/2017  This topic last edited on: 5/Aug/2014, at 15:34

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