Issue on the readonly grid when we pull data from Stored Procedure and display on screen

Geeting this error when used SP that returns datasubset for populating grid. Can someone provide more info on why this issue is coming up.

UI Code

a!localVariables(
  local!variableName,
  local!selectedSource,
  local!selectedCategory,
  local!pagingInfo:a!pagingInfo(
    startIndex: 1,
    batchSize: 10
  ),
  local!categories:index(rule!OMS_getPreSelectCategories(
    
  ),"data",{}),
  local!sources:index(rule!OMS_getPreSelectSourceTypes(
    
  ),"data",{}),
  local!mdmVariableList: a!refreshVariable(
    value: rule!OMS_SP_getPreSelectVarsByFilters(
      variableName: local!variableName,
      source: local!selectedSource,
      category: local!selectedCategory,
      pagingInfo: local!pagingInfo
    ),
    refreshOnVarChange: {
      local!variableName,
      local!selectedSource,
      local!selectedCategory
    }
  ),
  a!cardLayout(
    style: "TRANSPARENT",
    contents: {
      a!columnsLayout(
        columns: {
          a!columnLayout(
            contents: a!richTextDisplayField(
              value: a!richTextItem(
                text: "Add More Variables to Set " & ri!sequenceNumber,
                style: "STRONG",
                size: "MEDIUM"
              )
            )
          ),
          a!columnLayout(
            contents: a!buttonLayout(
              primaryButtons: a!buttonWidget(
                label: "CANCEL",
                color: "NEGATIVE",
                saveInto: a!save(ri!hideVariableGrid[ri!currentSetNumber], true())
              )
            )
          )
        },
        marginBelow: "EVEN_LESS"
      ),
      a!columnsLayout(
        columns: {
          a!columnLayout(
            a!textField(
              placeholder: "Search",
              value: local!variableName,
              saveInto: local!variableName
            )
          ),
          a!columnLayout(
            a!dropdownField(
              placeholder: "Filter By Category",
              choiceLabels: index(local!categories,"masterAcaFileFieldGroupName",{}),
              choiceValues: index(local!categories,"masterAcaFileFieldGroupName",{}),
              value:local!selectedCategory,
              saveInto: local!selectedCategory
            ),
          ),
          a!columnLayout(
            a!dropdownField(
              placeholder: "Filter By Source",
              choiceLabels:index(local!sources,"source",{}) ,
              choiceValues: index(local!sources,"source",{}),
              value:local!selectedSource,
              saveInto: local!selectedSource
            )
          ),
          a!columnLayout(
            /*a!dropdownField(*/
              /*placeholder: "Filter By Profiled",*/
              /*choiceLabels: {"Yes","No"},*/
              /*choiceValues: {"Yes","No"},*/
              /*value:local!selectedProfiled,*/
              /*saveInto: local!selectedProfiled*/
            /*)*/
          )
        }
      ),
      a!gridField(
        labelPosition: "ABOVE",
        data:local!mdmVariableList,
        pagingSaveInto: local!pagingInfo,
        columns: {
          a!gridColumn(
            label: "Variables",
            value: fv!row.VAR_NAME,
            width: "MEDIUM"
          ),
          a!gridColumn(
            label: "Description",
            value: fv!row.DESCRIPTION,
            width: "MEDIUM"
          ),
          a!gridColumn(
            label: "Category", 
            width: "NARROW_PLUS",
            value:fv!row.MASTER_ACA_FILE_FIELD_GROUP_NAME
          ),
          /*a!gridColumn(label: "Profiled", width: "NARROW_PLUS"),*/
          a!gridColumn(
            label: "Variable Source",
            width: "NARROW_PLUS",
            value:fv!row.SOURCE
          ),
          a!gridColumn(
            label: "Add",
            value: a!buttonLayout(
              primaryButtons: a!buttonWidget(
                icon: "plus-circle",
                label: "ADD",
                saveInto: {
                  a!save(
                    ri!omsJobPreSelectionAndFilter,
                    append(
                      ri!omsJobPreSelectionAndFilter,
                      'type!{urn:com:appian:types:OMS}OMS_JOB_PRESELECTION_AND_FILTER'(
                        omsJobId: ri!omsJobId,
                        preselectionSetId: ri!sequenceNumber,
                        preselectionFilterId: if(
                          a!isNullOrEmpty(ri!omsJobPreSelectionAndFilter),
                          1,
                          count(ri!omsJobPreSelectionAndFilter) + 1
                        ),
                        mdmVariableId: fv!row.MDM_VARIABLES_ID,
                        preselectionFilterOperationId: null,
                        dltdInd: false(),
                        creatUsrTxt: loggedInUser(),
                        creatTs: now(),
                        lastUpdtUsrTxt: loggedInUser(),
                        lastUpdtTs: now()
                      )
                    )
                  )
                }
              )
            ),
            width: "ICON_PLUS"
          )
        },
        validations: {}
      )
    },
    showShadow: true(),
    showWhen: not(
      a!defaultValue(ri!hideVariableGrid[ri!currentSetNumber], "false")
    )
  )
)

