You need to sign in to do that
Don't have an account?
Adelchi Pelizzo
Json parser for InvocableMethod in Flow
I want to show two fields value in a flow screen, but at the moment it gives me null. I use an Invocable method to retrieve a json file, indetify and store only those two values in a subclass containing two invocablevariable. After executing it in dev console, I can print out in system.debug at line 21 and 26 but not at line 33.
global class par{ @InvocableMethod(label='Get Map' description='Returns the values of Maps') global static List<adel.par.VarWrap> CallMap(){ List<adel.par.VarWrap> wraps = new List<adel.par.VarWrap>(); HttpRequest req = new HttpRequest(); req.setEndpoint('https://maps.googleapis.com/maps/api/geocode/json?address=1600+Amphitheatre+Parkway,+Mountain+View,+CA&key=AIzaSyBOyIQi54LMykmzSOvCuQ2naVvVQEsEfHw'); req.setMethod('GET'); Http http = new Http(); HTTPResponse res = http.send(req); JSONParser parser = JSON.createParser(res.getBody()); while (parser.nextToken()!= null) { adel.par.VarWrap wrap = new adel.par.VarWrap(); if (parser.getCurrentToken() == JSONToken.FIELD_NAME) { string fieldName = parser.getText(); parser.nextToken(); if(fieldName == 'place_id') { wrap.placeRet = parser.getText(); system.debug(wrap.placeRet); parser.nextToken(); }else if(fieldName == 'status') { wrap.statusRet = parser.getText(); system.debug(wrap.statusRet); } } wraps.add(wrap); } system.debug(wraps); return wraps; } global class VarWrap{ @InvocableVariable(label='Place') public String placeRet; @InvocableVariable(label='Status') public String statusRet; } }I understand InvocableMethods can return only lists. It would work if the sObject VarWrap contained only one field value.