Untitled
unknown
apex
2 years ago
1.3 kB
5
Indexable
Never
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)); }