SP Rule Code - this returns a datasubset

a!localVariables(
  local!storedProcResults: a!executeStoredProcedureForQuery(
    dataSource: "jdbc/AlliantOMS",
    procedureName: "GET_PRESELECT_VARS",
    inputs: {
      a!storedProcedureInput(
        name: "startIndex",
        value: ri!pagingInfo.startIndex
      ),
      a!storedProcedureInput(
        name: "batchSize",
        value: ri!pagingInfo.batchSize
      ),
      a!storedProcedureInput(name: "varName", value: ri!variableName),
      a!storedProcedureInput(name: "category", value: ri!category),
      a!storedProcedureInput(name: "source", value: ri!source),
      a!storedProcedureInput(name: "profiled", value: ri!profiled)
    }
  ),
  local!totalCount: local!storedProcResults.results[2].cnt,
  a!dataSubset(
    startIndex: ri!pagingInfo.startIndex,
    batchSize: ri!pagingInfo.batchSize,
    totalCount: local!totalCount,
    data:local!storedProcResults.results[1],
    identifiers: toString(
      index(
        local!storedProcResults.results[1],
        "MDM_VARIABLES_ID",
        ""
      )
    )
  )
)

Sample SP Result Set Row with pagingdata

'type!{http://www.appian.com/ae/types/2009}DataSubset'('startIndex': 1, 'batchSize': 1, 'sort': {null}, 'totalCount': 28423, 'data': {a!map(MDM_VARIABLES_ID: 907941.0, SYSTM_CD: "5CBA1BC6-BD4E-DE0C-8F5E-6CABE78C6578", SDESC: "ACCOUNT_CODE_1", LDESC: "", VAR_NAME: "ACCOUNT_CODE_1_NICK", VARIABLE_USED_IND: "False", CONTRIB_SPECIFIC_VARIABLE_IND: "False", CONTRIBUTOR_ID: "", LEVEL_ID: "PLK", VARIABLE_GROUP_ID: null, DESCRIPTION: "DESCRIPTION_TEST", LONG_DESCRIPTION: "", IS_MODEL_DEV_VAR_IND: "False", IN_ALL_MODEL_DEV_MATCHES_IND: "False", USED_IN_MODEL_DEV_IND: "False", MODEL_DEV_MATCH_FLAG_ID: null, ALLOWED_AS_PREDICTOR_IND: "False", USED_IN_MODELS_TRANSFORMS_IND: "False", TOTAL_TRANSFORMS_COUNT: "0", IS_USED_IN_REAL_TIME_IND: "False", USED_IN_LICENSED_INSTALL_IND: "False", USED_IN_DIGITAL_SUPERSET_IND: "False", IS_USED_IN_APPLAUD_IND: "", IS_CCPA_AWARE_VAR_ID: "YES", MARKET_CREDIT_AWARE_VAR_ID: "NO", FLA_COMPLIANT_IND: "", FHA_COMPLIANT_IND: "", FCRA_COMPLIANT_IND: "", SNSTV_PI_ADJUSTMENT_IND: "True", SNSTV_HEALTH_ADJUSTMENT_IND: "", THIRD_PARTY_DATA_SOURCE: "Data Axle Demo", FOR_ENRCHMNT_USE_IND: "", SOURCE_FILE: "infogroup_plk_variables", JAR_NAME: "/ there is somethign here", DATA_TYPE_ID: null, EXPRESSION: "0", COMMON_VAR_NAME_ID: "", NUMERATOR_VAR_NAME_ID: "", DENOMINATOR_VAR_NAME_ID: "", LTST_MGRTD_MDL_NM_ID: "", LATEST_RUN_MODEL_NAME: "", LATEST_RUN_MODEL_RUN_DATE: "", AVLBL_FOR_PRE_SLCT_IND: "", REGEX_VLDTN: null, MASTER_ACA_FILE_FIELD_GROUP_NAME: null, SOURCE: "MODEL")}, 'identifiers': {"907941"})

  Discussion posts and replies are publicly visible

