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
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.
Check if local!mdmVariableList has valid data or is it empty
Hi avinashg740224 could check your data that doesn't contain any null values and data must be list of dictionary or datasubset if data is paginated