DocSF

DocSF

Did You Know?

Advanced visual search system powered by Ajax

Esempio rest future class

In questo esempio una classe future che serve per una callout verso un endpoint esterno.

Questa callout prende dei dati dalla endpoint e aggiorna o crea nuovi prodotti in base al campo sku (se lo trova, aggiorna, se non lo trova crea)

In questo esempio abbiamo anche una wrapper class in quanto i campi del json nnon sono compatibili con i campi dell’oggetto product2

public with sharing class WarehouseCalloutService {

    private static final String WAREHOUSE_URL = 'https://th-superbadge-apex.herokuapp.com/equipment';
    
    // complete this method to make the callout (using @future) to the
    // REST endpoint and update equipment on hand.
    @Future(callout=true)
    public static void runWarehouseEquipmentSync(){
        List<Product2> lstOfEqup = new List<Product2>();
        
        Http http = new Http();
        HttpRequest request = new HttpRequest();
        request.setEndpoint(WAREHOUSE_URL);
        request.setMethod('GET');
        HttpResponse response = http.send(request);
        
        if (response.getStatusCode() == 200){
            List<Json2Apex> lstOfEquipments = (List<Json2Apex>) JSON.deserialize(response.getBody(), List<Json2Apex>.class);
            
            for(Json2Apex inst : lstOfEquipments){
                Product2 prod = new Product2();
                prod.Cost__c = inst.cost;
                prod.Lifespan_Months__c = inst.lifespan;
                prod.Maintenance_Cycle__c = inst.maintenanceperiod;
                prod.Name = inst.name;
                prod.Current_Inventory__c = inst.quantity;
                prod.Replacement_Part__c = inst.replacement;
                prod.Warehouse_SKU__c = inst.sku;
                
                lstOfEqup.add(prod);
            }
        }
        
        if(lstOfEqup != null && lstOfEqup.size() > 0){
            UPSERT lstOfEqup Warehouse_SKU__c;
        }
    }
    
    //Wrapper class for Responce details.
    private class Json2Apex{
        private String id;
        private Integer cost;
        private Integer lifespan;
        private Integer maintenanceperiod;
        private String name;
        private Integer quantity; 
        private boolean replacement;
        private String sku;          
    }

}

Related Post

Salesforce Visualforce: Aprire pagina visualf

Durante la formazione in Salesforce ho avuto spesso a c...

Come aggiornare dei record in salesforce

Se si ha la necessità di fare un update di uno o più ...

Salesforce Commerce Cloud print debug object

Se sei in una pagina isml e devi fare il debug di un og...

Leave a Comment