how can I prepopulate the fields of current task with previous completed task details

Certified Associate Developer

how can I prepopulate the fields of current task with previous completed task details?

  Discussion posts and replies are publicly visible

  • 0
    Certified Associate Developer
    in reply to Mike Schmitt

    Thank you so much Mike it was helpful.

  • +1
    Certified Lead Developer
    in reply to sireesha

    This version would be what I'd suggest as a starting point for handling both value fields in a similar manner, BTW.

    Also thanks for confirming - as always I'd request clicking verify on any/all answer(s) of mine you found directly helpful, lol.

    a!localVariables(
    
      /* instead of multiple messy if(isNull()) statements, simply do that check here, then only use this local variable until Submit time */
      local!BCreviewer: a!defaultValue(
        value: ri!studyMedicalReview.BCReviewedBy,
        default: rule!ISR_toget_BC_Reviewer(ISR_Studyrequest: ri!studyRequest.studyRequestId)
      ),
      local!BCReviewedOn: a!defaultValue(
        value: ri!studyMedicalReview.BCReviewedOn,
        default: null()
      ),
    
      (...)
    
      a!sideBySideLayout(
        items: {
          a!sideBySideItem(
            item: a!textField(
              label: "Business Conduct Reviewer",
              labelPosition: "ABOVE",
              value: local!BCreviewer,
              saveInto: local!BCreviewer,
              showWhen: if(
                local!businessCounduct,
                true(),
                false()
              ),
              required: if(
                ri!studyMedicalReview.decision = cons!ISR_TEXT_DECISION_MEDREVDEC_FRINFO_CODE,
                false(),
                true()
              )
            )
          ),
          a!sideBySideItem(
            item: a!dateField(
              label: "Business Conduct Reviewed On",
              labelPosition: "ABOVE",
              value: local!BCrevieweddate,
              /* If the rule value is not there I mean if there is no reviewer for that studyRequestID then value goes to table */
              saveInto: local!BCrevieweddate,
    
            )
          )
        }
      ),
    
      (...)
    
      primaryButtons: {
        a!buttonWidget(
          label: "Submit",
          submit: true(),
    
          saveInto: {
            ri!buttonPressed,
    
            a!save(
              ri!studyMedicalReview.BCReviewedBy,
              local!BCReviewer
            ),
            a!save(
              ri!studyMedicalReview.BCReviewedOn,
              local!BCReviewedOn
            )
          }
          
        )
      }
    )

  • 0
    Certified Associate Developer
    in reply to Mike Schmitt

    a!localvariables(
    
    local!internalComment: if(
    rule!APN_isBlank(index(ri!internalComment, "comment", {})),
    {},
    index(ri!internalComment, "comment", {})
    ),
    
    local!repeatedinternalcomment:a!defaultValue(value:local!internalComment,
    default: rule!ISR_get_internalcomment_for_repeatedfinalchecks(ISR_Studyrequest: ri!studyRequest.studyRequestId)),
    
    a!sideBySideItem(
    item: a!paragraphField(
    label: "Internal Review Comments",
    labelPosition: "ABOVE",
    value:local!repeatedinternalcomment,
    saveInto:
    {local!internalComment,
    a!save(
    ri!internalComment,
    'type!{urn:com:appian:types:ISR}ISR_StudyComment'(
    commentId: if(
    rule!APN_isBlank(ri!internalComment.commentId),
    {},
    ri!internalComment.commentId
    ),
    comment: local!internalcomment,
    isInternal: true(),
    reviewStage: cons!ISR_TEXT_REVIEWSTAGE_CODE_MEDIREV,
    isActive: true(),
    createdBy: loggedInUser(),
    createdOn: now(),
    updatedBy: loggedInUser(),
    updatedOn: now()
    )
    )}
    {local!repeatedinternalcomment,
    a!save(
    ri!internalComment,
    'type!{urn:com:appian:types:ISR}ISR_StudyComment'(
    commentId: if(
    rule!APN_isBlank(ri!internalComment.commentId),
    {},
    ri!internalComment.commentId
    ),
    comment: local!repeatedinternalcomment,
    isInternal: true(),
    reviewStage: cons!ISR_TEXT_REVIEWSTAGE_CODE_MEDIREV,
    isActive: true(),
    createdBy: loggedInUser(),
    createdOn: now(),
    updatedBy: loggedInUser(),
    updatedOn: now()
    )
    )},
    refreshAfter:"UNFOCUS",
    height: "MEDIUM",
    validations: if(
    len(ri!internalComment.comment) > cons!ISR_PARAGRAPH_LENGTH,
    "Comment must be " & cons!ISR_PARAGRAPH_LENGTH & " characters or fewer",
    {}
    )
    )
    How can I use a!save function for above code at the submit button to save the local variable values?

  • 0
    Certified Lead Developer
    in reply to sireesha
    How can I use a!save function for above code at the submit button

    I can't really judge by the code you've posted here as you didn't include your button or any hint of what you're currently trying.  My example directly above contains a button with two a!save() commands - did you find this to not work? Are you having a particular issue?  As-is, I can't really even guess as to any particular suggestions.

    Also: thanks for using a Code Box, but I'd advise/request you to also make sure you copy your code directly out of the expression/interface editor before pasting, in order to preserve indentation -- because without any indentation, it stays pretty difficult to read in its current form.

  • 0
    Certified Associate Developer
    in reply to Mike Schmitt

    a!localVariables(
    local!internalcomment: if(
        rule!APN_isBlank(index(ri!internalcomment, "comment", {})),
        {},
        index(ri!internalcomment, "comment", {})
      ),
      
       
      local!BCreviewer: a!defaultValue(
        value: local!internalcomment,
        default: rule!repeatedcomm(ISR_Studyrequest: ri!studyRequest.studyRequestId)
      ),
    
      (...)
      
        value: local!repeatedinternalcomment,
        saveInto:{local!internalcomment,
                      a!save(
                        ri!internalcomment,
                        'type!{urn:com:appian:types:ISR}ISR_Studycomment'(
                          commentId: if(
                            rule!APN_isBlank(ri!internalComment.commentId),
                            {},
                            ri!internalcomment.commentId
                          ),
                          comment: local!internalcomment,
                          isInternal: true(),
                          reviewStage: cons!ISR_TEXT_REVIEWSTAGE_CODE_MEDIREV,
                          isActive: true(),
                          createdBy: loggedInUser(),
                          createdOn: now(),
                          updatedBy: loggedInUser(),
                          updatedOn: now()
                        )
                      )}
                      {local!repeatedinternalcomment,
                      a!save(
                        ri!internalcomment,
                        'type!{urn:com:appian:types:ISR}ISR_StudyComment'(
                          commentId: if(
                            rule!APN_isBlank(ri!internalcomment.commentId),
                            {},
                            ri!internalComment.commentId
                          ),
                          comment: local!repeatedinternalcomment,
                          isInternal: true(),
                          reviewStage: cons!ISR_TEXT_REVIEWSTAGE_CODE_MEDIREV,
                          isActive: true(),
                          createdBy: loggedInUser(),
                          createdOn: now(),
                          updatedBy: loggedInUser(),
                          updatedOn: now()
                        )
                      )},
      
      (...)
      
      primaryButtons: {
        a!buttonWidget(
          label: "Submit",
          submit: true(),
          
          saveInto: {
            ri!buttonPressed,
            
            a!save(
              {ri!internalcomment,
              local!intrenalcomment},
              local!repeatedinternalcomment
            )
          }
        )
      }
    )

    Thank you for the all the helps Mike.

    I am trying the above code but it showing the error like this.If I use the code without using the a!save function at Submit button it was working fine but when I am trying to save that by using the a!save I am getting the error like this 

  • 0
    Certified Lead Developer
    in reply to sireesha

    from what I can tell, "local!repeatedInternalComment" is text, and much like what the error message you showed here suggests, you're trying to save that into the target of ri!internalComment, which is a CDT.

    As a refresher, when you call a!save, the first parameter (whether a single item or a list of items) is the TARGET of the save operation, and the second parameter is the VALUE.

    If your TARGET is or includes a CDT, that implies that you're trying to overwrite that entire cdt value with the item in the VALUE parameter, which in this case is just text.  This is *exactly* what your error message is telling you:

    You should probably simplify your a!save statement, remove the (misspelled) local!intrenalComment target, and save directly into the comment property of ri!internalComment.

    a!save(
      ri!internalcomment.comment,
      local!repeatedinternalcomment
    )

    Additionally: i'm unclear why you're even trying to do this save on the Button Click here, because from what I can tell from your code, you're manually modifying the value of ri!internalComment every time the text value is updated as well.  This is OK, but it also means that you don't really need to worry about doing the saveInto in the button - that technique is really reserved for when you want to copy local values (that is, things being stored ONLY in local values) into a Rule Input, upon Form Submission (and not until then).  There's not much point in doing both.