You are viewing limited content. For full access, please sign in.

Question

Question

Forms business process lost all of its links at once

asked on January 26, 2018

Sometime yesterday a rather large business process suddenly lost all of its links.  All of the steps were still there but none of the steps were linked to each other any more.  None of the other forms appear to be effected.  

We only found out about it this morning when we had dozens of terminated processes.

Our business process engineer is in the process of recreating all the links between each step right now but this behavior is VERY troubling.  

As far as we can tell there are no corresponding error messages in the forms event viewer, nor any system errors as well.

We are on Forms 10.2.1.246

0 0

Replies

replied on November 2, 2018

We had to go in an restore the latest version. We found that two people had the process open simultaneously and each had made changes and saved and this broke and erased the process. LaserFiche has stated that they are working on having one person at a time have editing rights but so far we've found multiple people with permissions can edit and save at the same time erasing others work. When our older version was restored we just rebuilt the pieces that were newer which was a long process but at the least we got back several months of work. Sorry that wasn't the news you were probably hoping for and honestly we don't know if saving at the same time erased everything or two saves with different changes erased everything. Best of luck.

1 0
replied on November 5, 2018

Hi Lena. Thank you for that feedback. I know we didn't have multiple users editing the business process simultaneously. The connection between the client/server must have been interrupted after the editor hit the save button. Hopefully the Forms save process is updated to be more reliable in a future release.

Version history and the ability to export previous process versions would be awesome in Forms as well. Then we could have exported/imported the previous version of the business process and had a working model to recreate all the logic in the broken business process.

0 0
replied on January 28, 2018

Hi Jason,

Did you mean that all sequence flows on the process are gone? Have you checked if the process was saved with error when the issue occurred? Is there any log like "ProcessDataSavingError" in the forms event viewer?

We have never met such kind of issue. It might be possible that some errors occurred when saving the process so it was saved wrongly. Sorry for the inconvenience.

0 0
replied on February 7, 2018

a support case was opened with LF and sent to development.

It appears that if during the process of saving the browser is closed or there is a connection issue that the form/business process will be corrupted.

 

Basically it sounds like when you save a form every step is saved sequentially in the order it was added except for the links between each step.  Those are saved last.  So if you closed your browser or a network disruption before it was done saving you'd have an incomplete save.  

0 0
replied on February 27, 2018

I just got the same error while working in my forms process diagram. LFF2602-ProcessDataSavingError. What causes this error? I was unable to find a way to resolve this. When another user who has access to this process went in to look at it, it was no longer saved as it was. Only 4 of the 36 boxes/tasks were saved and no connections. This process has been a labor intensive project and has been saved multiple times in the past month so for there to be nothing was baffling. How do we resolve this and get our form and process back?

0 0
replied on March 1, 2018

We found no path to recovery other than to restore a backup on a test server, make the changes we had made from since the last backup, then exported the XML and imported it into production.

The consequence of this was that it created a new business process so all previous and in progress forms would remain attached to the broken business process.

Last I heard from our VAR was the LF was looking into correcting it.

I would talk with your VAR or LF support to get further help with recreating all those links or adding your name to users affected by this issue to make it a higher priority to fix.

0 0
replied on November 2, 2018

This happened to us today as well on Forms 10.3.1. Its very frustrating when a process diagram is almost completely lost when attempting to save it. Can I get a status update from Laserfiche as to where they are with an improvement to the save process? It seems a better design would be to not overwrite the previous process until the new process save has been completely committed to storage on the server. Version control in Laserfiche Forms (like in Workflow) would be great as well.

Laserfiche Forms has encountered an error while saving process data. [LFF2602-ProcessDataSavingError]

Details:
URL: /Forms/api/routing/save
Error: ProcessDataSavingError
Date: 11/02/2018 2:29:24 PM (Central Standard Time)
HTTP Status Code: 400
Business Process ID: 0
User: 
IP: 
Browser: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/69.0.3497.100 Safari/537.36
Business Process Name: 

