Process

Certified Senior Developer

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

Parents
  • 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?

  • 0
    Certified Senior Developer
    in reply to Danny Verb

    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

  • 0
    Certified Senior Developer
    in reply to Danny Verb

    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"
    )

    )

    }

  • 0
    Appian Employee
    in reply to Danny Verb

    There error you saw is a common error when an interface is missing a comma somewhere

  • 0
    Certified Senior Developer
    in reply to Danny Verb

    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?

  • 0
    Certified Senior Developer
    in reply to ponnuchamya7980

    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.

Reply Children
No Data