Question
Is there a way to use a!IsNotNull for indexes of local variables?
So I have this code that works when I test the interface, but when the test values are empty it displays this:

I want to still display the interface while the index List is empty. I tried a few things but so far nothing has worked.
Here's the text field's code:
a!textField(
label: "Program",
labelPosition: "ABOVE",
value: index(local!program[ri!tpsRequest['recordType!{63733d83-c1fa-4244-bcca-b0ddcccccbf4}DS_TPS.fields.{dbc3f6e3-0ead-4aec-969e-561c93c12055}programID']], 'recordType!{0ad1112a-64a6-465e-99da-48e839d78914}APR Program.fields.{64faa577-dd6f-4073-902d-57142bb77458}name'),
align: "LEFT",
readonly: true,
),
And here's the entirety of the code:
{
a!sectionLayout(
contents: rule!ACE_SCT_DynamicBreadCrumbTrail(isInterfaceDark: false, recordName: cons!ASK_TEXT_LABEL_REQUEST),
divider: "BELOW"
),
rule!ASK_SCT_RequestDetails(request: ri!request),
a!sectionLayout(
contents: {
rule!ASK_CMPT_RequestItem(
requestId: ri!request['recordType!{2ae53002-5d92-42a2-9e49-f4da57bb5aa7}ASK Request.fields.{ed63ad73-08ba-4d6b-9c2f-1ce50a57539d}requestId'],
creator: ri!request['recordType!{2ae53002-5d92-42a2-9e49-f4da57bb5aa7}ASK Request.fields.{44296bb8-930b-4e55-9167-99f4b89703b3}createdBy']
)
},
marginAbove: "STANDARD"
),
a!sectionLayout(
contents: {
rule!ASK_CMPT_requestDocuments(
requestId: ri!request['recordType!{2ae53002-5d92-42a2-9e49-f4da57bb5aa7}ASK Request.fields.{ed63ad73-08ba-4d6b-9c2f-1ce50a57539d}requestId']
)
},
marginAbove: "STANDARD"
),
a!localVariables(
local!program: rule!DS_GetProgramById(ri!tpsRequest['recordType!{63733d83-c1fa-4244-bcca-b0ddcccccbf4}DS_TPS.fields.{dbc3f6e3-0ead-4aec-969e-561c93c12055}programID']),
local!subsystem: rule!DS_GetSubsystemById(ri!tpsRequest['recordType!{63733d83-c1fa-4244-bcca-b0ddcccccbf4}DS_TPS.fields.{d60344f1-87aa-4adc-852f-13a6f0c0a4b1}subSystemID']),
a!sectionLayout(
label: "TPS Requestor Input:",
labelSize: "MEDIUM",
labelColor: "#434343",
contents: {
a!columnsLayout(
columns: {
a!columnLayout(
contents: {
a!textField(
label: "Program",
labelPosition: "ABOVE",
value: index(local!program[ri!tpsRequest['recordType!{63733d83-c1fa-4244-bcca-b0ddcccccbf4}DS_TPS.fields.{dbc3f6e3-0ead-4aec-969e-561c93c12055}programID']], 'recordType!{0ad1112a-64a6-465e-99da-48e839d78914}APR Program.fields.{64faa577-dd6f-4073-902d-57142bb77458}name'),
align: "LEFT",
readonly: true,
),
a!textField(
/*working!*/
label: "Subsystem",
labelPosition: "ABOVE",
value: index(local!subsystem, 'recordType!{d76a6e25-762d-4976-a4e7-c4c6dd9a9078}APR Subsystem.fields.{ae57477a-ebae-40fb-afd9-eff4d99b175a}name', "-"),
align: "LEFT",
readonly: true,
),
a!columnsLayout(
columns: {
a!columnLayout(
contents: {
a!dateField(
label: "TPS Need Date",
labelPosition: "ABOVE",
helpTooltip: "When TPS is needed by.",
value:
a!defaultValue(
ri!tpsRequest['recordType!{63733d83-c1fa-4244-bcca-b0ddcccccbf4}DS_TPS.fields.{e58bfbb2-7937-4018-badb-7dcb99407bd5}TPSNeed'],
"N/A"),
saveInto: ri!tpsRequest['recordType!{63733d83-c1fa-4244-bcca-b0ddcccccbf4}DS_TPS.fields.{e58bfbb2-7937-4018-badb-7dcb99407bd5}TPSNeed'],
required: true,
readOnly: true,
validations: {}
),
a!dateField(
label: "Proposed End Date",
labelPosition: "ABOVE",
helpTooltip: "Proposed end date for completed work",
value:
a!defaultValue(
ri!tpsRequest['recordType!{63733d83-c1fa-4244-bcca-b0ddcccccbf4}DS_TPS.fields.{a0d54b00-c10e-4e2e-bdf7-fa7353b672f4}proposedDate'],
"N/A"),
saveInto: ri!tpsRequest['recordType!{63733d83-c1fa-4244-bcca-b0ddcccccbf4}DS_TPS.fields.{a0d54b00-c10e-4e2e-bdf7-fa7353b672f4}proposedDate'],
required: true,
readOnly: true,
validations: {}
)
}
)
},
marginAbove: "NONE",
marginBelow: "NONE"
)
},
width: "MEDIUM"
),
a!columnLayout(
contents: {
a!sideBySideLayout(
items: {
a!sideBySideItem(
item: a!textField(
label: "Task Location",
labelPosition: "ABOVE",
helpTooltip: "Current building and lab location of the task.",
value: ri!tpsRequest['recordType!{63733d83-c1fa-4244-bcca-b0ddcccccbf4}DS_TPS.fields.{2b3a1ca7-d736-4625-8321-89dea463481e}taskLocation'],
saveInto: ri!tpsRequest['recordType!{63733d83-c1fa-4244-bcca-b0ddcccccbf4}DS_TPS.fields.{2b3a1ca7-d736-4625-8321-89dea463481e}taskLocation'],
refreshAfter: "UNFOCUS",
required: true,
readOnly: true,
validations: {}
)
),
a!sideBySideItem(
item: a!textField(
label: "Hardware Class",
labelPosition: "ABOVE",
placeholder: "Hardware Class",
value: ri!tpsRequest['recordType!{63733d83-c1fa-4244-bcca-b0ddcccccbf4}DS_TPS.fields.{1b3a0669-e51a-4b77-aa57-7002d19e9610}hardwareClass'],
saveInto: ri!tpsRequest['recordType!{63733d83-c1fa-4244-bcca-b0ddcccccbf4}DS_TPS.fields.{1b3a0669-e51a-4b77-aa57-7002d19e9610}hardwareClass'],
refreshAfter: "UNFOCUS",
readOnly: true,
validations: {}
)
),
a!sideBySideItem(
item: a!integerField(
label: "Drawing Number(s)",
labelPosition: "ABOVE",
helpTooltip: "Relevant drawings and drawing numbers.",
value: ri!tpsRequest['recordType!{63733d83-c1fa-4244-bcca-b0ddcccccbf4}DS_TPS.fields.{feb1c8f3-a2ee-4f7c-a7c3-7949054fc87b}drawingNumber'],
saveInto:ri!tpsRequest['recordType!{63733d83-c1fa-4244-bcca-b0ddcccccbf4}DS_TPS.fields.{feb1c8f3-a2ee-4f7c-a7c3-7949054fc87b}drawingNumber'],
refreshAfter: "UNFOCUS",
required: true,
readOnly: true,
validations: {}
),
width: "AUTO"
)
},
alignVertical: "MIDDLE",
spacing: "STANDARD"
),
a!sideBySideLayout(
items: {
a!sideBySideItem(
item: a!integerField(
label: "Purchase Order",
labelPosition: "ABOVE",
helpTooltip: "Purchase Order or AxCES PR.",
value: ri!tpsRequest['recordType!{63733d83-c1fa-4244-bcca-b0ddcccccbf4}DS_TPS.fields.{17ff2ac8-2b96-4d83-b1b8-01f576051b86}purchaseOrder'],
saveInto: ri!tpsRequest['recordType!{63733d83-c1fa-4244-bcca-b0ddcccccbf4}DS_TPS.fields.{17ff2ac8-2b96-4d83-b1b8-01f576051b86}purchaseOrder'],
refreshAfter: "UNFOCUS",
required: true,
readOnly: true,
validations: {}
)
),
a!sideBySideItem(
item: a!integerField(
label: "Serial Number(s)",
labelPosition: "ABOVE",
helpTooltip: "Assigned Serial Number(s) (if applicable).",
value: ri!tpsRequest['recordType!{63733d83-c1fa-4244-bcca-b0ddcccccbf4}DS_TPS.fields.{40328bdb-c666-431b-9522-7db086f73f07}serialNumber'],
saveInto: ri!tpsRequest['recordType!{63733d83-c1fa-4244-bcca-b0ddcccccbf4}DS_TPS.fields.{40328bdb-c666-431b-9522-7db086f73f07}serialNumber'],
refreshAfter: "UNFOCUS",
required: true,
readOnly: true,
validations: {}
)
),
a!sideBySideItem(
item: a!integerField(
label: "Lot Number(s)",
labelPosition: "ABOVE",
helpTooltip: "Assigned Lot Number(s) (if applicable).",
value: ri!tpsRequest['recordType!{63733d83-c1fa-4244-bcca-b0ddcccccbf4}DS_TPS.fields.{50f449bd-2d08-4501-87da-12876552066b}lotNum'],
saveInto: ri!tpsRequest['recordType!{63733d83-c1fa-4244-bcca-b0ddcccccbf4}DS_TPS.fields.{50f449bd-2d08-4501-87da-12876552066b}lotNum'],
refreshAfter: "UNFOCUS",
required: true,
readOnly: true,
validations: {}
)
)
},
spacing: "STANDARD"
),
a!sideBySideLayout(
items: {
a!sideBySideItem(
item: a!textField(
label: "Request Title",
labelPosition: "ABOVE",
helpTooltip: "Title of the TPS request.",
value: ri!tpsRequest['recordType!{63733d83-c1fa-4244-bcca-b0ddcccccbf4}DS_TPS.fields.{6187884e-4bd3-4f29-95d1-c2c9e1c90ea5}TPSTitle'],
saveInto: ri!tpsRequest['recordType!{63733d83-c1fa-4244-bcca-b0ddcccccbf4}DS_TPS.fields.{6187884e-4bd3-4f29-95d1-c2c9e1c90ea5}TPSTitle'],
refreshAfter: "UNFOCUS",
required: true,
readOnly: true,
validations: {},
align: "LEFT"
),
width: "AUTO"
),
a!sideBySideItem(
item: a!textField(
label: "Parts Location",
labelPosition: "ABOVE",
helpTooltip: "Current building and lab location of the parts.",
value: ri!tpsRequest['recordType!{63733d83-c1fa-4244-bcca-b0ddcccccbf4}DS_TPS.fields.{c6ba2c33-e732-41a9-8363-f602febddab1}partsLocation'],
saveInto: ri!tpsRequest['recordType!{63733d83-c1fa-4244-bcca-b0ddcccccbf4}DS_TPS.fields.{c6ba2c33-e732-41a9-8363-f602febddab1}partsLocation'],
refreshAfter: "UNFOCUS",
required: true,
readOnly: true,
validations: {}
)
),
a!sideBySideItem(
item: a!integerField(
label: "Parts Quantity",
labelPosition: "ABOVE",
helpTooltip: "Bill of Materials and Quantity of items/parts.",
value:ri!tpsRequest['recordType!{63733d83-c1fa-4244-bcca-b0ddcccccbf4}DS_TPS.fields.{a50bd1c2-853e-4978-8fc0-669280707b77}quantity'],
saveInto: ri!tpsRequest['recordType!{63733d83-c1fa-4244-bcca-b0ddcccccbf4}DS_TPS.fields.{a50bd1c2-853e-4978-8fc0-669280707b77}quantity'],
refreshAfter: "UNFOCUS",
required: true,
readOnly: true,
validations: {}
)
)
},
alignVertical: "MIDDLE",
spacing: "STANDARD"
),
a!sideBySideLayout(
items: {
a!sideBySideItem(
item: a!paragraphField(
label: "Task Outline",
labelPosition: "ABOVE",
value: ri!tpsRequest['recordType!{63733d83-c1fa-4244-bcca-b0ddcccccbf4}DS_TPS.fields.{9b6b98e7-ecce-4faf-8718-b3036ebcff8b}taskOutline'],
saveInto: ri!tpsRequest['recordType!{63733d83-c1fa-4244-bcca-b0ddcccccbf4}DS_TPS.fields.{9b6b98e7-ecce-4faf-8718-b3036ebcff8b}taskOutline'],
refreshAfter: "UNFOCUS",
height: "SHORT",
required: true,
readOnly: true,
validations: {}
),
width: ""
),
a!sideBySideItem(
item: a!paragraphField(
label: "Additional Comments",
labelPosition: "ABOVE",
value: ri!tpsRequest['recordType!{63733d83-c1fa-4244-bcca-b0ddcccccbf4}DS_TPS.fields.{0c30750a-4d38-477f-81b4-43401237ada2}comments'],
saveInto: ri!tpsRequest['recordType!{63733d83-c1fa-4244-bcca-b0ddcccccbf4}DS_TPS.fields.{0c30750a-4d38-477f-81b4-43401237ada2}comments'],
refreshAfter: "UNFOCUS",
height: "SHORT",
required: true,
readOnly: true,
validations: {}
),
width: "2X"
)
}
)
},
width: "AUTO"
)
}
)
},
/*showWhen: a!isNotNullOrEmpty(ri!tpsRequest),*/
isCollapsible: true,
marginBelow: "MORE"
)
),
rule!ASK_SCT_Comment(
requestId: ri!request['recordType!{2ae53002-5d92-42a2-9e49-f4da57bb5aa7}ASK Request.fields.{ed63ad73-08ba-4d6b-9c2f-1ce50a57539d}requestId'],
readOnly: or(
a!isUserMemberOfGroup(username: loggedInUser(), groups: cons!ASK_GRP_VIEWERS),
ri!request['recordType!{2ae53002-5d92-42a2-9e49-f4da57bb5aa7}ASK Request.fields.{97a60319-ec9d-4e4f-b592-9494bc39d14e}statusId'] = cons!ASK_REQUEST_STATUS_COMPLETE
)
)
}
This is what the interface looks like when the values are populated:

