Hi,
While I am using "Process Start Form" , I am facing an error like "Process Start Form : Neither Variables nor Rules found : expression". Could you please help me to fix it out? Thanks.
Discussion posts and replies are publicly visible
Can you provide a few more details such as the SAIL code for your start form, list of rule inputs, and list of process variables set as parameters?
Sure. Thanks a lot for your response.
SAIL Code
a!localVariables( local!studata: rule!pass_getStudentDetailsByMailId(emailId: loggedInUser()), a!formLayout( label: "Online Pass Request - Submission", contents: { a!sectionLayout( contents: rule!pass_requester_details() ), a!sectionLayout( contents: rule!pass_request_details(requestDetapils: ri!requestDetails) ) }, buttons: a!buttonLayout( primaryButtons: { a!buttonWidget( label: "Submit", submit: true, style: "PRIMARY", saveInto: { a!save(ri!requestDetails.stuId, local!studata.stuId) } ) }, secondaryButtons: { a!buttonWidget( label: "Cancel", value: true, saveInto: ri!cancel, submit: true, style: "NORMAL", validate: false ) } ) ))
Rule Inputs
cancel
requestDetails ("pass_request" CDT)
Process Parameters
/resized-image/__size/320x240/__key/communityserver-discussions-components-files/62/pastedimage1589465476396v1.png
Error
/resized-image/__size/320x240/__key/communityserver-discussions-components-files/62/pastedimage1589465535038v2.png
Your variables look fine. Please also attach the SAIL (Using the code block for readability) for your other interface rules. What I imagine is happening is you have saveinto: saveinto: somewhere by accident
rule!pass_requester_details
a!localVariables( local!studata: rule!pass_getStudentDetailsByMailId( emailId: loggedInUser() ), a!boxLayout( label: "Student Details", contents: { a!columnsLayout( columns: { a!columnLayout( contents: { a!textField( label: "Name", labelPosition: "JUSTIFIED", value: local!studata.stuName, saveInto: {}, refreshAfter: "UNFOCUS", readonly: true, validations: {}, accessibilitytext: "Name of the Student" ) } ), a!columnLayout( contents: { a!textField( label: "Department", labelPosition: "JUSTIFIED", value: local!studata.stuDept, saveInto: {}, refreshAfter: "UNFOCUS", readonly: true, validations: {}, accessibilitytext: "Department Name" ) } ), a!columnLayout( contents: { a!textField( label: "ID", labelPosition: "JUSTIFIED", value: local!studata.stuId, saveInto: {}, refreshAfter: "UNFOCUS", readonly: true, validations: {}, accessibilitytext: "Student ID" ) } ), a!columnLayout( contents: { a!textField( label: "Email", labelPosition: "JUSTIFIED", value: loggedInUser(), saveInto: {}, refreshAfter: "UNFOCUS", readonly: true, validations: {}, accessibilitytext: "Student Email ID" ) } ), a!columnLayout( contents: { a!textField( label: "Date & Time", labelPosition: "JUSTIFIED", value: todatetime( now() ), saveInto: {}, refreshAfter: "UNFOCUS", readonly: true, validations: {}, accessibilitytext: "Request Date & Time" ) } ) } ) }, style: "STANDARD", marginBelow: "STANDARD" ))
rule!pass_request_details
{ a!localVariables( /*local!fromDate : ri!requestDetails.passFromDate,*/ /*local!toDate : ri!requestDetails.passToDate, */ /*local!datediff : local!toDate-local!fromDate,*/ local!pickedPurpose, local!purposeLabels: {"Outing", "Going Home", "Technical Events", "Cultural Events", "Conferences", "Seminars"}, local!purposeAbbreviations: {"Outing", "Going Home", "Technical Events", "Cultural Events", "Conferences", "Seminars"}, a!boxLayout( label: "Pass Request Details", contents: { a!columnsLayout( columns: { a!columnLayout( contents: { /*a!textField(*/ /*label: "Purpose",*/ /*labelPosition: "ABOVE",*/ /*placeholder: "Purpose of the Pass",*/ /*value: ri!requestDetails.passPurpose,*/ /*saveInto: ri!requestDetails.passPurpose,*/ /*refreshAfter: "UNFOCUS",*/ /*required: true,*/ /*validations: if(*/ /*len(trim(ri!requestDetails.passPurpose))<4,*/ /*"Please enter the valid purpose details",*/ /*null()*/ /*),*/ /*accessibilitytext: "Purpose of the OutPass Request"*/ /*)*/ a!pickerFieldCustom( label: "Purpose", placeholder: "Enter the first 2 letters of the purpose of the outpass", maxSelections: 1, suggestFunction: rule!pass_ucArrayPickerFilter( filter:_ , labels: local!purposeLabels, identifiers: local!purposeAbbreviations ), selectedLabels: a!forEach( items: local!pickedPurpose, expression: expression: index(local!purposeLabels, wherecontains(fv!item, local!purposeAbbreviations)) ), value: local!pickedPurpose, saveInto: { local!pickedPurpose, a!save(ri!requestDetails.passPurpose, local!pickedPurpose) } ) } ), a!columnLayout( contents: { a!dateTimeField( label: "Date & Time (FROM)", labelPosition: "ABOVE", value: ri!requestDetails.passFromDate, saveInto: ri!requestDetails.passFromDate, required: true, validations: if( ri!requestDetails.passFromDate<today(), "Please select a Future Date & Time", if( and( not(isnull(ri!requestDetails.passFromDate)), not(isnull(ri!requestDetails.passToDate)) ), if( round((ri!requestDetails.passToDate - ri!requestDetails.passFromDate), 2)<=0, "Please select different Date & Time for FROM Details", null() ), null() ) ) ) } ), a!columnLayout( contents: { a!dateTimeField( label: "Date & Time (TO)", labelPosition: "ABOVE", value: ri!requestDetails.passToDate, saveInto: ri!requestDetails.passToDate, required: true, validations: if( ri!requestDetails.passToDate<today(), "Please select a Future Date & Time", if( and( not(isnull(ri!requestDetails.passFromDate)), not(isnull(ri!requestDetails.passToDate)) ), if( round((ri!requestDetails.passToDate - ri!requestDetails.passFromDate), 2)<=0, "Please select different Date & Time for TO Details", null() ), null() ) )
) } ) } ) }, style: "STANDARD", marginBelow: "STANDARD" ) ) }
Your issue is here, 'expression: expression: '
There error you saw is a common error when an interface is missing a comma somewhere
Ok. Got it & Corrected. Now it has been fixed. Thanks a lot for your help.
My doubt is why it did not display this error in the interface itself?
Hi, Danny. I want to learn the Appian Development very well. Give me your suggestions in this regard. Actually I was a PHP developer. I have to work on Appian platform now. Any inputs from your end? Thanks a lot.
I recommend going to the Training tab in Community and taking multiple courses. It also helps to build simple applications in Appian to get comfortable using the platform.
Sure. I will do.