Hi all, we are already defining a expression rule by using a doforeach ex

Hi all,
we are already defining a expression rule by using a doforeach expresion. Now we need to redefine it because tis plug is deprecated.
By simple changing it with apply () it does not work.
Could somebody help me with redefinition on it.
Here is the rule:

=if(count(rule!Display_Harm_Details_CDT(pv!ContractDetails.Contract_Serial_Number)),"<br> <i> <b> Contract Harmonization History: <br><br></b> </i> "&ncolumntablestyled( "CCCCCC","FFFFFF", "FFFFFF", {"Version","Harmonization Members","Folder"},rule!ListofVersion_CR(pv!ContractDetails.Contract_Serial_Number),doforeach("AllHarmonizationMembesforVersion",pv!ContractDetails.Contract_Serial_Number,rule!ListofVersion_CR(pv!ContractDetails.Contract_Serial_Number)),doforeach("rule!LinktofolderfromfolderID",pv!ContractDetails.Contract_Serial_Number,rule!ListofVersion_CR(pv!ContractDetails.Contract_Serial_Number))),"")
The problem is when rule!ListofVersion_CR(pv!ContractDetails.Contract_Serial_Number) ret...

OriginalPostID-161216

OriginalPostID-161216

  Discussion posts and replies are publicly visible

  • Whe I just replace doforeach with apply following error appear on dasboard:

    com.appiancorp.process.expression.ExpressionEvaluationException: The expression function 'apply([type 88, value rule!AllHarmonizationMembesforVersion],"C0191/2013",{"0.1","0.2"})' (user=testo10) could not be evaluated: Expression evaluation error : Array is expected as second parameter, but received: C0191/2013.
  • Then I replaced like this:

    =if(count(rule!Display_Harm_Details_CDT(pv!ContractDetails.Contract_Serial_Number)),"<br> <i> <b> Contract Harmonization History: <br><br></b> </i> "&ncolumntablestyled( "CCCCCC","FFFFFF", "FFFFFF", {"Version","Harmonization Members","Folder"},rule!ListofVersion_CR(pv!ContractDetails.Contract_Serial_Number),apply(rule!AllHarmonizationMembesforVersion,{pv!ContractDetails.Contract_Serial_Number},rule!ListofVersion_CR(pv!ContractDetails.Contract_Serial_Number)),apply(rule!LinktofolderfromfolderID,{pv!ContractDetails.Contract_Serial_Number},rule!ListofVersion_CR(pv!ContractDetails.Contract_Serial_Number))),"")
  • Quite hard to debug without being able to run the function, but try this:

    =if(
              count(rule!Display_Harm_Details_CDT(pv!ContractDetails.Contract_Serial_Number)),
              "<br> <i> <b> Contract Harmonization History: <br><br></b> </i> "&ncolumntablestyled(
                        "CCCCCC",
                        "FFFFFF",
                        "FFFFFF",
                        {"Version","Harmonization Members","Folder"},
                        rule!ListofVersion_CR(pv!ContractDetails.Contract_Serial_Number),
                        apply(
                                  rule!AllHarmonizationMembesforVersion,
                                  merge(
                                            pv!ContractDetails.Contract_Serial_Number,
                                            rule!ListofVersion_CR(pv!ContractDetails.Contract_Serial_Number)
                                  )
                        ),
                        apply(
                                  rule!LinktofolderfromfolderID,
                                  merge(
                                            pv!ContractDetails.Contract_Serial_Number,
                                            rule!ListofVersion_CR(pv!ContractDetails.Contract_Serial_Number)
                                  )
                        )
              ),
              ""
    )
  • If that doesn't work, could you post the inputs for rule!AllHarmonizationMembesforVersion and rule!LinktofolderfromfolderID ?
  • Again error: ",if(count(rule!Display_Harm_Details_CDT(pv!ContractDetails.Contract_Serial_Number)),"
    Contract Harmonization History:

    </i"&ncolumntablestyled("CCCCCC","FFFFFF","FFFFFF",{"Version","Harmonization Members","Folder"},rule!ListofVersion_CR(pv!ContractDetails.Contract_Serial_Number),apply(rule!AllHarmonizationMembesforVersion,merge(pv!ContractDetails.Contract_Serial_Number,rule!ListofVersion_CR(pv!ContractDetails.Contract_Serial_Number))),apply(rule!LinktofolderfromfolderID,merge(pv!ContractDetails.Contract_Serial_Number,rule!ListofVersion_CR(pv!ContractDetails.Contract_Serial_Number)))),""),"
    "). com.appiancorp.process.expression.ExpressionEvaluationException: The expression function 'merge("C0191/2013",{"0.1","0.2"})' (user=testo10) could not be evaluated: Only list arguments are allowed

  • All Harmonization Member:

    ="<b>"&tostring(rule!getFullnames(rule!HarmonizationDetailswithVersion({ri!ContractSN},ri!Version)[1].HarmonizationMembers))&"</b>"

  • rule!HarmonizationDetailswithVersion that is a Query rule.
  • rule!LinktofolderfromfolderID :
    ="<a href='es-sk-bpmsprod:8443/.../" &rule!HarmonizationDetailswithVersion(ri!ContractSN,ri!Version).FolderID & "' target='_new'>Access Documents</a>"