Hello,
I have array of CDT within CDT. When I'm trying to populate data from that array to grid column I'm getting blank value with index function.
CDT Structure:
Datasubset value:[ userAssignedRequestName="test", users=[userName=dc_creator, email=dc_creator@bankcorp.com, phone=410-858-8811, firstName=test User, lastName=, status=active, role=xxxx, lastUserAction=creator]; [userName=dc_modifier, email=dc_modifier@bankcorp.com, phone=410-858-8812, firstName=test User2, lastName=, status=active, role=xxxx, lastUserAction=modifier]];
Below code is not returning user array:
a!gridTextColumn( label: "User Name", field: "lastUpdatedUserId", data: rule!REST_getLastUpdatedUser( index( local!datasubset.data, "users", {} ) ) ),
above highlighted code is not returning users array. Can anyone faced this issue with nested CDT ?
inside rule rule!REST_getLastUpdatedUser I have logic to return particular user name.
Discussion posts and replies are publicly visible
Hi tushark171
Try below code, it will return as you expected and modify your rule accordingly.
rule!R_Expr_ReturnFirstUserName(ri!arrayValues) arrayValues (Any Type)
if(
rule!APN_isEmpty(
ri!arrayValues
),
ri!arrayValues,
ri!arrayValues[1].userName
)
===================================================
rule!R_SailGrid_UsersList
load(
local!pagingInfo: a!pagingInfo(
startIndex: 1,
batchSize: 2
local!data: {
userAssignedRequestName : "test",
users: {
{
userName : "dc_creator",
email : "dc_creator@bankcorp.com",
phone : "410-858-8811",
firstName : "test User",
lastName : "",
status : "active",
role : "xxxx",
lastUserAction : "creator"
},
userName : "dc_modifier",
}
with(
local!datasubset: fn!todatasubset(
local!data,
local!pagingInfo
a!gridField(
totalCount: local!datasubset.totalCount,
columns: {
a!gridTextColumn(
label: "userAssignedRequestName",
field: "userAssignedRequestName",
data: index(
local!datasubset.data,
"userAssignedRequestName",
{}
label: "users",
field: "users",
data: a!forEach(
rule!R_Expr_ReturnSingleValue(
a!flatten(
index(
fv!item,
"users",
null
) },
value: local!pagingInfo,
saveInto: local!pagingInfo