Parents
  • 0
    Certified Associate Developer

    a!localVariables(
      local!variableName,
      local!selectedSource,
      local!selectedCategory,
      a!cardLayout(
        style: "TRANSPARENT",
        contents: {
          a!columnsLayout(
            columns: {
              a!columnLayout(
                contents: a!richTextDisplayField(
                  value: a!richTextItem(
                    text: "Add More Variables to Set " & ri!sequenceNumber,
                    style: "STRONG",
                    size: "MEDIUM"
                  )
                )
              ),
              a!columnLayout(
                contents: a!buttonLayout(
                  primaryButtons: a!buttonWidget(
                    label: "CANCEL",
                    color: "NEGATIVE",
                    
                  )
                )
              )
            },
            marginBelow: "EVEN_LESS"
          ),
          a!columnsLayout(
            columns: {
              a!columnLayout(
                a!textField(
                  placeholder: "Search",
                  value: local!variableName,
                  saveInto: local!variableName
                )
              ),
              a!columnLayout(
                /*a!dropdownField(*/
                /*placeholder: "Filter By Profiled",*/
                /*choiceLabels: {"Yes","No"},*/
                /*choiceValues: {"Yes","No"},*/
                /*value:local!selectedProfiled,*/
                /*saveInto: local!selectedProfiled*/
                /*)*/
              )
            }
          ),
          a!gridField(
            labelPosition: "ABOVE",
            data:{},
            pagingSaveInto: {},
            columns: {
              a!gridColumn(
                label: "Variables",
                value: fv!row.VAR_NAME,
                width: "MEDIUM"
              ),
              a!gridColumn(
                label: "Description",
                value: fv!row.DESCRIPTION,
                width: "MEDIUM"
              ),
              a!gridColumn(
                label: "Category", 
                width: "NARROW_PLUS",
                value:fv!row.MASTER_ACA_FILE_FIELD_GROUP_NAME
              ),
              /*a!gridColumn(label: "Profiled", width: "NARROW_PLUS"),*/
              a!gridColumn(
                label: "Variable Source",
                width: "NARROW_PLUS",
                value:fv!row.SOURCE
              ),
              a!gridColumn(
                label: "Add",
                value: a!buttonLayout(
                  primaryButtons: a!buttonWidget(
                    icon: "plus-circle",
                    label: "ADD"
                  )
                ),
                width: "ICON_PLUS"
              )
            },
            validations: {}
          )
        },
        showShadow: true()
      )
    )

    There has no error, you can check the local variable, I think there has some issue. Maybe that will be helpful for you.

  • Even I saw that if we pass no data or if we pass only data instead of datasubset it is working which means there is no issue with data, only when we pass datasubset it is not working. I wanted to understand why is it now working when we pass datasubset.

    a!localVariables(
      local!variableName,
      local!selectedSource,
      local!selectedCategory,
      local!pagingInfo:a!pagingInfo(
        startIndex: 1,
        batchSize: 10
      ),
      local!categories:index(rule!OMS_getPreSelectCategories(
        
      ),"data",{}),
      local!sources:index(rule!OMS_getPreSelectSourceTypes(
        
      ),"data",{}),
      local!mdmVariableList: a!refreshVariable(
        value: rule!OMS_SP_getPreSelectVarsByFilters(
          variableName: local!variableName,
          source: local!selectedSource,
          category: local!selectedCategory,
          pagingInfo: local!pagingInfo
        ),
        refreshOnVarChange: {
          local!variableName,
          local!selectedSource,
          local!selectedCategory
        }
      ),
      a!cardLayout(
        style: "TRANSPARENT",
        contents: {
          a!columnsLayout(
            columns: {
              a!columnLayout(
                contents: a!richTextDisplayField(
                  value: a!richTextItem(
                    text: "Add More Variables to Set " & ri!sequenceNumber,
                    style: "STRONG",
                    size: "MEDIUM"
                  )
                )
              ),
              a!columnLayout(
                contents: a!buttonLayout(
                  primaryButtons: a!buttonWidget(
                    label: "CANCEL",
                    color: "NEGATIVE",
                    saveInto: a!save(ri!hideVariableGrid[ri!currentSetNumber], true())
                  )
                )
              )
            },
            marginBelow: "EVEN_LESS"
          ),
          a!columnsLayout(
            columns: {
              a!columnLayout(
                a!textField(
                  placeholder: "Search",
                  value: local!variableName,
                  saveInto: local!variableName
                )
              ),
              a!columnLayout(
                a!dropdownField(
                  placeholder: "Filter By Category",
                  choiceLabels: index(local!categories,"masterAcaFileFieldGroupName",{}),
                  choiceValues: index(local!categories,"masterAcaFileFieldGroupName",{}),
                  value:local!selectedCategory,
                  saveInto: local!selectedCategory
                ),
              ),
              a!columnLayout(
                a!dropdownField(
                  placeholder: "Filter By Source",
                  choiceLabels:index(local!sources,"source",{}) ,
                  choiceValues: index(local!sources,"source",{}),
                  value:local!selectedSource,
                  saveInto: local!selectedSource
                )
              ),
              a!columnLayout(
                /*a!dropdownField(*/
                  /*placeholder: "Filter By Profiled",*/
                  /*choiceLabels: {"Yes","No"},*/
                  /*choiceValues: {"Yes","No"},*/
                  /*value:local!selectedProfiled,*/
                  /*saveInto: local!selectedProfiled*/
                /*)*/
              )
            }
          ),
          a!gridField(
            labelPosition: "ABOVE",
            data:local!mdmVariableList.data,
            pagingSaveInto: local!pagingInfo,
            columns: {
              a!gridColumn(
                label: "Variables",
                value: fv!row.VAR_NAME,
                width: "MEDIUM"
              ),
              a!gridColumn(
                label: "Description",
                value: fv!row.DESCRIPTION,
                width: "MEDIUM"
              ),
              a!gridColumn(
                label: "Category", 
                width: "NARROW_PLUS",
                value:fv!row.MASTER_ACA_FILE_FIELD_GROUP_NAME
              ),
              /*a!gridColumn(label: "Profiled", width: "NARROW_PLUS"),*/
              a!gridColumn(
                label: "Variable Source",
                width: "NARROW_PLUS",
                value:fv!row.SOURCE
              ),
              a!gridColumn(
                label: "Add",
                value: a!buttonLayout(
                  primaryButtons: a!buttonWidget(
                    icon: "plus-circle",
                    label: "ADD",
                    saveInto: {
                      a!save(
                        ri!omsJobPreSelectionAndFilter,
                        append(
                          ri!omsJobPreSelectionAndFilter,
                          'type!{urn:com:appian:types:OMS}OMS_JOB_PRESELECTION_AND_FILTER'(
                            omsJobId: ri!omsJobId,
                            preselectionSetId: ri!sequenceNumber,
                            preselectionFilterId: if(
                              a!isNullOrEmpty(ri!omsJobPreSelectionAndFilter),
                              1,
                              count(ri!omsJobPreSelectionAndFilter) + 1
                            ),
                            mdmVariableId: fv!row.MDM_VARIABLES_ID,
                            preselectionFilterOperationId: null,
                            dltdInd: false(),
                            creatUsrTxt: loggedInUser(),
                            creatTs: now(),
                            lastUpdtUsrTxt: loggedInUser(),
                            lastUpdtTs: now()
                          )
                        )
                      )
                    }
                  )
                ),
                width: "ICON_PLUS"
              )
            },
            validations: {}
          )
        },
        showShadow: true(),
        showWhen: not(
          a!defaultValue(ri!hideVariableGrid[ri!currentSetNumber], "false")
        )
      )
    )

    Here the reason I need to pass datasubset is so that I can use paging to get data in batches.

