복수 레코드 삭제
Json 오브젝트 형식을 사용하여 복수의 레코드를 업데이트할 수 있습니다. 최대 200개까지 동시에 업데이트가 가능하며, 모든 레코드에 오류가 없을 경우에만 업데이트하도록 하거나 일부 오류가 있더라도 나머지 레코드를 업데이트할 수 있습니다.
-
Database 클래스에 아래의 메소드를 추가합니다
HttpDelete를 사용합니다. 또한, 복수의 레코드 작업은 JsonObject가 아닌 JsonArray 형식의 결과를 반환합니다. 레코드들을 생성할 수 있는 Json 파라메터를 사용하면 레코드들을 생성할 수도 있습니다.
public static JsonArray deleteRecords(ConnectionInfo connInfo, String ids) { JsonArray jsonArray = null; try { String url = connInfo.getInstanceUrl() + "/services/data/v58.0/composite/sobjects/?ids="; HttpDelete req = new HttpDelete(url); req.setHeader("Content-type", "application/json"); req.setHeader("Authorization", "Bearer " + connInfo.getAccessToken()); String result = call(req); try { JsonElement jl = JsonParser.parseString(result); jsonArray = jl.getAsJsonArray(); } catch (JsonParseException jsonException) { jsonException.printStackTrace(); } req.releaseConnection(); } catch (Exception e) { System.out.println(e); } return jsonArray; } -
App 클래스에 아래의 메소드를 추가합니다.
public static void deleteRecords(ConnectionInfo connectionInfo){ try { String ids = "001***************,001****************"; JsonArray result = Database.deleteRecords(connectionInfo, ids); Gson gson = new GsonBuilder().setPrettyPrinting().create(); String json = gson.toJson(result); System.out.println(json); } catch (Exception e) { System.out.println(e); } }ids에 사용되는 레코드 Id들은 복수 레코드 생성에서 생성된 레코드들입니다.allOrNone값은true이면 모든 레코드 셋에 오류가 없어야만 정상적으로 레코드들이 생성됩니다.false이면 오류가 섞여 있어도 오류가 없는 레코드들만 생성을 합니다. -
App 클래스의
main메소드를 아래와 같이 수정을 합니다.// Data function block begin //querySample(connectionInfo); //batchSample(connectionInfo); //querySingle(connectionInfo); //createRecord(connectionInfo); //updateRecord(connectionInfo); //deleteRecord(connectionInfo); //createRecords(connectionInfo); //updateRecords(connectionInfo); deleteRecords(connectionInfo); // Data function block end -
main메소드 위의Run을 클릭하여 프로그램을 실행해 봅니다.Json 배열로 결과값을 반환합니다.
[ { "id": "001***************", "success": true, "errors": [] }, { "id": "001***************", "success": true, "errors": [] } ]