단일 레코드 생성
SObject의 API Name과 필드정보를 바탕으로 하나의 레코드를 생성합니다.
-
Database 클래스에 아래의 메소드를 추가합니다
HttpPost 메소드를 사용합니다.
public static JsonObject createRecord(ConnectionInfo connInfo, String objectName, String jsonBody) { JsonObject jsonObject = null; try { String serviceEndpoint = "/services/data/v58.0/sobjects/" + objectName + "/"; String url = connInfo.getInstanceUrl() + serviceEndpoint; HttpPost req = new HttpPost(url); req.setHeader("Content-type", "application/json"); req.setHeader("Authorization", "Bearer " + connInfo.getAccessToken()); req.setEntity(new StringEntity(jsonBody, ContentType.APPLICATION_JSON)); String result = call(req); try { JsonElement jl = JsonParser.parseString(result); jsonObject = jl.getAsJsonObject(); } catch (JsonParseException jsonException) { jsonException.printStackTrace(); } req.releaseConnection(); } catch (Exception e) { System.out.println(e); } return jsonObject; } -
App 클래스에 아래의 메소드를 추가합니다.
public static void createRecord(ConnectionInfo connectionInfo){ try { String objectName = "Account"; String recordBody = "" + "{" + " \"Name\" : \"Dev Test Company\"," + " \"NumberOfEmployees\" : 100" + "}"; JsonObject jsonObject = Database.createRecord(connectionInfo, objectName, recordBody); Gson gson = new GsonBuilder().setPrettyPrinting().create(); String json = gson.toJson(jsonObject); System.out.println(json); } catch (Exception e) { System.out.println(e); } }recordBody는 JsonObject로 만들어서 String 형태로 변환하여 사용해도 됩니다. -
App 클래스의
main메소드를 아래와 같이 수정을 합니다.// Data function block begin //querySample(connectionInfo); //batchSample(connectionInfo); //querySingle(connectionInfo); createRecord(connectionInfo); // Data function block end -
main메소드 위의Run을 클릭하여 프로그램을 실행해 봅니다.아래와 같은 형식의 데이터가 표시되면 정상적으로 레코드가 생성이 된것입니다.
{ "id": "001IS000002kYvQYAU", "success": true, "errors": [] }여기서 만들어진 레코드를 사용하여 레코드 업데이트 및 삭제를 진행해 보도록 하겠습니다.