Skip to main content
September 15, 2023
Question

How to update records single time only instead of duplicate ? Union function wont work ..

  • September 15, 2023
  • 1 reply
  • 0 views

a!forEach(
items: ri!pdmDocuments,
expression: a!update(
ri!DocumentDetails,
{

'recordType!PRO Lead Documents.fields.pdmDocumentId',
'recordType!PRO Lead Documents.fields.updatedBy',
'recordType!PRO Lead Documents.fields.updatedDt',
},
{
index(fv!item,'recordType!PDM Document.fields.documentId',{}),
loggedInUser(),
now()
}
)
),


input ri!pdmDocument is {110407,110408},

input ri!DocumentDetails is 

List of PRO Lead Documents - 2 items
PRO Lead Documents
leadId6699(Number (Integer))
workItemId:31206(Number (Integer))
createdBy:"test@scar.com"(Text)
workItemFolderId:110429(Number (Integer))
isActive:true(Boolean)
updatedBy:"test@scar.com"(Text)
documentId:110444(Number (Integer))
documentName:"_Test_Contract_2_"(Text)
updatedDt:9/14/2023 2:49 AM EDT(Date and Time)
leadDocumentLookupRefId:278(Number (Integer))
createdDt:9/14/2023 2:49 AM EDT(Date and Time)
description:""(Text)

PRO Lead Documents

leadId:6699(Number (Integer))
workItemId:31206(Number (Integer))
createdBy:"test@scar.com"(Text)
workItemFolderId:110429(Number (Integer))
isActive:true(Boolean)
updatedBy:"test@scar.com"(Text)
documentId:110446(Number (Integer))
documentName:"_Test_Contract_2_"(Text)
updatedDt:9/14/2023 2:49 AM EDT(Date and Time)
leadDocumentLookupRefId:195(Number (Integer))
createdDt:9/14/2023 2:49 AM EDT(Date and Time)
description:""(Text)

Output recived:

[PRO Lead Documents leadId=6699, workItemId=31206, createdBy=test@scar.com, workItemFolderId=110429, isActive=true, updatedBy=test@scar.com, documentId=110444, documentName=_Test_Contract_2_, updatedDt=9/14/2023 9:12 PM EDT, leadDocumentLookupRefId=278, createdDt=9/14/2023 2:49 AM EDT, description=, PDMDocumentId=110408]; 


[PRO Lead Documents leadId=6699, workItemId=31206, createdBy=test@scar.com, workItemFolderId=110429, isActive=true, updatedBy=test@scar.com, documentId=110446, documentName=_Test_Contract_2_, updatedDt=9/14/2023 9:12 PM EDT, leadDocumentLookupRefId=195, createdDt=9/14/2023 2:49 AM EDT, description=, PDMDocumentId=110408]; 


[PRO Lead Documents leadId=6699, workItemId=31206, createdBy=test@scar.com, workItemFolderId=110429, isActive=true, updatedBy=test@scar.com, documentId=110444, documentName=_Test_Contract_2_, updatedDt=9/14/2023 9:12 PM EDT, leadDocumentLookupRefId=278, createdDt=9/14/2023 2:49 AM EDT, description=, PDMDocumentId=110407]; 


[PRO Lead Documents leadId=6699, workItemId=31206, createdBy=test@scar.com, workItemFolderId=110429, isActive=true, updatedBy=test@scar.com, documentId=110446, documentName=_Test_Contract_2_, updatedDt=9/14/2023 9:12 PM EDT, leadDocumentLookupRefId=195, createdDt=9/14/2023 2:49 AM EDT, description=, PDMDocumentId=110407]

i want to map to each id of ri!pdmDocument to each item of ri!DocumentDetails.. but it is returning 4 items how should i do that ..

1 reply

mathieud0001
Brainy
September 15, 2023

Not sure if this is what you are looking for.

a!localVariables(
  local!documentIds: { 110407, 110408 },
  local!documentDetails: {
    a!map(documentDetailId: 1),
    a!map(documentDetailId: 2)
  },
  a!forEach(
    items: local!documentIds,
    expression: a!update(
      property(local!documentDetails, fv!index),
      {
        "pdmDocumentId",
        "updatedBy",
        "updatedDt"
      },
      { fv!item, loggedInUser(), now() }
    )
  )
)