Skip to main content
October 3, 2024
Solved

how can i create map or key value pairs of existing attached code.

  • October 3, 2024
  • 5 replies
  • 0 views

a!localVariables(
  
  local!actualData: 	
  {a!map(standardFieldId: 277, categoryId: 350, ticketTypeId: 439, providerTypeLookupRefId: 42, assignee: fn!touser("egbeyong@test.com"), slaId: 379, priorityLookupRefId: 30, statusLookupRefId: 39, subStatusLookupRefId: 49, description: "Description Auto fill", submitterLookupRefId: 8, dueDate: fn!date(2024, 9, 25), isActive: true, createdBy: fn!touser("test.test@test.com"), createdDt: fn!datetime(2024, 9, 25, 10, 26, 55, 0), updatedBy: fn!touser("test.test@test.com"), updatedDt: fn!datetime(2024, 9, 25, 10, 27, 2, 0), ticketTypeName: "Provider Data Edit", derivedTicketId: "PRVDATAEDIT-277", dueDateSpecial: fn!date(2024, 9, 25), daysLeft: -5)},
  local!data: 	
  {a!map(escalationFieldId: 14069, escalationPathwayId: 387, isRequired: true, visibilityStatusLookupRefId: fn!tointeger(null), autofillSourceFieldName: "description", autofillDestFieldName: "code", bigQueryRule: fn!tointeger(null), automationTypeLookupId: 40, isVisible: true, isActive: true, createdBy: "test.test@test.com", createdDt: fn!datetime(2024, 9, 30, 3, 54, 20, 0), updatedBy: "test.test@test.com", updatedDt: fn!datetime(2024, 9, 30, 3, 54, 20, 0), destTicketTypeId: 268, uuid: "f03b6999-c073-43b7-a584-04aa5e988710"), a!map(escalationFieldId: 14034, escalationPathwayId: 387, isRequired: true, visibilityStatusLookupRefId: fn!tointeger(null), autofillSourceFieldName: "description", autofillDestFieldName: "description", bigQueryRule: fn!tointeger(null), automationTypeLookupId: 40, isVisible: true, isActive: true, createdBy: "test.test@test.com", createdDt: fn!datetime(2024, 9, 30, 3, 54, 20, 0), updatedBy: "test.test@test.com", updatedDt: fn!datetime(2024, 9, 30, 3, 54, 20, 0), destTicketTypeId: 268, uuid: "0038a9e9-e0d3-4c36-8b50-eb97ecbbf39e"), a!map(escalationFieldId: 14032, escalationPathwayId: 387, isRequired: true, visibilityStatusLookupRefId: fn!tointeger(null), autofillSourceFieldName: "summary", autofillDestFieldName: "summary", bigQueryRule: fn!tointeger(null), automationTypeLookupId: 40, isVisible: true, isActive: true, createdBy: "test.test@test.com", createdDt: fn!datetime(2024, 9, 30, 3, 54, 20, 0), updatedBy: "test.test@test.com", updatedDt: fn!datetime(2024, 9, 30, 3, 54, 20, 0), destTicketTypeId: 268, uuid: "6c092428-7b84-465b-8131-de5d2f83477e")},
  local!actualKeys: local!3data.autofillDestFieldName,
  index(
    local!actualData,
    local!data.autofillSourceFieldName,
    {}
  ), /* returns Values of matching autofillSourceFieldName of local!data  from local!actualdata's description(Key)*/

  /*just taking an example of first map present in local!data if in local!data value of autofillSourceFieldName which is description in first map is present in the local!actualdata then key "description"  then Key value pair should be of {code:"Description Auto Fill"}code is autofillDestFieldName in local!data*/

)

Hi All ,

Let me know how should i prepare the map or key value pairs dynamically of mentioned code 

Thanks 

Best answer by stefanhelzle0001

I copied your code and really tried to understand what you want to achieve. I came up with this, but not sure whether it is correct.