Stack Trace:
Caught exception: Laserfiche.Forms.CommonUtils.Exceptions.LFFormsException
Message: Laserfiche Forms has encountered an error while saving process data. [LFF2602-ProcessDataSavingError]
   at E_Forms.Controllers.BusinessProcessController.SaveRoutingDiagram(String flow)
   at lambda_method(Closure , ControllerBase , Object[] )
   at System.Web.Mvc.ReflectedActionDescriptor.Execute(ControllerContext controllerContext, IDictionary`2 parameters)
   at System.Web.Mvc.ControllerActionInvoker.InvokeActionMethod(ControllerContext controllerContext, ActionDescriptor actionDescriptor, IDictionary`2 parameters)
   at System.Web.Mvc.Async.AsyncControllerActionInvoker.<BeginInvokeSynchronousActionMethod>b__39(IAsyncResult asyncResult, ActionInvocation innerInvokeState)
   at System.Web.Mvc.Async.AsyncResultWrapper.WrappedAsyncResult`2.CallEndDelegate(IAsyncResult asyncResult)
   at System.Web.Mvc.Async.AsyncControllerActionInvoker.AsyncInvocationWithFilters.<InvokeActionMethodFilterAsynchronouslyRecursive>b__3d()
   at System.Web.Mvc.Async.AsyncControllerActionInvoker.AsyncInvocationWithFilters.<>c__DisplayClass46.<InvokeActionMethodFilterAsynchronouslyRecursive>b__3f()
   at System.Web.Mvc.Async.AsyncControllerActionInvoker.AsyncInvocationWithFilters.<>c__DisplayClass46.<InvokeActionMethodFilterAsynchronouslyRecursive>b__3f()
   at System.Web.Mvc.Async.AsyncControllerActionInvoker.<>c__DisplayClass33.<BeginInvokeActionMethodWithFilters>b__32(IAsyncResult asyncResult)
   at System.Web.Mvc.Async.AsyncControllerActionInvoker.<>c__DisplayClass21.<>c__DisplayClass2b.<BeginInvokeAction>b__1c()
   at System.Web.Mvc.Async.AsyncControllerActionInvoker.<>c__DisplayClass21.<BeginInvokeAction>b__1e(IAsyncResult asyncResult)

Inner exception: System.InvalidOperationException
Message: Multiplicity constraint violated. The role 'cf_bp_step_form_mapping' of the relationship 'Laserfiche.Forms.Entities.FK_bp_stp_frm_mappng_bp_step' has multiplicity 1 or 0..1.
   at System.Data.Entity.Core.Objects.EntityEntry.WillNotRefSteal(EntityReference refToPrincipal, IEntityWrapper wrappedPrincipal)
   at System.Data.Entity.Core.Objects.EntityEntry.FixupEntityReferenceToPrincipal(EntityReference relatedEnd, EntityKey foreignKey, Boolean setIsLoaded, Boolean replaceExistingRef)
   at System.Data.Entity.Core.Objects.EntityEntry.FixupEntityReferenceByForeignKey(EntityReference reference)
   at System.Data.Entity.Core.Objects.EntityEntry.EntityMemberChanged(String entityMemberName, Object complexObject, String complexObjectMemberName)
   at System.Data.Entity.Core.Objects.Internal.SnapshotChangeTrackingStrategy.SetCurrentValue(EntityEntry entry, StateManagerMemberMetadata member, Int32 ordinal, Object target, Object value)
   at System.Data.Entity.Core.Objects.DataClasses.EntityReference.UpdateForeignKeyValues(IEntityWrapper dependentEntity, IEntityWrapper principalEntity, Dictionary`2 changedFKs, Boolean forceChange)
   at System.Data.Entity.Core.Objects.DataClasses.EntityReference.UpdateDependentEndForeignKey(RelatedEnd targetRelatedEnd, Boolean forceForeignKeyChanges)
   at System.Data.Entity.Core.Objects.DataClasses.RelatedEnd.Add(IEntityWrapper wrappedTarget, Boolean applyConstraints, Boolean addRelationshipAsUnchanged, Boolean relationshipAlreadyExists, Boolean allowModifyingOtherEndOfRelationship, Boolean forceForeignKeyChanges)
   at System.Data.Entity.Core.Objects.ObjectStateManager.PerformAdd(IEntityWrapper wrappedOwner, RelatedEnd relatedEnd, IEntityWrapper entityToAdd, Boolean isForeignKeyChange)
   at System.Data.Entity.Core.Objects.ObjectStateManager.PerformAdd(IList`1 entries)
   at System.Data.Entity.Core.Objects.ObjectStateManager.DetectChanges()
   at System.Data.Entity.Internal.InternalContext.GetStateEntries(Func`2 predicate)
   at System.Data.Entity.DbContext.GetValidationErrors()
   at System.Data.Entity.Internal.InternalContext.SaveChanges()
   at Laserfiche.Forms.Routing.FlowObject.DeleteRoutingObjectFromDb(IEntityContext appContext, cf_bp_steps bpStep)
   at Laserfiche.Forms.Routing.RoutingProcess.DeltaUpdateRoutingObjectInDb()
   at Laserfiche.Forms.Routing.RoutingProcess.UpdateProcessDataToDb(String hostName)
   at E_Forms.Models.ViewModels.BusinessProcess.RoutingViewModel.SaveRoutingData()
   at E_Forms.Controllers.BusinessProcessController.SaveRoutingDiagram(String flow)

 

