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 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",

            email : "dc_creator@bankcorp.com",

            phone : "410-858-8811",

            firstName : "test User",

            lastName : "",

            status : "active",

            role : "xxxx",

            lastUserAction : "creator"

          }

        }

      },

      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",

                {}

              )

            ),

            a!gridTextColumn(

              label: "users",

              field: "users",

              data: a!forEach(

                local!datasubset.data,

                rule!R_Expr_ReturnSingleValue(

                  a!flatten(

                    index(

                    fv!item,

                    "users",

                    null

                  )

                  )             

                )

              )

            ) },

          value: local!pagingInfo,

          saveInto: local!pagingInfo

        )

      )

    )

Reply
  • 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",

            email : "dc_creator@bankcorp.com",

            phone : "410-858-8811",

            firstName : "test User",

            lastName : "",

            status : "active",

            role : "xxxx",

            lastUserAction : "creator"

          }

        }

      },

      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",

                {}

              )

            ),

            a!gridTextColumn(

              label: "users",

              field: "users",

              data: a!forEach(

                local!datasubset.data,

                rule!R_Expr_ReturnSingleValue(

                  a!flatten(

                    index(

                    fv!item,

                    "users",

                    null

                  )

                  )             

                )

              )

            ) },

          value: local!pagingInfo,

          saveInto: local!pagingInfo

        )

      )

    )

Children
No Data