a!localVariables(
  local!actualData: {
    a!map(
      standardFieldId: 277,
      categoryId: 350,
      ticketTypeId: 439,
      providerTypeLookupRefId: 42,
      assignee: fn!touser("egbeyong@test.com"),
      slaId: 379,
      priorityLookupRefId: 30,
      statusLookupRefId: 39,
      subStatusLookupRefId: 49,
      description: "Description Auto fill",
      submitterLookupRefId: 8,
      dueDate: fn!date(2024, 9, 25),
      isActive: true,
      createdBy: fn!touser("test.test@test.com"),
      createdDt: fn!datetime(2024, 9, 25, 10, 26, 55, 0),
      updatedBy: fn!touser("test.test@test.com"),
      updatedDt: fn!datetime(2024, 9, 25, 10, 27, 2, 0),
      ticketTypeName: "Provider Data Edit",
      derivedTicketId: "PRVDATAEDIT-277",
      dueDateSpecial: fn!date(2024, 9, 25),
      daysLeft: - 5
    )
  },
  local!data: {
    a!map(
      escalationFieldId: 14069,
      escalationPathwayId: 387,
      isRequired: true,
      visibilityStatusLookupRefId: fn!tointeger(null),
      autofillSourceFieldName: "description",
      autofillDestFieldName: "code",
      bigQueryRule: fn!tointeger(null),
      automationTypeLookupId: 40,
      isVisible: true,
      isActive: true,
      createdBy: "test.test@test.com",
      createdDt: fn!datetime(2024, 9, 30, 3, 54, 20, 0),
      updatedBy: "test.test@test.com",
      updatedDt: fn!datetime(2024, 9, 30, 3, 54, 20, 0),
      destTicketTypeId: 268,
      uuid: "f03b6999-c073-43b7-a584-04aa5e988710"
    ),
    a!map(
      escalationFieldId: 14034,
      escalationPathwayId: 387,
      isRequired: true,
      visibilityStatusLookupRefId: fn!tointeger(null),
      autofillSourceFieldName: "description",
      autofillDestFieldName: "description",
      bigQueryRule: fn!tointeger(null),
      automationTypeLookupId: 40,
      isVisible: true,
      isActive: true,
      createdBy: "test.test@test.com",
      createdDt: fn!datetime(2024, 9, 30, 3, 54, 20, 0),
      updatedBy: "test.test@test.com",
      updatedDt: fn!datetime(2024, 9, 30, 3, 54, 20, 0),
      destTicketTypeId: 268,
      uuid: "0038a9e9-e0d3-4c36-8b50-eb97ecbbf39e"
    ),
    a!map(
      escalationFieldId: 14032,
      escalationPathwayId: 387,
      isRequired: true,
      visibilityStatusLookupRefId: fn!tointeger(null),
      autofillSourceFieldName: "summary",
      autofillDestFieldName: "summary",
      bigQueryRule: fn!tointeger(null),
      automationTypeLookupId: 40,
      isVisible: true,
      isActive: true,
      createdBy: "test.test@test.com",
      createdDt: fn!datetime(2024, 9, 30, 3, 54, 20, 0),
      updatedBy: "test.test@test.com",
      updatedDt: fn!datetime(2024, 9, 30, 3, 54, 20, 0),
      destTicketTypeId: 268,
      uuid: "6c092428-7b84-465b-8131-de5d2f83477e"
    )
  },
  a!forEach(
    items: local!data,
    expression: if(
      contains(a!keys(local!actualData[1]), fv!item.autofillSourceFieldName),
      a!update(
        a!map(),
        fv!item.autofillDestFieldName,
        local!actualData[1][fv!item.autofillSourceFieldName]
      ),
      {}
    )
  )  
)

5 replies

somasundaram.d
October 3, 2024

Can you explain more on your requirement. Because you already have the map which is giving you the description based on autofillSourceFieldName.

October 3, 2024