0 0
replied on November 29, 2018

Hi Brandon,

We checked your error log and managed to reproduce the issue, which was a different one from the one in the main post.

We want to check with you if the issue we found was same as yours:

Before the error occurred, have you ever opened two tabs and editing process diagram on both of them? Or have you ever saved with a previous version of process diagram, like with deleted user tasks?

What kinds of objects are lost? Sequence flow only or sequence flow together with other steps (like user tasks)?

1 0
replied on November 30, 2018

Rui,

Thank you very much for looking into this issue and I'm glad you can reproduce it on your side. I reviewed your questions with the employee that was modifying the process when the issue occurred.

She said it is very likely that she had multiple tabs open with the same process diagram. A lot of times when building/editing a Forms process it is convenient to use multiple tabs but clearly this is not best practice with the current design of the Forms application. Since this was based on memory from about a month ago she isn't 100% sure if she pressed save in separate tabs with the same process diagram or if only saved one of them. She may have saved the same process separately in different states on different tabs. 

In our case sequence flow (connecting lines), gateways, and user tasks were lost. There were about 10 steps (gateways, user tasks, email notificatons) in the process and after the issue there were only 2 steps remaining and they were no longer connected.

We have all made a better effort to work from a single Forms tab when editing Forms processes since it seems the issue is introduced by multiple users or tabs simultaneously editing/saving the same process. Please let us know if you need more info or have any updates.

Thanks,

Brandon

0 0
replied on December 2, 2018

The issue was introduced by trying to save with a deleted user task, which most likely would happen when editing on multiple tabs simultaneously. When the error occurred it would remove most canvas steps, which was different from the main post where only sequence flows got removed.

We are trying to fix this in Forms 10.4 and possibly the coming Forms 10.3.1 update. For now, you can keep using a single tab to avoid the issue. Sorry for the inconvenience.

1 0
replied on November 30, 2018

To recap a bit, there were a few different ways we found where an error when saving your process would wipe out all sequence flows. We have since fixed the issue in 10.2.1 update 3 and in 10.3.1. We refactored the code such that sequence flows will only be updated if the process save is valid. An invalid saved process won't remove the old sequence flows without replacing them correctly. 

0 0
replied on November 30, 2018

Hi Jared, I am running Forms 10.3.1 and detailed a similar issue in this thread. Rui mentioned being able to reproduce it. Are the fixes you mentioned for different issue than mine? Is there a plan to improve the save process to protect the process from getting destroyed?

I'm sure its more complicated than this idea but I'll throw it out there. When a user opens a process diagram in the designer the Forms web application knows what version of the process that is. Then when they save that process the Forms web application should check the LF Forms database to see if the latest version in the database is still the same or if it has been updated since the user opened the process. If it has been updated in the DB while they were modifying it then the user should be prompted that they are trying to save a process that has been updated since they loaded it and it can't be saved. This would be frustrating to the user but not as frustrating as losing their process because the application threw an error trying to save changes that were made on an out of date process.

Another option is to add a feature where a process can be "locked for editing". The main issue I see with this is if someone accidentally leaves something "locked" and goes on vacation for instance. An admin could unlock the process to overcome this.

Is there a plan to have version history/control in Laserfiche Forms processes? I think everyone that has to administer a Laserfiche Forms environment would like that.

Thanks for your feedback and have a nice weekend.

0 0
replied on December 3, 2018

Hi Brandon, 

Yes, the issue you experienced in 10.3.1 is different than the bug that was in 10.2 then fixed. The 10.2 bug was not a result of simultaneous editing, but would still clear the sequence flows if certain errors were hit when saving. That issue shouldn't happen again as long as you aren't simultaneously editing a process on multiple tabs or multiple machines. 

Thank you for the feature suggestions, we are working on process versioning for a later version of Forms and have considered the "locked for editing" option. 

1 0
You are not allowed to follow up in this post.

Sign in to reply to this post.