Record
Provide manipulate functions on records: get, update, delete, update the record status & assignees in the kintone app
Warning
The user must set the promises to global to use the module:
DispatchQueue.promise = .global()
Constructor
Parameter
| Name | Type | Required | Description |
|---|---|---|---|
| connection | Connection | yes | The connection module of this SDK. |
Sample code
Init record module
Source code
let username = {your_user_name}
let password = {your_user_password}
let domain = {your_domain}
// Init authenticationAuth
let auth = Auth()
auth.setPasswordAuth(username, password)
// Init Connection without "guest space ID"
let connection = Connection(domain, auth)
// Init Record Module
let recordManagement = Record(connection)
Methods
getRecord
Retrieves details of 1 record from an app.
Declaration
func getRecord(_ app: Int,_ id: Int) -> Promise<GetRecordResponse>
Parameter
| Name | Type | Required | Description |
|---|---|---|---|
| app | Integer | yes | The kintone app ID |
| id | Integer | yes | The record ID in kintone app |
Return
Promise<GetRecordResponse>
Sample code
Get record
Source code
// execute get record API
let appID = {your_app_id}
let recordID = {your_record_id}
recordManagement.getRecord(appID, recordID).then{response in
let resultData: Dictionary<String, FieldValue> = response.getRecord()!
print(resultData["$id"]?.getValue())
for (code, value) in resultData {
print(value.getType()!)
print(value.getValue())
}
}.catch{ error in
if error is KintoneAPIException {
print((error as! KintoneAPIException).toString()!)
}
else {
print((error as! Error).localizedDescription)
}
}
getRecords
Retrieves details of multiple records from an app using a query string.
Declaration
func getRecords(_ app: Int, _ query: String?, _ fields: [String]?, _ totalCount: Bool?) -> Promise<GetRecordsResponse>
Parameter
| Name | Type | Required | Description |
|---|---|---|---|
| app | Integer | yes | The kintone app ID |
| query | String | (optional) | The query string that will specify what records will be responded. |
| fields | ArrayList<String> | (optional) | List of field codes you want in the response. |
| totalCount | Boolean | (optional) | If "true", the request will retrieve total count of records match with query conditions. |
Return
Promise<GetRecordsResponse>
Sample code
Get records
Source code
let appID = {your_app_id}
let query = "レコード番号 >= 2 order by レコード番号 asc"
recordManagement.getRecords(appID, query, nil, true).then{response in
let records = response?.getRecords()
for (i, dval) in (records?.enumerated())! {
for (code, value) in dval {
print(value.getType())
print(value.getValue())
}
}
}.catch{ error in
if error is KintoneAPIException {
print((error as! KintoneAPIException).toString()!)
}
else {
print((error as! Error).localizedDescription)
}
}
getAllRecordsByCursor
Retrieves details of multiple records from an app using a query string.
Declaration
func getAllRecordsByCursor(_ app: Int, _ query: String? = nil, _ fields: [String]? = nil) -> Promise<GetRecordsResponse>
Parameter
| Name | Description |
|---|---|
| app | The kintone app ID |
| query | The query string that will specify what records will be responded. |
| fields | List of field codes you want in the response. |
Return
Promise<GetRecordsResponse>
Sample code
Get all record by cursor
Source code
let username = {your_user_name}
let password = {your_user_password}
let domain = {your_domain}
// Init authenticationAuth
var auth = Auth()
auth = auth.setPasswordAuth(username, password)
// Init Connection without "guest space ID"
let connection = Connection(domain, auth)
// Init Record Module
let recordManagement = Record(connection)
// execute get records API
let appID = {your_app_id}
let query = "レコード番号 >= 2 order by レコード番号 asc"
recordManagement.getAllRecordsByCursor(appID, query, nil).then{response in
let records = response.getRecords()
for (_, dval) in (records?.enumerated())! {
for (_, value) in dval {
print(value.getType() as Any)
print(value.getValue() as Any)
}
}
}.catch{ error in
if error is KintoneAPIException {
print((error as! KintoneAPIException).toString()!)
}
else {
print(error.localizedDescription)
}
}
getAllRecordsByQuery
Get all records from an app by using a query string.
Declaration
func getAllRecordsByQuery(_ app: Int,_ query: String? = "",_ fields: [String]? = [],_ totalCount: Bool = false) -> Promise<GetRecordsResponse>
Parameter
| Name | Type | Required | Description |
|---|---|---|---|
| app | Integer | yes | The kintone app ID |
| query | String | (optional) | The query string that will specify what records will be responded. |
| fields | Array<String> | (optional) | List of field codes you want in the response. |
| totalCount | Boolean | (optional) | If "true", the request will retrieve total count of records match with query conditions. |
Return
Promise<GetRecordsResponse>
Sample code
Get all records by query
Source code
let appID = {YOUR_APP_ID}
let query = "{YOUR_QUERY}"
recordManagement.getAllRecordsByQuery(appID, query, nil, true).then {response in
let records = response.getRecords()
for (_, dval) in (records?.enumerated())! {
for (_, value) in dval {
print(value.getType() as Any)
print(value.getValue() as Any)
}
}
}.catch{ error in
if error is KintoneAPIException {
print((error as! KintoneAPIException).toString()!)
}
else {
print((error).localizedDescription)
}
}
addRecord
Add one record to an app.
Declaration
func addRecord(_ app: Int, _ record: [String:FieldValue]?) -> Promise<AddRecordResponse>
Parameter
| Name | Type | Required | Description |
|---|---|---|---|
| app | Integer | yes | The kintone app ID |
| record | Dictionary<String, FieldValue> | (optional) | The record data to be add to kintone app. About the format, please look the sample below or reference at the end of this page |
Return
Promise<AddRecordResponse>
Sample code
Add record
Source code
var addData: Dictionary<String, FieldValue> = [:]
var field = FieldValue()
field.setType(FieldType.SINGLE_LINE_TEXT)
field.setValue("Test Value")
addData[{your_field_code}] = field
// execute add record API
let appID = {your_app_id}
recordManagement.addRecord(appID, addData).then{response in
print(response.getId())
print(response.getRevision())
}.catch{ error in
if error is KintoneAPIException {
print((error as! KintoneAPIException).toString()!)
}
else {
print((error as! Error).localizedDescription)
}
}
addRecords
Add multiple records to an app.
Declaration
func addRecords(_ app: Int, _ records: [[String:FieldValue]]) -> Promise<AddRecordsResponse>
Parameter
| Name | Type | Required | Description |
|---|---|---|---|
| app | Integer | yes | The kintone app ID |
| records | ArrayList<Dictionary<String, FieldValue>> | yes | List of records data to be add to kintone app. About the format, please look the sample below or reference at the end of this page. |
Return
Promise<AddRecordsResponse>
Sample code
Add multi records
Source code
var addData1: Dictionary<String, FieldValue> = [:]
var addData2: Dictionary<String, FieldValue> = [:]
var field1 = FieldValue()
var field2 = FieldValue()
field1.setType(FieldType.SINGLE_LINE_TEXT)
field1.setValue("Test Value1")
field2.setType(FieldType.SINGLE_LINE_TEXT)
field2.setValue("Test Value2")
addData1[{your_field_code}] = field1
addData2[{your_field_code}] = field2
var addDataList = [addData1, addData2]
// execute add records API
let appID = 311
recordManagement.addRecords(appID, addDataList).then{response in
print(response!.getIDs())
print(response!.getRevisions())
}.catch{ error in
if error is KintoneAPIException {
print((error as! KintoneAPIException).toString()!)
}
else {
print((error as! Error).localizedDescription)
}
}
addAllRecords
Add all records to an app.
Declaration
func addAllRecords (_ app: Int, _ records: [[String:FieldValue]] ) -> Promise<BulkRequestResponse>
Parameter
| Name | Description |
|---|---|
| app | The kintone app ID |
| records | List of records data to be add to kintone app. About the format, please look the sample below or reference at the end of this page. |
Return
Promise<BulkRequestResponse>
Sample code
Add multi records
Source code
var addData1: Dictionary<String, FieldValue> = [:]
var addData2: Dictionary<String, FieldValue> = [:]
let field1 = FieldValue()
let field2 = FieldValue()
field1.setType(FieldType.SINGLE_LINE_TEXT)
field1.setValue("Test Value1")
field2.setType(FieldType.SINGLE_LINE_TEXT)
field2.setValue("Test Value2")
addData1[{your_field_code}] = field1
addData2[{your_field_code}] = field2
let addDataList = [addData1, addData2]
// execute add records API
let appID = 311
recordManagement.addAllRecords(appID, addDataList).then{response in
for items in response.getResults()! {
let addRecordsResponse = items as! [AddRecordsResponse]
for _ in addRecordsResponse {
print(response.getResults()!)
}
}
}.catch{ error in
var errorString = ""
if (type(of: error) == BulksException.self) {
errorString = (error as! BulksException).getError()!
} else {
errorString = error.localizedDescription
}
print(errorString)
}
updateRecordByID
Updates details of 1 record in an app by specifying its record number.
Declaration
func updateRecordByID(_ app: Int, _ id: Int, _ record: [String:FieldValue]?, _ revision: Int?) -> Promise<UpdateRecordResponse>
Parameter
| Name | Type | Required | Description |
|---|---|---|---|
| app | Integer | yes | The kintone app ID |
| id | Integer | yes | The record ID on kintone app |
| record | Dictionary<String, FieldValue> | yes | The record data to be updated in the kintone app. About the format, please look the sample below or reference at the end of this page. |
| revision | Integer | (optional) | The revision number of record |
Return
Promise<UpdateRecordResponse>
Sample code
Update record by ID
Source code
var updateData:Dictionary<String, FieldValue> = [:]
var field = FieldValue()
field.setType(FieldType.SINGLE_LINE_TEXT)
field.setValue("Test Value Update")
updateData[{your_field_code}] = field
// execute update record API
let appID = {your_app_id}
let updRecID = {your_record_id}
recordManagement.updateRecordByID(appID, updRecID, updateData , nil).then{response in
print(response.getRevision())
}.catch{ error in
if error is KintoneAPIException {
print((error as! KintoneAPIException).toString()!)
}
else {
print((error as! Error).localizedDescription)
}
}
updateRecordByUpdateKey
Updates details of 1 record in an app by the unique key.
Declaration
func updateRecordByUpdateKey(_ app: Int, _ updateKey: RecordUpdateKey, _ record: [String:FieldValue]?, _ revision: Int?) -> Promise<UpdateRecordResponse>
Parameter
| Name | Type | Required | Description |
|---|---|---|---|
| app | Integer | yes | The kintone app ID |
| updateKey | RecordUpdateKey | yes | The unique key of the record to be updated. About the format, please look the sample below or reference at the end of this page. |
| record | Dictionary<String, FieldValue> | yes | The record data will be added to the kintone app. About the format, please look the sample below or reference at the end of this page. |
| revision | Integer | (optional) | The revision number of record |
Return
Promise<UpdateRecordResponse>
Sample code
Update record by UpdateKey
Source code
var updateData: Dictionary<String, FieldValue> = [:]
var field = FieldValue()
field.setType(FieldType.SINGLE_LINE_TEXT)
field.setValue("Test Value Update For Key")
updateData[{your_field_code}] = field
// create update key
let updKey = RecordUpdateKey("{your_field_code}", "update key value")
// execute update record API
let appID = {your_app_id}
recordManagement.updateRecordByUpdateKey(appID, updKey, updateData, nil).then{response in
print(response.getRevision())
}.catch{ error in
if error is KintoneAPIException {
print((error as! KintoneAPIException).toString()!)
}
else {
print((error as! Error).localizedDescription)
}
}
updateRecords
Updates details of multiple records in an app, by specifying their record number, or a different unique key.
Declaration
func updateRecords(_ app: Int, _ records: [RecordUpdateItem]) -> Promise<UpdateRecordsResponse>
Parameter
| Name | Type | Required | Description |
|---|---|---|---|
| app | Integer | yes | The kintone app ID |
| records | ArrayList<RecordUpdateItem> | yes | The record data will be added to kintone app. About the format, please look the sample below or reference at the end of this page. |
Return
Promise<UpdateRecordsResponse>
Sample code
Update multi records
Source code
var recId1 = {your_record_id}
var recId2 = {your_record_id}
var updateData1: Dictionary<String, FieldValue> = [:]
var updateData2: Dictionary<String, FieldValue> = [:]
var field1 = FieldValue()
var field2 = FieldValue()
field1.setType(FieldType.SINGLE_LINE_TEXT)
field1.setValue("Test Update Value1 ")
field2.setType(FieldType.SINGLE_LINE_TEXT)
field2.setValue("Test Update Value2")
updateData1[{your_field_code}] = field1
updateData2[{your_field_code}] = field2
var updateDataItem1 = RecordUpdateItem(recId1, nil, nil, updateData1)
var updateDataItem2 = RecordUpdateItem(recId2, nil, nil, updateData2)
let updateItemList = [updateDataItem1 , updateDataItem2]
// execute update records API
let appID = {your_app_id}
recordManagement.updateRecords(appID, updateItemList).then{response in
for value in (response!.getRecords())! {
print(value.getID())
print(value.getRevision())
}
}.catch{ error in
if error is KintoneAPIException {
print((error as! KintoneAPIException).toString()!)
}
else {
print((error as! Error).localizedDescription)
}
}
updateAllRecords
Updates details of all records in an app.
Declaration
func updateAllRecords (_ app: Int, _ records: [RecordUpdateItem]) -> Promise<BulkRequestResponse>
Parameter
| Name | Description |
|---|---|
| app | The kintone app ID |
| records | The record data will be added to kintone app. About the format, please look the sample below or reference at the end of this page. |
Return
Promise<BulkRequestResponse>
Sample code
Update multi records
Source code
let recId1 = {your_record_id}
let recId2 = {your_record_id}
var updateData1: Dictionary<String, FieldValue> = [:]
var updateData2: Dictionary<String, FieldValue> = [:]
let field1 = FieldValue()
let field2 = FieldValue()
field1.setType(FieldType.SINGLE_LINE_TEXT)
field1.setValue("Test Update Value1 ")
field2.setType(FieldType.SINGLE_LINE_TEXT)
field2.setValue("Test Update Value2")
updateData1[{your_field_code}] = field1
updateData2[{your_field_code}] = field2
let updateDataItem1 = RecordUpdateItem(recId1, nil, nil, updateData1)
let updateDataItem2 = RecordUpdateItem(recId2, nil, nil, updateData2)
let updateItemList = [updateDataItem1 , updateDataItem2]
// execute update records API
let appID = {your_app_id}
recordManagement.updateAllRecords(appID, updateItemList).then{response in
for result in response.getResults()! {
let updateRecordsResponse = result as! [UpdateRecordsResponse]
for item in updateRecordsResponse {
for record in item.getRecords()! {
print(record.getID() as Any)
print(record.getRevision() as Any)
}
}
}
}.catch{ error in
var errorString = ""
if (type(of: error) == BulksException.self) {
errorString = (error as! BulksException).getError()!
} else {
errorString = error.localizedDescription
}
print(errorString)
}
deleteRecords(_ app: Int, _ ids: [Int])
Deletes multiple records in an app.
Declaration
func deleteRecords(_ app: Int, _ ids: [Int]) -> Promise<Void>
Parameter
| Name | Type | Required | Description |
|---|---|---|---|
| app | Integer | yes | The kintone app ID |
| ids | ArrayList<Integer> | yes | The list ids of record will be delete. |
Return
Promise<Void>
Sample code
Delete multi record
Source code
let appID = {your_app_id}
let delRecordID1 = {your_record_id1}
let delRecordID2 = {your_record_id2}
let delIdList = [delRecordID1, delRecordID2]
recordManagement.deleteRecords(appID, delIdList)
.catch{ error in
if error is KintoneAPIException {
print((error as! KintoneAPIException).toString()!)
}
else {
print((error as! Error).localizedDescription)
}
}
deleteAllRecordsByQuery
Delete all records by indicating query. Can delete over 2000 records, but can't do rollback.
Declaration
func deleteAllRecordsByQuery(_ app: Int,_ query: String? = "") -> Promise<BulkRequestResponse>
Parameter
| Name | Description |
|---|---|
| app | The kintone app ID |
| query | The query string that will specify what records will be responded. If nothing is specified, fields will be returned from all accessible records. The query detail can't indicate limit and offset. |
Return
Promise<BulkRequestResponse>
Sample code
Delete all records by query
Source code
let appID = {YOUR_APP_ID}
let query = "{YOUR_QUERY}"
recordManagement.deleteAllRecordsByQuery(appID, query)
.then { resp in
let results = resp.getResults()
print(results!)
}.catch{ error in
if error is BulksException {
print((error as! BulksException).getError()!);
}
else {
print(error.localizedDescription)
}
}
deleteRecordsWithRevision
Deletes multiple records in an app with revision.
Declaration
func deleteRecordsWithRevision(_ app: Int, _ idsWithRevision: [Int:Int?]) -> Promise<Void>
Parameter
| Name | Type | Required | Description |
|---|---|---|---|
| app | Integer | yes | The kintone app ID |
| idsWithRevision | Dictionary<Integer, Integer> | yes | (key: The Id of record, value: The Revision of record.) |
Return
Promise<Void>
Sample code
Delete record with revision
Source code
let appID = {your_app_id}
var delIdAndRevision: Dictionary<Int, Int> = [:]
delIdAndRevision[{your_record_id}] = {your_revision_id}
delIdAndRevision[{your_record_id}] = {your_revision_id}
recordManagement.deleteRecordsWithRevision(appID, delIdAndRevision)
.catch{ error in
if error is KintoneAPIException {
print((error as! KintoneAPIException).toString()!)
}
else {
print((error as! Error).localizedDescription)
}
}
updateRecordAssignees
Update assignees of a record.
Declaration
func updateRecordAssignees(_ app: Int, _ id: Int, _ assignees: [String], _ revision: Int?) -> Promise<UpdateRecordResponse>
Parameter
| Name | Type | Required | Description |
|---|---|---|---|
| app | Integer | yes | The kintone app ID |
| id | Integer | yes | The record ID of kintone app |
| assignees | ArrayList<String> | yes | The user code(s) of the assignee(s) |
| revision | Integer | (option) | The revision number of record |
Return
Promise<UpdateRecordResponse>
Sample code
update record Assignees
Source code
let username = {your_user_name}
let password = {your_user_password}
let domain = {your_domain}
// Init authenticationAuth
let auth = Auth()
auth.setPasswordAuth(username, password)
// Init Connection without "guest space ID"
let connection = Connection(domain, auth)
// Init Record Module
let recordManagement = Record(connection)
// execute update assignees API
let appID = {your_app_od}
let updRecID = {your_record_id}
let assignees = ["{your_user_code}"]
recordManagement.updateRecordAssignees(appID, updRecID, assignees, nil).then{response in
print(response.getRevision())
}.catch{ error in
if error is KintoneAPIException {
print((error as! KintoneAPIException).toString()!)
}
else {
print((error as! Error).localizedDescription)
}
}
updateRecordStatus
Updates the Status of a record of an app.
Declaration
func updateRecordStatus(_ app: Int, _ id: Int, _ action: String, _ assignee: String?, _ revision: Int?) -> Promise<UpdateRecordResponse>
Parameter
| Name | Type | Required | Description |
|---|---|---|---|
| app | Integer | yes | The kintone app ID. |
| id | Integer | yes | The record ID on the kintone app. |
| action | String | yes | The Action name will be run. |
| assignee | String | (Conditionally required) | The next Assignee. Specify the Assignee's login name.Required if the "Assignee List" of the current status is set to "User chooses one assignee from the list to take action", and a selectable assignee exists. |
| revision | Integer | (optional) | The revision of record |
Return
Promise<UpdateRecordResponse>
Sample code
Update record status
Source code
let appID = {your_app_id}
let updRecID = {your_record_id}
let assignees = "{your_user_code}"
let status = "{your_status}"
recordManagement.updateRecordStatus(appID, updRecID, status, assignees, nil).then{response in
print(response.getRevision())
}.catch{ error in
if error is KintoneAPIException {
print((error as! KintoneAPIException).toString()!)
}
else {
print((error as! Error).localizedDescription)
}
}
updateRecordsStatus
Updates the Status of multiple records of an app.
Declaration
func updateRecordsStatus(_ app: Int, _ records: [RecordUpdateStatusItem]) -> Promise<UpdateRecordsResponse>
Parameter
| Name | Type | Required | Description |
|---|---|---|---|
| app | Integer | yes | The kintone app ID |
| records | ArrayList<RecordUpdateStatusItem> | yes | The recod status data. See belowsample codee or reference at the end of this page to know format. |
Return
Promise<UpdateRecordsResponse>
Sample code
Update multi record status
Source code
let appID = {your_app_id}
let updRecID1 = {your_record_id1}
let updRecID2 = {your_record_id2}
let assignees1 = [{your_login_code1}]
let assignees2 = [{your_login_code2}]
let status1 = {your_update_status1}
let status2 = {your_update_status2}
let item1 = RecordUpdateStatusItem(status1, assignees1, updRecID1, nil)
let item2 = RecordUpdateStatusItem(status2, assignees2, updRecID2, nil)
let itemList = [item1, item2]
recordManagement.updateRecordsStatus(appID, itemList).then{response in
for value in (response!.getRecords())! {
print(value.getID())
print(value.getRevision())
}
}.catch{ error in
if error is KintoneAPIException {
print((error as! KintoneAPIException).toString()!)
}
else {
print((error as! Error).localizedDescription)
}
}
getComments
Declaration
func getComments(_ app: Int, _ record: Int, _ order: String?, _ offset: Int?, _ limit: Int?) -> Promise<GetCommentsResponse>
Parameter
| Name | Type | Required | Description |
|---|---|---|---|
| app | Integer | yes | The kintone app ID |
| record | Integer | yes | The kintone app ID |
| order | String | (optional) | The sort order of the Comment ID. Please select asc or desc |
| offset | Integer | (optional) | The number of first comments will be ignored. |
| limit | Integer | (optional) | The number of records to retrieve. |
Return
Promise<GetCommentsResponse>
Sample code
Get comments
Source code
let appID = {your_app_id}
let recordID = {your_record_id}
var response: GetCommentsResponse? = nil
recordManagement.getComments(appID, recordID, nil, nil, nil).then{response in
for value in (response.getComments())! {
print(value.getId())
print(value.getCreatedAt())
print(value.getText())
print(value.getCreator()?.code)
print(value.getMentions())
}
}.catch{ error in
if error is KintoneAPIException {
print((error as! KintoneAPIException).toString()!)
}
else {
print((error as! Error).localizedDescription)
}
}
addComment
Declaration
func addComment(_ app: Int, _ record: Int, _ comment: CommentContent) -> Promise<AddCommentResponse>
Parameter
| Name | Type | Required | Description |
|---|---|---|---|
| app | Integer | yes | The kintone app ID |
| record | Integer | yes | The kintone app ID |
| comment | CommentContent | yes | About the format, please look the sample below or reference at the end of this page. |
Return
Promise<AddCommentResponse>
Sample code
Add comment
Source code
let mention = CommentMention()
let comment = CommentContent()
mention.setCode("cybozu")
mention.setType("USER")
let mentionList = [mention]
comment.setText("add comment")
comment.setMentions(mentionList)
// execute get comments API
let appID = {your_app_id}
let recordID = {your_record_id}
recordManagement.addComment(appID, recordID, comment).then{response in
print(response.getId())
}.catch{ error in
if error is KintoneAPIException {
print((error as! KintoneAPIException).toString()!)
}
else {
print((error as! Error).localizedDescription)
}
}
deleteComment
Declaration
func deleteComment(_ app: Int, _ record: Int, _ comment: Int) -> Promise<Void>
Parameter
| Name | Type | Required | Description |
|---|---|---|---|
| app | Integer | yes | The kintone app ID |
| record | Integer | yes | The record ID on kintone app |
| comment | Integer | yes | The comment ID on kintone record |
Return
Promise<Void>
Sample code
Delete comment
Source code
let appId = {your_app_id}
let recordId = {your_record_id}
let commentId = {your_comment_Id}
recordManagement.deleteComment(appId, recordId, commentId)
.catch{ error in
if error is KintoneAPIException {
print((error as! KintoneAPIException).toString()!)
}
else {
print((error as! Error).localizedDescription)
}
}
upsertRecord
Insert or update a record to kintone app.
Insert the record if the updateKey doesn't exist and update the record if the updateKey exists.
Declaration
func upsertRecord(_ app: Int, _ updateKey: RecordUpdateKey, _ record: [String:FieldValue], _ revision: Int? = -1) -> Promise<AddRecordResponse> or Promise<UpdateRecordResponse>
Parameter
| Name | Description |
|---|---|
| app | The kintone app ID |
| updateKey | The unique key of the record to be updated. About the format, please look the sample below or reference at the end of this page. |
| record | The record data will be added to the kintone app. About the format, please look the sample below or reference at the end of this page. |
| revision | The expected revision number. If the value does not match, an error will occur and the record will not be updated. If the value is not specified or is -1, the revision number will not be checked. |
Return
Promise<AddRecordResponse> or Promise<UpdateRecordResponse>
Sample code
let username = {your_user_name}
let password = {your_user_password}
let domain = {your_domain}
// Init authenticationAuth
var auth = Auth()
auth = auth.setPasswordAuth(username, password)
// Init Connection without "guest space ID"
let connection = Connection(domain, auth)
// Init Record Module
let recordManagement = Record(connection)
// Init data
var upsertData: Dictionary<String, FieldValue> = [:]
let field = FieldValue()
field.setType(FieldType.SINGLE_LINE_TEXT)
field.setValue("Test Value Update For Key")
upsertData[{your_field_code}] = field
// create update key
let updKey = RecordUpdateKey("{your_field_code}", "update key value")
// execute update record API
let appID = {your_app_id}
recordManagement.upsertRecord(appID, updKey, upsertData, nil).then{response in
if let addResponse = response as? AddRecordResponse {
print(addResponse.getRevision())
} else if let updateResponse = response as? UpdateRecordResponse {
print(updateResponse.getRevision())
}
}.catch{ error in
if error is KintoneAPIException {
print((error as! KintoneAPIException).toString()!)
} else {
print(error.localizedDescription)
}
}
upsertRecords
Insert or update up to 1500 records to kintone app.
If the records are over 1500, It is thrown Error.
Insert the records if the updateKey doesn't exist and update the records if the updateKey exists.
Declaration
func upsertRecords(_ app: Int, _ records: [RecordUpsertItem]) -> Promise<BulkRequestResponse>
Parameter
| Name | Description |
|---|---|
| app | The kintone app ID |
| records | The record data Array which has updateKey and record. About the format, please look the sample below or reference at the end of this page. |
Return
Promise<BulkRequestResponse>
Sample code
let username = {your_user_name}
let password = {your_user_password}
let domain = {your_domain}
// Init authenticationAuth
var auth = Auth()
auth = auth.setPasswordAuth(username, password)
// Init Connection without "guest space ID"
let connection = Connection(domain, auth)
// Init Record Module
let recordManagement = Record(connection)
// create update key
let updKey1 = RecordUpdateKey("{your_field_code}", "update key value")
let updKey2 = RecordUpdateKey("{your_field_code}", "update key value")
let updKey3 = RecordUpdateKey("{your_field_code}", "update key value")
let field = FieldValue()
field.setType(FieldType.SINGLE_LINE_TEXT)
field.setValue("Test Value Update For Key")
var record1: Dictionary<String, FieldValue> = [:]
var record2: Dictionary<String, FieldValue> = [:]
var record3: Dictionary<String, FieldValue> = [:]
record1[{your_field_code}] = field
record2[{your_field_code}] = field
record3[{your_field_code}] = field
let recordUpsertItem1 = RecordUpsertItem(updKey1, record1)
let recordUpsertItem2 = RecordUpsertItem(updKey2, record2)
let recordUpsertItem3 = RecordUpsertItem(updKey3, record3)
var upsertRecords: [RecordUpsertItem] = []
upsertRecords.append(recordUpsertItem1)
upsertRecords.append(recordUpsertItem2)
upsertRecords.append(recordUpsertItem3)
// execute update record API
let appID = {your_app_id}
recordManagement.upsertRecords(appID, upsertRecords).then{response in
print(response)
}.catch{ error in
if error is KintoneAPIException {
print((error as! KintoneAPIException).toString()!)
}
else {
print(error.localizedDescription)
}
}