Not able to populate data from nested CDT on grid

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

Parents
  • Hi Tushar,

    I am suspecting that "you have already applied data while fetching the datasubset in query entity". Please remove data in index and tried the below.

     a!gridTextColumn(

                     label: "User Name",

                     field: "lastUpdatedUserId",

                     data: rule!REST_getLastUpdatedUser(

                       index(                          

                                 local!datasubset,

                                "users",

                                {}

                              )                  

                           )

                      ),

     

    below code is working for me (For time being I have hard coded values)

    load(
    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",
    email: "dc_creator@bankcorp.com",
    phone: "410-858-8811",
    firstName: "test User",
    lastName: "",
    status: "active",
    role: "xxxx",
    lastUserAction: "modifier"
    }
    }
    },
    local!pagingInfo: topaginginfo(
    1,
    - 1
    ),
    a!gridField(
    label: "Grid",
    totalCount: 2,
    columns: {
    a!gridTextColumn(
    label: "User Name",
    field: "lastUpdatedUserId",
    data: index(
    local!data,
    "users",
    {}
    )
    )
    },
    value: local!pagingInfo,
    saveInto: local!pagingInfo

     

    Thanks

    Siva Chimata

  • Hi Siva,

    Thanks for above suggestion. It's not working by just using datasubset.
    When I print my datasubset it gives me below values:

    [startIndex=1, batchSize=50, sort=[field=lastUpdatedDateTime, ascending=false], totalCount=3, data=[ userAssignedRequestName="Test1", users=[userName=dc_creator, email=dc_creator@bankcorp.com, phone=410-858-8811, firstName=Jean1, lastName=, status=active, role=PFDC_DATA_CORRECTION_TEAM, lastUserAction=creator]; [userName=dc_modifier, email=dc_modifier@bankcorp.com, phone=410-858-8811, firstName=Jean2, lastName=, status=active, role=PFDC_DATA_CORRECTION_TEAM, lastUserAction=modifier]; [userName=dc_approver, email=dc_approver@bankcorp.com, phone=410-858-8811, firstName=Jean-Luc, lastName=, status=active, role=PFDC_DATA_CORRECTION_TEAM, lastUserAction=approver]; [userName=dc_applier, email=dc_applier@bankcorp.com, phone=410-858-8811, firstName=Jean-Luc, lastName=, status=active, role=PFDC_DATA_CORRECTION_TEAM, lastUserAction=applier]];
    [userAssignedRequestName="Test2", users=[userName=dc_creator, email=dc_creator@bankcorp.com, phone=410-858-8811, firstName=Jean-Luc, lastName=, status=active, role=PFDC_DATA_CORRECTION_TEAM, lastUserAction=creator]; [userName=dc_modifier, email=dc_modifier@bankcorp.com, phone=410-858-8811, firstName=Jean-Luc, lastName=, status=active, role=PFDC_DATA_CORRECTION_TEAM, lastUserAction=modifier]; [userName=dc_approver, email=dc_approver@bankcorp.com, phone=410-858-8811, firstName=Jean-Luc, lastName=, status=active, role=PFDC_DATA_CORRECTION_TEAM, lastUserAction=approver]; [userName=dc_applier, email=dc_applier@bankcorp.com, phone=410-858-8811, firstName=Jean-Luc, lastName=, status=active, role=PFDC_DATA_CORRECTION_TEAM, lastUserAction=applier]];
    [userAssignedRequestName="Test3", users=[userName=dc_creator, email=dc_creator@bankcorp.com, phone=410-858-8811, firstName=Jean-Luc, lastName=, status=active, role=PFDC_DATA_CORRECTION_TEAM, lastUserAction=creator]; [userName=dc_modifier, email=dc_modifier@bankcorp.com, phone=410-858-8811, firstName=Jean-Luc, lastName=, status=active, role=PFDC_DATA_CORRECTION_TEAM, lastUserAction=modifier]; [userName=dc_approver, email=dc_approver@bankcorp.com, phone=410-858-8811, firstName=Jean-Luc, lastName=, status=active, role=PFDC_DATA_CORRECTION_TEAM, lastUserAction=approver]; [userName=dc_applier, email=dc_applier@bankcorp.com, phone=410-858-8811, firstName=Jean-Luc, lastName=, status=active, role=PFDC_DATA_CORRECTION_TEAM, lastUserAction=applier]], identifiers=1; 2; 3]

    when I try to print just index( local!datasubset.data, "userAssignedRequestName",{} ) it gives me Test1;Test2;Test3
    when I try to print index( local!datasubset.data, "users",{} ) it gives me nothing

    when I modified my rule "REST_PFDC_getLastUpdatedUser" as below it prints "Empty User" for first row and Blank in other rows.

    if(rule!PFDC_isBlank(ri!dcrUserDetails),"Empty User","User1")
Reply
  • Hi Siva,

    Thanks for above suggestion. It's not working by just using datasubset.
    When I print my datasubset it gives me below values:

    [startIndex=1, batchSize=50, sort=[field=lastUpdatedDateTime, ascending=false], totalCount=3, data=[ userAssignedRequestName="Test1", users=[userName=dc_creator, email=dc_creator@bankcorp.com, phone=410-858-8811, firstName=Jean1, lastName=, status=active, role=PFDC_DATA_CORRECTION_TEAM, lastUserAction=creator]; [userName=dc_modifier, email=dc_modifier@bankcorp.com, phone=410-858-8811, firstName=Jean2, lastName=, status=active, role=PFDC_DATA_CORRECTION_TEAM, lastUserAction=modifier]; [userName=dc_approver, email=dc_approver@bankcorp.com, phone=410-858-8811, firstName=Jean-Luc, lastName=, status=active, role=PFDC_DATA_CORRECTION_TEAM, lastUserAction=approver]; [userName=dc_applier, email=dc_applier@bankcorp.com, phone=410-858-8811, firstName=Jean-Luc, lastName=, status=active, role=PFDC_DATA_CORRECTION_TEAM, lastUserAction=applier]];
    [userAssignedRequestName="Test2", users=[userName=dc_creator, email=dc_creator@bankcorp.com, phone=410-858-8811, firstName=Jean-Luc, lastName=, status=active, role=PFDC_DATA_CORRECTION_TEAM, lastUserAction=creator]; [userName=dc_modifier, email=dc_modifier@bankcorp.com, phone=410-858-8811, firstName=Jean-Luc, lastName=, status=active, role=PFDC_DATA_CORRECTION_TEAM, lastUserAction=modifier]; [userName=dc_approver, email=dc_approver@bankcorp.com, phone=410-858-8811, firstName=Jean-Luc, lastName=, status=active, role=PFDC_DATA_CORRECTION_TEAM, lastUserAction=approver]; [userName=dc_applier, email=dc_applier@bankcorp.com, phone=410-858-8811, firstName=Jean-Luc, lastName=, status=active, role=PFDC_DATA_CORRECTION_TEAM, lastUserAction=applier]];
    [userAssignedRequestName="Test3", users=[userName=dc_creator, email=dc_creator@bankcorp.com, phone=410-858-8811, firstName=Jean-Luc, lastName=, status=active, role=PFDC_DATA_CORRECTION_TEAM, lastUserAction=creator]; [userName=dc_modifier, email=dc_modifier@bankcorp.com, phone=410-858-8811, firstName=Jean-Luc, lastName=, status=active, role=PFDC_DATA_CORRECTION_TEAM, lastUserAction=modifier]; [userName=dc_approver, email=dc_approver@bankcorp.com, phone=410-858-8811, firstName=Jean-Luc, lastName=, status=active, role=PFDC_DATA_CORRECTION_TEAM, lastUserAction=approver]; [userName=dc_applier, email=dc_applier@bankcorp.com, phone=410-858-8811, firstName=Jean-Luc, lastName=, status=active, role=PFDC_DATA_CORRECTION_TEAM, lastUserAction=applier]], identifiers=1; 2; 3]

    when I try to print just index( local!datasubset.data, "userAssignedRequestName",{} ) it gives me Test1;Test2;Test3
    when I try to print index( local!datasubset.data, "users",{} ) it gives me nothing

    when I modified my rule "REST_PFDC_getLastUpdatedUser" as below it prints "Empty User" for first row and Blank in other rows.

    if(rule!PFDC_isBlank(ri!dcrUserDetails),"Empty User","User1")
Children
No Data