Skip to main content
iswaryan3555
July 15, 2025
Question

Indexing inside foreach is repeating the same value

  • July 15, 2025
  • 9 replies
  • 0 views

In the grid I am getting the same plan name whatever plan I select in the dropdown , Can anyone help me fix this?

a!localVariables(
  local!wmsPlans: index(
    rule!WMS_qr_Plan(
      columns: {
        'recordType!{a64248d4-beb2-46af-9f5f-eb0f79b17649}WMS PLAN.fields.{f39ad615-5340-4968-8dd2-3b4d81474095}planName',
        'recordType!{a64248d4-beb2-46af-9f5f-eb0f79b17649}WMS PLAN.fields.{a8baeebc-1ffb-4f0a-9096-d148777d3756}planId'
      },
      clientId: 11,
      planStatus: "Active"
    ).data,
    {}
  ),
  local!vetRequestPlans: index(
    rule!VET_qr_RequestPlans_ByFilters(requestId: 1188 ),
    {}
  ),
  local!additionalCITplans,
  local!plansSelected,
  local!editablePlans: if(
    length(a!flatten(local!plansSelected)) > 0,
    reject(
      fn!isnull,
    
        {
        a!forEach(
          items: local!vetRequestPlans,
          expression: if(
            contains(
              local!plansSelected,
              fv!item['recordType!{9339afa7-3440-42ac-9d18-6e89a7c891b4}VET Request Plans.fields.{0a9f63be-0169-4a60-b003-5fbc6b8ab22b}planId']
            ),
            fv!item,
            null()
          )
        ),
        local!additionalCITplans
        }
      ),{}),
  
  
  local!newPlans: {},
  local!finalPlans,
  local!confirmationMessage: null,
  
 
  a!sectionLayout(
    label: "Rider A Plan",
    contents: {
      /* Dropdown to select plans from WMS */
      a!multipleDropdownField(
        choiceLabels: a!forEach(
          local!wmsPlans,
          fv!item['recordType!{a64248d4-beb2-46af-9f5f-eb0f79b17649}WMS PLAN.fields.{f39ad615-5340-4968-8dd2-3b4d81474095}planName']
        ),
        choiceValues: a!forEach(
          local!wmsPlans,
          fv!item['recordType!{a64248d4-beb2-46af-9f5f-eb0f79b17649}WMS PLAN.fields.{a8baeebc-1ffb-4f0a-9096-d148777d3756}planId']
        ),
        label: "Select Plan(s)",
        instructions: "Choose one or more plans to include",
        value: local!plansSelected,
        saveInto: {
          local!plansSelected,
          a!forEach(
            items: local!vetRequestPlans,
            expression: {
              if(
                contains(
                  local!plansSelected,
                  fv!item['recordType!{9339afa7-3440-42ac-9d18-6e89a7c891b4}VET Request Plans.fields.{0a9f63be-0169-4a60-b003-5fbc6b8ab22b}planId']
                ),
                a!save(
                  target: fv!item['recordType!{9339afa7-3440-42ac-9d18-6e89a7c891b4}VET Request Plans.fields.{1757e6bb-8aa8-40c1-a6e4-e19bf1d6997c}citPlan'],
                  value: "Y"
                ),
                a!save(
                  target: fv!item['recordType!{9339afa7-3440-42ac-9d18-6e89a7c891b4}VET Request Plans.fields.{1757e6bb-8aa8-40c1-a6e4-e19bf1d6997c}citPlan'],
                  value: null()
                )
              )
              
            }
          ),
          /*Populate additional plans selected at task level*/a!save(
            target: local!additionalCITplans,
            value: rule!VET_formatPlans(
              newPlans: local!plansSelected,
              requestId: ri!vetRequestMaster['recordType!{bcf01859-d047-4a18-9bcd-d22f5777cfc4}VET Request Master.fields.{01ed6269-0ba1-4f80-b8b3-b4480cc94eed}requestId'],
              oldPlans: local!vetRequestPlans,
              clientId: ri!vetRequestMaster['recordType!{bcf01859-d047-4a18-9bcd-d22f5777cfc4}VET Request Master.fields.{c5f29ec0-9886-4ee7-9228-98a6a42acf28}clientId']
            )
          )
          
        }
      ),
      /* Editable Grid for Selected Plans */
     
      if(
        length(a!flatten(local!plansSelected)) > 0,
        a!gridLayout(
          label: "Edit Selected Plan Names",
          headerCells: {
            a!gridLayoutHeaderCell(label: "Plan Name"),
           
          },
          columnConfigs: {
            a!gridLayoutColumnConfig(width: "DISTRIBUTE", weight: 8),
           
          },
          rows: a!forEach(
            items: local!editablePlans,
            expression: a!gridRowLayout(
              id: fv!index,
              contents: {
                a!textField(
                  label: "Plan Name " & fv!index,
                  value: if(
                    a!isNullOrEmpty(
                      local!editablePlans[fv!index]['recordType!{9339afa7-3440-42ac-9d18-6e89a7c891b4}VET Request Plans.fields.{a1d9bcaf-fedd-4524-91a7-1f43dd80dc4f}planname']
                    ),
                    index(
                      index(
                        local!wmsPlans,
                        wherecontains(
                          local!plansSelected,
                          fv!item['recordType!{9339afa7-3440-42ac-9d18-6e89a7c891b4}VET Request Plans.fields.{0a9f63be-0169-4a60-b003-5fbc6b8ab22b}planId']
                        ),
                        {}
                      ),
                      'recordType!{a64248d4-beb2-46af-9f5f-eb0f79b17649}WMS PLAN.fields.{f39ad615-5340-4968-8dd2-3b4d81474095}planName',
                      {}
                    ),
                    local!editablePlans[fv!index]['recordType!{9339afa7-3440-42ac-9d18-6e89a7c891b4}VET Request Plans.fields.{a1d9bcaf-fedd-4524-91a7-1f43dd80dc4f}planname']
                  ),
                  saveInto: local!editablePlans[fv!index]['recordType!{9339afa7-3440-42ac-9d18-6e89a7c891b4}VET Request Plans.fields.{a1d9bcaf-fedd-4524-91a7-1f43dd80dc4f}planname'],
                  required: true
                ),
                
              }
            )
          ),
          rowHeader: 1
        ),
        {}
      ),

9 replies

shubhama926776
July 15, 2025

The main issue is with the wherecontains() function usage. This function returns indices, not the actual matching items, and the way it's being used is causing incorrect lookups.

Made update to wherecontains in line number 117

a!localVariables(
  local!wmsPlans: index(
    rule!WMS_qr_Plan(
      columns: {
        'recordType!{a64248d4-beb2-46af-9f5f-eb0f79b17649}.fields.{f39ad615-5340-4968-8dd2-3b4d81474095}',
        'recordType!{a64248d4-beb2-46af-9f5f-eb0f79b17649}.fields.{a8baeebc-1ffb-4f0a-9096-d148777d3756}'
      },
      clientId: 11,
      planStatus: "Active"
    ).data,
    {}
  ),
  local!vetRequestPlans: index(
    rule!VET_qr_RequestPlans_ByFilters(requestId: 1188 ),
    {}
  ),
  local!additionalCITplans,
  local!plansSelected,
  local!editablePlans: if(
    length(a!flatten(local!plansSelected)) > 0,
    reject(
      fn!isnull,
      {
        a!forEach(
          items: local!vetRequestPlans,
          expression: if(
            contains(
              local!plansSelected,
              fv!item['recordType!{9339afa7-3440-42ac-9d18-6e89a7c891b4}.fields.{0a9f63be-0169-4a60-b003-5fbc6b8ab22b}']
            ),
            fv!item,
            null()
          )
        ),
        local!additionalCITplans
      }
    ),
    {}
  ),

  local!newPlans: {},
  local!finalPlans,
  local!confirmationMessage: null,

  a!sectionLayout(
    label: "Rider A Plan",
    contents: {
      /* Dropdown to select plans from WMS */
      a!multipleDropdownField(
        choiceLabels: a!forEach(
          local!wmsPlans,
          fv!item['recordType!{a64248d4-beb2-46af-9f5f-eb0f79b17649}.fields.{f39ad615-5340-4968-8dd2-3b4d81474095}']
        ),
        choiceValues: a!forEach(
          local!wmsPlans,
          fv!item['recordType!{a64248d4-beb2-46af-9f5f-eb0f79b17649}.fields.{a8baeebc-1ffb-4f0a-9096-d148777d3756}']
        ),
        label: "Select Plan(s)",
        instructions: "Choose one or more plans to include",
        value: local!plansSelected,
        saveInto: {
          local!plansSelected,
          a!forEach(
            items: local!vetRequestPlans,
            expression: {
              if(
                contains(
                  local!plansSelected,
                  fv!item['recordType!{9339afa7-3440-42ac-9d18-6e89a7c891b4}.fields.{0a9f63be-0169-4a60-b003-5fbc6b8ab22b}']
                ),
                a!save(
                  target: fv!item['recordType!{9339afa7-3440-42ac-9d18-6e89a7c891b4}.fields.{1757e6bb-8aa8-40c1-a6e4-e19bf1d6997c}'],
                  value: "Y"
                ),
                a!save(
                  target: fv!item['recordType!{9339afa7-3440-42ac-9d18-6e89a7c891b4}.fields.{1757e6bb-8aa8-40c1-a6e4-e19bf1d6997c}'],
                  value: null()
                )
              )
            }
          ),
          /*Populate additional plans selected at task level*/
          a!save(
            target: local!additionalCITplans,
            value: rule!VET_formatPlans(
              newPlans: local!plansSelected,
              requestId: ri!vetRequestMaster['recordType!{bcf01859-d047-4a18-9bcd-d22f5777cfc4}.fields.{01ed6269-0ba1-4f80-b8b3-b4480cc94eed}'],
              oldPlans: local!vetRequestPlans,
              clientId: ri!vetRequestMaster['recordType!{bcf01859-d047-4a18-9bcd-d22f5777cfc4}.fields.{c5f29ec0-9886-4ee7-9228-98a6a42acf28}']
            )
          )
        }
      ),
      /* Editable Grid for Selected Plans */
      if(
        length(a!flatten(local!plansSelected)) > 0,
        a!gridLayout(
          label: "Edit Selected Plan Names",
          headerCells: {
            a!gridLayoutHeaderCell(label: "Plan Name"),
          },
          columnConfigs: {
            a!gridLayoutColumnConfig(width: "DISTRIBUTE", weight: 8),
          },
          rows: a!forEach(
            items: local!editablePlans,
            expression: a!gridRowLayout(
              id: fv!index,
              contents: {
                a!textField(
                  label: "Plan Name " & fv!index,
                  value: if(
                    a!isNullOrEmpty(
                      fv!item['recordType!{9339afa7-3440-42ac-9d18-6e89a7c891b4}.fields.{a1d9bcaf-fedd-4524-91a7-1f43dd80dc4f}']
                    ),
                    /* FIXED: Get the plan name from wmsPlans based on the current item's planId */
                    property(
                      index(
                        local!wmsPlans,
                        wherecontains(
                          fv!item['recordType!{9339afa7-3440-42ac-9d18-6e89a7c891b4}.fields.{0a9f63be-0169-4a60-b003-5fbc6b8ab22b}'],
                          tointeger(
                            index(
                              local!wmsPlans,
                              'recordType!{a64248d4-beb2-46af-9f5f-eb0f79b17649}.fields.{a8baeebc-1ffb-4f0a-9096-d148777d3756}',
                              {}
                            )
                          )
                        ),
                        {}
                      ),
                      'recordType!{a64248d4-beb2-46af-9f5f-eb0f79b17649}.fields.{f39ad615-5340-4968-8dd2-3b4d81474095}',
                      ""
                    ),
                    
                    
                    fv!item['recordType!{9339afa7-3440-42ac-9d18-6e89a7c891b4}.fields.{a1d9bcaf-fedd-4524-91a7-1f43dd80dc4f}']
                  ),
                  saveInto: fv!item['recordType!{9339afa7-3440-42ac-9d18-6e89a7c891b4}.fields.{a1d9bcaf-fedd-4524-91a7-1f43dd80dc4f}'],
                  required: true
                )
              }
            )
          ),
          rowHeader: 1
        ),
        {}
      ),
    }
  )
)


Let me know if that works for you.

iswaryan3555
July 16, 2025

Thanks,   [mention:9861aef97eb2483a8b76175d9eda1e37:e9ed411860ed4f2ba0265705b8793d05]   its populating correctly But the plan name is not storing into the local!editable plan after selecting from the dropdown.  if I made any changes only its saving I tried using save!value. But its not working.

shubhama926776
July 16, 2025

Based on your issue i have updated the code.
Let me know if that works

a!localVariables(
  local!wmsPlans: index(
    rule!WMS_qr_Plan(
      columns: {
        'recordType!{a64248d4-beb2-46af-9f5f-eb0f79b17649}.fields.{f39ad615-5340-4968-8dd2-3b4d81474095}',
        'recordType!{a64248d4-beb2-46af-9f5f-eb0f79b17649}.fields.{a8baeebc-1ffb-4f0a-9096-d148777d3756}'
      },
      clientId: 11,
      planStatus: "Active"
    ).data,
    {}
  ),
  local!vetRequestPlans: index(
    rule!VET_qr_RequestPlans_ByFilters(requestId: 1188 ),
    {}
  ),
  local!additionalCITplans,
  local!plansSelected,
  local!editablePlans: if(
    length(a!flatten(local!plansSelected)) > 0,
    reject(
      fn!isnull,
      {
        a!forEach(
          items: local!vetRequestPlans,
          expression: if(
            contains(
              local!plansSelected,
              fv!item['recordType!{9339afa7-3440-42ac-9d18-6e89a7c891b4}.fields.{0a9f63be-0169-4a60-b003-5fbc6b8ab22b}']
            ),
            fv!item,
            null()
          )
        ),
        local!additionalCITplans
      }
    ),
    {}
  ),

  local!newPlans: {},
  local!finalPlans,
  local!confirmationMessage: null,

  a!sectionLayout(
    label: "Rider A Plan",
    contents: {
      /* Dropdown to select plans from WMS */
      a!multipleDropdownField(
        choiceLabels: a!forEach(
          local!wmsPlans,
          fv!item['recordType!{a64248d4-beb2-46af-9f5f-eb0f79b17649}.fields.{f39ad615-5340-4968-8dd2-3b4d81474095}']
        ),
        choiceValues: a!forEach(
          local!wmsPlans,
          fv!item['recordType!{a64248d4-beb2-46af-9f5f-eb0f79b17649}.fields.{a8baeebc-1ffb-4f0a-9096-d148777d3756}']
        ),
        label: "Select Plan(s)",
        instructions: "Choose one or more plans to include",
        value: local!plansSelected,
        saveInto: {
          local!plansSelected,
          a!forEach(
            items: local!vetRequestPlans,
            expression: {
              if(
                contains(
                  local!plansSelected,
                  fv!item['recordType!{9339afa7-3440-42ac-9d18-6e89a7c891b4}.fields.{0a9f63be-0169-4a60-b003-5fbc6b8ab22b}']
                ),
                a!save(
                  target: fv!item['recordType!{9339afa7-3440-42ac-9d18-6e89a7c891b4}.fields.{1757e6bb-8aa8-40c1-a6e4-e19bf1d6997c}'],
                  value: "Y"
                ),
                a!save(
                  target: fv!item['recordType!{9339afa7-3440-42ac-9d18-6e89a7c891b4}.fields.{1757e6bb-8aa8-40c1-a6e4-e19bf1d6997c}'],
                  value: null()
                )
              )
            }
          ),
          /*Populate additional plans selected at task level*/
          a!save(
            target: local!additionalCITplans,
            value: rule!VET_formatPlans(
              newPlans: local!plansSelected,
              requestId: ri!vetRequestMaster['recordType!{bcf01859-d047-4a18-9bcd-d22f5777cfc4}.fields.{01ed6269-0ba1-4f80-b8b3-b4480cc94eed}'],
              oldPlans: local!vetRequestPlans,
              clientId: ri!vetRequestMaster['recordType!{bcf01859-d047-4a18-9bcd-d22f5777cfc4}.fields.{c5f29ec0-9886-4ee7-9228-98a6a42acf28}']
            )
          ),
          /* ADDED: Auto-populate plan names in editablePlans */
          a!save(
            target: local!editablePlans,
            value: a!forEach(
              items: local!editablePlans,
              expression: if(
                contains(
                  local!plansSelected,
                  fv!item['recordType!{9339afa7-3440-42ac-9d18-6e89a7c891b4}.fields.{0a9f63be-0169-4a60-b003-5fbc6b8ab22b}']
                ),
                a!update(
                  fv!item,
                  'recordType!{9339afa7-3440-42ac-9d18-6e89a7c891b4}.fields.{a1d9bcaf-fedd-4524-91a7-1f43dd80dc4f}',
                  property(
                    index(
                      local!wmsPlans,
                      wherecontains(
                        fv!item['recordType!{9339afa7-3440-42ac-9d18-6e89a7c891b4}.fields.{0a9f63be-0169-4a60-b003-5fbc6b8ab22b}'],
                        property(local!wmsPlans, 'recordType!{a64248d4-beb2-46af-9f5f-eb0f79b17649}.fields.{a8baeebc-1ffb-4f0a-9096-d148777d3756}', {})
                      )[1],
                      {}
                    ),
                    'recordType!{a64248d4-beb2-46af-9f5f-eb0f79b17649}.fields.{f39ad615-5340-4968-8dd2-3b4d81474095}',
                    ""
                  )
                ),
                fv!item
              )
            )
          )
        }
      ),
      /* Editable Grid for Selected Plans */
      if(
        length(a!flatten(local!plansSelected)) > 0,
        a!gridLayout(
          label: "Edit Selected Plan Names",
          headerCells: {
            a!gridLayoutHeaderCell(label: "Plan Name"),
          },
          columnConfigs: {
            a!gridLayoutColumnConfig(width: "DISTRIBUTE", weight: 8),
          },
          rows: a!forEach(
            items: local!editablePlans,
            expression: a!gridRowLayout(
              id: fv!index,
              contents: {
                a!textField(
                  label: "Plan Name " & fv!index,
                  value: if(
                    a!isNullOrEmpty(
                      fv!item['recordType!{9339afa7-3440-42ac-9d18-6e89a7c891b4}.fields.{a1d9bcaf-fedd-4524-91a7-1f43dd80dc4f}']
                    ),
                    property(
                      index(
                        local!wmsPlans,
                        wherecontains(
                          fv!item['recordType!{9339afa7-3440-42ac-9d18-6e89a7c891b4}.fields.{0a9f63be-0169-4a60-b003-5fbc6b8ab22b}'],
                          tointeger(
                            index(
                              local!wmsPlans,
                              'recordType!{a64248d4-beb2-46af-9f5f-eb0f79b17649}.fields.{a8baeebc-1ffb-4f0a-9096-d148777d3756}',
                              {}
                            )
                          )
                        ),
                        {}
                      ),
                      'recordType!{a64248d4-beb2-46af-9f5f-eb0f79b17649}.fields.{f39ad615-5340-4968-8dd2-3b4d81474095}',
                      ""
                    ),
                    fv!item['recordType!{9339afa7-3440-42ac-9d18-6e89a7c891b4}.fields.{a1d9bcaf-fedd-4524-91a7-1f43dd80dc4f}']
                  ),
                  saveInto: fv!item['recordType!{9339afa7-3440-42ac-9d18-6e89a7c891b4}.fields.{a1d9bcaf-fedd-4524-91a7-1f43dd80dc4f}'],
                  required: true
                )
              }
            )
          ),
          rowHeader: 1
        ),
        {}
      ),
    }
  )
)

mikes0011
Brainy
July 15, 2025

As an aside, this is why I always insist other devs I work with use index() only for finding indexes, and when they want to get a property, such as you seem to be doing with the index() call on line 121, use the property() function, if for no other reason than code clarity / readability...