Sure , In local!data, if the value of autofillSourceFieldName matches a key in local!actualData, then the output should consist of a key-value pair where the key is autofillDestFieldName from local!data and the value corresponds to the matching key in local!actualData.

October 3, 2024

Hi Klaus, I copied your code and tried, I hope this is my correct understanding for your requirement.

a!localVariables(
local!actualData: {
a!map(
standardFieldId: 277,
categoryId: 350,
ticketTypeId: 439,
providerTypeLookupRefId: 42,
assignee: fn!touser("egbeyong@test.com"),
slaId: 379,
priorityLookupRefId: 30,
statusLookupRefId: 39,
subStatusLookupRefId: 49,
description: "Description Auto fill",
submitterLookupRefId: 8,
dueDate: fn!date(2024, 9, 25),
isActive: true,
createdBy: fn!touser("test.test@test.com"),
createdDt: fn!datetime(2024, 9, 25, 10, 26, 55, 0),
updatedBy: fn!touser("test.test@test.com"),
updatedDt: fn!datetime(2024, 9, 25, 10, 27, 2, 0),
ticketTypeName: "Provider Data Edit",
derivedTicketId: "PRVDATAEDIT-277",
dueDateSpecial: fn!date(2024, 9, 25),
daysLeft: - 5,
code:"Test",
summary:"Testwer"
)
},
local!data: {
a!map(
escalationFieldId: 14069,
escalationPathwayId: 387,
isRequired: true,
visibilityStatusLookupRefId: fn!tointeger(null),
autofillSourceFieldName: "description",
autofillDestFieldName: "code",
bigQueryRule: fn!tointeger(null),
automationTypeLookupId: 40,
isVisible: true,
isActive: true,
createdBy: "test.test@test.com",
createdDt: fn!datetime(2024, 9, 30, 3, 54, 20, 0),
updatedBy: "test.test@test.com",
updatedDt: fn!datetime(2024, 9, 30, 3, 54, 20, 0),
destTicketTypeId: 268,
uuid: "f03b6999-c073-43b7-a584-04aa5e988710"
),
a!map(
escalationFieldId: 14034,
escalationPathwayId: 387,
isRequired: true,
visibilityStatusLookupRefId: fn!tointeger(null),
autofillSourceFieldName: "description",
autofillDestFieldName: "description",
bigQueryRule: fn!tointeger(null),
automationTypeLookupId: 40,
isVisible: true,
isActive: true,
createdBy: "test.test@test.com",
createdDt: fn!datetime(2024, 9, 30, 3, 54, 20, 0),
updatedBy: "test.test@test.com",
updatedDt: fn!datetime(2024, 9, 30, 3, 54, 20, 0),
destTicketTypeId: 268,
uuid: "0038a9e9-e0d3-4c36-8b50-eb97ecbbf39e"
),
a!map(
escalationFieldId: 14032,
escalationPathwayId: 387,
isRequired: true,
visibilityStatusLookupRefId: fn!tointeger(null),
autofillSourceFieldName: "summary",
autofillDestFieldName: "summary",
bigQueryRule: fn!tointeger(null),
automationTypeLookupId: 40,
isVisible: true,
isActive: true,
createdBy: "test.test@test.com",
createdDt: fn!datetime(2024, 9, 30, 3, 54, 20, 0),
updatedBy: "test.test@test.com",
updatedDt: fn!datetime(2024, 9, 30, 3, 54, 20, 0),
destTicketTypeId: 268,
uuid: "6c092428-7b84-465b-8131-de5d2f83477e"
)
},
local!actualKeys: index(local!data,"autofillDestFieldName",null),
local!dictionaryValues:index(local!actualData,local!actualKeys,null),
createdictionary(
touniformstring(local!actualKeys),
touniformstring(local!dictionaryValues)
)
)

stefanhelzle0001
Brainy
October 3, 2024

I copied your code and really tried to understand what you want to achieve. I came up with this, but not sure whether it is correct.

