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

Question

Question

Reading Laserfiche errors

asked on April 29, 2017 Show version history

Hi,

I am currently designing a process for a bank.

I have a three forms (A, B, C) which goes through a process flow. Form  A is filled by applicant and submitted to the bank. Form B, contains form A and contains fields key in by bank officers. Form C contains form B + additional fields to be further filled in by bank officers to complete the application. Form C has about 200 fields.

During the implementation of above forms pertaining to a process diagram, I am getting so many difficulty. e.g if I change a field in form a and submit I get errors: like Errors encountered during forms submission: <br>Field Name: Currency of Average Monthly Income, Position: 120, Error: This value does not belong to the list of choices. [LFF9309-InvalidChoice] [LFF9312-ErrorOccuredDuringFormsValidation]<br> You can click the back button on the browser to correct and resubmit the form. [LFF9320-FormsValidationAggregateException]

 

 

 

Errors encountered during forms submission: <br>Field Name: Currency of Average Monthly Income, Position: 120, Error: This value does not belong to the list of choices. [LFF9309-InvalidChoice] [LFF9312-ErrorOccuredDuringFormsValidation]<br> You can click the back button on the browser to correct and resubmit the form. [LFF9320-FormsValidationAggregateException]

 

Details:

URL: /Forms/Form/Submit?source=formiframe

Error: FormsValidationAggregateException

Date: 4/29/2017 6:35:04 PM (Mauritius Standard Time)

HTTP Status Code: 400

Business Process ID: 27

User: Admin

IP: 172.16.125.51

Browser: Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 10.0; WOW64; Trident/7.0; .NET4.0C; .NET4.0E; .NET CLR 2.0.50727; .NET CLR 3.0.30729; .NET CLR 3.5.30729; InfoPath.3)

Instance ID: 310

Business Process Name: International Banking Corporate Entity - Copy(1)

 

Stack Trace:

Caught exception: Laserfiche.Forms.CommonUtils.Exceptions.LFFormsException

Message: Errors encountered during forms submission: <br>Field Name: Currency of Average Monthly Income, Position: 120, Error: This value does not belong to the list of choices. [LFF9309-InvalidChoice] [LFF9312-ErrorOccuredDuringFormsValidation]<br> You can click the back button on the browser to correct and resubmit the form. [LFF9320-FormsValidationAggregateException]

at E_Forms.Models.ViewModels.Form.Submit.GetErrorMsgFromAllErrors(BlockingCollection`1 exceptions)

at E_Forms.Controllers.FormController.Submit(FormCollection collection)

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.EndInvokeActionMethod(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.EndInvokeActionMethodWithFilters(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)

 

 

My issue is that there are so many currency ... fields in my form and cannot find the field with error. How know the exact issue? is it with field rules?

is it with lookup? is it with etc...

Error messages are not so meaningful when there are more than 30 fields in a form. Please advise.

 

Any suggestion on how to prevent configuring three forms when we have to change a field pertaining to the process, is there any way to change once and same gets applied in the three froms. The three forms were created since tasks are assigned to teams and team A and B has different access on the forms and team A has to key in a set of data and teamB has another set of data.

 

Please advise. Its a real hassle to modify three forms when there is one change as laserfiche forms do not have possibility to provide access rights on forms fields. And please correct me if I am wrong.

 

 

1 0

Replies

replied on April 29, 2017

It sounds like the error you are having is related to backend field validation functionality that was added with forms 10.2, specifically on field "Currency of Average Monthly Income, Position: 120".  Unless I'm mistaken, counting from the top, this is the 120th field on your form, and the field is named "Currency of Average Monthly Income".

You can change the settings of the backend field validation from the Layout page of your form, click the setting button (gear icon) and backend validation should be at the bottom.  But be cautious that changing this setting doesn't hinder validation of your data.

As far as I know there isn't an easy way to edit the fields across several forms at once.  In my case, with most forms I try to make sure the form is as complete as possible before I made the copies of the alternate version.  

I do have one form that is so complex (over 1,000 fields, most of which are hidden at any given time due to field rules that hide the sections they are contained within) that I definitely did not want to have to edit multiple versions of the form any time that a tweak was needed, but I did need some slightly different functionality based on which step was being used in the process (such as who can see or edit specific fields).  In that situation, I added a custom HTML element to my form that contained the text "{/_current_step_name}".  This causes the field to display the name of the user task during which the form is loaded (I hide the field since the end user does not need to see it).  I couldn't do this in a regular single line field, because it wouldn't change with each task, only the first time, but the custom HTML fields don't save values between tasks, so it re-populates it each time the form is displayed.  Then I have custom Javascript that reads the text from that HTML field and tweaks the rules based on the results.  Like this: 

if ($('.getCurrentStep').text() == 'User Task Name') { 
  $('.protectedField input').each(function() { 
    $(this).attr('readonly', 'true');
  }); 
});

This code checks the custom HTML field (assuming its CSS Class Name is getCurrentStep) and if the task is named "User Task Name" then it finds all of the fields which have a CSS Class Name of protectedField and makes it read only.  Since the fields can have multiple CSS Class Names, you can have whole sections of fields that are readonly for certain tasks.  You can also hide fields similarly.

It's not as ideal as a built-in solution, but it works well.

3 0
replied on April 30, 2017

I see, the code shows and hides fields based on the task name.

and you have a form with 1000 fields.

Does it take much time to load? As you have so many hidden fields?

 

0 0
replied on April 30, 2017 Show version history

For the end user, it works well and efficiently, since most of the fields are hidden.

When editing the form, it can pretty slow.

Basically, it is 20 forms in one.  They have a standard header and footer, but then the contents (30-50 fields each - mostly single line fields - all containing the same CSS Field Name so the CSS and Javascript dictates their appearance and functionality consistently) are held in sections that are shown or hidden via field rules based on the result of a drop down menu.  The form is actually kicked off by a workflow, which prepopulates the dropdown, header, and footer.  So once the employee sees it, their appropriate version of the 20 forms is already displayed.  It works pretty well actually.

0 0
replied on May 2, 2017

Hello,

 I tried to replicate the above senario, but it seems that i cannot hide the field based on a condition. Find below my code: 

$(document).ready(function() {
	if ($('.getCurrentStep').text() == 'Start') {
		$('.opcfield').each(function() {
			$(this).attr('readonly', 'true');
		});
	});
})

I have put getCurrentStep as css class for the HTML and opcfield as class for the field to be made readonly but it seems that it dont work. I am using the Start Task. Please advise.

Regards,

Guillaume

0 0
replied on May 2, 2017

In your Process Diagram, the task is actually named "Start", correct?

0 0
replied on May 2, 2017 Show version history

Also, I recommend placing alert commands throughout your code to test which parts are working vs. not working.

$(document).ready(function() {
  alert('test 1');
  if ($('.getCurrentStep').text() == 'Start') {
    alert('test 2');
    $('.opcfield').each(function() {
      alert('test 3');
      $(this).attr('readonly', 'true');
    });
  });
})

Based on which popup alerts you see, we can narrow down which parts of the code are working vs. not working.

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

Sign in to reply to this post.