복수 레코드 업데이트
Json 오브젝트 형식을 사용하여 복수의 레코드를 업데이트할 수 있습니다. 최대 200개까지 동시에 업데이트가 가능하며, 모든 레코드에 오류가 없을 경우에만 업데이트하도록 하거나 일부 오류가 있더라도 나머지 레코드를 업데이트할 수 있습니다.
-
Database 모듈에 아래의 메소드를 추가합니다
HttpPatch(Upsert)를 사용합니다. 또한, 복수의 레코드 작업은 Json 오브젝트가 아닌 Json 배열 형식의 결과를 반환합니다. 레코드들을 생성할 수 있는 Json 파라메터를 사용하면 레코드들을 생성할 수도 있습니다.
def updateRecords(connInfo, data): result = None try: headers = { 'Content-Type' : 'application/json', 'Authorization' : 'Bearer %s' % connInfo.get('accessToken') } url = "%s/services/data/v58.0/composite/sobjects" % connInfo.get('instanceUrl') req = requests.Request('PATCH', url, data=data, headers=headers) prepped = req.prepare() result = call(prepped) except Exception as e: print('Exception -> ', e) return result -
sample.py 모듈에 아래의 메소드를 추가합니다.
def updateRecords(connInfo): try: collection = { "allOrNone" : False, "records" : [{ "attributes" : {"type" : "Account"}, "Id" : "001***************", "Name" : "Test Company 1 Modified" }, { "attributes" : {"type" : "Account"}, "Id" : "001***************", "Name" : "Test Company 2 Modified" }] } result = Database.updateRecords(connInfo, json.dumps(collection)) print(json.dumps(result, indent=2)) except Exception as e: print('Exception -> ', e)Id에 사용되는 레코드 Id들은 복수 레코드 생성에서 생성된 레코드들입니다.allOrNone값은True이면 모든 레코드 셋에 오류가 없어야만 정상적으로 레코드들이 생성됩니다.False이면 오류가 섞여 있어도 오류가 없는 레코드들만 생성을 합니다. -
sample.py 모듈의
main메소드에 아래의 내용을 추가합니다.# Data function block begin # querySample(connInfo) # batchSample(connInfo) # querySingle(connInfo) # createRecord(connInfo) # updateRecord(connInfo) # deleteRecord(connInfo) # createRecords(connInfo) updateRecords(connInfo) # Data function block end -
터미널에서
python sample.py이라고 명령을 실행해 봅니다.Json 배열로 결과값을 반환합니다.
[ { "id": "001***************", "success": true, "errors": [] }, { "id": "001***************", "success": true, "errors": [] } ]