Reply
  • Even I saw that if we pass no data or if we pass only data instead of datasubset it is working which means there is no issue with data, only when we pass datasubset it is not working. I wanted to understand why is it now working when we pass datasubset.

    a!localVariables(
      local!variableName,
      local!selectedSource,
      local!selectedCategory,
      local!pagingInfo:a!pagingInfo(
        startIndex: 1,
        batchSize: 10
      ),
      local!categories:index(rule!OMS_getPreSelectCategories(
        
      ),"data",{}),
      local!sources:index(rule!OMS_getPreSelectSourceTypes(
        
      ),"data",{}),
      local!mdmVariableList: a!refreshVariable(
        value: rule!OMS_SP_getPreSelectVarsByFilters(
          variableName: local!variableName,
          source: local!selectedSource,
          category: local!selectedCategory,
          pagingInfo: local!pagingInfo
        ),
        refreshOnVarChange: {
          local!variableName,
          local!selectedSource,
          local!selectedCategory
        }
      ),
      a!cardLayout(
        style: "TRANSPARENT",
        contents: {
          a!columnsLayout(
            columns: {
              a!columnLayout(
                contents: a!richTextDisplayField(
                  value: a!richTextItem(
                    text: "Add More Variables to Set " & ri!sequenceNumber,
                    style: "STRONG",
                    size: "MEDIUM"
                  )
                )
              ),
              a!columnLayout(
                contents: a!buttonLayout(
                  primaryButtons: a!buttonWidget(
                    label: "CANCEL",
                    color: "NEGATIVE",
                    saveInto: a!save(ri!hideVariableGrid[ri!currentSetNumber], true())
                  )
                )
              )
            },
            marginBelow: "EVEN_LESS"
          ),
          a!columnsLayout(
            columns: {
              a!columnLayout(
                a!textField(
                  placeholder: "Search",
                  value: local!variableName,
                  saveInto: local!variableName
                )
              ),
              a!columnLayout(
                a!dropdownField(
                  placeholder: "Filter By Category",
                  choiceLabels: index(local!categories,"masterAcaFileFieldGroupName",{}),
                  choiceValues: index(local!categories,"masterAcaFileFieldGroupName",{}),
                  value:local!selectedCategory,
                  saveInto: local!selectedCategory
                ),
              ),
              a!columnLayout(
                a!dropdownField(
                  placeholder: "Filter By Source",
                  choiceLabels:index(local!sources,"source",{}) ,
                  choiceValues: index(local!sources,"source",{}),
                  value:local!selectedSource,
                  saveInto: local!selectedSource
                )
              ),
              a!columnLayout(
                /*a!dropdownField(*/
                  /*placeholder: "Filter By Profiled",*/
                  /*choiceLabels: {"Yes","No"},*/
                  /*choiceValues: {"Yes","No"},*/
                  /*value:local!selectedProfiled,*/
                  /*saveInto: local!selectedProfiled*/
                /*)*/
              )
            }
          ),
          a!gridField(
            labelPosition: "ABOVE",
            data:local!mdmVariableList.data,
            pagingSaveInto: local!pagingInfo,
            columns: {
              a!gridColumn(
                label: "Variables",
                value: fv!row.VAR_NAME,
                width: "MEDIUM"
              ),
              a!gridColumn(
                label: "Description",
                value: fv!row.DESCRIPTION,
                width: "MEDIUM"
              ),
              a!gridColumn(
                label: "Category", 
                width: "NARROW_PLUS",
                value:fv!row.MASTER_ACA_FILE_FIELD_GROUP_NAME
              ),
              /*a!gridColumn(label: "Profiled", width: "NARROW_PLUS"),*/
              a!gridColumn(
                label: "Variable Source",
                width: "NARROW_PLUS",
                value:fv!row.SOURCE
              ),
              a!gridColumn(
                label: "Add",
                value: a!buttonLayout(
                  primaryButtons: a!buttonWidget(
                    icon: "plus-circle",
                    label: "ADD",
                    saveInto: {
                      a!save(
                        ri!omsJobPreSelectionAndFilter,
                        append(
                          ri!omsJobPreSelectionAndFilter,
                          'type!{urn:com:appian:types:OMS}OMS_JOB_PRESELECTION_AND_FILTER'(
                            omsJobId: ri!omsJobId,
                            preselectionSetId: ri!sequenceNumber,
                            preselectionFilterId: if(
                              a!isNullOrEmpty(ri!omsJobPreSelectionAndFilter),
                              1,
                              count(ri!omsJobPreSelectionAndFilter) + 1
                            ),
                            mdmVariableId: fv!row.MDM_VARIABLES_ID,
                            preselectionFilterOperationId: null,
                            dltdInd: false(),
                            creatUsrTxt: loggedInUser(),
                            creatTs: now(),
                            lastUpdtUsrTxt: loggedInUser(),
                            lastUpdtTs: now()
                          )
                        )
                      )
                    }
                  )
                ),
                width: "ICON_PLUS"
              )
            },
            validations: {}
          )
        },
        showShadow: true(),
        showWhen: not(
          a!defaultValue(ri!hideVariableGrid[ri!currentSetNumber], "false")
        )
      )
    )

    Here the reason I need to pass datasubset is so that I can use paging to get data in batches.

Children