a!localVariables(
  local!actualData: {
    a!map(
      standardFieldId: 277,
      categoryId: 350,
      ticketTypeId: 439,
      providerTypeLookupRefId: 42,
      assignee: fn!touser("egbeyong@test.com"),
      slaId: 379,
      priorityLookupRefId: 30,
      statusLookupRefId: 39,
      subStatusLookupRefId: 49,
      description: "Description Auto fill",
      submitterLookupRefId: 8,
      dueDate: fn!date(2024, 9, 25),
      isActive: true,
      createdBy: fn!touser("test.test@test.com"),
      createdDt: fn!datetime(2024, 9, 25, 10, 26, 55, 0),
      updatedBy: fn!touser("test.test@test.com"),
      updatedDt: fn!datetime(2024, 9, 25, 10, 27, 2, 0),
      ticketTypeName: "Provider Data Edit",
      derivedTicketId: "PRVDATAEDIT-277",
      dueDateSpecial: fn!date(2024, 9, 25),
      daysLeft: - 5
    )
  },
  local!data: {
    a!map(
      escalationFieldId: 14069,
      escalationPathwayId: 387,
      isRequired: true,
      visibilityStatusLookupRefId: fn!tointeger(null),
      autofillSourceFieldName: "description",
      autofillDestFieldName: "code",
      bigQueryRule: fn!tointeger(null),
      automationTypeLookupId: 40,
      isVisible: true,
      isActive: true,
      createdBy: "test.test@test.com",
      createdDt: fn!datetime(2024, 9, 30, 3, 54, 20, 0),
      updatedBy: "test.test@test.com",
      updatedDt: fn!datetime(2024, 9, 30, 3, 54, 20, 0),
      destTicketTypeId: 268,
      uuid: "f03b6999-c073-43b7-a584-04aa5e988710"
    ),
    a!map(
      escalationFieldId: 14034,
      escalationPathwayId: 387,
      isRequired: true,
      visibilityStatusLookupRefId: fn!tointeger(null),
      autofillSourceFieldName: "description",
      autofillDestFieldName: "description",
      bigQueryRule: fn!tointeger(null),
      automationTypeLookupId: 40,
      isVisible: true,
      isActive: true,
      createdBy: "test.test@test.com",
      createdDt: fn!datetime(2024, 9, 30, 3, 54, 20, 0),
      updatedBy: "test.test@test.com",
      updatedDt: fn!datetime(2024, 9, 30, 3, 54, 20, 0),
      destTicketTypeId: 268,
      uuid: "0038a9e9-e0d3-4c36-8b50-eb97ecbbf39e"
    ),
    a!map(
      escalationFieldId: 14032,
      escalationPathwayId: 387,
      isRequired: true,
      visibilityStatusLookupRefId: fn!tointeger(null),
      autofillSourceFieldName: "summary",
      autofillDestFieldName: "summary",
      bigQueryRule: fn!tointeger(null),
      automationTypeLookupId: 40,
      isVisible: true,
      isActive: true,
      createdBy: "test.test@test.com",
      createdDt: fn!datetime(2024, 9, 30, 3, 54, 20, 0),
      updatedBy: "test.test@test.com",
      updatedDt: fn!datetime(2024, 9, 30, 3, 54, 20, 0),
      destTicketTypeId: 268,
      uuid: "6c092428-7b84-465b-8131-de5d2f83477e"
    )
  },
  a!forEach(
    items: local!data,
    expression: if(
      contains(a!keys(local!actualData[1]), fv!item.autofillSourceFieldName),
      a!update(
        a!map(),
        fv!item.autofillDestFieldName,
        local!actualData[1][fv!item.autofillSourceFieldName]
      ),
      {}
    )
  )  
)

mikes0011
Brainy
October 3, 2024

My one small edit here is: there is no need to run a!keys() over and over again (inside every iteration of the loop), since it's a static value.