Untitled
unknown
apex
3 years ago
1.3 kB
13
Indexable
List<Product2> produtosSF = new List<Product2>();
List<Map<String, Object>> produtosAPI = new List<Map<String, Object>>();
Map<String, Product2> produtosSFMap = new Map<String, Product2>();
Map<String, Object> produtosAPIMap = new Map<String, Product2>();
for(Product2 currentProduct : produtosSF)
{
produtosSFMap.put(currentProduct.ServiceIdentifier, currentProduct);
}
for(Map<String, Object> currentProduct : produtosAPI)
{
produtosAPIMap.put(String.valueOf(currentProduct.get('ServiceIdentifier')), currentProduct);
}
List<Object> objectsToBeInserted = new List<Object>();
List<Object> objectsToBeUpdated = new List<Object>();
/*
Compara se o object de produtosAPIMap está dentro de produtosSFMap
Caso True: coloca o object de produtosAPIMap no objectsToBeUpdated
Caso False: coloca o object de produtosAPIMap no objectsToBeInserted
*/
for(String currentKey : produtosAPIMap.keySet())
{
if(produtosSFMap.keySet().contains(currentKey))
{
String dateStr = String.valueOf(produtosAPIMap.get(currentKey).get('CreatedDate'));
if(Date.parse(dateStr) > produtosSFMap.get(currentKey).CreatedDate)
objectsToBeUpdated.add(produtosAPIMap.get(currentKey));
}
else:
objectsToBeInserted.add(produtosAPIMap.get(currentKey));
}
Editor is loading...