Form inputs disappearing

Hello,

Fairly new with the Appian platform here. Creating a few forms using Interface and have all the rule inputs added for the fields in the form. When I preview the form and try to enter data all the data I enter disappears when I TAB or click on the next empty field.
What am I doing wrong or can I correct this issue?
Thanks!

  Discussion posts and replies are publicly visible

  • If what you're saying is that the inputs apparently work in Interface Designer, but have the "disappearing" issue when running from within a Process Model, then I'm 99% sure it's because you didn't map the Rule Inputs for the interface to ACP variables in the User Input Task. 

    When in a running process, the rule inputs for the interface merely act as a bridge to the *actual* storage location for the on-form values, which would be the ACP variables.  So if there's no mapping, you can imagine that the on-form saves are saving into a nonexistent "vessel", and just go away.

  • Mike,
    Really appreciate your answer. Is there any documentation that documents this process? All the training I have seen they are missing that important step... I am brand new to the platform so my apologies if some of my questions might sound a bit dumb.
    Thanks again for the help.

  • Is there any documentation that documents this process?

    I checked the documentation for the User Input Task itself and it doesn't seem to address this in detail.  The first thing that I could find that mentions this specifically was the Process Modelling Tutorial - skip down to "Add an Approval Step".

    Honestly, Appian is easy to learn by doing - and this issue is one that I and many others have wandered into while still learning how things work.  Don't feel bad asking for help here Slight smile

  • That makes me feel more at ease. Thanks for the help Mike, greatly appreciated.

  • Mike,

    I actually had it setup already.
    I noticed that I didn't have some fields mapped correctly so I cleared everything and called the form again and I did a Save and Publish but the issue is still there.

  • Can you confirm that the inputs work correctly from within the Interface Designer?

    If so, can you share your form code here?  (Preferably, use the Insert -> Code feature to insert a code box for better readability and sizing, if you can)

  • From the interface designer it works now Slight smile, not on the browser though...

    a!localVariables(
      local!readOnly: ri!step="APPROVAL",
      local!labelPosition: if(local!readOnly, "ADJACENT", "ABOVE"),
      a!formLayout(
        label: if(local!readOnly, "Approve Expense Report", "Submit Expense Report"),
        contents: {
          a!columnsLayout(
            columns: {
              a!columnLayout(
                contents: {
                  a!textField(
                    label: "First Name",
                    labelPosition: "ABOVE",
                    value: ri!firstName,
                    saveInto: ri!firstName,
                    refreshAfter: "UNFOCUS",
                    required: true,
                    validations: {}
                  )
                }
              ),
              a!columnLayout(
                contents: {
                  a!textField(
                    label: "Last Name",
                    labelPosition: "ABOVE",
                    value: ri!lastName,
                    saveInto: ri!lastName,
                    refreshAfter: "UNFOCUS",
                    required: true,
                    validations: {}
                  )
                }
              )
            }
          ),
          a!textField(
            label: "Expense Item",
            labelPosition: local!labelPosition,
            value: ri!expenseItem,
            saveInto: ri!expenseItem,
            refreshAfter: "UNFOCUS",
            required: not(local!readOnly),
            readOnly: local!readOnly,
            validations: {},
            align: "LEFT"
          ),
          a!columnsLayout(
            columns: {
              a!columnLayout(
                contents: {
                  a!dateField(
                    label: "Expense Date",
                    labelPosition: local!labelPosition,
                    value: ri!expenseDate,
                    saveInto: ri!expenseDate,
                    required: not(local!readOnly),
                    readOnly: local!readOnly,
                    validations: {},
                    align: "LEFT"
                  )
                }
              ),
              a!columnLayout(
                contents: {
                  a!floatingPointField(
                    label: "Expense Amount",
                    labelPosition: local!labelPosition,
                    value: ri!expenseAmount,
                    saveInto: ri!expenseAmount,
                    refreshAfter: "UNFOCUS",
                    required: not(local!readOnly),
                    readOnly: local!readOnly,
                    validations: {},
                    align: "LEFT"
                  )
                }
              ),
              a!columnLayout(
                contents: {
                  a!fileUploadField(
                    label: "Receipt Upload",
                    labelPosition: "ABOVE",
                    target: cons!tst_receiptCopies,
                    validations: {}
                  )
                }
              )
            }
          ),
          rule!TST_enterComments(
            showWhen: ri!expenseAmount > 100,
            labelPosition: local!labelPosition,
            readOnly: local!readOnly,
            required: not(local!readOnly),
            commentValue: ri!comments,
            commentSaveInto: ri!comments
          ),
          a!radioButtonField(
            labelPosition: "COLLAPSED",
            choiceLabels: {"Approve", "Reject"},
            choiceValues: {true, false},
            value: ri!approve,
            saveInto: ri!approve,
            showWhen: local!readOnly,
            required: true
          )
        },
        buttons: a!buttonLayout(
          primaryButtons: {
            a!buttonWidget(
              label: "Submit",
              submit: true,
              style: "PRIMARY"
            )
          },
          secondarybuttons: {
            a!buttonWidget(
              label: "Cancel",
              value: true,
              saveInto: ri!cancel,
              submit: true,
              style: "SECONDARY",
              showWhen: not(local!readOnly),
              validate: false
            )
          }
        )
      )
    )

  • The code all looks approximately correct, assuming i'm not missing something.

    To clarify further:

    • What exactly do you mean by "not on the browser"?  Do you mean on a Task from the Tasks tab in /Tempo? Or something else?
    • Did you start a new instance of your process after making your previous corrections or other changes?  If the Task you're trying was from a process instance initiated prior to changes/corrections, it wouldn't necessarily be correct.
    • Just to confirm, do any of the form inputs currently work correctly when using it from the Task?  If some of them "stick" and others clear out, that would be different from if all of them clear out immediately after leaving the field.
    • What exactly do you mean by "not on the browser"?  Do you mean on a Task from the Tasks tab in /Tempo? On a Task in Tempo
    • Did you start a new instance of your process after making your previous corrections or other changes?  If the Task you're trying was from a process instance initiated prior to changes/corrections, it wouldn't necessarily be correct.
      No I did not, I think that might be the issue then.
    • Just to confirm, do any of the form inputs currently work correctly when using it from the Task?  If some of them "stick" and others clear out, that would be different from if all of them clear out immediately after leaving the field.
      None of the form inputs work in Tempo, however they do work in Preview mode
  • No I did not, I think that might be the issue then.

    Ok then - definitely try it out in a new instance (to utilize your newly saved-and-published changes) and report back whether or not the issue still persists.