Appending Map with keys and values from second map

Good day experts!  I am attempting to merge two maps and have gone thru many examples from the forum but can't seem to get those solutions to work for my use case.

I have two maps that have different key value pairs that I want to merge into one map.  The example in my code shows that the maps are related by participantId.  I was able to get the key and value for one of the keys in the queueMap to update into the participantMap.  However I am struggling with getting all of the keys and values in queueMap to update into the related particpantMap.

Here is my successful attempt at just getting the first key value from queueMap to update into participantMap:

a!localVariables(
  local!participantMap: {
    a!map(
      participantId: 3402,
      blockId: 881,
      policyNumber: "VF80U16350",
      policyEffectiveDate: fn!date(2023, 9, 25),
      dateOfBith: null,
      firstName: "Bill",
      lastName: " Johnson",
      middleInitial: "W",
      ssn: "123456789",
      genderRefId: 68,
      suffixRefId: 63,
      statusRefId: 1032
    ),
    a!map(
      participantId: 3401,
      blockId: 881,
      policyNumber: "VF80U16340",
      policyEffectiveDate: fn!date(2023, 9, 25),
      dateOfBith: fn!date(1996, 7, 4),
      firstName: "Robert",
      lastName: "Martinez",
      middleInitial: "J",
      ssn: "213456689",
      genderRefId: 69,
      suffixRefId: 66,
      statusRefId: 1093
    )
  },
  local!queueMap: {
    a!map(
      queueId: 3354,
      blockId: 881,
      participantId: 3402,
      appianGroupId: 58,
      assigneeUsername: "Karl.Seager@test.com",
      isActive: true,
      modifiedOn: fn!datetime(2024, 7, 18, 13, 31, 49, 0),
      lastAssignee: "",
      lastAssignedGroup: 25
    ),
    a!map(
      queueId: 3356,
      blockId: 881,
      participantId: 3401,
      appianGroupId: 58,
      assigneeUsername: "Karl.Seager@test.com",
      isActive: true,
      modifiedOn: fn!datetime(2024, 7, 18, 13, 31, 49, 0),
      lastAssignee: "",
      lastAssignedGroup: 25
    )
  },
  local!queueKeys: split(
    tostring(a!keys(index(local!queueMap, 1, {}))),
    ";"
  ),
  local!updatedMap: a!forEach(
    items: local!participantMap,
    expression: a!localVariables(
      local!pMap: fv!item,
      a!update(
        local!pMap,
        a!flatten(local!queueKeys[1]),
        index(
          index(
            local!queueMap,
            tostring(local!queueKeys[1]),
            {}
          ),
          wherecontains(
            local!pMap.participantId,
            local!queueMap.participantId
          ),
          {}
        )
      )
    )
  ),
  local!updatedMap
)

Here is the results of this code:

  Discussion posts and replies are publicly visible

Parents Reply Children
No Data