interface with Doughnut chart not getting proper values when called from another interface

Hi All, 

   i have 2 interfaces, where Interface 2 is called inside interface1,

  the interface 2 works great when tested separate, but when called inside Interface1, it doesn't refresh or show up proper values, what can be done to overcome this.

  Thanks in advance 

--------------Main Interface-----------
a!columnLayout(
                contents: {
                  a!cardLayout(
                    contents: {
                      rule!CMP_DonutChart(
                        programid: ri!programId,
                        dcselectedRole: tostring(local!selectedRole)

                      )
                    }

                  )


                },
                width: "NARROW"
              )



---------Doughnut chart code-----------------
load(
  a!localVariables( 
  local!loggedUser:loggedInUser(),
  local!filtercollapseNav: false,
  local!dcselectedrole : a!refreshVariable(
      value:ri!dcselectedRole,
      refreshOnReferencedVarChange: true,
      refreshOnVarChange: {ri!dcselectedRole,ri!programid}
  
  ),
 
  
  /**Donut Data for Super Admin**/
  local!gaugedataActuals: a!refreshVariable(
    value:rule!CMP_getProgramNomineeSeatsFilled(
      programid: ri!programid
    ),
    refreshOnReferencedVarChange:true,
    refreshOnVarChange: {local!dcselectedrole,ri!programid}
  ),
 
  local!gaugedataTargets:a!refreshVariable(
  value:rule!CMP_getProgramTotalCapacity(
    programid: ri!programid
  ),
  refreshOnReferencedVarChange:true,
  refreshOnVarChange: {local!dcselectedrole,ri!programid}
  ),
  
  local!gaugepercentage:a!refreshVariable(
  value:if(tointeger(local!gaugedataTargets) <> 0, (tointeger(local!gaugedataActuals)/tointeger(local!gaugedataTargets)) * 100, 0),
  refreshOnReferencedVarChange:true,
  refreshOnVarChange: {local!dcselectedrole,ri!programid}
  ),


  /**Donut Data for Nominator**/
  local!gaugedataTargetsNominator:
  a!refreshVariable(
  value:if(local!dcselectedrole=cons!CMP_NOMINATOR_GROUP_VALUES[1],
  rule!CMP_getProgramNominatorCapacity(
    programid: ri!programid,
    nominatorEID: user(loggedInUser(),"username")
  ),
  0
  ),
  refreshOnReferencedVarChange:true,
  refreshOnVarChange: {local!dcselectedrole,ri!programid}
  ),
  
  local!gaugedataActualsNominator:
  a!refreshVariable(
    value: if(local!dcselectedrole=cons!CMP_NOMINATOR_GROUP_VALUES[1],
  rule!CMP_getGridNomineeListByNominatorEID(
    programid:ri!programid,
    NominatorEID: user(loggedInUser(),"username")
  ),
  0),
  refreshOnReferencedVarChange:true,
  refreshOnVarChange: {local!dcselectedrole,ri!programid}
  ),


  local!gaugepercentageNominator:
  a!refreshVariable(
    value:  if(local!dcselectedrole=cons!CMP_NOMINATOR_GROUP_VALUES[1],
    if (tointeger(local!gaugedataActualsNominator) <> 0, (tointeger(local!gaugedataActualsNominator)/tointeger(local!gaugedataTargetsNominator)) * 100,0),0
  ),
  refreshOnReferencedVarChange:true,
  refreshOnVarChange: {local!dcselectedrole,ri!programid}
  ),


  /**Donut Data for SBG HR VP**/
  local!gaugedataActualsSBG:
  a!refreshVariable(
    value: rule!CMP_getActualsforSBGHRVP(
    programid: ri!programid,
    /*sbg: if(local!dcselectedrole=getgroupnames(togroup(cons!CMP_GRP_ALL_SBG_HR_VPs[2])), */
    /*"CORP", */
    /*if(local!dcselectedrole=getgroupnames(togroup(cons!CMP_GRP_ALL_SBG_HR_VPs[3])), */
    /*"HBT", */
    /*if(local!dcselectedrole=getgroupnames(togroup(cons!CMP_GRP_ALL_SBG_HR_VPs[5])), */
    /*"PMT", */
    /*if(local!dcselectedrole=getgroupnames(togroup(cons!CMP_GRP_ALL_SBG_HR_VPs[4])), */
    /*"HCE", */
    /*if(local!dcselectedrole=getgroupnames(togroup(cons!CMP_GRP_ALL_SBG_HR_VPs[6])), */
    /*"SPS", */
    /*if(local!dcselectedrole=getgroupnames(togroup(cons!CMP_GRP_ALL_SBG_HR_VPs[1])), */
    /*"AERO", null*/
    /*)*/
    /*)*/
    /*) */
    /*)*/
    /*)*/
    /*)*/
    sbg: rule!CMP_determineUserRoleSbg(
      Role: local!dcselectedrole
    )
  ),
  refreshOnReferencedVarChange:true,
  refreshOnVarChange: {local!dcselectedrole,ri!programid}
  ),
  
  local!gaugedataTargetsSBG:
  a!refreshVariable(
    value: rule!CMP_getTargetsforSBGHRVP(
    programid:ri!programid,
    /*sbg: if(local!dcselectedrole=getgroupnames(togroup(cons!CMP_GRP_ALL_SBG_HR_VPs[2])), */
    /*"CORP", */
    /*if(local!dcselectedrole=getgroupnames(togroup(cons!CMP_GRP_ALL_SBG_HR_VPs[3])), */
    /*"HBT", */
    /*if(local!dcselectedrole=getgroupnames(togroup(cons!CMP_GRP_ALL_SBG_HR_VPs[5])), */
    /*"PMT", */
    /*if(local!dcselectedrole=getgroupnames(togroup(cons!CMP_GRP_ALL_SBG_HR_VPs[4])), */
    /*"HCE", */
    /*if(local!dcselectedrole=getgroupnames(togroup(cons!CMP_GRP_ALL_SBG_HR_VPs[6])), */
    /*"SPS", */
    /*if(local!dcselectedrole=getgroupnames(togroup(cons!CMP_GRP_ALL_SBG_HR_VPs[1])), */
    /*"AERO", null*/
    /*)*/
    /*)*/
    /*) */
    /*)*/
    /*)*/
    /*)*/
    sbg:rule!CMP_determineUserRoleSbg(
      Role : local!dcselectedrole
    )
  ),
  refreshOnReferencedVarChange:true,
  refreshOnVarChange: {local!dcselectedrole,ri!programid}
  ),



  local!gaugepercentageSBG:
  a!refreshVariable(
    value:if (tointeger(local!gaugedataTargetsSBG) <> 0, (tointeger(local!gaugedataActualsSBG)/tointeger(local!gaugedataTargetsSBG)) * 100,0),
    refreshOnReferencedVarChange:true,
    refreshOnVarChange: {local!dcselectedrole,ri!programid}
  ),
  /**Donut Data for SBG CL**/
  local!gaugedataActualsSBGCL:
      a!refreshVariable(
      value:   rule!CMP_getActualsforSBGHRVP(
    programid: ri!programid,
    sbg:rule!CMP_determineUserRoleSbg(
      Role: local!dcselectedrole
    )
  ),
  refreshOnReferencedVarChange:true,
  refreshOnVarChange: {local!dcselectedrole,ri!programid}
  ),
  
  
  local!gaugedataTargetsSBGCL:
  a!refreshVariable(
    value:  rule!CMP_getTargetsforSBGHRVP(
    programid:ri!programid,
    /*sbg:if(local!dcselectedrole=getgroupnames(togroup(cons!CMP_GRP_ALL_SBG_CLs[2])), */
    /*"CORP", */
    /*if(local!dcselectedrole=getgroupnames(togroup(cons!CMP_GRP_ALL_SBG_CLs[3])), */
    /*"HBT", */
    /*if(local!dcselectedrole=getgroupnames(togroup(cons!CMP_GRP_ALL_SBG_CLs[5])), */
    /*"PMT", */
    /*if(local!dcselectedrole=getgroupnames(togroup(cons!CMP_GRP_ALL_SBG_CLs[4])), */
    /*"HCE", */
    /*if(local!dcselectedrole=getgroupnames(togroup(cons!CMP_GRP_ALL_SBG_CLs[6])), */
    /*"SPS", */
    /*if(local!dcselectedrole=getgroupnames(togroup(cons!CMP_GRP_ALL_SBG_CLs[1])), */
    /*"AERO", null*/
    /*)*/
    /*)*/
    /*) */
    /*)*/
    /*)*/
    /*)*/
    sbg: rule!CMP_determineUserRoleSbg(
      Role:local!dcselectedrole
    )
  ),
  refreshOnReferencedVarChange:true,
  refreshOnVarChange: {local!dcselectedrole,ri!programid}
  ),


  local!gaugepercentageSBGCL:
  a!refreshVariable(
    value:  if (tointeger(local!gaugedataTargetsSBGCL) <> 0,(tointeger(local!gaugedataActualsSBGCL)/tointeger(local!gaugedataTargetsSBGCL)) * 100,0),
    refreshOnReferencedVarChange:true,
    refreshOnVarChange: {local!dcselectedrole,ri!programid}
  ),
  /**Donut Data for HRG Nominator**/

  local!gaugedataActualsHRG:
  a!refreshVariable(
    value:rule!CMP_getActualsHRGNominator(
    programid: ri!programid,
    hrgeid:user(loggedInUser(),"username")
  ),
  refreshOnReferencedVarChange:true,
  refreshOnVarChange: {local!dcselectedrole,ri!programid}
  ),
  
  local!gaugedataTargetsHRG:
  a!refreshVariable(
    value: rule!CMP_getTargetsHRGNominator(
    programid:ri!programid,
    hrgeid: user(loggedInUser(),"username")
  ),
  refreshOnReferencedVarChange:true,
  refreshOnVarChange: {local!dcselectedrole,ri!programid}
  ),
  
  local!gaugepercentageHRG:
  a!refreshVariable(
    value: if(tointeger(local!gaugedataTargetsHRG)<>0, (tointeger(local!gaugedataActualsHRG)/tointeger(local!gaugedataTargetsHRG)) * 100, 0),
  refreshOnReferencedVarChange:true,
  refreshOnVarChange: {local!dcselectedrole,ri!programid}
  ),


  {
    
    a!textField(
      value: local!dcselectedrole
    ),
    a!textField(
      value: local!gaugedataTargetsSBGCL
    ),
    a!textField(
      value: local!gaugedataActualsSBGCL
    ),
    a!textField(
      value: local!gaugedataActuals
    ),
    a!textField(
      value: local!gaugedataTargets
    ),
    /*a!textField(*/
      /*value:{*/
        /*if(isusermemberofgroup(loggedInUser(), cons!CMP_GRP_ALL_SBG_HR_VPs[2]), */
        /*"CORP", */
        /*if(local!dcselectedrole=getgroupnames(togroup(cons!CMP_GRP_ALL_SBG_CLs[2])), */
        /*"CORP", */
        /*if(local!dcselectedrole=getgroupnames(togroup(cons!CMP_GRP_ALL_SBG_CLs[3])), */
        /*"HBT", */
        /*if(local!dcselectedrole=getgroupnames(togroup(cons!CMP_GRP_ALL_SBG_CLs[5])), */
        /*"PMT", */
        /*if(local!dcselectedrole=getgroupnames(togroup(cons!CMP_GRP_ALL_SBG_CLs[4])), */
        /*"HCE", */
        /*if(local!dcselectedrole=getgroupnames(togroup(cons!CMP_GRP_ALL_SBG_CLs[6])), */
        /*"SPS", */
        /*if(local!dcselectedrole=getgroupnames(togroup(cons!CMP_GRP_ALL_SBG_CLs[1])), */
        /*"AERO", null*/
        /*)*/
        /*)*/
        /*) */
        /*)*/
        /*)*/
        /*)*/
        /*)*/
      /*}*/
    /*),*/
  
    /*a!dropdownField(*/
      /*label: "Roles",*/
      /*placeholderLabel: "--Select Role--",*/
      /*choiceLabels: local!userGroups,*/
      /*choiceValues: local!userGroups,*/
      /*value: local!dcselectedrole,*/
      /*saveInto: {*/
        /*local!dcselectedrole,*/
        /*if(local!dcselectedrole=cons!CMP_NOMINATOR_GROUP_VALUES[1],*/
        /*a!save(*/
          /*local!qeGridNominatorEid,*/
          /*local!loggedUser*/
        /*),*/
        /*if(local!dcselectedrole=cons!CMP_NOMINATOR_GROUP_VALUES[2],*/
        /*a!save(*/
          /*local!qeGridHRGEid,*/
          /*local!loggedUser*/
        /*),*/
        /*a!save(*/
          /*local!qeGridNominatorSBG,*/
          /*rule!CMP_determineUserRoleSbg(*/
            /*Role: tostring(local!dcselectedrole)*/
          /*)*/
        /*)*/
        /*)*/
        /*)*/
      /*},*/
      /*disabled:if(count(local!CurrentUserRoles)=1,true,false)*/
    /*),*/
/**/
/**/
    a!richTextDisplayField(
      value: a!richTextIcon(
        icon: if(
          local!filtercollapseNav,
          "angle-double-left",
          "angle-double-right"
        ),
        caption: if(
          local!filtercollapseNav,
          "Expand Filter",
          "Collapse Filter"
        ),
        link: a!dynamicLink(
          value: not(
            local!filtercollapseNav
          ),
          saveInto: local!filtercollapseNav
        ),
        linkStyle: "STANDALONE",
        color: "SECONDARY",
        size: "MEDIUM"
      ),
      align: "CENTER"
    ),
    if(local!filtercollapseNav,
    {},
    if(local!dcselectedrole=getgroupnames(togroup(cons!CMP_GRP_SUPERADMIN)),

    a!cardLayout(
      marginBelow: "STANDARD",
      contents: {
        a!richTextDisplayField(
          labelposition: "COLLAPSED",
          value: {
            a!richTextItem(
              text: {
                /*"Seats Filled-Super Admin"*/
                "Seats Filled"
              },

              size: "STANDARD",
              style: {
                "STRONG"
              }
            )
          },
          align: "LEFT"
        ),
        a!richTextDisplayField(
          labelposition: "COLLAPSED",
          value: {
            a!richTextItem(
              text: {
                local!gaugedataActuals & " Nominee out of " & local!gaugedataTargets & " Capacity"
              },

              size: "SMALL",
              style: {
                "PLAIN"
              }
            )
          },
          align: "LEFT"
        ),

        a!gaugeField(
          label: "",
          percentage: local!gaugepercentage,
          primaryText: local!gaugedataActuals,
          secondaryText: "of " & local!gaugedataTargets,
          size: "SMALL",
          align: "CENTER"
          /*showWhen:isusermemberofgroups(ri!user,cons!LMP_COUNTRY_GROUPS)*/
        )
      }
    ),

    if(local!dcselectedrole=cons!CMP_NOMINATOR_GROUP_VALUES[1],

    a!cardLayout(
      marginBelow: "STANDARD",
      contents: {
        a!richTextDisplayField(
          labelposition: "COLLAPSED",
          value: {
            a!richTextItem(
              text: {
                /*"Seats Filled-Nominator"*/
                "Seats Filled"
              },

              size: "STANDARD",
              style: {
                "STRONG"
              }
            )
          },
          align: "LEFT"
        ),
        a!richTextDisplayField(
          labelposition: "COLLAPSED",
          value: {
            a!richTextItem(
              text: {
                local!gaugedataActualsNominator & " Nominee out of " & local!gaugedataTargetsNominator & " Capacity"
              },

              size: "SMALL",
              style: {
                "PLAIN"
              }
            )
          },
          align: "LEFT"
        ),

        a!gaugeField(
          label: "",
          percentage: local!gaugepercentageNominator,
          primaryText: local!gaugedataActualsNominator,
          secondaryText: "of " & local!gaugedataTargetsNominator,
          size: "SMALL",
          align: "CENTER"

        )
      }
    ),

    if(contains(getgroupnames(cons!CMP_GRP_ALL_SBG_HR_VPs),local!dcselectedrole),

    a!cardLayout(
      marginBelow: "STANDARD",
      contents: {
        a!richTextDisplayField(
          labelposition: "COLLAPSED",
          value: {
            a!richTextItem(
              text: {
                /*"Seats Filled-SBG_HRVP"*/
                "Seats Filled"
              },

              size: "STANDARD",
              style: {
                "STRONG"
              }
            )
          },
          align: "LEFT"
        ),
        a!richTextDisplayField(
          labelposition: "COLLAPSED",
          value: {
            a!richTextItem(
              text: {
                local!gaugedataActualsSBG & " Nominee out of " & local!gaugedataTargetsSBG & " Capacity"
              },

              size: "SMALL",
              style: {
                "PLAIN"
              }
            )
          },
          align: "LEFT"
        ),

        a!gaugeField(
          label: "",
          percentage: local!gaugepercentageSBG,
          primaryText: local!gaugedataActualsSBG,
          secondaryText: "of " & local!gaugedataTargetsSBG,
          size: "SMALL",
          align: "CENTER"

        )
      }
    ),

    if(contains(getgroupnames(togroup(cons!CMP_GRP_ALL_SBG_CLs)),local!dcselectedrole),

    a!cardLayout(
      marginBelow: "STANDARD",
      contents: {
        a!richTextDisplayField(
          labelposition: "COLLAPSED",
          value: {
            a!richTextItem(
              text: {
                /*"Seats Filled- SBG CL"*/
                "Seats Filled"
              },

              size: "STANDARD",
              style: {
                "STRONG"
              }
            )
          },
          align: "LEFT"
        ),
        a!richTextDisplayField(
          labelposition: "COLLAPSED",
          value: {
            a!richTextItem(
              text: {
                local!gaugedataActualsSBGCL & " Nominee out of " & local!gaugedataTargetsSBGCL & " Capacity"
              },

              size: "SMALL",
              style: {
                "PLAIN"
              }
            )
          },
          align: "LEFT"
        ),

        a!gaugeField(
          label: "",
          percentage: local!gaugepercentageSBGCL,
          primaryText: local!gaugedataActualsSBGCL,
          secondaryText: "of " & local!gaugedataTargetsSBGCL,
          size: "SMALL",
          align: "CENTER"
          /*showWhen:isusermemberofgroups(ri!user,cons!LMP_COUNTRY_GROUPS)*/
        )
      }
    ),

    if(local!dcselectedrole=cons!CMP_NOMINATOR_GROUP_VALUES[2],

    a!cardLayout(
      marginBelow: "STANDARD",
      contents: {
        a!richTextDisplayField(
          labelposition: "COLLAPSED",
          value: {
            a!richTextItem(
              text: {
                /*"Seats Filled-else"*/
                "Seats Filled"
              },

              size: "STANDARD",
              style: {
                "STRONG"
              }
            )
          },
          align: "LEFT"
        ),
        a!richTextDisplayField(
          labelposition: "COLLAPSED",
          value: {
            a!richTextItem(
              text: {
                local!gaugedataActualsHRG & " Nominee out of " & local!gaugedataTargetsHRG & " Capacity"
              },

              size: "SMALL",
              style: {
                "PLAIN"
              }
            )
          },
          align: "LEFT"
        ),

        a!gaugeField(
          label: "",
          percentage: local!gaugepercentageHRG,
          primaryText: local!gaugedataActualsHRG,
          secondaryText: "of " & local!gaugedataTargetsHRG,
          size: "SMALL",
          align: "CENTER"
          /*showWhen:isusermemberofgroups(ri!user,cons!LMP_COUNTRY_GROUPS)*/
        )
      }
    ),

    null
    )
    )
    )
    )
    )
    )
  }
)

)

  Discussion posts and replies are publicly visible

Parents
  • My main question - are the refresh variables necessary? It seems like most of them are just updating on referenced variables changing, but this seems unnecessary to me. Also can you describe the purpose of this variable?

    local!dcselectedrole : a!refreshVariable(
      value:ri!dcselectedRole,
      refreshOnReferencedVarChange: true,
      refreshOnVarChange: {ri!dcselectedRole,ri!programid}
    ),

    You have the value here set to be ri!dcselectedRole, but it's also updating when ri!dcselectedRole changes. This seems unnecessary to me, because you should be able to reference ri!dcselectedRole directly anywhere you need to use it.

    To be honest, I'm not certain that all the refresh variables are the issue, but I fear that the added complexity you have with all of them could be masking the issue here.

Reply
  • My main question - are the refresh variables necessary? It seems like most of them are just updating on referenced variables changing, but this seems unnecessary to me. Also can you describe the purpose of this variable?

    local!dcselectedrole : a!refreshVariable(
      value:ri!dcselectedRole,
      refreshOnReferencedVarChange: true,
      refreshOnVarChange: {ri!dcselectedRole,ri!programid}
    ),

    You have the value here set to be ri!dcselectedRole, but it's also updating when ri!dcselectedRole changes. This seems unnecessary to me, because you should be able to reference ri!dcselectedRole directly anywhere you need to use it.

    To be honest, I'm not certain that all the refresh variables are the issue, but I fear that the added complexity you have with all of them could be masking the issue here.

Children
No Data