---
sourceDocument: 호주 API 참조
sourceDocumentLink: https://servicenow-prod.fluidtopics.net/r/ko-KR/api-reference

 Release :

    - australia

ft:locale :

    - ko-KR

ft:publication_title :

    - 호주 API 참조

ft:clusterId :

    - crapiref

bundleId :

    - crapiref

workflow :

    - Creator


---

# NowTableService 클래스 - iOS

# NowTableService 클래스 - iOS {#ariaid-title1}

* 릴리스 버전: Australia
* 
* 업데이트 날짜 2026년 03월 12일
* 
* ![](https://www.servicenow.com/docs/portal-asset/ico-clock) 소요 시간: 130분

NowTableService 클래스는 기존 ServiceNow 테이블의 레코드에 대해 생성, 읽기, 업데이트 및 삭제 작업을 수행할 수 있는 기능을 제공합니다.
{#NowTableServiceiOSAPI__table_vx2_klw_5pb__entry__3}

| 이름 | 유형 | 설명 |
|-|-|-|
| 구성 | [NowService구성](https://servicenow-prod.fluidtopics.net/M3IfRLAWtSzjLKNYBH_PRQ#NowServiceConfigurationiOSStruct "NowServiceConfiguration 구조는 기능 서비스에 대한 구성 정보를 정의합니다.") | 서비스가 초기화될 때 제공된 구성 설정입니다. |
[표 1. 속성]

{#NowTableServiceiOSAPI__table_vx2_klw_5pb}

## NowTableService - create\<Model: SysIdentifiableModel\>(_ model: Model, in tableName: String, coder: Coder, writeOptions: FieldWriteOptions, configuration: FetchConfiguration) 비동기 throw {#ariaid-title2}

지정된 Codable 모델을 지정된 테이블에 삽입합니다.
모델별로 새 레코드를 만들려면 모델이 `SysIdentifiableModel` 프로토콜을 준수해야 합니다. 일반적으로 각 테이블에는 고유한 모델이 있습니다.

모델의 sys_Id 매개변수는 플랫폼에서 생성되므로 생성하는 sysId 동안 무시됩니다.ServiceNow 생성된 플랫폼은 ServiceNow 처리기의 `결과` 모델에 completion 반환됩니다.sys_Id
{#NTblServ-create-async_S_S_S_O_O__table_tqk_gsk_spb__entry__3}

| 이름 | 유형 | 설명 |
|-|-|-|
| 모델 | SysIdentifiableModel | 테이블에 삽입할 필드의 모델 정의입니다. |
| tableName에서 | 문자열 | 인시던트와 같은 기록을 쓸 테이블의 이름입니다. |
| 코더 | 코더 | 옵션입니다. 인스턴스와 주고받는 데이터를 인코딩하거나 디코딩하는 데 사용할 `코더`입니다.ServiceNow 가능한 값: * 기본값: 기본 인코더는 디바이스 `로케일` 및 `시간대`를 사용하여 `yyy-MM-dd HH:mm:ss` 형식을 사용하여 날짜 형식을 지정합니다. * custom(JSONEncoder, JSONDecoder): `사용자 지정` 코더를 사용하여 JSON 디코딩/인코딩을 보다 세부적으로 제어할 수 있습니다. 이 열거형은 특수 날짜 형식, 시간대 또는 로캘을 사용하는 경우와 같이 고유한 `JSONEncoder` 및 `JSONDecoder`를 제공하는 데만 사용합니다. let myEncoder = JSONEncoder() myEncoder.dateFormat = ... let myDecoder = JSONDecoder() myDecoder.dateFormat = ... let coder: Coder = .custom(myEncoder, myDecoder) {#NTblServ-create-async_S_S_S_O_O__ul_nx3_wrd_sqb} 기본값: .default |
| 쓰기 옵션 | [필드 쓰기 옵션](https://servicenow-prod.fluidtopics.net/WOiRi11uSPh_WQiGS~BeYQ#FieldWriteOptionsiOSStruct "FieldWriteOptions 클래스는 인스턴스의 ServiceNow 기록에 있는 필드를 업데이트하거나 작성하기 위한 옵션을 설정하는 기능을 제공합니다.") | 옵션입니다. 기록에 기록되는 데이터에 적용할 구성 옵션입니다. 기본값: nil |
| 구성 | [구성 가져오기](https://servicenow-prod.fluidtopics.net/qqENiJFzWL5KlZdDs2tgnw#FetchConfigiOSStructure "FetchConfiguration 구조는 인스턴스에서 ServiceNow 기록을 가져오기 위한 구성을 정의하는 기능을 제공합니다.") | 옵션입니다. 반환할 기록을 정의하는 필터, 페이지 매김 페이지 크기 제한, 검색할 필드 및 필드에 포함할 항목을 포함하여 검색된 기록에 적용할 구성입니다. 기본값: nil - 모든 기록이 반환됩니다. |
[표 2. 매개변수]

{#NTblServ-create-async_S_S_S_O_O__table_tqk_gsk_spb} {#NTblServ-create-async_S_S_S_O_O__table_uqk_gsk_spb__entry__2}

| 유형 | 설명 |
|-|-|
| 모델 | 메서드가 성공하면 반환됩니다. sys_Id를 포함하여 지정된 테이블에 삽입된 코딩 가능한 모델입니다. 이 sys_id 사용하여 이후 메서드 호출에서 이 기록을 참조합니다. |
| NowDataError | 메서드가 실패할 때 throw됩니다. * `accessToken(AccessTokenProviderError)` * AccessTokenProviderError: 액세스 토큰 제공자의 오류 코드 또는 메시지입니다. * accessTokenRetrievalFailed * userSessionError(_ error: Error) 접근 토큰에 오류가 있을 때 발생합니다. * `첨부 확인` 첨부 파일이 확인에 실패할 때 발생합니다. * `badResponse(statusCode: HTTPStatusCode)` * HTTPStatusCode: 인스턴스에서 받은 상태 코드입니다. 요청에서 예기치 않은 응답을 반환할 때 발생 * `cannotDecodeModel(DecodingError)` * DecodingError: 디코딩 오류가 탐지되었습니다. 코드화 가능한 모델을 JSON에서 디코딩할 수 없을 때 발생합니다. * `cannotDecodeProperty(type: Any, from: String)` * type: 문자열에서 디코딩할 래핑된 유형입니다. * from: 지정된 유형으로 디코딩할 문자열입니다. 문자열로 래핑된 값을 JSON에서 디코딩할 수 없을 때 발생합니다. * `cannotEncodeModel(EncodingError)` * EncodingError: 인코딩 오류가 탐지되었습니다. 코드 가능한 모델을 JSON으로 인코딩할 수 없는 경우 발생합니다. * `cannotParse응답` 인스턴스의 응답을 예상 형식으로 구문 분석할 수 없을 때 발생합니다. * `잘못된 URL` URL을 구성할 수 없을 때 발생합니다. 예를 들어 문자열에 URL에서 잘못된 문자가 포함되어 있거나 빈 문자열인 경우입니다. * `missingAttachmentMetadata` 첨부 파일 메타데이터 헤더가 누락되었을 때 발생 * `missingServiceConfiguration` 예상 서비스 구성이 누락될 때 발생합니다. * `MissingSysID` 예상 sys_id 매개변수가 누락되었을 때 발생합니다. * `네트워크(NetworkServiceError)` * genericError(문자열) * operationCanceled * serviceDisabled * serverError(오류) * systemError(오류) 네트워크 서비스에 오류가 발생할 때 발생합니다. {#NTblServ-create-async_S_S_S_O_O__NowDataErroriOS-ul-enum} |
[표 3. 반환]

{#NTblServ-create-async_S_S_S_O_O__table_uqk_gsk_spb}  
다음 코드 예제에서는 이 메서드를 호출하는 방법을 보여 줍니다.

    struct User: SysIdentifiableModel {
        var sysId: String = ""
        var name: String
    }

    let service: NowTableService = ...
    let user = User(name: "Ash Williams")
    do {
        let result = try await service.create(user, in: "sys_user")
    } catch {
        ...
    }

## NowTableService - create\<Model: SysIdentifiableModel\>(_ model: Model, in tableName: String, coder: Coder, writeOptions: FieldWriteOptions, configuration: FetchConfiguration, completion: @escaping (Result\<Model, NowDataError\>)) {#ariaid-title3}

지정된 Codable 모델을 지정된 테이블에 삽입한 다음 핸들러를 completion 실행합니다.
모델별로 새 레코드를 만들려면 모델이 `SysIdentifiableModel` 프로토콜을 준수해야 합니다. 일반적으로 각 테이블에는 고유한 모델이 있습니다. 예:

    struct User: SysIdentifiableModel {
      var sysId: String = ""
      var name: String
    }

    let service: NowTableService = ...
    let user = User(name: "Ash Williams")
    service.create(Incident(fields: fields), in: tableName, writeOptions: writeOptions, configuration: fetchConfiguration) { [weak self] result in
      switch result {
      case .success(let newUser):
        /// 'newUser' contains the platform assigned 'sys_id', use in subsequent 'update' or 'delete' calls.
      case .failure(let error):
          ...
      }
    }

모델의 sys_Id 매개변수는 플랫폼에서 생성되므로 생성하는 sysId 동안 무시됩니다.ServiceNow 생성된 플랫폼은 ServiceNow 처리기의 `결과` 모델에 completion 반환됩니다.sys_Id
{#NTblServ-create_S_S_S_O_O_O__table_tqk_gsk_spb__entry__3}

| 이름 | 유형 | 설명 |
|-|-|-|
| 모델 | SysIdentifiableModel | 테이블에 삽입할 필드의 모델 정의입니다. |
| tableName에서 | 문자열 | 인시던트와 같은 기록을 쓸 테이블의 이름입니다. |
| 코더 | 코더 | 옵션입니다. 인스턴스와 주고받는 데이터를 인코딩하거나 디코딩하는 데 사용할 `코더`입니다.ServiceNow 가능한 값: * 기본값: 기본 인코더는 디바이스 `로케일` 및 `시간대`를 사용하여 `yyy-MM-dd HH:mm:ss` 형식을 사용하여 날짜 형식을 지정합니다. * custom(JSONEncoder, JSONDecoder): `사용자 지정` 코더를 사용하여 JSON 디코딩/인코딩을 보다 세부적으로 제어할 수 있습니다. 이 열거형은 특수 날짜 형식, 시간대 또는 로캘을 사용하는 경우와 같이 고유한 `JSONEncoder` 및 `JSONDecoder`를 제공하는 데만 사용합니다. let myEncoder = JSONEncoder() myEncoder.dateFormat = ... let myDecoder = JSONDecoder() myDecoder.dateFormat = ... let coder: Coder = .custom(myEncoder, myDecoder) {#NTblServ-create_S_S_S_O_O_O__ul_nx3_wrd_sqb} 기본값: .default |
| 쓰기 옵션 | [필드 쓰기 옵션](https://servicenow-prod.fluidtopics.net/WOiRi11uSPh_WQiGS~BeYQ#FieldWriteOptionsiOSStruct "FieldWriteOptions 클래스는 인스턴스의 ServiceNow 기록에 있는 필드를 업데이트하거나 작성하기 위한 옵션을 설정하는 기능을 제공합니다.") | 옵션입니다. 기록에 기록되는 데이터에 적용할 구성 옵션입니다. 기본값: nil |
| 구성 | [구성 가져오기](https://servicenow-prod.fluidtopics.net/qqENiJFzWL5KlZdDs2tgnw#FetchConfigiOSStructure "FetchConfiguration 구조는 인스턴스에서 ServiceNow 기록을 가져오기 위한 구성을 정의하는 기능을 제공합니다.") | 옵션입니다. 반환할 기록을 정의하는 필터, 페이지 매김 페이지 크기 제한, 검색할 필드 및 필드에 포함할 항목을 포함하여 검색된 기록에 적용할 구성입니다. 기본값: nil - 모든 기록이 반환됩니다. |
| 완료 | @escaping(결과\<모델, NowDataError\>) | 지정된 디코딩 가능한 모델을 만든 후 실행할 완성 핸들러입니다. 완성 핸들러에 대한 반환 값: * 성공: 모델 - 작성된 모델 유형에 대한 데이터입니다. * 실패: NowDataError * `accessToken(AccessTokenProviderError)` * AccessTokenProviderError: 액세스 토큰 제공자의 오류 코드 또는 메시지입니다. * accessTokenRetrievalFailed * userSessionError(_ error: Error) 접근 토큰에 오류가 있을 때 발생합니다. * `첨부 확인` 첨부 파일이 확인에 실패할 때 발생합니다. * `badResponse(statusCode: HTTPStatusCode)` * HTTPStatusCode: 인스턴스에서 받은 상태 코드입니다. 요청에서 예기치 않은 응답을 반환할 때 발생 * `cannotDecodeModel(DecodingError)` * DecodingError: 디코딩 오류가 탐지되었습니다. 코드화 가능한 모델을 JSON에서 디코딩할 수 없을 때 발생합니다. * `cannotDecodeProperty(type: Any, from: String)` * type: 문자열에서 디코딩할 래핑된 유형입니다. * from: 지정된 유형으로 디코딩할 문자열입니다. 문자열로 래핑된 값을 JSON에서 디코딩할 수 없을 때 발생합니다. * `cannotEncodeModel(EncodingError)` * EncodingError: 인코딩 오류가 탐지되었습니다. 코드 가능한 모델을 JSON으로 인코딩할 수 없는 경우 발생합니다. * `cannotParse응답` 인스턴스의 응답을 예상 형식으로 구문 분석할 수 없을 때 발생합니다. * `잘못된 URL` URL을 구성할 수 없을 때 발생합니다. 예를 들어 문자열에 URL에서 잘못된 문자가 포함되어 있거나 빈 문자열인 경우입니다. * `missingAttachmentMetadata` 첨부 파일 메타데이터 헤더가 누락되었을 때 발생 * `missingServiceConfiguration` 예상 서비스 구성이 누락될 때 발생합니다. * `MissingSysID` 예상 sys_id 매개변수가 누락되었을 때 발생합니다. * `네트워크(NetworkServiceError)` * genericError(문자열) * operationCanceled * serviceDisabled * serverError(오류) * systemError(오류) 네트워크 서비스에 오류가 발생할 때 발생합니다. {#NTblServ-create_S_S_S_O_O_O__NowDataErroriOS-ul-enum} {#NTblServ-create_S_S_S_O_O_O__ul_dpx_jvk_spb} |
[표 4. 매개변수]

{#NTblServ-create_S_S_S_O_O_O__table_tqk_gsk_spb} {#NTblServ-create_S_S_S_O_O_O__table_uqk_gsk_spb__entry__2}

| 유형 | 설명 |
|-|-|
| 안 함 |   |
[표 5. 반환]

{#NTblServ-create_S_S_S_O_O_O__table_uqk_gsk_spb}  
<br />

    struct User: SysIdentifiableModel {
      var sysId: String = ""
      var name: String
    }

    let service: NowTableService = ...
    let user = User(name: "Ash Williams")
    service.create(Incident(fields: fields), in: tableName, writeOptions: writeOptions, configuration: fetchConfiguration) { [weak self] result in
      switch result {
      case .success(let newUser):
        /// 'newUser' contains the platform assigned 'sys_id' to use in subsequent update or delete calls.
      case .failure(let error):
       ...
      }
    }

## NowTableService - create\<Model: SysIdentifiableModel\>(model: Model, in tableName: String, path: String = Constants.resultPath, coder: Coder = .default, writeOptions: FieldWriteOptions? = nil, configuration: FetchConfiguration = nil) {#ariaid-title4}

하나의 코드 가능 모델을 지정된 테이블에 삽입합니다.
주:  
이 방법은 더 이상 사용되지 않습니다. 대신 메서드의 async/await 구현을 사용해야 합니다.  
모델별로 새 레코드를 만들려면 모델이 `SysIdentifiableModel` 프로토콜을 준수해야 합니다. 일반적으로 각 테이블에는 고유한 모델이 있습니다. 예:

    struct User: SysIdentifiableModel {
      var sysId: String = ""
      var name: String
    }

    let service: NowTableService = ...
    let user = User(name: "Ash Williams")
    service.create(Incident(fields: fields), in: tableName, writeOptions: writeOptions, configuration: fetchConfiguration) { [weak self] result in
      switch result {
      case .success(let newUser):
        /// 'newUser' contains the platform assigned 'sys_id', use in subsequent 'update' or 'delete' calls.
      case .failure(let error):
          ...
      }
    }

주:  
모델의 sys_Id 매개변수는 생성하는 동안 무시됩니다. sysId 플랫폼에 의해 할당됩니다.ServiceNow 생성된 sys_Id 플랫폼은 ServiceNow 게시자의 `receiveValue` 콜백 모델에 반환됩니다.
{#NTblServ-create_S_S_S_S_O_O__table_pnc_xkk_spb__entry__3}

| 이름 | 유형 | 설명 |
|-|-|-|
| 모델 | SysIdentifiableModel | 테이블에 삽입할 `SysIdentifiableModel` 모델입니다. |
| tableName에서 | 문자열 | 인시던트와 같은 기록을 쓸 테이블의 이름입니다. |
| 경로 | 문자열 | 옵션입니다. 중첩 유형에 대해 점으로 구분된 경로입니다. 예를 들어 더 깊은 중첩을 위한 `result` 또는 `foo.bar.baz` . 기본값: `constants.resultPath` |
| 코더 | 코더 | 옵션입니다. 인스턴스와 주고받는 데이터를 인코딩하거나 디코딩하는 데 사용할 `코더`입니다.ServiceNow 가능한 값: * 기본값: 기본 인코더는 디바이스 `로케일` 및 `시간대`를 사용하여 `yyy-MM-dd HH:mm:ss` 형식을 사용하여 날짜 형식을 지정합니다. * custom(JSONEncoder, JSONDecoder): `사용자 지정` 코더를 사용하여 JSON 디코딩/인코딩을 보다 세부적으로 제어할 수 있습니다. 이 열거형은 특수 날짜 형식, 시간대 또는 로캘을 사용하는 경우와 같이 고유한 `JSONEncoder` 및 `JSONDecoder`를 제공하는 데만 사용합니다. let myEncoder = JSONEncoder() myEncoder.dateFormat = ... let myDecoder = JSONDecoder() myDecoder.dateFormat = ... let coder: Coder = .custom(myEncoder, myDecoder) {#NTblServ-create_S_S_S_S_O_O__ul_nx3_wrd_sqb} 기본값: .default |
| 쓰기 옵션 | [필드 쓰기 옵션](https://servicenow-prod.fluidtopics.net/WOiRi11uSPh_WQiGS~BeYQ#FieldWriteOptionsiOSStruct "FieldWriteOptions 클래스는 인스턴스의 ServiceNow 기록에 있는 필드를 업데이트하거나 작성하기 위한 옵션을 설정하는 기능을 제공합니다.") | 옵션입니다. 기록에 기록되는 데이터에 적용할 구성 옵션입니다. 기본값: nil |
| 구성 | [구성 가져오기](https://servicenow-prod.fluidtopics.net/qqENiJFzWL5KlZdDs2tgnw#FetchConfigiOSStructure "FetchConfiguration 구조는 인스턴스에서 ServiceNow 기록을 가져오기 위한 구성을 정의하는 기능을 제공합니다.") | 옵션입니다. 반환할 기록을 정의하는 필터, 페이지 매김 페이지 크기 제한, 검색할 필드 및 필드에 포함할 항목을 포함하여 검색된 기록에 적용할 구성입니다. 기본값: nil - 모든 기록이 반환됩니다. |
[표 6. 매개변수]

{#NTblServ-create_S_S_S_S_O_O__table_pnc_xkk_spb} {#NTblServ-create_S_S_S_S_O_O__table_qnc_xkk_spb__entry__2}

| 유형 | 설명 |
|-|-|
| AnyPublisher\<Model,NowDataError\> | 성공: 다음을 포함하여 sys_Id지정된 테이블에 삽입된 코딩 가능한 모델입니다. 이 sys_id 사용하여 이후 메서드 호출에서 이 기록을 참조합니다. 실패: NowDataError @escaping(결과\<모델, NowDataError\>) |
[표 7. 반환]

{#NTblServ-create_S_S_S_S_O_O__table_qnc_xkk_spb}  
사용자 \[sys_user\] 테이블에 단일 기록을 삽입하는 방법을 보여줍니다.

    struct User: SysIdentifiableModel {
      var sysId: String = ""
      var name: String
    }

    let service: NowTableService = ...
    let user = User(name: "Ash Williams")
    let publisher: AnyPublisher<User, NowDataError> = service.create(user, in: "sys_user")
    publisher
      .subscribe(on: DispatchQueue.global())
      .receive(on: DispatchQueue.main)
      .sink { [weak self] completion in
        ...
      } receiveValue: { [weak self] newUser in
          /// 'newUser' contains the ServiceNow platform assigned 'sys_id' to use in subsequent update and delete calls.
         ...
      }
      .store(in: &subscriptions)

## NowTableService - createRecord(with fields: \[FieldName: FieldValue\], in tableName: String, writeOptions: FieldWriteOptions? = nil, configuration: FieldReadConfiguration? = nil) 비동기 Throw {#ariaid-title5}

지정된 필드가 포함된 지정된 테이블에 기록을 삽입합니다.
이 게시자는 사용자 지정 [코드 모델](https://developer.apple.com/documentation/foundation/archives_and_serialization/encoding_and_decoding_custom_types)로 디코딩할 수 있는 데이터를 내보내거나 함수를 사용할 수도 있습니다.[NowTableService - paginator\<Model: Decodable\>(from tableName: String, path: String = Constants.resultPath, coder: Coder = .default, configuration: FetchConfiguration? = nil)](https://servicenow-prod.fluidtopics.net/u6t2OtbkgbZ8ejLrrT~GfA#NTblServ-paginator_S_S_S_O "중첩을 처리하는 디코딩된 모델 페이지의 반복을 활성화하는 페이지 매김기를 생성합니다.") 또는 편리한 함수 convertToRecords() 를 사용하여 데이터를 NowRecord 객체로 변환할 수 있습니다. 다음은 NowRecord를 내보내도록 게시자를 변환하는 방법을 보여줍니다.

    let dataPublisher: AnyPublisher<Data, NowDataError> = ...
    let recordsPublisher: AnyPublisher<[NowRecord], NowDataError> = myPublisher.convertToRecords()

주:  
기록 내의 모든 필드를 업데이트하지 못할 수 있습니다. 예를 들어 프리픽스가 `sys_` 인 필드는 일반적으로 자동으로 생성되며 업데이트할 수 없는 시스템 매개변수입니다. 지정되지 않았으며 시스템에서 자동 생성되지 않은 필드는 연결된 데이터 유형의 null 값으로 설정됩니다.
{#NTblServ-createRecord-async_S_O_O__table_lww_l4j_ppb__entry__3}

| 이름 | 유형 | 설명 |
|-|-|-|
| 필드 포함 | \[필드 이름: 필드 값\] | 기록에 포함할 필드의 이름-값 쌍입니다. |
| tableName에서 | 문자열 | 인시던트와 같은 기록을 쓸 테이블의 이름입니다. |
| 쓰기 옵션 | [필드 쓰기 옵션](https://servicenow-prod.fluidtopics.net/WOiRi11uSPh_WQiGS~BeYQ#FieldWriteOptionsiOSStruct "FieldWriteOptions 클래스는 인스턴스의 ServiceNow 기록에 있는 필드를 업데이트하거나 작성하기 위한 옵션을 설정하는 기능을 제공합니다.") | 옵션입니다. 기록에 기록되는 데이터에 적용할 구성 옵션입니다. 기본값: nil |
| 구성 | [구성 가져오기](https://servicenow-prod.fluidtopics.net/qqENiJFzWL5KlZdDs2tgnw#FetchConfigiOSStructure "FetchConfiguration 구조는 인스턴스에서 ServiceNow 기록을 가져오기 위한 구성을 정의하는 기능을 제공합니다.") | 옵션입니다. 반환할 기록을 정의하는 필터, 페이지 매김 페이지 크기 제한, 검색할 필드 및 필드에 포함할 항목을 포함하여 검색된 기록에 적용할 구성입니다. 기본값: nil - 모든 기록이 반환됩니다. |
[표 8. 매개변수]

{#NTblServ-createRecord-async_S_O_O__table_lww_l4j_ppb} {#NTblServ-createRecord-async_S_O_O__table_mww_l4j_ppb__entry__2}

| 유형 | 설명 |
|-|-|
| 데이터 | 메서드가 성공하면 반환됩니다. 새 기록을 포함하는 데이터 객체입니다. |
| NowDataError | 메서드가 실패할 때 throw됩니다. * `accessToken(AccessTokenProviderError)` * AccessTokenProviderError: 액세스 토큰 제공자의 오류 코드 또는 메시지입니다. * accessTokenRetrievalFailed * userSessionError(_ error: Error) 접근 토큰에 오류가 있을 때 발생합니다. * `첨부 확인` 첨부 파일이 확인에 실패할 때 발생합니다. * `badResponse(statusCode: HTTPStatusCode)` * HTTPStatusCode: 인스턴스에서 받은 상태 코드입니다. 요청에서 예기치 않은 응답을 반환할 때 발생 * `cannotDecodeModel(DecodingError)` * DecodingError: 디코딩 오류가 탐지되었습니다. 코드화 가능한 모델을 JSON에서 디코딩할 수 없을 때 발생합니다. * `cannotDecodeProperty(type: Any, from: String)` * type: 문자열에서 디코딩할 래핑된 유형입니다. * from: 지정된 유형으로 디코딩할 문자열입니다. 문자열로 래핑된 값을 JSON에서 디코딩할 수 없을 때 발생합니다. * `cannotEncodeModel(EncodingError)` * EncodingError: 인코딩 오류가 탐지되었습니다. 코드 가능한 모델을 JSON으로 인코딩할 수 없는 경우 발생합니다. * `cannotParse응답` 인스턴스의 응답을 예상 형식으로 구문 분석할 수 없을 때 발생합니다. * `잘못된 URL` URL을 구성할 수 없을 때 발생합니다. 예를 들어 문자열에 URL에서 잘못된 문자가 포함되어 있거나 빈 문자열인 경우입니다. * `missingAttachmentMetadata` 첨부 파일 메타데이터 헤더가 누락되었을 때 발생 * `missingServiceConfiguration` 예상 서비스 구성이 누락될 때 발생합니다. * `MissingSysID` 예상 sys_id 매개변수가 누락되었을 때 발생합니다. * `네트워크(NetworkServiceError)` * genericError(문자열) * operationCanceled * serviceDisabled * serverError(오류) * systemError(오류) 네트워크 서비스에 오류가 발생할 때 발생합니다. {#NTblServ-createRecord-async_S_O_O__NowDataErroriOS-ul-enum} |
[표 9. 반환]

{#NTblServ-createRecord-async_S_O_O__table_mww_l4j_ppb}  
다음 코드 예제에서는 이 메서드를 호출하는 방법을 보여 줍니다.

    do {
        let dataResult: Data = try await tableService.createRecord(with: fields, in: tableName, writeOptions: writeOptions, configuration: configuration)
        let recordResult: NowRecord = dataResult.convertToRecord()
    } catch {
        print("Record creation failed with NowDataError: \(error)")
    }

## NowTableService - createRecord(with fields: \[FieldName: FieldValue\], in tableName: String, writeOptions: FieldWriteOptions, configuration: FieldReadConfiguration, completion: @escaping (Result\<Data, NowDataError\>) {#ariaid-title6}

지정된 테이블에 지정된 기록을 삽입하고 기록이 저장된 후 핸들러를 실행 completion 합니다.
필요한 경우 반환 결과를 사용자 지정 Codable 모델로 디코딩하거나 대신 함수를 [NowTableService - paginator\<Model: Decodable\>(from tableName: String, path: String = Constants.resultPath, coder: Coder = .default, configuration: FetchConfiguration? = nil)](https://servicenow-prod.fluidtopics.net/u6t2OtbkgbZ8ejLrrT~GfA#NTblServ-paginator_S_S_S_O "중첩을 처리하는 디코딩된 모델 페이지의 반복을 활성화하는 페이지 매김기를 생성합니다.") 사용할 수 있습니다. 또는 편리한 함수 convertToRecords() 를 사용하여 데이터를 NowRecord 객체로 변환할 수 있습니다. 다음은 NowRecord를 내보내도록 게시자를 변환하는 방법을 보여줍니다.

    let dataPublisher: AnyPublisher<Data, NowDataError> = ...
    let recordsPublisher: AnyPublisher<[NowRecord], NowDataError> = myResult.convertToRecords()

주:  
기록 내의 모든 필드를 업데이트하지 못할 수 있습니다. 예를 들어 프리픽스가 `sys_` 인 필드는 일반적으로 자동으로 생성되며 업데이트할 수 없는 시스템 매개변수입니다. 지정되지 않았으며 시스템에서 자동 생성되지 않은 필드는 연결된 데이터 유형의 null 값으로 설정됩니다.
{#NTblServ-createRecord_S_O_O_O__table_vk3_yqj_ppb__entry__3}

| 이름 | 유형 | 설명 |
|-|-|-|
| 필드 포함 | \[필드 이름: 필드 값\] | 기록에 포함할 필드의 이름-값 쌍입니다. |
| tableName에서 | 문자열 | 인시던트와 같은 기록을 쓸 테이블의 이름입니다. |
| 쓰기 옵션 | [필드 쓰기 옵션](https://servicenow-prod.fluidtopics.net/WOiRi11uSPh_WQiGS~BeYQ#FieldWriteOptionsiOSStruct "FieldWriteOptions 클래스는 인스턴스의 ServiceNow 기록에 있는 필드를 업데이트하거나 작성하기 위한 옵션을 설정하는 기능을 제공합니다.") | 옵션입니다. 기록에 기록되는 데이터에 적용할 구성 옵션입니다. 기본값: nil |
| 구성 | [필드읽기 구성](https://servicenow-prod.fluidtopics.net/fdyDRGcdt9sMLHrovx8hbw#FieldReadConfigurationiOSStruct "FieldReadConfiguration 구조를 사용하면 인스턴스 테이블에서 ServiceNow 가져올 필드와 형식을 구성할 수 있습니다.") | 옵션입니다. 반환할 필드와 필드에 포함할 항목을 지정하는 구성 옵션입니다. 기본값: nil |
| 완료 | @escaping(결과\<데이터, NowDataError\>) | 기록을 검색한 후 실행할 완성 핸들러입니다. 반환 값: * 성공: 데이터 - 요청된 기록 * 오류: NowDataError * `accessToken(AccessTokenProviderError)` * AccessTokenProviderError: 액세스 토큰 제공자의 오류 코드 또는 메시지입니다. * accessTokenRetrievalFailed * userSessionError(_ error: Error) 접근 토큰에 오류가 있을 때 발생합니다. * `첨부 확인` 첨부 파일이 확인에 실패할 때 발생합니다. * `badResponse(statusCode: HTTPStatusCode)` * HTTPStatusCode: 인스턴스에서 받은 상태 코드입니다. 요청에서 예기치 않은 응답을 반환할 때 발생 * `cannotDecodeModel(DecodingError)` * DecodingError: 디코딩 오류가 탐지되었습니다. 코드화 가능한 모델을 JSON에서 디코딩할 수 없을 때 발생합니다. * `cannotDecodeProperty(type: Any, from: String)` * type: 문자열에서 디코딩할 래핑된 유형입니다. * from: 지정된 유형으로 디코딩할 문자열입니다. 문자열로 래핑된 값을 JSON에서 디코딩할 수 없을 때 발생합니다. * `cannotEncodeModel(EncodingError)` * EncodingError: 인코딩 오류가 탐지되었습니다. 코드 가능한 모델을 JSON으로 인코딩할 수 없는 경우 발생합니다. * `cannotParse응답` 인스턴스의 응답을 예상 형식으로 구문 분석할 수 없을 때 발생합니다. * `잘못된 URL` URL을 구성할 수 없을 때 발생합니다. 예를 들어 문자열에 URL에서 잘못된 문자가 포함되어 있거나 빈 문자열인 경우입니다. * `missingAttachmentMetadata` 첨부 파일 메타데이터 헤더가 누락되었을 때 발생 * `missingServiceConfiguration` 예상 서비스 구성이 누락될 때 발생합니다. * `MissingSysID` 예상 sys_id 매개변수가 누락되었을 때 발생합니다. * `네트워크(NetworkServiceError)` * genericError(문자열) * operationCanceled * serviceDisabled * serverError(오류) * systemError(오류) 네트워크 서비스에 오류가 발생할 때 발생합니다. {#NTblServ-createRecord_S_O_O_O__NowDataErroriOS-ul-enum} {#NTblServ-createRecord_S_O_O_O__ul_uzx_thj_ppb} |
[표 10. 매개변수]

{#NTblServ-createRecord_S_O_O_O__table_vk3_yqj_ppb} {#NTblServ-createRecord_S_O_O_O__table_wk3_yqj_ppb__entry__2}

| 유형 | 설명 |
|-|-|
| 없음 |   |
[표 11. 반환]

{#NTblServ-createRecord_S_O_O_O__table_wk3_yqj_ppb}  
다음 코드 예제에서는 이 함수를 호출하는 방법을 보여 줍니다.

    let fields = ["short_description" : "test description"]
    let writeOptions: FieldWriteOptions = [.suppressAutoSysField, .treatInputValuesAsDisplayValues]
    let readConfiguration = FieldReadConfiguration(includeFields: ["number", "short_description"])

    tableService.createRecord(with: fields, in: tableName, writeOptions: writeOptions, configuration: readConfiguration) { [weak self] result in
      switch result {
        case .success(let dataResult):
          let recordResult: NowRecord = dataResult.convertToRecord()
        case .failure(let error):
           print("Record creation failed with NowDataError: \(error)")
      }
    }

## NowTableService - createRecord(with fields: \[FieldName: FieldValue\], in tableName: String, writeOptions: FieldWriteOptions? = nil, configuration: FieldReadConfiguration? = nil) {#ariaid-title7}

지정된 필드가 포함된 지정된 테이블에 기록을 삽입합니다.
주:  
이 방법은 더 이상 사용되지 않습니다. 대신 메서드의 async/await 구현을 사용해야 합니다.  
이 게시자는 사용자 지정 [코드 모델](https://developer.apple.com/documentation/foundation/archives_and_serialization/encoding_and_decoding_custom_types)로 디코딩할 수 있는 데이터를 내보내거나 함수를 사용할 수도 있습니다.[NowTableService - paginator\<Model: Decodable\>(from tableName: String, path: String = Constants.resultPath, coder: Coder = .default, configuration: FetchConfiguration? = nil)](https://servicenow-prod.fluidtopics.net/u6t2OtbkgbZ8ejLrrT~GfA#NTblServ-paginator_S_S_S_O "중첩을 처리하는 디코딩된 모델 페이지의 반복을 활성화하는 페이지 매김기를 생성합니다.") 또는 편리한 함수 convertToRecords() 를 사용하여 데이터를 NowRecord 객체로 변환할 수 있습니다. 다음은 NowRecord를 내보내도록 게시자를 변환하는 방법을 보여줍니다.

    let dataPublisher: AnyPublisher<Data, NowDataError> = ...
    let recordsPublisher: AnyPublisher<[NowRecord], NowDataError> = myPublisher.convertToRecords()

주:  
기록 내의 모든 필드를 업데이트하지 못할 수 있습니다. 예를 들어 프리픽스가 `sys_` 인 필드는 일반적으로 자동으로 생성되며 업데이트할 수 없는 시스템 매개변수입니다. 지정되지 않았으며 시스템에서 자동 생성되지 않은 필드는 연결된 데이터 유형의 null 값으로 설정됩니다.
{#NTblServ-createRecord_S_O_O__table_lww_l4j_ppb__entry__3}

| 이름 | 유형 | 설명 |
|-|-|-|
| 필드 포함 | \[필드 이름: 필드 값\] | 기록에 포함할 필드의 이름-값 쌍입니다. |
| tableName에서 | 문자열 | 인시던트와 같은 기록을 쓸 테이블의 이름입니다. |
| 쓰기 옵션 | [필드 쓰기 옵션](https://servicenow-prod.fluidtopics.net/WOiRi11uSPh_WQiGS~BeYQ#FieldWriteOptionsiOSStruct "FieldWriteOptions 클래스는 인스턴스의 ServiceNow 기록에 있는 필드를 업데이트하거나 작성하기 위한 옵션을 설정하는 기능을 제공합니다.") | 옵션입니다. 기록에 기록되는 데이터에 적용할 구성 옵션입니다. 기본값: nil |
| 구성 | [구성 가져오기](https://servicenow-prod.fluidtopics.net/qqENiJFzWL5KlZdDs2tgnw#FetchConfigiOSStructure "FetchConfiguration 구조는 인스턴스에서 ServiceNow 기록을 가져오기 위한 구성을 정의하는 기능을 제공합니다.") | 옵션입니다. 반환할 기록을 정의하는 필터, 페이지 매김 페이지 크기 제한, 검색할 필드 및 필드에 포함할 항목을 포함하여 검색된 기록에 적용할 구성입니다. 기본값: nil - 모든 기록이 반환됩니다. |
[표 12. 매개변수]

{#NTblServ-createRecord_S_O_O__table_lww_l4j_ppb} {#NTblServ-createRecord_S_O_O__table_mww_l4j_ppb__entry__2}

| 유형 | 설명 |
|-|-|
| AnyPublisher\<Data, NowDataError\> | 성공: 업데이트된 기록을 포함하는 데이터 객체입니다. 실패: NowDataError * `accessToken(AccessTokenProviderError)` * AccessTokenProviderError: 액세스 토큰 제공자의 오류 코드 또는 메시지입니다. * accessTokenRetrievalFailed * userSessionError(_ error: Error) 접근 토큰에 오류가 있을 때 발생합니다. * `첨부 확인` 첨부 파일이 확인에 실패할 때 발생합니다. * `badResponse(statusCode: HTTPStatusCode)` * HTTPStatusCode: 인스턴스에서 받은 상태 코드입니다. 요청에서 예기치 않은 응답을 반환할 때 발생 * `cannotDecodeModel(DecodingError)` * DecodingError: 디코딩 오류가 탐지되었습니다. 코드화 가능한 모델을 JSON에서 디코딩할 수 없을 때 발생합니다. * `cannotDecodeProperty(type: Any, from: String)` * type: 문자열에서 디코딩할 래핑된 유형입니다. * from: 지정된 유형으로 디코딩할 문자열입니다. 문자열로 래핑된 값을 JSON에서 디코딩할 수 없을 때 발생합니다. * `cannotEncodeModel(EncodingError)` * EncodingError: 인코딩 오류가 탐지되었습니다. 코드 가능한 모델을 JSON으로 인코딩할 수 없는 경우 발생합니다. * `cannotParse응답` 인스턴스의 응답을 예상 형식으로 구문 분석할 수 없을 때 발생합니다. * `잘못된 URL` URL을 구성할 수 없을 때 발생합니다. 예를 들어 문자열에 URL에서 잘못된 문자가 포함되어 있거나 빈 문자열인 경우입니다. * `missingAttachmentMetadata` 첨부 파일 메타데이터 헤더가 누락되었을 때 발생 * `missingServiceConfiguration` 예상 서비스 구성이 누락될 때 발생합니다. * `MissingSysID` 예상 sys_id 매개변수가 누락되었을 때 발생합니다. * `네트워크(NetworkServiceError)` * genericError(문자열) * operationCanceled * serviceDisabled * serverError(오류) * systemError(오류) 네트워크 서비스에 오류가 발생할 때 발생합니다. {#NTblServ-createRecord_S_O_O__NowDataErroriOS-ul-enum} |
[표 13. 반환]

{#NTblServ-createRecord_S_O_O__table_mww_l4j_ppb}  
이 예시에서는 지정된 필드를 사용하여 지정된 테이블에 기록을 삽입하는 기능을 만드는 방법을 보여줍니다. 호출의 출력은 데이터를 원하는 모델로 변환할 수 있는 ByteArray입니다.

    tableService.createRecord(with: fields, in: tableName, writeOptions: writeOptions, configuration: readConfiguration)
        .subscribe(on: DispatchQueue.global())
        .receive(on: DispatchQueue.main)
        .convertToRecord()
        .sink { completion in
            if case let .failure(error) = completion {
                print("Record creation failed with NowDataError: \(error)")
            }
        } receiveValue: { record in
            print("Created NowRecord: \(record)")
        }
        .store(in: &subscriptions)

## NowTableService - delete(_ model: Model, from tableName: String) 비동기 throw {#ariaid-title8}

지정된 테이블에서 지정된 Codable 모델을 삭제합니다.
{#NTblServ-delete-async_S_S__table_qvl_lzk_spb__entry__3}

| 이름 | 유형 | 설명 |
|-|-|-|
| 모델 | 모델 | 테이블에서 삭제할 `SysIdentifiableModel`입니다. 삭제할 기록의 sys_id 포함해야 합니다. |
| from tableName | 문자열 | 인시 던트와 같은 정보를 삭제할 테이블의 이름입니다. |
[표 14. 매개변수]

{#NTblServ-delete-async_S_S__table_qvl_lzk_spb} {#NTblServ-delete-async_S_S__table_rvl_lzk_spb__entry__2}

| 유형 | 설명 |
|-|-|
| 없음 | 메서드가 성공하면 아무 것도 반환되지 않습니다. |
| NowDataError | 메서드가 실패할 때 throw됩니다. * `accessToken(AccessTokenProviderError)` * AccessTokenProviderError: 액세스 토큰 제공자의 오류 코드 또는 메시지입니다. * accessTokenRetrievalFailed * userSessionError(_ error: Error) 접근 토큰에 오류가 있을 때 발생합니다. * `첨부 확인` 첨부 파일이 확인에 실패할 때 발생합니다. * `badResponse(statusCode: HTTPStatusCode)` * HTTPStatusCode: 인스턴스에서 받은 상태 코드입니다. 요청에서 예기치 않은 응답을 반환할 때 발생 * `cannotDecodeModel(DecodingError)` * DecodingError: 디코딩 오류가 탐지되었습니다. 코드화 가능한 모델을 JSON에서 디코딩할 수 없을 때 발생합니다. * `cannotDecodeProperty(type: Any, from: String)` * type: 문자열에서 디코딩할 래핑된 유형입니다. * from: 지정된 유형으로 디코딩할 문자열입니다. 문자열로 래핑된 값을 JSON에서 디코딩할 수 없을 때 발생합니다. * `cannotEncodeModel(EncodingError)` * EncodingError: 인코딩 오류가 탐지되었습니다. 코드 가능한 모델을 JSON으로 인코딩할 수 없는 경우 발생합니다. * `cannotParse응답` 인스턴스의 응답을 예상 형식으로 구문 분석할 수 없을 때 발생합니다. * `잘못된 URL` URL을 구성할 수 없을 때 발생합니다. 예를 들어 문자열에 URL에서 잘못된 문자가 포함되어 있거나 빈 문자열인 경우입니다. * `missingAttachmentMetadata` 첨부 파일 메타데이터 헤더가 누락되었을 때 발생 * `missingServiceConfiguration` 예상 서비스 구성이 누락될 때 발생합니다. * `MissingSysID` 예상 sys_id 매개변수가 누락되었을 때 발생합니다. * `네트워크(NetworkServiceError)` * genericError(문자열) * operationCanceled * serviceDisabled * serverError(오류) * systemError(오류) 네트워크 서비스에 오류가 발생할 때 발생합니다. {#NTblServ-delete-async_S_S__NowDataErroriOS-ul-enum} |
[표 15. 반환]

{#NTblServ-delete-async_S_S__table_rvl_lzk_spb}  
다음 코드 예제에서는 이 메서드를 호출하는 방법을 보여 줍니다.

    do { 
        try await tableService.delete(model, from: tableName)
        print("Deletion successful.")
    } catch {
        print("Deletion failed with NowDataError: \(error)")
    }

## NowTableService - delete(_ model: Model, from tableName: String, completion: @escaping (Result\<Void, NowDataError\>)) {#ariaid-title9}

지정된 테이블에서 지정된 코드 가능 모델을 삭제한 다음 적절한 completion 핸들러를 실행합니다.
{#NTblServ-delete_S_S_O__table_zss_k1l_spb__entry__3}

| 이름 | 유형 | 설명 |
|-|-|-|
| 모델 | 모델 | 테이블에서 삭제할 `SysIdentifiableModel`입니다. 삭제할 기록의 sys_id 포함해야 합니다. |
| from tableName | 문자열 | 인시 던트와 같은 정보를 삭제할 테이블의 이름입니다. |
| 완료 | @escaping(결과\<무효, NowDataError\>) | 지정된 코딩 가능한 모델을 삭제한 후 실행할 완성 핸들러입니다. 반환 값: * 성공: 아무 것도 반환되지 않음 * 실패: NowDataError * `accessToken(AccessTokenProviderError)` * AccessTokenProviderError: 액세스 토큰 제공자의 오류 코드 또는 메시지입니다. * accessTokenRetrievalFailed * userSessionError(_ error: Error) 접근 토큰에 오류가 있을 때 발생합니다. * `첨부 확인` 첨부 파일이 확인에 실패할 때 발생합니다. * `badResponse(statusCode: HTTPStatusCode)` * HTTPStatusCode: 인스턴스에서 받은 상태 코드입니다. 요청에서 예기치 않은 응답을 반환할 때 발생 * `cannotDecodeModel(DecodingError)` * DecodingError: 디코딩 오류가 탐지되었습니다. 코드화 가능한 모델을 JSON에서 디코딩할 수 없을 때 발생합니다. * `cannotDecodeProperty(type: Any, from: String)` * type: 문자열에서 디코딩할 래핑된 유형입니다. * from: 지정된 유형으로 디코딩할 문자열입니다. 문자열로 래핑된 값을 JSON에서 디코딩할 수 없을 때 발생합니다. * `cannotEncodeModel(EncodingError)` * EncodingError: 인코딩 오류가 탐지되었습니다. 코드 가능한 모델을 JSON으로 인코딩할 수 없는 경우 발생합니다. * `cannotParse응답` 인스턴스의 응답을 예상 형식으로 구문 분석할 수 없을 때 발생합니다. * `잘못된 URL` URL을 구성할 수 없을 때 발생합니다. 예를 들어 문자열에 URL에서 잘못된 문자가 포함되어 있거나 빈 문자열인 경우입니다. * `missingAttachmentMetadata` 첨부 파일 메타데이터 헤더가 누락되었을 때 발생 * `missingServiceConfiguration` 예상 서비스 구성이 누락될 때 발생합니다. * `MissingSysID` 예상 sys_id 매개변수가 누락되었을 때 발생합니다. * `네트워크(NetworkServiceError)` * genericError(문자열) * operationCanceled * serviceDisabled * serverError(오류) * systemError(오류) 네트워크 서비스에 오류가 발생할 때 발생합니다. {#NTblServ-delete_S_S_O__NowDataErroriOS-ul-enum} {#NTblServ-delete_S_S_O__ul_dpx_jvk_spb} |
[표 16. 매개변수]

{#NTblServ-delete_S_S_O__table_zss_k1l_spb} {#NTblServ-delete_S_S_O__table_ats_k1l_spb__entry__2}

| 유형 | 설명 |
|-|-|
| 없음 |   |
[표 17. 반환]

{#NTblServ-delete_S_S_O__table_ats_k1l_spb}  
다음 코드 예제에서는 이 함수를 호출하는 방법을 보여 줍니다.

    tableService.delete(Incident(sysId: sysId), from: tableName) { [weak self] result in
      switch result {
        case .success:
          // Delete successfully
        case .failure(let error):
          // Failed to delete with NowDataError
      }
    }

## NowTableService - delete(_ model: Model, from tableName: String) {#ariaid-title10}

지정된 테이블에서 지정된 Codable 모델을 삭제합니다.
주:  
이 방법은 더 이상 사용되지 않습니다. 대신 메서드의 async/await 구현을 사용해야 합니다.
{#NTblServ-delete_S_S__table_qvl_lzk_spb__entry__3}

| 이름 | 유형 | 설명 |
|-|-|-|
| 모델 | 모델 | 테이블에서 삭제할 `SysIdentifiableModel`입니다. 삭제할 기록의 sys_id 포함해야 합니다. |
| from tableName | 문자열 | 인시 던트와 같은 정보를 삭제할 테이블의 이름입니다. |
[표 18. 매개변수]

{#NTblServ-delete_S_S__table_qvl_lzk_spb} {#NTblServ-delete_S_S__table_rvl_lzk_spb__entry__2}

| 유형 | 설명 |
|-|-|
| AnyPublisher\<무효, NowDataError\> | 성공: 아무 것도 반환되지 않음 실패: NowDataError * `accessToken(AccessTokenProviderError)` * AccessTokenProviderError: 액세스 토큰 제공자의 오류 코드 또는 메시지입니다. * accessTokenRetrievalFailed * userSessionError(_ error: Error) 접근 토큰에 오류가 있을 때 발생합니다. * `첨부 확인` 첨부 파일이 확인에 실패할 때 발생합니다. * `badResponse(statusCode: HTTPStatusCode)` * HTTPStatusCode: 인스턴스에서 받은 상태 코드입니다. 요청에서 예기치 않은 응답을 반환할 때 발생 * `cannotDecodeModel(DecodingError)` * DecodingError: 디코딩 오류가 탐지되었습니다. 코드화 가능한 모델을 JSON에서 디코딩할 수 없을 때 발생합니다. * `cannotDecodeProperty(type: Any, from: String)` * type: 문자열에서 디코딩할 래핑된 유형입니다. * from: 지정된 유형으로 디코딩할 문자열입니다. 문자열로 래핑된 값을 JSON에서 디코딩할 수 없을 때 발생합니다. * `cannotEncodeModel(EncodingError)` * EncodingError: 인코딩 오류가 탐지되었습니다. 코드 가능한 모델을 JSON으로 인코딩할 수 없는 경우 발생합니다. * `cannotParse응답` 인스턴스의 응답을 예상 형식으로 구문 분석할 수 없을 때 발생합니다. * `잘못된 URL` URL을 구성할 수 없을 때 발생합니다. 예를 들어 문자열에 URL에서 잘못된 문자가 포함되어 있거나 빈 문자열인 경우입니다. * `missingAttachmentMetadata` 첨부 파일 메타데이터 헤더가 누락되었을 때 발생 * `missingServiceConfiguration` 예상 서비스 구성이 누락될 때 발생합니다. * `MissingSysID` 예상 sys_id 매개변수가 누락되었을 때 발생합니다. * `네트워크(NetworkServiceError)` * genericError(문자열) * operationCanceled * serviceDisabled * serverError(오류) * systemError(오류) 네트워크 서비스에 오류가 발생할 때 발생합니다. {#NTblServ-delete_S_S__NowDataErroriOS-ul-enum} |
[표 19. 반환]

{#NTblServ-delete_S_S__table_rvl_lzk_spb}  
다음 코드 예제에서는 이 함수를 호출하는 방법을 보여 줍니다.

    tableService.delete(Incident(sysId: sysId), from: tableName)
      .subscribe(on: DispatchQueue.global())
      .receive(on: DispatchQueue.main)
      .sink { [weak self] completion in
        switch completion {
          case .finished:
            // Delete successfully
          case .failure(let error):
            // Failed to delete with NowDataError
        }
      } receiveValue: { _ in
      }
      .store(in: &subscriptions)

## NowTableService - deleteRecord(sysId: SysID, from tableName: String) 비동기 throw {#ariaid-title11}

지정된 테이블에서 지정된 기록을 삭제합니다.
{#NTblServ-deleteRecord-async_S_S__table_nvk_2vj_ppb__entry__3}

| 이름 | 유형 | 설명 |
|-|-|-|
| sysId | 문자열 | 삭제할 기록의 Sys_id입니다. |
| from tableName | 문자열 | 인시 던트와 같은 정보를 삭제할 테이블의 이름입니다. |
[표 20. 매개변수]

{#NTblServ-deleteRecord-async_S_S__table_nvk_2vj_ppb} {#NTblServ-deleteRecord-async_S_S__table_ovk_2vj_ppb__entry__2}

| 유형 | 설명 |
|-|-|
| 없음 | 메서드가 성공하면 아무 것도 반환되지 않습니다. |
| NowDataError | 메서드가 실패할 때 throw됩니다. * `accessToken(AccessTokenProviderError)` * AccessTokenProviderError: 액세스 토큰 제공자의 오류 코드 또는 메시지입니다. * accessTokenRetrievalFailed * userSessionError(_ error: Error) 접근 토큰에 오류가 있을 때 발생합니다. * `첨부 확인` 첨부 파일이 확인에 실패할 때 발생합니다. * `badResponse(statusCode: HTTPStatusCode)` * HTTPStatusCode: 인스턴스에서 받은 상태 코드입니다. 요청에서 예기치 않은 응답을 반환할 때 발생 * `cannotDecodeModel(DecodingError)` * DecodingError: 디코딩 오류가 탐지되었습니다. 코드화 가능한 모델을 JSON에서 디코딩할 수 없을 때 발생합니다. * `cannotDecodeProperty(type: Any, from: String)` * type: 문자열에서 디코딩할 래핑된 유형입니다. * from: 지정된 유형으로 디코딩할 문자열입니다. 문자열로 래핑된 값을 JSON에서 디코딩할 수 없을 때 발생합니다. * `cannotEncodeModel(EncodingError)` * EncodingError: 인코딩 오류가 탐지되었습니다. 코드 가능한 모델을 JSON으로 인코딩할 수 없는 경우 발생합니다. * `cannotParse응답` 인스턴스의 응답을 예상 형식으로 구문 분석할 수 없을 때 발생합니다. * `잘못된 URL` URL을 구성할 수 없을 때 발생합니다. 예를 들어 문자열에 URL에서 잘못된 문자가 포함되어 있거나 빈 문자열인 경우입니다. * `missingAttachmentMetadata` 첨부 파일 메타데이터 헤더가 누락되었을 때 발생 * `missingServiceConfiguration` 예상 서비스 구성이 누락될 때 발생합니다. * `MissingSysID` 예상 sys_id 매개변수가 누락되었을 때 발생합니다. * `네트워크(NetworkServiceError)` * genericError(문자열) * operationCanceled * serviceDisabled * serverError(오류) * systemError(오류) 네트워크 서비스에 오류가 발생할 때 발생합니다. {#NTblServ-deleteRecord-async_S_S__NowDataErroriOS-ul-enum} |
[표 21. 반환]

{#NTblServ-deleteRecord-async_S_S__table_ovk_2vj_ppb}  
다음 코드 예제에서는 이 메서드를 호출하는 방법을 보여 줍니다.

    do {
        try await tableService.deleteRecord(sysId: sysId, from: tableName)
        print("Deletion successful.")
    } catch {
        print("Deletion failed with NowDataError: \(error)")
    }

## NowTableService - deleteRecord(sysId: SysID, from tableName: String, completion: @escaping (Result\<Void, NowDataError\>)) {#ariaid-title12}

지정된 테이블에서 지정된 기록을 삭제하고 기록이 삭제된 후 객체를 completion 실행합니다.
{#NTblServ-deleteRecord_S_S_O__table_krx_yvj_ppb__entry__3}

| 이름 | 유형 | 설명 |
|-|-|-|
| sysId | 문자열 | 삭제할 기록의 Sys_id입니다. |
| from tableName | 문자열 | 인시 던트와 같은 정보를 삭제할 테이블의 이름입니다. |
| 완료 | @escaping(결과\<무효, NowDataError\>) | 성공: 아무 것도 반환되지 않습니다. 실패: NowDataError * `accessToken(AccessTokenProviderError)` * AccessTokenProviderError: 액세스 토큰 제공자의 오류 코드 또는 메시지입니다. * accessTokenRetrievalFailed * userSessionError(_ error: Error) 접근 토큰에 오류가 있을 때 발생합니다. * `첨부 확인` 첨부 파일이 확인에 실패할 때 발생합니다. * `badResponse(statusCode: HTTPStatusCode)` * HTTPStatusCode: 인스턴스에서 받은 상태 코드입니다. 요청에서 예기치 않은 응답을 반환할 때 발생 * `cannotDecodeModel(DecodingError)` * DecodingError: 디코딩 오류가 탐지되었습니다. 코드화 가능한 모델을 JSON에서 디코딩할 수 없을 때 발생합니다. * `cannotDecodeProperty(type: Any, from: String)` * type: 문자열에서 디코딩할 래핑된 유형입니다. * from: 지정된 유형으로 디코딩할 문자열입니다. 문자열로 래핑된 값을 JSON에서 디코딩할 수 없을 때 발생합니다. * `cannotEncodeModel(EncodingError)` * EncodingError: 인코딩 오류가 탐지되었습니다. 코드 가능한 모델을 JSON으로 인코딩할 수 없는 경우 발생합니다. * `cannotParse응답` 인스턴스의 응답을 예상 형식으로 구문 분석할 수 없을 때 발생합니다. * `잘못된 URL` URL을 구성할 수 없을 때 발생합니다. 예를 들어 문자열에 URL에서 잘못된 문자가 포함되어 있거나 빈 문자열인 경우입니다. * `missingAttachmentMetadata` 첨부 파일 메타데이터 헤더가 누락되었을 때 발생 * `missingServiceConfiguration` 예상 서비스 구성이 누락될 때 발생합니다. * `MissingSysID` 예상 sys_id 매개변수가 누락되었을 때 발생합니다. * `네트워크(NetworkServiceError)` * genericError(문자열) * operationCanceled * serviceDisabled * serverError(오류) * systemError(오류) 네트워크 서비스에 오류가 발생할 때 발생합니다. {#NTblServ-deleteRecord_S_S_O__NowDataErroriOS-ul-enum} |
[표 22. 매개변수]

{#NTblServ-deleteRecord_S_S_O__table_krx_yvj_ppb} {#NTblServ-deleteRecord_S_S_O__table_lrx_yvj_ppb__entry__2}

| 유형 | 설명 |
|-|-|
| 없음 |   |
[표 23. 반환]

{#NTblServ-deleteRecord_S_S_O__table_lrx_yvj_ppb}  
다음 코드 예제에서는 이 함수를 호출하는 방법을 보여 줍니다.

    tableService.deleteRecord(sysId: sysId, from: tableName) { [weak self] result in
      switch result {
        case .success:
          // Delete successfully
        case .failure(let error):
          // Failed to delete with NowDataError
      }
    }

## NowTableService - deleteRecord(sysId: SysID, from tableName: String) {#ariaid-title13}

지정된 테이블에서 지정된 기록을 삭제합니다.
주:  
이 방법은 더 이상 사용되지 않습니다. 대신 메서드의 async/await 구현을 사용해야 합니다.
{#NTblServ-deleteRecord_S_S__table_nvk_2vj_ppb__entry__3}

| 이름 | 유형 | 설명 |
|-|-|-|
| sysId | 문자열 | 삭제할 기록의 Sys_id입니다. |
| from tableName | 문자열 | 인시 던트와 같은 정보를 삭제할 테이블의 이름입니다. |
[표 24. 매개변수]

{#NTblServ-deleteRecord_S_S__table_nvk_2vj_ppb} {#NTblServ-deleteRecord_S_S__table_ovk_2vj_ppb__entry__2}

| 유형 | 설명 |
|-|-|
| AnyPublisher\<무효, NowDataError\> | 성공: 아무 것도 반환되지 않음 실패: NowDataError * `accessToken(AccessTokenProviderError)` * AccessTokenProviderError: 액세스 토큰 제공자의 오류 코드 또는 메시지입니다. * accessTokenRetrievalFailed * userSessionError(_ error: Error) 접근 토큰에 오류가 있을 때 발생합니다. * `첨부 확인` 첨부 파일이 확인에 실패할 때 발생합니다. * `badResponse(statusCode: HTTPStatusCode)` * HTTPStatusCode: 인스턴스에서 받은 상태 코드입니다. 요청에서 예기치 않은 응답을 반환할 때 발생 * `cannotDecodeModel(DecodingError)` * DecodingError: 디코딩 오류가 탐지되었습니다. 코드화 가능한 모델을 JSON에서 디코딩할 수 없을 때 발생합니다. * `cannotDecodeProperty(type: Any, from: String)` * type: 문자열에서 디코딩할 래핑된 유형입니다. * from: 지정된 유형으로 디코딩할 문자열입니다. 문자열로 래핑된 값을 JSON에서 디코딩할 수 없을 때 발생합니다. * `cannotEncodeModel(EncodingError)` * EncodingError: 인코딩 오류가 탐지되었습니다. 코드 가능한 모델을 JSON으로 인코딩할 수 없는 경우 발생합니다. * `cannotParse응답` 인스턴스의 응답을 예상 형식으로 구문 분석할 수 없을 때 발생합니다. * `잘못된 URL` URL을 구성할 수 없을 때 발생합니다. 예를 들어 문자열에 URL에서 잘못된 문자가 포함되어 있거나 빈 문자열인 경우입니다. * `missingAttachmentMetadata` 첨부 파일 메타데이터 헤더가 누락되었을 때 발생 * `missingServiceConfiguration` 예상 서비스 구성이 누락될 때 발생합니다. * `MissingSysID` 예상 sys_id 매개변수가 누락되었을 때 발생합니다. * `네트워크(NetworkServiceError)` * genericError(문자열) * operationCanceled * serviceDisabled * serverError(오류) * systemError(오류) 네트워크 서비스에 오류가 발생할 때 발생합니다. {#NTblServ-deleteRecord_S_S__NowDataErroriOS-ul-enum} |
[표 25. 반환]

{#NTblServ-deleteRecord_S_S__table_ovk_2vj_ppb}  
이 예시에서는 지정된 테이블의 기록을 삭제하는 기능을 만드는 방법을 보여줍니다.

    tableService.deleteRecord(sysId: sysId, from: tableName) 
        .subscribe(on: DispatchQueue.global())
        .receive(on: DispatchQueue.main)
        .sink { completion in
            switch completion {
            case .finished:
                print("Record deleted.")
            case .failure(let error):
                print("Deletion failed with NowDataError: \(error)")
            }
        } receiveValue: { _ in }
        .store(in: &subscriptions)

## NowServiceTable - init(configuration: NowServiceConfiguration, coreServiceProvider: NowCoreServiceProviding? = nil) {#ariaid-title14}

NowTableService 객체를 작성합니다.
{#NTblServ-init_S_S__table_djd_fv3_ppb__entry__3}

| 이름 | 유형 | 설명 |
|-|-|-|
| 구성 | [NowService구성](https://servicenow-prod.fluidtopics.net/M3IfRLAWtSzjLKNYBH_PRQ#NowServiceConfigurationiOSStruct "NowServiceConfiguration 구조는 기능 서비스에 대한 구성 정보를 정의합니다.") | 서비스를 만들 때 사용할 구성 매개변수입니다. |
| coreServiceProvider | NowCoreService제공 | 옵션입니다. NowTableService와 연결할 서비스 제공자입니다. 기본값: nil |
[표 26. 매개변수]

{#NTblServ-init_S_S__table_djd_fv3_ppb}  
다음 코드 예제에서는 이 함수를 호출하는 방법을 보여 줍니다.

    guard let coreService = NowSDK.core() else {
      // Error with NowServiceError.sdkNotConfigured
      return
    }

    guard 
      let instanceUrl = URL(string: "http://sample.service-now.com") , 
      let serviceConfig = NowSDK.makeServiceConfiguration(for: instanceUrl) else {
        // Could not create service -- 
        // NowServiceError.serviceConfigurationInvalid
        return
      }
    let tableService = NowTableService (configuration: serviceConfig, coreServiceProvider: coreService)

## NowTableService - model\<Model: Decodable\>(with sysId: SysID? = nil, from tableName: String, path: String = Constants.resultPath, coder: Coder = .default, configuration: FetchConfiguration? = nil) 비동기 Throw {#ariaid-title15}

지정된 테이블에서 디코딩 가능한 모델을 검색할 수 있습니다.
테이블 API 응답은 다음과 유사한 매개변수 내에 result 중첩됩니다.

    {
      "result": [
        { "name": "Ash Williams" },
        { "name": "Lionel Cosgrove" },
        { "name": "Laurie Strode" }
      ]
    }

큰 결과 집합의 경우 페이지 매김 함수 [NowTableService - 페이지 매김자(from tableName: String, configuration: FetchConfiguration? = nil)](https://servicenow-prod.fluidtopics.net/u6t2OtbkgbZ8ejLrrT~GfA#NTblServ-paginator_S_O "기록 페이지를 반복할 수 있는 페이지 매김기를 생성합니다.") 중 하나를 사용하거나 [NowTableService - paginator\<Model: Decodable\>(from tableName: String, path: String = Constants.resultPath, coder: Coder = .default, configuration: FetchConfiguration? = nil)](https://servicenow-prod.fluidtopics.net/u6t2OtbkgbZ8ejLrrT~GfA#NTblServ-paginator_S_S_S_O "중첩을 처리하는 디코딩된 모델 페이지의 반복을 활성화하는 페이지 매김기를 생성합니다.") 페이지 매김된 모델을 가져옵니다.
{#NTblServ-model-async_S_S_S_S_O__table_nbq_yyj_spb__entry__3}{#NTblServ-model-async_S_S_S_S_O__mobilesdkiOS-tableName-entry}

| 이름 | 유형 | 설명 |
|-|-|-|
| sysId 포함 | SysID | 옵션입니다. 반환할 기록의 Sys_id입니다. 특정 기록을 검색하려면 sys_id 제공합니다. 기본값: nil |
| from tableName | 문자열 | 인시 던트와 같은 기록을 검색할 테이블의 이름입니다. |
| 경로 | 문자열 | 중첩 유형에 대해 점으로 구분된 경로입니다. 예를 들어 더 깊은 중첩을 위한 `result` 또는 `foo.bar.baz` . 기본값: `결과` |
| 코더 | 코더 | 옵션입니다. 인스턴스와 주고받는 데이터를 인코딩하거나 디코딩하는 데 사용할 `코더`입니다.ServiceNow 가능한 값: * 기본값: 기본 인코더는 디바이스 `로케일` 및 `시간대`를 사용하여 `yyy-MM-dd HH:mm:ss` 형식을 사용하여 날짜 형식을 지정합니다. * custom(JSONEncoder, JSONDecoder): `사용자 지정` 코더를 사용하여 JSON 디코딩/인코딩을 보다 세부적으로 제어할 수 있습니다. 이 열거형은 특수 날짜 형식, 시간대 또는 로캘을 사용하는 경우와 같이 고유한 `JSONEncoder` 및 `JSONDecoder`를 제공하는 데만 사용합니다. let myEncoder = JSONEncoder() myEncoder.dateFormat = ... let myDecoder = JSONDecoder() myDecoder.dateFormat = ... let coder: Coder = .custom(myEncoder, myDecoder) {#NTblServ-model-async_S_S_S_S_O__ul_nx3_wrd_sqb} 기본값: .default |
| 구성 | [구성 가져오기](https://servicenow-prod.fluidtopics.net/qqENiJFzWL5KlZdDs2tgnw#FetchConfigiOSStructure "FetchConfiguration 구조는 인스턴스에서 ServiceNow 기록을 가져오기 위한 구성을 정의하는 기능을 제공합니다.") | 옵션입니다. 반환할 기록을 정의하는 필터, 페이지 매김 페이지 크기 제한, 검색할 필드 및 필드에 포함할 항목을 포함하여 검색된 기록에 적용할 구성입니다. 기본값: nil - 모든 기록이 반환됩니다. |
[표 27. 매개변수]

{#NTblServ-model-async_S_S_S_S_O__table_nbq_yyj_spb} {#NTblServ-model-async_S_S_S_S_O__table_obq_yyj_spb__entry__2}

| 유형 | 설명 |
|-|-|
| 모델 | 메서드가 성공하면 반환됩니다. 디코딩 가능한 모델입니다. |
| NowDataError | 메서드가 실패할 때 throw됩니다. * `accessToken(AccessTokenProviderError)` * AccessTokenProviderError: 액세스 토큰 제공자의 오류 코드 또는 메시지입니다. * accessTokenRetrievalFailed * userSessionError(_ error: Error) 접근 토큰에 오류가 있을 때 발생합니다. * `첨부 확인` 첨부 파일이 확인에 실패할 때 발생합니다. * `badResponse(statusCode: HTTPStatusCode)` * HTTPStatusCode: 인스턴스에서 받은 상태 코드입니다. 요청에서 예기치 않은 응답을 반환할 때 발생 * `cannotDecodeModel(DecodingError)` * DecodingError: 디코딩 오류가 탐지되었습니다. 코드화 가능한 모델을 JSON에서 디코딩할 수 없을 때 발생합니다. * `cannotDecodeProperty(type: Any, from: String)` * type: 문자열에서 디코딩할 래핑된 유형입니다. * from: 지정된 유형으로 디코딩할 문자열입니다. 문자열로 래핑된 값을 JSON에서 디코딩할 수 없을 때 발생합니다. * `cannotEncodeModel(EncodingError)` * EncodingError: 인코딩 오류가 탐지되었습니다. 코드 가능한 모델을 JSON으로 인코딩할 수 없는 경우 발생합니다. * `cannotParse응답` 인스턴스의 응답을 예상 형식으로 구문 분석할 수 없을 때 발생합니다. * `잘못된 URL` URL을 구성할 수 없을 때 발생합니다. 예를 들어 문자열에 URL에서 잘못된 문자가 포함되어 있거나 빈 문자열인 경우입니다. * `missingAttachmentMetadata` 첨부 파일 메타데이터 헤더가 누락되었을 때 발생 * `missingServiceConfiguration` 예상 서비스 구성이 누락될 때 발생합니다. * `MissingSysID` 예상 sys_id 매개변수가 누락되었을 때 발생합니다. * `네트워크(NetworkServiceError)` * genericError(문자열) * operationCanceled * serviceDisabled * serverError(오류) * systemError(오류) 네트워크 서비스에 오류가 발생할 때 발생합니다. {#NTblServ-model-async_S_S_S_S_O__NowDataErroriOS-ul-enum} |
[표 28. 반환]

{#NTblServ-model-async_S_S_S_S_O__table_obq_yyj_spb}  
다음 코드 예제에서는 이 메서드를 호출하는 방법을 보여 줍니다.

    struct User: Codable { 
        var name: String
    } 

    let service: NowTableService = ... 
    do {
        let result = try await service.model([User].self, from: "sys_user", path: "result")
        print("Fetched \(users.count) users")
    } catch {
        dump(error) 
    }

다음 코드 예제에서는 sys_id별로 단일 디코딩 가능한 모델을 가져오는 방법을 보여 줍니다. \[`User].self` 대신 `User.self와` 같은 단일 모델 유형을 사용합니다.

    let result = try await service.model(User.self, with: "5137153cc611227c000bbd1bd8cd2005", from: "sys_user", path: "result") 

## NowTableService - model\<Model: Decodable\>(_ type: Model.Type, with sysId: SysID? = nil, from tableName: String, path: String = Constants.resultPath, coder: Coder = .default, configuration: FetchConfiguration? = nil, completion: @escaping (Result\<Model, NowDataError\>)) {#ariaid-title16}

지정된 테이블에서 디코딩 가능한 모델을 검색합니다.
테이블 API 응답은 다음과 유사한 매개변수 내에 result 중첩됩니다.

    {
      "result": [
        { "name": "Ash Williams" },
        { "name": "Lionel Cosgrove" },
        { "name": "Laurie Strode" }
      ]
    }

이 함수를 사용하여 중첩된 출력 대신 디코딩 가능한 모델을 가져옵니다.
{#NTblServ-model_S_S_S_S_S_O_O__table_trc_vfk_spb__entry__3}{#NTblServ-model_S_S_S_S_S_O_O__mobilesdkiOS-tableName-entry}

| 이름 | 유형 | 설명 |
|-|-|-|
| 유형 | 모델.유형 | 디코딩할 값의 유형입니다. |
| sysId 포함 | 문자열 | 옵션입니다. 반환할 기록의 Sys_id입니다. 기본값: 설정에 따라 반환되는 모든 기록입니다.configuration |
| from tableName | 문자열 | 인시 던트와 같은 기록을 검색할 테이블의 이름입니다. |
| 경로 | 문자열 | 옵션입니다. 중첩 유형에 대해 점으로 구분된 경로입니다. 예를 들어 더 깊은 중첩을 위한 `result` 또는 `foo.bar.baz` . 기본값: `constants.resultPath` |
| 코더 | 코더 | 옵션입니다. 인스턴스와 주고받는 데이터를 인코딩하거나 디코딩하는 데 사용할 `코더`입니다.ServiceNow 기본값: `.default` |
| 구성 | [구성 가져오기](https://servicenow-prod.fluidtopics.net/qqENiJFzWL5KlZdDs2tgnw#FetchConfigiOSStructure "FetchConfiguration 구조는 인스턴스에서 ServiceNow 기록을 가져오기 위한 구성을 정의하는 기능을 제공합니다.") | 옵션입니다. 반환할 기록을 정의하는 필터, 페이지 매김 페이지 크기 제한, 검색할 필드 및 필드에 포함할 항목을 포함하여 검색된 기록에 적용할 구성입니다. 기본값: nil - 모든 기록이 반환됩니다. |
| 완료 | @escaping(결과\<모델, NowDataError\>) | 지정된 디코딩 가능한 모델을 검색한 후 실행할 완성 핸들러입니다. 완성 핸들러에 대한 반환 값: * 성공: 요청된 모델 유형에 대한 데이터입니다. * 실패: NowDataError * `accessToken(AccessTokenProviderError)` * AccessTokenProviderError: 액세스 토큰 제공자의 오류 코드 또는 메시지입니다. * accessTokenRetrievalFailed * userSessionError(_ error: Error) 접근 토큰에 오류가 있을 때 발생합니다. * `첨부 확인` 첨부 파일이 확인에 실패할 때 발생합니다. * `badResponse(statusCode: HTTPStatusCode)` * HTTPStatusCode: 인스턴스에서 받은 상태 코드입니다. 요청에서 예기치 않은 응답을 반환할 때 발생 * `cannotDecodeModel(DecodingError)` * DecodingError: 디코딩 오류가 탐지되었습니다. 코드화 가능한 모델을 JSON에서 디코딩할 수 없을 때 발생합니다. * `cannotDecodeProperty(type: Any, from: String)` * type: 문자열에서 디코딩할 래핑된 유형입니다. * from: 지정된 유형으로 디코딩할 문자열입니다. 문자열로 래핑된 값을 JSON에서 디코딩할 수 없을 때 발생합니다. * `cannotEncodeModel(EncodingError)` * EncodingError: 인코딩 오류가 탐지되었습니다. 코드 가능한 모델을 JSON으로 인코딩할 수 없는 경우 발생합니다. * `cannotParse응답` 인스턴스의 응답을 예상 형식으로 구문 분석할 수 없을 때 발생합니다. * `잘못된 URL` URL을 구성할 수 없을 때 발생합니다. 예를 들어 문자열에 URL에서 잘못된 문자가 포함되어 있거나 빈 문자열인 경우입니다. * `missingAttachmentMetadata` 첨부 파일 메타데이터 헤더가 누락되었을 때 발생 * `missingServiceConfiguration` 예상 서비스 구성이 누락될 때 발생합니다. * `MissingSysID` 예상 sys_id 매개변수가 누락되었을 때 발생합니다. * `네트워크(NetworkServiceError)` * genericError(문자열) * operationCanceled * serviceDisabled * serverError(오류) * systemError(오류) 네트워크 서비스에 오류가 발생할 때 발생합니다. {#NTblServ-model_S_S_S_S_S_O_O__NowDataErroriOS-ul-enum} |
[표 29. 매개변수]

{#NTblServ-model_S_S_S_S_S_O_O__table_trc_vfk_spb} {#NTblServ-model_S_S_S_S_S_O_O__table_urc_vfk_spb__entry__2}

| 유형 | 설명 |
|-|-|
| 없음 |   |
[표 30. 반환]

{#NTblServ-model_S_S_S_S_S_O_O__table_urc_vfk_spb}  
디코딩된 User 모델 컬렉션을 검색하기 위해

    struct User: SysIdentifiableModel {
        var sysId: String = ""
        var name: String
    }
    let service: NowTableService = ...
    let user = User(name: "Ash Williams")
    service.create(Incident(fields: fields), in: tableName, writeOptions: writeOptions, configuration: fetchConfiguration) { [weak self] result in
      switch result {
      case .success(let newUser):
        /// 'newUser' contains the platform assigned 'sys_id', use in subsequent 'update' or 'delete' calls.
      case .failure(let error):
       ...
     }
    }

sys_id별로 디코딩 가능한 단일 모델을 가져오려면 `[User].self` 대신 `User.self`와 같은 단일 모델 유형을 사용합니다.

    service.model(User.self, with: "5137153cc611227c000bbd1bd8cd2005", from: "sys_user", path: "result") { resultin ... }

## NowTableService - model\<Model: Decodable\>(with sysId: SysID? = nil, from tableName: String, path: String = Constants.resultPath, coder: Coder = .default, configuration: FetchConfiguration? = nil) {#ariaid-title17}

지정된 테이블에서 디코딩 가능한 모델을 검색할 수 있는 게시자를 작성합니다.
주:  
이 방법은 더 이상 사용되지 않습니다. 대신 메서드의 async/await 구현을 사용해야 합니다.  
테이블 API 응답은 다음과 유사한 매개변수 내에 result 중첩됩니다.

    {
      "result": [
        { "name": "Ash Williams" },
        { "name": "Lionel Cosgrove" },
        { "name": "Laurie Strode" }
      ]
    }

큰 결과 집합의 경우 페이지 매김 함수 [NowTableService - 페이지 매김자(from tableName: String, configuration: FetchConfiguration? = nil)](https://servicenow-prod.fluidtopics.net/u6t2OtbkgbZ8ejLrrT~GfA#NTblServ-paginator_S_O "기록 페이지를 반복할 수 있는 페이지 매김기를 생성합니다.") 중 하나를 사용하거나 [NowTableService - paginator\<Model: Decodable\>(from tableName: String, path: String = Constants.resultPath, coder: Coder = .default, configuration: FetchConfiguration? = nil)](https://servicenow-prod.fluidtopics.net/u6t2OtbkgbZ8ejLrrT~GfA#NTblServ-paginator_S_S_S_O "중첩을 처리하는 디코딩된 모델 페이지의 반복을 활성화하는 페이지 매김기를 생성합니다.") 페이지 매김된 모델을 가져옵니다.
{#NTblServ-model_S_S_S_S_O__table_nbq_yyj_spb__entry__3}{#NTblServ-model_S_S_S_S_O__mobilesdkiOS-tableName-entry}

| 이름 | 유형 | 설명 |
|-|-|-|
| sysId 포함 | SysID | 옵션입니다. 반환할 기록의 Sys_id입니다. 특정 기록을 검색하려면 sys_id 제공합니다. 기본값: nil |
| from tableName | 문자열 | 인시 던트와 같은 기록을 검색할 테이블의 이름입니다. |
| 경로 | 문자열 | 중첩 유형에 대해 점으로 구분된 경로입니다. 예를 들어 더 깊은 중첩을 위한 `result` 또는 `foo.bar.baz` . 기본값: `결과` |
| 코더 | 코더 | 옵션입니다. 인스턴스와 주고받는 데이터를 인코딩하거나 디코딩하는 데 사용할 `코더`입니다.ServiceNow 가능한 값: * 기본값: 기본 인코더는 디바이스 `로케일` 및 `시간대`를 사용하여 `yyy-MM-dd HH:mm:ss` 형식을 사용하여 날짜 형식을 지정합니다. * custom(JSONEncoder, JSONDecoder): `사용자 지정` 코더를 사용하여 JSON 디코딩/인코딩을 보다 세부적으로 제어할 수 있습니다. 이 열거형은 특수 날짜 형식, 시간대 또는 로캘을 사용하는 경우와 같이 고유한 `JSONEncoder` 및 `JSONDecoder`를 제공하는 데만 사용합니다. let myEncoder = JSONEncoder() myEncoder.dateFormat = ... let myDecoder = JSONDecoder() myDecoder.dateFormat = ... let coder: Coder = .custom(myEncoder, myDecoder) {#NTblServ-model_S_S_S_S_O__ul_nx3_wrd_sqb} 기본값: .default |
| 구성 | [구성 가져오기](https://servicenow-prod.fluidtopics.net/qqENiJFzWL5KlZdDs2tgnw#FetchConfigiOSStructure "FetchConfiguration 구조는 인스턴스에서 ServiceNow 기록을 가져오기 위한 구성을 정의하는 기능을 제공합니다.") | 옵션입니다. 반환할 기록을 정의하는 필터, 페이지 매김 페이지 크기 제한, 검색할 필드 및 필드에 포함할 항목을 포함하여 검색된 기록에 적용할 구성입니다. 기본값: nil - 모든 기록이 반환됩니다. |
[표 31. 매개변수]

{#NTblServ-model_S_S_S_S_O__table_nbq_yyj_spb} {#NTblServ-model_S_S_S_S_O__table_obq_yyj_spb__entry__2}

| 유형 | 설명 |
|-|-|
| AnyPublisher\<Model, NowDataError\> | 성공: 게시자가 디코딩 가능한 모델을 반환합니다. 실패: NowDataError * `accessToken(AccessTokenProviderError)` * AccessTokenProviderError: 액세스 토큰 제공자의 오류 코드 또는 메시지입니다. * accessTokenRetrievalFailed * userSessionError(_ error: Error) 접근 토큰에 오류가 있을 때 발생합니다. * `첨부 확인` 첨부 파일이 확인에 실패할 때 발생합니다. * `badResponse(statusCode: HTTPStatusCode)` * HTTPStatusCode: 인스턴스에서 받은 상태 코드입니다. 요청에서 예기치 않은 응답을 반환할 때 발생 * `cannotDecodeModel(DecodingError)` * DecodingError: 디코딩 오류가 탐지되었습니다. 코드화 가능한 모델을 JSON에서 디코딩할 수 없을 때 발생합니다. * `cannotDecodeProperty(type: Any, from: String)` * type: 문자열에서 디코딩할 래핑된 유형입니다. * from: 지정된 유형으로 디코딩할 문자열입니다. 문자열로 래핑된 값을 JSON에서 디코딩할 수 없을 때 발생합니다. * `cannotEncodeModel(EncodingError)` * EncodingError: 인코딩 오류가 탐지되었습니다. 코드 가능한 모델을 JSON으로 인코딩할 수 없는 경우 발생합니다. * `cannotParse응답` 인스턴스의 응답을 예상 형식으로 구문 분석할 수 없을 때 발생합니다. * `잘못된 URL` URL을 구성할 수 없을 때 발생합니다. 예를 들어 문자열에 URL에서 잘못된 문자가 포함되어 있거나 빈 문자열인 경우입니다. * `missingAttachmentMetadata` 첨부 파일 메타데이터 헤더가 누락되었을 때 발생 * `missingServiceConfiguration` 예상 서비스 구성이 누락될 때 발생합니다. * `MissingSysID` 예상 sys_id 매개변수가 누락되었을 때 발생합니다. * `네트워크(NetworkServiceError)` * genericError(문자열) * operationCanceled * serviceDisabled * serverError(오류) * systemError(오류) 네트워크 서비스에 오류가 발생할 때 발생합니다. {#NTblServ-model_S_S_S_S_O__NowDataErroriOS-ul-enum} |
[표 32. 반환]

{#NTblServ-model_S_S_S_S_O__table_obq_yyj_spb}  
\[ `Users].self`와 같은 유형별로 디코딩된 사용자 모델을 제공하는 게시자를 가져오려면 점으로 구분된 경로를 지정하여 모델을 가져옵니다.

    struct User: Codable {
      varname: String
    }

    let service: NowTableService = ...
    let publisher: AnyPublisher<[User], NowDataError> = service.model(from: "sys_user", path: "user.photos.gps_location")
     
sys_id별로 디코딩 가능한 단일 모델을 가져오려면 `[User].self` 대신 단일 `User.self` 모델 유형을 사용합니다.

    let publisher: AnyPublisher<User, NowDataError> = service.model(with: "5137153cc611227c000bbd1bd8cd2005", from: "sys_user", path: "result")

## NowTableService - 페이지 매김자(from tableName: String, configuration: FetchConfiguration? = nil) {#ariaid-title18}

기록 페이지를 반복할 수 있는 페이지 매김기를 생성합니다.
페이지 매김자의 게시자는 사용자 지정 [코드 모델](https://developer.apple.com/documentation/foundation/archives_and_serialization/encoding_and_decoding_custom_types)로 디코딩할 수 있는 데이터를 내보내거나 함수를 사용할 수도 있습니다.[NowTableService - paginator\<Model: Decodable\>(from tableName: String, path: String = Constants.resultPath, coder: Coder = .default, configuration: FetchConfiguration? = nil)](https://servicenow-prod.fluidtopics.net/u6t2OtbkgbZ8ejLrrT~GfA#NTblServ-paginator_S_S_S_O "중첩을 처리하는 디코딩된 모델 페이지의 반복을 활성화하는 페이지 매김기를 생성합니다.") 또는 편리한 함수 convertToRecords() 를 사용하여 데이터를 NowRecord 객체로 변환할 수 있습니다. 다음은 NowRecord를 내보내도록 게시자를 변환하는 방법을 보여줍니다.

    let dataPublisher: AnyPublisher<Data, NowDataError> = ...
    let recordsPublisher: AnyPublisher<[NowRecord], NowDataError> = myPublisher.convertToRecords()

주:  
매개변수에서 configuration 재정의되지 않는 한 페이지 매김자는 페이지당 20개의 항목을 반환합니다. ACL 평가에 따라 페이지에 대해 가져온 실제 항목 수가 기본값 또는 구성된 값보다 적을 수 있습니다.
{#NTblServ-paginator_S_O__id_fpc_pcj_ppb__entry__3}{#NTblServ-paginator_S_O__mobilesdkiOS-tableName-row}

| 이름 | 유형 | 설명 |
|-|-|-|
| tableName | 문자열 | 인시 던트와 같은 기록을 검색할 테이블의 이름입니다. |
| 구성 | [구성 가져오기](https://servicenow-prod.fluidtopics.net/qqENiJFzWL5KlZdDs2tgnw#FetchConfigiOSStructure "FetchConfiguration 구조는 인스턴스에서 ServiceNow 기록을 가져오기 위한 구성을 정의하는 기능을 제공합니다.") | 옵션입니다. 반환할 기록을 정의하는 필터, 페이지 매김 페이지 크기 제한, 검색할 필드 및 필드에 포함할 항목을 포함하여 검색된 기록에 적용할 구성입니다. 기본값: nil - 모든 기록이 반환됩니다. |
[표 33. 매개변수]

{#NTblServ-paginator_S_O__id_fpc_pcj_ppb} {#NTblServ-paginator_S_O__table_uwv_wv3_ppb__entry__2}

| 유형 | 설명 |
|-|-|
| 페이지 매김기\<데이터\> | 성공: 지정된 기록을 포함하는 페이지 매김기 객체입니다. 실패: NowDataError * `accessToken(AccessTokenProviderError)` * AccessTokenProviderError: 액세스 토큰 제공자의 오류 코드 또는 메시지입니다. * accessTokenRetrievalFailed * userSessionError(_ error: Error) 접근 토큰에 오류가 있을 때 발생합니다. * `첨부 확인` 첨부 파일이 확인에 실패할 때 발생합니다. * `badResponse(statusCode: HTTPStatusCode)` * HTTPStatusCode: 인스턴스에서 받은 상태 코드입니다. 요청에서 예기치 않은 응답을 반환할 때 발생 * `cannotDecodeModel(DecodingError)` * DecodingError: 디코딩 오류가 탐지되었습니다. 코드화 가능한 모델을 JSON에서 디코딩할 수 없을 때 발생합니다. * `cannotDecodeProperty(type: Any, from: String)` * type: 문자열에서 디코딩할 래핑된 유형입니다. * from: 지정된 유형으로 디코딩할 문자열입니다. 문자열로 래핑된 값을 JSON에서 디코딩할 수 없을 때 발생합니다. * `cannotEncodeModel(EncodingError)` * EncodingError: 인코딩 오류가 탐지되었습니다. 코드 가능한 모델을 JSON으로 인코딩할 수 없는 경우 발생합니다. * `cannotParse응답` 인스턴스의 응답을 예상 형식으로 구문 분석할 수 없을 때 발생합니다. * `잘못된 URL` URL을 구성할 수 없을 때 발생합니다. 예를 들어 문자열에 URL에서 잘못된 문자가 포함되어 있거나 빈 문자열인 경우입니다. * `missingAttachmentMetadata` 첨부 파일 메타데이터 헤더가 누락되었을 때 발생 * `missingServiceConfiguration` 예상 서비스 구성이 누락될 때 발생합니다. * `MissingSysID` 예상 sys_id 매개변수가 누락되었을 때 발생합니다. * `네트워크(NetworkServiceError)` * genericError(문자열) * operationCanceled * serviceDisabled * serverError(오류) * systemError(오류) 네트워크 서비스에 오류가 발생할 때 발생합니다. {#NTblServ-paginator_S_O__NowDataErroriOS-ul-enum} |
[표 34. 반환]

{#NTblServ-paginator_S_O__table_uwv_wv3_ppb}  

    private var tableService: NowTableService?
    // Paginator creation uses type inference to determine the response type.
    private var paginator: Paginator<[CustomerServiceCase]>?

    func initializeTableService(for instanceUrl: URL) {
      makeTableService(instanceUrl: instanceUrl) { [weak self] result in
        guard let self = self else { return }
                
        switch result {
        case .success(let tableService):
          self.tableService = tableService
          // Create a paginator that iterates over pages of customer support cases. The paginator's response type is
          // inferred from the paginator's type definition (e.g. `Paginator<[CustomerServiceCase]>`).
          self.paginator = tableService.paginator(from: Self.tableName, configuration: self.fetchConfiguration)
          // Subscribe to the paginator's publisher so you are able to receive paged results.
          self.subscribeToPaginatorPublisher()
          // Ready to start fetching data, inform the view controller.
          self.onReady(self)
        case .failure(let error):
          debugPrint("Creating table service failed with error: \(error.localizedDescription)")
          self.tableService = nil
          self.paginator = nil
        }
      }
    }

## NowTableService - paginator\<Model: Decodable\>(from tableName: String, path: String = Constants.resultPath, coder: Coder = .default, configuration: FetchConfiguration? = nil) {#ariaid-title19}

중첩을 처리하는 디코딩된 모델 페이지의 반복을 활성화하는 페이지 매김기를 생성합니다.
ServiceNow REST 테이블 API 응답은 다음과 유사한 결과 속성 내에 중첩됩니다.

    {
      "result": [
        { "name": "Ash Williams" },
        { "name": "Lionel Cosgrove" },
        { "name": "Laurie Strode" }
      ]
    }

디코딩된 사용자 모델을 제공하는 페이지 매김자를 얻으려면 점으로 구분된 경로를 지정하여 페이지 매김자를 가져옵니다. 이 경우 . result

    struct User: Codable {
      varname: String
    }

    let service: NowTableService = ...
    let paginator: Paginator<[User]> = service.paginator(from: "sys_user", path: "result")

주:  
매개변수에서 configuration 재정의되지 않는 한 페이지 매김자는 페이지당 20개의 항목을 반환합니다. ACL 평가에 따라 페이지에 대해 가져온 실제 항목 수가 기본값 또는 구성된 값보다 적을 수 있습니다.  
Paginator 개체를 얻은 후 해당 Combine Publisher를 구독하여 데이터 수신을 시작합니다.

    paginator.publisher
      .subscribe(on: DispatchQueue.global())
      .receive(on: DispatchQueue.main)
      .sink { ... }
      .store(in: &subscriptions)

주:  
모든 구독 결합과 마찬가지로 예기치 않은 결과를 방지하려면 구독을 유지해야 합니다.
{#NTblServ-paginator_S_S_S_O__table_vds_gtj_spb__entry__3}{#NTblServ-paginator_S_S_S_O__mobilesdkiOS-tableName-entry}

| 이름 | 유형 | 설명 |
|-|-|-|
| from tableName | 문자열 | 인시 던트와 같은 기록을 검색할 테이블의 이름입니다. |
| 경로 | 문자열 | 중첩 유형에 대해 점으로 구분된 경로입니다. 예를 들어 더 깊은 중첩을 위한 `result` 또는 `result.user.photos` 입니다. 사용자 지정 경로를 지정하면 중첩된 데이터를 가져오거나 반복할 수 있습니다*.* 기본값: `결과` |
| 코더 | 코더 | 옵션입니다. 인스턴스와 주고받는 데이터를 인코딩하거나 디코딩하는 데 사용할 `코더`입니다.ServiceNow 가능한 값: * 기본값: 기본 인코더는 디바이스 `로케일` 및 `시간대`를 사용하여 `yyy-MM-dd HH:mm:ss` 형식을 사용하여 날짜 형식을 지정합니다. * custom(JSONEncoder, JSONDecoder): `사용자 지정` 코더를 사용하여 JSON 디코딩/인코딩을 보다 세부적으로 제어할 수 있습니다. 이 열거형은 특수 날짜 형식, 시간대 또는 로캘을 사용하는 경우와 같이 고유한 `JSONEncoder` 및 `JSONDecoder`를 제공하는 데만 사용합니다. let myEncoder = JSONEncoder() myEncoder.dateFormat = ... let myDecoder = JSONDecoder() myDecoder.dateFormat = ... let coder: Coder = .custom(myEncoder, myDecoder) {#NTblServ-paginator_S_S_S_O__ul_nx3_wrd_sqb} 기본값: .default |
| 구성 | [구성 가져오기](https://servicenow-prod.fluidtopics.net/qqENiJFzWL5KlZdDs2tgnw#FetchConfigiOSStructure "FetchConfiguration 구조는 인스턴스에서 ServiceNow 기록을 가져오기 위한 구성을 정의하는 기능을 제공합니다.") | 옵션입니다. 반환할 기록을 정의하는 필터, 페이지 매김 페이지 크기 제한, 검색할 필드 및 필드에 포함할 항목을 포함하여 검색된 기록에 적용할 구성입니다. 기본값: nil - 모든 기록이 반환됩니다. |
[표 35. 매개변수]

{#NTblServ-paginator_S_S_S_O__table_vds_gtj_spb} {#NTblServ-paginator_S_S_S_O__table_wds_gtj_spb__entry__2}

| 유형 | 설명 |
|-|-|
| 페이지 매김기\<데이터\> | 성공: 페이지 매김된 `디코딩 가능` 모델을 포함하는 페이지 매김기 객체입니다. 실패: NowDataError * `accessToken(AccessTokenProviderError)` * AccessTokenProviderError: 액세스 토큰 제공자의 오류 코드 또는 메시지입니다. * accessTokenRetrievalFailed * userSessionError(_ error: Error) 접근 토큰에 오류가 있을 때 발생합니다. * `첨부 확인` 첨부 파일이 확인에 실패할 때 발생합니다. * `badResponse(statusCode: HTTPStatusCode)` * HTTPStatusCode: 인스턴스에서 받은 상태 코드입니다. 요청에서 예기치 않은 응답을 반환할 때 발생 * `cannotDecodeModel(DecodingError)` * DecodingError: 디코딩 오류가 탐지되었습니다. 코드화 가능한 모델을 JSON에서 디코딩할 수 없을 때 발생합니다. * `cannotDecodeProperty(type: Any, from: String)` * type: 문자열에서 디코딩할 래핑된 유형입니다. * from: 지정된 유형으로 디코딩할 문자열입니다. 문자열로 래핑된 값을 JSON에서 디코딩할 수 없을 때 발생합니다. * `cannotEncodeModel(EncodingError)` * EncodingError: 인코딩 오류가 탐지되었습니다. 코드 가능한 모델을 JSON으로 인코딩할 수 없는 경우 발생합니다. * `cannotParse응답` 인스턴스의 응답을 예상 형식으로 구문 분석할 수 없을 때 발생합니다. * `잘못된 URL` URL을 구성할 수 없을 때 발생합니다. 예를 들어 문자열에 URL에서 잘못된 문자가 포함되어 있거나 빈 문자열인 경우입니다. * `missingAttachmentMetadata` 첨부 파일 메타데이터 헤더가 누락되었을 때 발생 * `missingServiceConfiguration` 예상 서비스 구성이 누락될 때 발생합니다. * `MissingSysID` 예상 sys_id 매개변수가 누락되었을 때 발생합니다. * `네트워크(NetworkServiceError)` * genericError(문자열) * operationCanceled * serviceDisabled * serverError(오류) * systemError(오류) 네트워크 서비스에 오류가 발생할 때 발생합니다. {#NTblServ-paginator_S_S_S_O__NowDataErroriOS-ul-enum} |
[표 36. 반환]

{#NTblServ-paginator_S_S_S_O__table_wds_gtj_spb}  
이 예제에서는 디코딩된 사용자 모델을 제공하는 Paginator 객체를 가져오는 방법을 보여줍니다. 컴파일러가 사용자 모델 컬렉션(\[User\])을 반환하도록 힌트를 주고 사용자가 결과 경로 아래에 중첩되어 있음을 Paginator 객체에 알리면 원하는 Paginator 객체를 가져올 수 있습니다.

    struct User: Codable {
      var name: String
    }

    let service: NowTableService = ...
    let paginator: Paginator<[User]> = service.paginator(from: "sys_user", path: "result")

주:  
테이블 API는 항상 결과 경로 아래에 중첩된 결과를 반환하므로 매개변수를 path 안전하게 제거할 수 있습니다.

## NowTableService - record(with sysId: SysID, from tableName: String, configuration: FieldReadConfiguration? = nil) 비동기 Throw {#ariaid-title20}

인스턴스의 지정된 테이블에서 지정된 기록을 조회합니다 ServiceNow .
이 게시자는 사용자 지정 [코드 모델](https://developer.apple.com/documentation/foundation/archives_and_serialization/encoding_and_decoding_custom_types)로 디코딩할 수 있는 데이터를 내보내거나 함수를 사용할 수도 있습니다.[NowTableService - paginator\<Model: Decodable\>(from tableName: String, path: String = Constants.resultPath, coder: Coder = .default, configuration: FetchConfiguration? = nil)](https://servicenow-prod.fluidtopics.net/u6t2OtbkgbZ8ejLrrT~GfA#NTblServ-paginator_S_S_S_O "중첩을 처리하는 디코딩된 모델 페이지의 반복을 활성화하는 페이지 매김기를 생성합니다.") 또는 편리한 함수 convertToRecords() 를 사용하여 데이터를 NowRecord 객체로 변환할 수 있습니다. 다음은 NowRecord를 내보내도록 게시자를 변환하는 방법을 보여줍니다.

    let dataPublisher: AnyPublisher<Data, NowDataError> = ...
    let recordsPublisher: AnyPublisher<[NowRecord], NowDataError> = myPublisher.convertToRecords()

{#NTblServ-record-async_S_S_O__table_fsr_23j_ppb__entry__3}{#NTblServ-record-async_S_S_O__mobilesdkiOS-tableName-entry}

| 이름 | 유형 | 설명 |
|-|-|-|
| sysId | 문자열 | 인스턴스에서 반환할 기록의 Sys_id입니다.ServiceNow |
| from tableName | 문자열 | 인시 던트와 같은 기록을 검색할 테이블의 이름입니다. |
| 구성 | [구성 가져오기](https://servicenow-prod.fluidtopics.net/qqENiJFzWL5KlZdDs2tgnw#FetchConfigiOSStructure "FetchConfiguration 구조는 인스턴스에서 ServiceNow 기록을 가져오기 위한 구성을 정의하는 기능을 제공합니다.") | 옵션입니다. 반환할 기록을 정의하는 필터, 페이지 매김 페이지 크기 제한, 검색할 필드 및 필드에 포함할 항목을 포함하여 검색된 기록에 적용할 구성입니다. 기본값: nil - 모든 기록이 반환됩니다. |
[표 37. 매개변수]

{#NTblServ-record-async_S_S_O__table_fsr_23j_ppb} {#NTblServ-record-async_S_S_O__table_gsr_23j_ppb__entry__2}

| 유형 | 설명 |
|-|-|
| 데이터 | 메서드가 성공하면 반환됩니다. 지정된 기록을 포함하는 데이터 객체입니다. |
| NowDataError | 메서드가 실패할 때 throw됩니다. * `accessToken(AccessTokenProviderError)` * AccessTokenProviderError: 액세스 토큰 제공자의 오류 코드 또는 메시지입니다. * accessTokenRetrievalFailed * userSessionError(_ error: Error) 접근 토큰에 오류가 있을 때 발생합니다. * `첨부 확인` 첨부 파일이 확인에 실패할 때 발생합니다. * `badResponse(statusCode: HTTPStatusCode)` * HTTPStatusCode: 인스턴스에서 받은 상태 코드입니다. 요청에서 예기치 않은 응답을 반환할 때 발생 * `cannotDecodeModel(DecodingError)` * DecodingError: 디코딩 오류가 탐지되었습니다. 코드화 가능한 모델을 JSON에서 디코딩할 수 없을 때 발생합니다. * `cannotDecodeProperty(type: Any, from: String)` * type: 문자열에서 디코딩할 래핑된 유형입니다. * from: 지정된 유형으로 디코딩할 문자열입니다. 문자열로 래핑된 값을 JSON에서 디코딩할 수 없을 때 발생합니다. * `cannotEncodeModel(EncodingError)` * EncodingError: 인코딩 오류가 탐지되었습니다. 코드 가능한 모델을 JSON으로 인코딩할 수 없는 경우 발생합니다. * `cannotParse응답` 인스턴스의 응답을 예상 형식으로 구문 분석할 수 없을 때 발생합니다. * `잘못된 URL` URL을 구성할 수 없을 때 발생합니다. 예를 들어 문자열에 URL에서 잘못된 문자가 포함되어 있거나 빈 문자열인 경우입니다. * `missingAttachmentMetadata` 첨부 파일 메타데이터 헤더가 누락되었을 때 발생 * `missingServiceConfiguration` 예상 서비스 구성이 누락될 때 발생합니다. * `MissingSysID` 예상 sys_id 매개변수가 누락되었을 때 발생합니다. * `네트워크(NetworkServiceError)` * genericError(문자열) * operationCanceled * serviceDisabled * serverError(오류) * systemError(오류) 네트워크 서비스에 오류가 발생할 때 발생합니다. {#NTblServ-record-async_S_S_O__NowDataErroriOS-ul-enum} |
[표 38. 반환]

{#NTblServ-record-async_S_S_O__table_gsr_23j_ppb}  
다음 코드 예제에서는 이 메서드를 호출하는 방법을 보여 줍니다.

    func fetchTableRecord(sysId: String, tableName: String, includeFields: [FieldName] = [FieldName](), readOptions: FieldReadConfiguration.Options = []) async throws -> NowRecord {
        let readConfig = FieldReadConfiguration(includeFields: includeFields, options: readOptions)
        do {
            let dataResult: Data = try await tableService.record(with: sysId, from: tableName, configuration: configuration)
            let recordResult: NowRecord = dataResult.convertToRecord()
            return recordResult
        } catch {
            print("Fetch failed with NowDataError: \(error)")
            throw error
        }
    }

## NowTableService - record(sysId: SysID, from tableName: String, configuration: FieldReadConfiguration, completion: @escaping (결과\<데이터, NowDataError\>) {#ariaid-title21}

지정된 테이블에서 지정된 기록을 검색한 다음 기록이 검색된 후 완료 핸들러를 실행합니다.
필요한 경우 반환 결과를 사용자 지정 Codable 모델로 디코딩하거나 대신 함수를 [NowTableService - paginator\<Model: Decodable\>(from tableName: String, path: String = Constants.resultPath, coder: Coder = .default, configuration: FetchConfiguration? = nil)](https://servicenow-prod.fluidtopics.net/u6t2OtbkgbZ8ejLrrT~GfA#NTblServ-paginator_S_S_S_O "중첩을 처리하는 디코딩된 모델 페이지의 반복을 활성화하는 페이지 매김기를 생성합니다.") 사용할 수 있습니다. 또는 편리한 함수 convertToRecords() 를 사용하여 데이터를 NowRecord 객체로 변환할 수 있습니다. 다음은 NowRecord를 내보내도록 게시자를 변환하는 방법을 보여줍니다.

    let dataPublisher: AnyPublisher<Data, NowDataError> = ...
    let recordsPublisher: AnyPublisher<[NowRecord], NowDataError> = myResult.convertToRecords()

큰 결과 세트의 경우 함수를 [NowTableService - 페이지 매김자(from tableName: String, configuration: FetchConfiguration? = nil)](https://servicenow-prod.fluidtopics.net/u6t2OtbkgbZ8ejLrrT~GfA#NTblServ-paginator_S_O "기록 페이지를 반복할 수 있는 페이지 매김기를 생성합니다.") 사용하여 페이지 매김된 결과를 가져옵니다.
{#NTblServ-record_S_S_O_O__table_fzv_fnj_ppb__entry__3}{#NTblServ-record_S_S_O_O__mobilesdkiOS-tableName-entry}

| 이름 | 유형 | 설명 |
|-|-|-|
| sysId | 문자열 | 인스턴스에서 반환할 기록의 Sys_id입니다.ServiceNow |
| from tableName | 문자열 | 인시 던트와 같은 기록을 검색할 테이블의 이름입니다. |
| 구성 | [구성 가져오기](https://servicenow-prod.fluidtopics.net/qqENiJFzWL5KlZdDs2tgnw#FetchConfigiOSStructure "FetchConfiguration 구조는 인스턴스에서 ServiceNow 기록을 가져오기 위한 구성을 정의하는 기능을 제공합니다.") | 옵션입니다. 반환할 기록을 정의하는 필터, 페이지 매김 페이지 크기 제한, 검색할 필드 및 필드에 포함할 항목을 포함하여 검색된 기록에 적용할 구성입니다. 기본값: nil - 모든 기록이 반환됩니다. |
| 완료 | @escaping(결과\<데이터, NowDataError\>) | 기록을 검색한 후 실행할 완성 핸들러입니다. 반환 값: * 성공: 데이터 - 요청된 기록 * 오류: NowDataError * `accessToken(AccessTokenProviderError)` * AccessTokenProviderError: 액세스 토큰 제공자의 오류 코드 또는 메시지입니다. * accessTokenRetrievalFailed * userSessionError(_ error: Error) 접근 토큰에 오류가 있을 때 발생합니다. * `첨부 확인` 첨부 파일이 확인에 실패할 때 발생합니다. * `badResponse(statusCode: HTTPStatusCode)` * HTTPStatusCode: 인스턴스에서 받은 상태 코드입니다. 요청에서 예기치 않은 응답을 반환할 때 발생 * `cannotDecodeModel(DecodingError)` * DecodingError: 디코딩 오류가 탐지되었습니다. 코드화 가능한 모델을 JSON에서 디코딩할 수 없을 때 발생합니다. * `cannotDecodeProperty(type: Any, from: String)` * type: 문자열에서 디코딩할 래핑된 유형입니다. * from: 지정된 유형으로 디코딩할 문자열입니다. 문자열로 래핑된 값을 JSON에서 디코딩할 수 없을 때 발생합니다. * `cannotEncodeModel(EncodingError)` * EncodingError: 인코딩 오류가 탐지되었습니다. 코드 가능한 모델을 JSON으로 인코딩할 수 없는 경우 발생합니다. * `cannotParse응답` 인스턴스의 응답을 예상 형식으로 구문 분석할 수 없을 때 발생합니다. * `잘못된 URL` URL을 구성할 수 없을 때 발생합니다. 예를 들어 문자열에 URL에서 잘못된 문자가 포함되어 있거나 빈 문자열인 경우입니다. * `missingAttachmentMetadata` 첨부 파일 메타데이터 헤더가 누락되었을 때 발생 * `missingServiceConfiguration` 예상 서비스 구성이 누락될 때 발생합니다. * `MissingSysID` 예상 sys_id 매개변수가 누락되었을 때 발생합니다. * `네트워크(NetworkServiceError)` * genericError(문자열) * operationCanceled * serviceDisabled * serverError(오류) * systemError(오류) 네트워크 서비스에 오류가 발생할 때 발생합니다. {#NTblServ-record_S_S_O_O__NowDataErroriOS-ul-enum} {#NTblServ-record_S_S_O_O__ul_uzx_thj_ppb} |
[표 39. 매개변수]

{#NTblServ-record_S_S_O_O__table_fzv_fnj_ppb} {#NTblServ-record_S_S_O_O__table_gzv_fnj_ppb__entry__2}

| 유형 | 설명 |
|-|-|
| 없음 |   |
[표 40. 반환]

{#NTblServ-record_S_S_O_O__table_gzv_fnj_ppb}  
다음 코드 예제에서는 이 메서드를 호출하는 방법을 보여 줍니다.

    func fetchTableRecords( tableName: String, filterQuery: String, includeFields: [FieldName] = [FieldName](), readOptions: FieldReadConfiguration.Options = [], limit: Int?) {
      let readConfig = FieldReadConfiguration(includeFields: includeFields, options: readOptions)
      let config = FetchConfiguration(Filter(query: filterQuery), limit, readConfig)
      tableService.records (from: tableName, configuration: fetchConfiguration) { [weak self] result in
        switch result {
          case .success(let dataResult):
            let recordResult: [NowRecord] = dataResult.convertToRecords()
            // Return recordResult

          case .failure(let error):
            // Failed to fetch record with NowDataError
        }
      }
    }

## NowTableService - record(sysId: SysID, from tableName: String, configuration: FieldReadConfiguration? = nil) {#ariaid-title22}

인스턴스의 지정된 테이블 ServiceNow 에서 지정된 기록을 검색하는 게시자를 만듭니다.
주:  
이 방법은 더 이상 사용되지 않습니다. 대신 메서드의 async/await 구현을 사용해야 합니다.  
이 게시자는 사용자 지정 [코드 모델](https://developer.apple.com/documentation/foundation/archives_and_serialization/encoding_and_decoding_custom_types)로 디코딩할 수 있는 데이터를 내보내거나 함수를 사용할 수도 있습니다.[NowTableService - paginator\<Model: Decodable\>(from tableName: String, path: String = Constants.resultPath, coder: Coder = .default, configuration: FetchConfiguration? = nil)](https://servicenow-prod.fluidtopics.net/u6t2OtbkgbZ8ejLrrT~GfA#NTblServ-paginator_S_S_S_O "중첩을 처리하는 디코딩된 모델 페이지의 반복을 활성화하는 페이지 매김기를 생성합니다.") 또는 편리한 함수 convertToRecords() 를 사용하여 데이터를 NowRecord 객체로 변환할 수 있습니다. 다음은 NowRecord를 내보내도록 게시자를 변환하는 방법을 보여줍니다.

    let dataPublisher: AnyPublisher<Data, NowDataError> = ...
    let recordsPublisher: AnyPublisher<[NowRecord], NowDataError> = myPublisher.convertToRecords()

{#NTblServ-record_S_S_O__table_fsr_23j_ppb__entry__3}{#NTblServ-record_S_S_O__mobilesdkiOS-tableName-entry}

| 이름 | 유형 | 설명 |
|-|-|-|
| sysId | 문자열 | 인스턴스에서 반환할 기록의 Sys_id입니다.ServiceNow |
| from tableName | 문자열 | 인시 던트와 같은 기록을 검색할 테이블의 이름입니다. |
| 구성 | [구성 가져오기](https://servicenow-prod.fluidtopics.net/qqENiJFzWL5KlZdDs2tgnw#FetchConfigiOSStructure "FetchConfiguration 구조는 인스턴스에서 ServiceNow 기록을 가져오기 위한 구성을 정의하는 기능을 제공합니다.") | 옵션입니다. 반환할 기록을 정의하는 필터, 페이지 매김 페이지 크기 제한, 검색할 필드 및 필드에 포함할 항목을 포함하여 검색된 기록에 적용할 구성입니다. 기본값: nil - 모든 기록이 반환됩니다. |
[표 41. 매개변수]

{#NTblServ-record_S_S_O__table_fsr_23j_ppb} {#NTblServ-record_S_S_O__table_gsr_23j_ppb__entry__2}

| 유형 | 설명 |
|-|-|
| AnyPublisher\<Data, NowDataError\> | 성공: 지정된 기록을 포함하는 데이터 객체입니다. 실패: NowDataError * `accessToken(AccessTokenProviderError)` * AccessTokenProviderError: 액세스 토큰 제공자의 오류 코드 또는 메시지입니다. * accessTokenRetrievalFailed * userSessionError(_ error: Error) 접근 토큰에 오류가 있을 때 발생합니다. * `첨부 확인` 첨부 파일이 확인에 실패할 때 발생합니다. * `badResponse(statusCode: HTTPStatusCode)` * HTTPStatusCode: 인스턴스에서 받은 상태 코드입니다. 요청에서 예기치 않은 응답을 반환할 때 발생 * `cannotDecodeModel(DecodingError)` * DecodingError: 디코딩 오류가 탐지되었습니다. 코드화 가능한 모델을 JSON에서 디코딩할 수 없을 때 발생합니다. * `cannotDecodeProperty(type: Any, from: String)` * type: 문자열에서 디코딩할 래핑된 유형입니다. * from: 지정된 유형으로 디코딩할 문자열입니다. 문자열로 래핑된 값을 JSON에서 디코딩할 수 없을 때 발생합니다. * `cannotEncodeModel(EncodingError)` * EncodingError: 인코딩 오류가 탐지되었습니다. 코드 가능한 모델을 JSON으로 인코딩할 수 없는 경우 발생합니다. * `cannotParse응답` 인스턴스의 응답을 예상 형식으로 구문 분석할 수 없을 때 발생합니다. * `잘못된 URL` URL을 구성할 수 없을 때 발생합니다. 예를 들어 문자열에 URL에서 잘못된 문자가 포함되어 있거나 빈 문자열인 경우입니다. * `missingAttachmentMetadata` 첨부 파일 메타데이터 헤더가 누락되었을 때 발생 * `missingServiceConfiguration` 예상 서비스 구성이 누락될 때 발생합니다. * `MissingSysID` 예상 sys_id 매개변수가 누락되었을 때 발생합니다. * `네트워크(NetworkServiceError)` * genericError(문자열) * operationCanceled * serviceDisabled * serverError(오류) * systemError(오류) 네트워크 서비스에 오류가 발생할 때 발생합니다. {#NTblServ-record_S_S_O__NowDataErroriOS-ul-enum} |
[표 42. 반환]

{#NTblServ-record_S_S_O__table_gsr_23j_ppb}  
이 예시에서는 지정된 필드를 사용하여 지정된 테이블에서 지정된 기록을 검색하는 기능을 만드는 방법을 보여줍니다. 호출의 출력은 데이터를 원하는 모델로 변환할 수 있는 ByteArray입니다.

    tableService.record(with: sysId, from: tableName, configuration: fetchConfiguration)
        .subscribe(on: DispatchQueue.global())
        .receive(on: DispatchQueue.main)
        .convertToRecord()
        .sink { completion in
            if case let .failure(error) = completion {
                print("Record retrieval failed with NowDataError: \(error)")
            }
        } receiveValue: { record in
            print("Successfully retrieved record: \(record)")
        }
        .store(in: &subscriptions)

## NowTableService - 기록(from tableName: String, configuration: FetchConfiguration? = nil) 비동기 throw {#ariaid-title23}

지정된 테이블에서 기록을 검색합니다.
이 게시자는 사용자 지정 [코드 모델](https://developer.apple.com/documentation/foundation/archives_and_serialization/encoding_and_decoding_custom_types)로 디코딩할 수 있는 데이터를 내보내거나 함수를 사용할 수도 있습니다.[NowTableService - paginator\<Model: Decodable\>(from tableName: String, path: String = Constants.resultPath, coder: Coder = .default, configuration: FetchConfiguration? = nil)](https://servicenow-prod.fluidtopics.net/u6t2OtbkgbZ8ejLrrT~GfA#NTblServ-paginator_S_S_S_O "중첩을 처리하는 디코딩된 모델 페이지의 반복을 활성화하는 페이지 매김기를 생성합니다.") 또는 편리한 함수 convertToRecords() 를 사용하여 데이터를 NowRecord 객체로 변환할 수 있습니다. 다음은 NowRecord를 내보내도록 게시자를 변환하는 방법을 보여줍니다.

    let dataPublisher: AnyPublisher<Data, NowDataError> = ...
    let recordsPublisher: AnyPublisher<[NowRecord], NowDataError> = myPublisher.convertToRecords()

큰 결과 세트의 경우 함수를 [NowTableService - 페이지 매김자(from tableName: String, configuration: FetchConfiguration? = nil)](https://servicenow-prod.fluidtopics.net/u6t2OtbkgbZ8ejLrrT~GfA#NTblServ-paginator_S_O "기록 페이지를 반복할 수 있는 페이지 매김기를 생성합니다.") 사용하여 페이지 매김된 결과를 가져옵니다.
{#NTblServ-records-async_S_O__id_rzw_lcj_ppb__entry__3}{#NTblServ-records-async_S_O__mobilesdkiOS-tableName-entry}

| 이름 | 유형 | 설명 |
|-|-|-|
| from tableName | 문자열 | 인시 던트와 같은 기록을 검색할 테이블의 이름입니다. |
| 구성 | [구성 가져오기](https://servicenow-prod.fluidtopics.net/qqENiJFzWL5KlZdDs2tgnw#FetchConfigiOSStructure "FetchConfiguration 구조는 인스턴스에서 ServiceNow 기록을 가져오기 위한 구성을 정의하는 기능을 제공합니다.") | 옵션입니다. 반환할 기록을 정의하는 필터, 페이지 매김 페이지 크기 제한, 검색할 필드 및 필드에 포함할 항목을 포함하여 검색된 기록에 적용할 구성입니다. 기본값: nil - 모든 기록이 반환됩니다. |
[표 43. 매개변수]

{#NTblServ-records-async_S_O__id_rzw_lcj_ppb} {#NTblServ-records-async_S_O__table_yvr_d1j_ppb__entry__2}

| 유형 | 설명 |
|-|-|
| 데이터 | 메서드가 성공하면 반환됩니다. 지정된 기록을 포함하는 데이터 객체입니다. |
| NowDataError | 메서드가 실패할 때 throw됩니다. * `accessToken(AccessTokenProviderError)` * AccessTokenProviderError: 액세스 토큰 제공자의 오류 코드 또는 메시지입니다. * accessTokenRetrievalFailed * userSessionError(_ error: Error) 접근 토큰에 오류가 있을 때 발생합니다. * `첨부 확인` 첨부 파일이 확인에 실패할 때 발생합니다. * `badResponse(statusCode: HTTPStatusCode)` * HTTPStatusCode: 인스턴스에서 받은 상태 코드입니다. 요청에서 예기치 않은 응답을 반환할 때 발생 * `cannotDecodeModel(DecodingError)` * DecodingError: 디코딩 오류가 탐지되었습니다. 코드화 가능한 모델을 JSON에서 디코딩할 수 없을 때 발생합니다. * `cannotDecodeProperty(type: Any, from: String)` * type: 문자열에서 디코딩할 래핑된 유형입니다. * from: 지정된 유형으로 디코딩할 문자열입니다. 문자열로 래핑된 값을 JSON에서 디코딩할 수 없을 때 발생합니다. * `cannotEncodeModel(EncodingError)` * EncodingError: 인코딩 오류가 탐지되었습니다. 코드 가능한 모델을 JSON으로 인코딩할 수 없는 경우 발생합니다. * `cannotParse응답` 인스턴스의 응답을 예상 형식으로 구문 분석할 수 없을 때 발생합니다. * `잘못된 URL` URL을 구성할 수 없을 때 발생합니다. 예를 들어 문자열에 URL에서 잘못된 문자가 포함되어 있거나 빈 문자열인 경우입니다. * `missingAttachmentMetadata` 첨부 파일 메타데이터 헤더가 누락되었을 때 발생 * `missingServiceConfiguration` 예상 서비스 구성이 누락될 때 발생합니다. * `MissingSysID` 예상 sys_id 매개변수가 누락되었을 때 발생합니다. * `네트워크(NetworkServiceError)` * genericError(문자열) * operationCanceled * serviceDisabled * serverError(오류) * systemError(오류) 네트워크 서비스에 오류가 발생할 때 발생합니다. {#NTblServ-records-async_S_O__NowDataErroriOS-ul-enum} |
[표 44. 반환]

{#NTblServ-records-async_S_O__table_yvr_d1j_ppb}  
다음 코드 예제에서는 이 메서드를 호출하는 방법을 보여 줍니다.

    func fetchTableRecords( tableName: String, filterQuery: String,
     includeFields: [FieldName] = [FieldName](), readOptions:
     FieldReadConfiguration.Options = [], limit: Int?) {
        let readConfig = FieldReadConfiguration(includeFields: includeFields, options: readOptions)
        let config = FetchConfiguration(Filter(query: filterQuery), limit, readConfig)
        do {
          let dataResult: Data = try await tableService.records(from: tableName, configuration: config)
          let recordResult: [NowRecord] = dataResult.convertToRecords()
          // return recordResult
        } catch {
          print("Fetch failed with NowDataError: \(error)")
          throw error 
      }
    }

## NowTableService - records(from tableName: String, configuration: FetchConfiguration? = nil, completion: @escaping (Result\<Data, NowDataError\>)) {#ariaid-title24}

지정된 테이블에서 기록을 검색하고 기록이 completion 검색된 후 핸들러를 실행합니다.
필요한 경우 반환 결과를 사용자 지정 Codable 모델로 디코딩하거나 대신 함수를 [NowTableService - paginator\<Model: Decodable\>(from tableName: String, path: String = Constants.resultPath, coder: Coder = .default, configuration: FetchConfiguration? = nil)](https://servicenow-prod.fluidtopics.net/u6t2OtbkgbZ8ejLrrT~GfA#NTblServ-paginator_S_S_S_O "중첩을 처리하는 디코딩된 모델 페이지의 반복을 활성화하는 페이지 매김기를 생성합니다.") 사용할 수 있습니다. 또는 편리한 함수 convertToRecords() 를 사용하여 데이터를 NowRecord 객체로 변환할 수 있습니다. 다음은 NowRecord를 내보내도록 게시자를 변환하는 방법을 보여줍니다.

    let dataPublisher: AnyPublisher<Data, NowDataError> = ...
    let recordsPublisher: AnyPublisher<[NowRecord], NowDataError> = myResult.convertToRecords()

큰 결과 세트의 경우 함수를 [NowTableService - 페이지 매김자(from tableName: String, configuration: FetchConfiguration? = nil)](https://servicenow-prod.fluidtopics.net/u6t2OtbkgbZ8ejLrrT~GfA#NTblServ-paginator_S_O "기록 페이지를 반복할 수 있는 페이지 매김기를 생성합니다.") 사용하여 페이지 매김된 결과를 가져옵니다.
{#NTblServ-records_S_O_O__table_uvc_y2j_ppb__entry__3}

| 이름 | 유형 | 설명 |
|-|-|-|
| tableName에서 | 문자열 | 인시던트와 같은 기록을 쓸 테이블의 이름입니다. |
| 구성 | [구성 가져오기](https://servicenow-prod.fluidtopics.net/qqENiJFzWL5KlZdDs2tgnw#FetchConfigiOSStructure "FetchConfiguration 구조는 인스턴스에서 ServiceNow 기록을 가져오기 위한 구성을 정의하는 기능을 제공합니다.") | 옵션입니다. 반환할 기록을 정의하는 필터, 페이지 매김 페이지 크기 제한, 검색할 필드 및 필드에 포함할 항목을 포함하여 검색된 기록에 적용할 구성입니다. 기본값: nil - 모든 기록이 반환됩니다. |
| 완료 | @escaping(결과\<데이터, NowDataError\>) | 기록을 검색한 후 실행할 완성 핸들러입니다. 반환 값: * 성공: 데이터 - 요청된 기록 * 오류: NowDataError * `accessToken(AccessTokenProviderError)` * AccessTokenProviderError: 액세스 토큰 제공자의 오류 코드 또는 메시지입니다. * accessTokenRetrievalFailed * userSessionError(_ error: Error) 접근 토큰에 오류가 있을 때 발생합니다. * `첨부 확인` 첨부 파일이 확인에 실패할 때 발생합니다. * `badResponse(statusCode: HTTPStatusCode)` * HTTPStatusCode: 인스턴스에서 받은 상태 코드입니다. 요청에서 예기치 않은 응답을 반환할 때 발생 * `cannotDecodeModel(DecodingError)` * DecodingError: 디코딩 오류가 탐지되었습니다. 코드화 가능한 모델을 JSON에서 디코딩할 수 없을 때 발생합니다. * `cannotDecodeProperty(type: Any, from: String)` * type: 문자열에서 디코딩할 래핑된 유형입니다. * from: 지정된 유형으로 디코딩할 문자열입니다. 문자열로 래핑된 값을 JSON에서 디코딩할 수 없을 때 발생합니다. * `cannotEncodeModel(EncodingError)` * EncodingError: 인코딩 오류가 탐지되었습니다. 코드 가능한 모델을 JSON으로 인코딩할 수 없는 경우 발생합니다. * `cannotParse응답` 인스턴스의 응답을 예상 형식으로 구문 분석할 수 없을 때 발생합니다. * `잘못된 URL` URL을 구성할 수 없을 때 발생합니다. 예를 들어 문자열에 URL에서 잘못된 문자가 포함되어 있거나 빈 문자열인 경우입니다. * `missingAttachmentMetadata` 첨부 파일 메타데이터 헤더가 누락되었을 때 발생 * `missingServiceConfiguration` 예상 서비스 구성이 누락될 때 발생합니다. * `MissingSysID` 예상 sys_id 매개변수가 누락되었을 때 발생합니다. * `네트워크(NetworkServiceError)` * genericError(문자열) * operationCanceled * serviceDisabled * serverError(오류) * systemError(오류) 네트워크 서비스에 오류가 발생할 때 발생합니다. {#NTblServ-records_S_O_O__NowDataErroriOS-ul-enum} {#NTblServ-records_S_O_O__ul_uzx_thj_ppb} |
[표 45. 매개변수]

{#NTblServ-records_S_O_O__table_uvc_y2j_ppb} {#NTblServ-records_S_O_O__table_vvc_y2j_ppb__entry__2}

| 유형 | 설명 |
|-|-|
| 없음 |   |
[표 46. 반환]

{#NTblServ-records_S_O_O__table_vvc_y2j_ppb}  
다음 코드 예제에서는 이 메서드를 호출하는 방법을 보여 줍니다.

    func fetchTableRecords( tableName: String, filterQuery: String, includeFields: [FieldName] = [FieldName](), readOptions: FieldReadConfiguration.Options = [], limit: Int?) {
      let readConfig = FieldReadConfiguration(includeFields: includeFields, options: readOptions)
      let config = FetchConfiguration(Filter(query: filterQuery), limit, readConfig)
      tableService.records (from: tableName, configuration: fetchConfiguration) { [weak self] result in
        switch result {
          case .success(let dataResult):
            let recordResult: [NowRecord] = dataResult.convertToRecords()
            // return recordResult

          case .failure(let error):
            // Failed to fetch record with NowDataError
        }
      }
    }

## NowTableService - records(from tableName: String, configuration: FetchConfiguration? = nil) {#ariaid-title25}

지정된 테이블에서 기록을 검색할 수 있는 게시자를 작성합니다.
주:  
이 방법은 더 이상 사용되지 않습니다. 대신 메서드의 async/await 구현을 사용해야 합니다.  
이 게시자는 사용자 지정 [코드 모델](https://developer.apple.com/documentation/foundation/archives_and_serialization/encoding_and_decoding_custom_types)로 디코딩할 수 있는 데이터를 내보내거나 함수를 사용할 수도 있습니다.[NowTableService - paginator\<Model: Decodable\>(from tableName: String, path: String = Constants.resultPath, coder: Coder = .default, configuration: FetchConfiguration? = nil)](https://servicenow-prod.fluidtopics.net/u6t2OtbkgbZ8ejLrrT~GfA#NTblServ-paginator_S_S_S_O "중첩을 처리하는 디코딩된 모델 페이지의 반복을 활성화하는 페이지 매김기를 생성합니다.") 또는 편리한 함수 convertToRecords() 를 사용하여 데이터를 NowRecord 객체로 변환할 수 있습니다. 다음은 NowRecord를 내보내도록 게시자를 변환하는 방법을 보여줍니다.

    let dataPublisher: AnyPublisher<Data, NowDataError> = ...
    let recordsPublisher: AnyPublisher<[NowRecord], NowDataError> = myPublisher.convertToRecords()

큰 결과 세트의 경우 함수를 [NowTableService - 페이지 매김자(from tableName: String, configuration: FetchConfiguration? = nil)](https://servicenow-prod.fluidtopics.net/u6t2OtbkgbZ8ejLrrT~GfA#NTblServ-paginator_S_O "기록 페이지를 반복할 수 있는 페이지 매김기를 생성합니다.") 사용하여 페이지 매김된 결과를 가져옵니다.
{#NTblServ-records_S_O__id_rzw_lcj_ppb__entry__3}{#NTblServ-records_S_O__mobilesdkiOS-tableName-entry}

| 이름 | 유형 | 설명 |
|-|-|-|
| from tableName | 문자열 | 인시 던트와 같은 기록을 검색할 테이블의 이름입니다. |
| 구성 | [구성 가져오기](https://servicenow-prod.fluidtopics.net/qqENiJFzWL5KlZdDs2tgnw#FetchConfigiOSStructure "FetchConfiguration 구조는 인스턴스에서 ServiceNow 기록을 가져오기 위한 구성을 정의하는 기능을 제공합니다.") | 옵션입니다. 반환할 기록을 정의하는 필터, 페이지 매김 페이지 크기 제한, 검색할 필드 및 필드에 포함할 항목을 포함하여 검색된 기록에 적용할 구성입니다. 기본값: nil - 모든 기록이 반환됩니다. |
[표 47. 매개변수]

{#NTblServ-records_S_O__id_rzw_lcj_ppb} {#NTblServ-records_S_O__table_yvr_d1j_ppb__entry__2}

| 유형 | 설명 |
|-|-|
| AnyPublisher\<Data, NowDataError\> | 성공: 지정된 기록을 포함하는 데이터 객체입니다. 실패: NowDataError * `accessToken(AccessTokenProviderError)` * AccessTokenProviderError: 액세스 토큰 제공자의 오류 코드 또는 메시지입니다. * accessTokenRetrievalFailed * userSessionError(_ error: Error) 접근 토큰에 오류가 있을 때 발생합니다. * `첨부 확인` 첨부 파일이 확인에 실패할 때 발생합니다. * `badResponse(statusCode: HTTPStatusCode)` * HTTPStatusCode: 인스턴스에서 받은 상태 코드입니다. 요청에서 예기치 않은 응답을 반환할 때 발생 * `cannotDecodeModel(DecodingError)` * DecodingError: 디코딩 오류가 탐지되었습니다. 코드화 가능한 모델을 JSON에서 디코딩할 수 없을 때 발생합니다. * `cannotDecodeProperty(type: Any, from: String)` * type: 문자열에서 디코딩할 래핑된 유형입니다. * from: 지정된 유형으로 디코딩할 문자열입니다. 문자열로 래핑된 값을 JSON에서 디코딩할 수 없을 때 발생합니다. * `cannotEncodeModel(EncodingError)` * EncodingError: 인코딩 오류가 탐지되었습니다. 코드 가능한 모델을 JSON으로 인코딩할 수 없는 경우 발생합니다. * `cannotParse응답` 인스턴스의 응답을 예상 형식으로 구문 분석할 수 없을 때 발생합니다. * `잘못된 URL` URL을 구성할 수 없을 때 발생합니다. 예를 들어 문자열에 URL에서 잘못된 문자가 포함되어 있거나 빈 문자열인 경우입니다. * `missingAttachmentMetadata` 첨부 파일 메타데이터 헤더가 누락되었을 때 발생 * `missingServiceConfiguration` 예상 서비스 구성이 누락될 때 발생합니다. * `MissingSysID` 예상 sys_id 매개변수가 누락되었을 때 발생합니다. * `네트워크(NetworkServiceError)` * genericError(문자열) * operationCanceled * serviceDisabled * serverError(오류) * systemError(오류) 네트워크 서비스에 오류가 발생할 때 발생합니다. {#NTblServ-records_S_O__NowDataErroriOS-ul-enum} |
[표 48. 반환]

{#NTblServ-records_S_O__table_yvr_d1j_ppb}  
이 예제에서는 지정된 테이블에서 여러 기록을 가져오는 함수를 만드는 방법을 보여줍니다. 미래의 특정 시점에 요청이 실행되도록 예약하고 ByteArray 응답을 반환하는 객체를 만듭니다.

    tableService.records(from: tableName, configuration: fetchConfiguration)
        .subscribe(on: DispatchQueue.global())
        .receive(on: DispatchQueue.main)
        .convertToRecords()
        .sink { completion in
            if case let .failure(error) = completion {
                print("Record retrieval failed with NowDataError: \(error)")
            }
        } receiveValue: { records in
            print("Successfully retrieved records: \(records)")
        }
        .store(in: &subscriptions)

## NowTableService - update\<Model: SysIdentifiableModel\>(_ model: Model, in tableName: String, coder: Coder = .default, writeOptions: FieldWriteOptions? = nil, configuration: FetchConfiguration? = nil) 비동기 Throw {#ariaid-title26}

지정된 테이블에서 지정된 코드 가능 모델을 업데이트합니다.
{#NTblServ-update-async_S_S_S_O_O__table_n4q_3yk_spb__entry__3}

| 이름 | 유형 | 설명 |
|-|-|-|
| 모델 | 모델 | 테이블에서 업데이트할 `SysIdentifiableModel` 모델입니다. |
| tableName에서 | 문자열 | 인시던트와 같은 기록을 쓸 테이블의 이름입니다. |
| 코더 | 코더 | 옵션입니다. 인스턴스와 주고받는 데이터를 인코딩하거나 디코딩하는 데 사용할 `코더`입니다.ServiceNow 가능한 값: * 기본값: 기본 인코더는 디바이스 `로케일` 및 `시간대`를 사용하여 `yyy-MM-dd HH:mm:ss` 형식을 사용하여 날짜 형식을 지정합니다. * custom(JSONEncoder, JSONDecoder): `사용자 지정` 코더를 사용하여 JSON 디코딩/인코딩을 보다 세부적으로 제어할 수 있습니다. 이 열거형은 특수 날짜 형식, 시간대 또는 로캘을 사용하는 경우와 같이 고유한 `JSONEncoder` 및 `JSONDecoder`를 제공하는 데만 사용합니다. let myEncoder = JSONEncoder() myEncoder.dateFormat = ... let myDecoder = JSONDecoder() myDecoder.dateFormat = ... let coder: Coder = .custom(myEncoder, myDecoder) {#NTblServ-update-async_S_S_S_O_O__ul_nx3_wrd_sqb} 기본값: .default |
| 쓰기 옵션 | [필드 쓰기 옵션](https://servicenow-prod.fluidtopics.net/WOiRi11uSPh_WQiGS~BeYQ#FieldWriteOptionsiOSStruct "FieldWriteOptions 클래스는 인스턴스의 ServiceNow 기록에 있는 필드를 업데이트하거나 작성하기 위한 옵션을 설정하는 기능을 제공합니다.") | 옵션입니다. 기록에 기록되는 데이터에 적용할 구성 옵션입니다. 기본값: nil |
| 구성 | [구성 가져오기](https://servicenow-prod.fluidtopics.net/qqENiJFzWL5KlZdDs2tgnw#FetchConfigiOSStructure "FetchConfiguration 구조는 인스턴스에서 ServiceNow 기록을 가져오기 위한 구성을 정의하는 기능을 제공합니다.") | 옵션입니다. 반환할 기록을 정의하는 필터, 페이지 매김 페이지 크기 제한, 검색할 필드 및 필드에 포함할 항목을 포함하여 검색된 기록에 적용할 구성입니다. 기본값: nil - 모든 기록이 반환됩니다. |
[표 49. 매개변수]

{#NTblServ-update-async_S_S_S_O_O__table_n4q_3yk_spb} {#NTblServ-update-async_S_S_S_O_O__table_o4q_3yk_spb__entry__2}

| 유형 | 설명 |
|-|-|
| 모델 | 메서드가 성공하면 반환됩니다. 지정된 테이블에서 업데이트된 디코딩 가능한 모델입니다. |
| NowDataError | 메서드가 실패할 때 throw됩니다. * `accessToken(AccessTokenProviderError)` * AccessTokenProviderError: 액세스 토큰 제공자의 오류 코드 또는 메시지입니다. * accessTokenRetrievalFailed * userSessionError(_ error: Error) 접근 토큰에 오류가 있을 때 발생합니다. * `첨부 확인` 첨부 파일이 확인에 실패할 때 발생합니다. * `badResponse(statusCode: HTTPStatusCode)` * HTTPStatusCode: 인스턴스에서 받은 상태 코드입니다. 요청에서 예기치 않은 응답을 반환할 때 발생 * `cannotDecodeModel(DecodingError)` * DecodingError: 디코딩 오류가 탐지되었습니다. 코드화 가능한 모델을 JSON에서 디코딩할 수 없을 때 발생합니다. * `cannotDecodeProperty(type: Any, from: String)` * type: 문자열에서 디코딩할 래핑된 유형입니다. * from: 지정된 유형으로 디코딩할 문자열입니다. 문자열로 래핑된 값을 JSON에서 디코딩할 수 없을 때 발생합니다. * `cannotEncodeModel(EncodingError)` * EncodingError: 인코딩 오류가 탐지되었습니다. 코드 가능한 모델을 JSON으로 인코딩할 수 없는 경우 발생합니다. * `cannotParse응답` 인스턴스의 응답을 예상 형식으로 구문 분석할 수 없을 때 발생합니다. * `잘못된 URL` URL을 구성할 수 없을 때 발생합니다. 예를 들어 문자열에 URL에서 잘못된 문자가 포함되어 있거나 빈 문자열인 경우입니다. * `missingAttachmentMetadata` 첨부 파일 메타데이터 헤더가 누락되었을 때 발생 * `missingServiceConfiguration` 예상 서비스 구성이 누락될 때 발생합니다. * `MissingSysID` 예상 sys_id 매개변수가 누락되었을 때 발생합니다. * `네트워크(NetworkServiceError)` * genericError(문자열) * operationCanceled * serviceDisabled * serverError(오류) * systemError(오류) 네트워크 서비스에 오류가 발생할 때 발생합니다. {#NTblServ-update-async_S_S_S_O_O__NowDataErroriOS-ul-enum} |
[표 50. 반환]

{#NTblServ-update-async_S_S_S_O_O__table_o4q_3yk_spb}  
다음 코드 예제에서는 이 메서드를 호출하는 방법을 보여 줍니다.

    struct User: SysIdentifiableModel {
        var sysId: String = ""
        var name: String}
         
    func updateUser(user: User) async throws -> User {
        do {
            let result = try await tableService.update(user, in: "sys_user")
            return result
        } catch {
            print("Update failed with NowDataError: \(error)")
            throw error
        }
    }

## NowTableService - update\<Model: SysIdentifiableModel\>(_ model: Model, in tableName: String, coder: Coder = .default, writeOptions: FieldWriteOptions? = nil, configuration: FetchConfiguration? = nil, completion: @escaping (Result\<Model, NowDataError\>)) {#ariaid-title27}

지정된 테이블에서 지정된 코드 가능 모델을 업데이트한 다음 핸들러를 completion 실행합니다.
{#NTblServ-update_S_S_S_O_O_O__table_nmv_vpr_spb__entry__3}

| 이름 | 유형 | 설명 |
|-|-|-|
| 모델 | 모델 | 테이블에서 업데이트할 `SysIdentifiableModel` 모델입니다. |
| tableName에서 | 문자열 | 인시던트와 같은 기록을 쓸 테이블의 이름입니다. |
| 코더 | 코더 | 옵션입니다. 인스턴스와 주고받는 데이터를 인코딩하거나 디코딩하는 데 사용할 `코더`입니다.ServiceNow 가능한 값: * 기본값: 기본 인코더는 디바이스 `로케일` 및 `시간대`를 사용하여 `yyy-MM-dd HH:mm:ss` 형식을 사용하여 날짜 형식을 지정합니다. * custom(JSONEncoder, JSONDecoder): `사용자 지정` 코더를 사용하여 JSON 디코딩/인코딩을 보다 세부적으로 제어할 수 있습니다. 이 열거형은 특수 날짜 형식, 시간대 또는 로캘을 사용하는 경우와 같이 고유한 `JSONEncoder` 및 `JSONDecoder`를 제공하는 데만 사용합니다. let myEncoder = JSONEncoder() myEncoder.dateFormat = ... let myDecoder = JSONDecoder() myDecoder.dateFormat = ... let coder: Coder = .custom(myEncoder, myDecoder) {#NTblServ-update_S_S_S_O_O_O__ul_nx3_wrd_sqb} 기본값: .default |
| 쓰기 옵션 | [필드 쓰기 옵션](https://servicenow-prod.fluidtopics.net/WOiRi11uSPh_WQiGS~BeYQ#FieldWriteOptionsiOSStruct "FieldWriteOptions 클래스는 인스턴스의 ServiceNow 기록에 있는 필드를 업데이트하거나 작성하기 위한 옵션을 설정하는 기능을 제공합니다.") | 옵션입니다. 기록에 기록되는 데이터에 적용할 구성 옵션입니다. 기본값: nil |
| 구성 | [구성 가져오기](https://servicenow-prod.fluidtopics.net/qqENiJFzWL5KlZdDs2tgnw#FetchConfigiOSStructure "FetchConfiguration 구조는 인스턴스에서 ServiceNow 기록을 가져오기 위한 구성을 정의하는 기능을 제공합니다.") | 옵션입니다. 반환할 기록을 정의하는 필터, 페이지 매김 페이지 크기 제한, 검색할 필드 및 필드에 포함할 항목을 포함하여 검색된 기록에 적용할 구성입니다. 기본값: nil - 모든 기록이 반환됩니다. |
| 완료 | @escaping(결과\<모델, NowDataError\>) | 지정된 코딩 가능 모델을 업데이트한 후 실행할 완성 핸들러입니다. 반환 값: * 성공: 모델 * 실패: NowDataError * `accessToken(AccessTokenProviderError)` * AccessTokenProviderError: 액세스 토큰 제공자의 오류 코드 또는 메시지입니다. * accessTokenRetrievalFailed * userSessionError(_ error: Error) 접근 토큰에 오류가 있을 때 발생합니다. * `첨부 확인` 첨부 파일이 확인에 실패할 때 발생합니다. * `badResponse(statusCode: HTTPStatusCode)` * HTTPStatusCode: 인스턴스에서 받은 상태 코드입니다. 요청에서 예기치 않은 응답을 반환할 때 발생 * `cannotDecodeModel(DecodingError)` * DecodingError: 디코딩 오류가 탐지되었습니다. 코드화 가능한 모델을 JSON에서 디코딩할 수 없을 때 발생합니다. * `cannotDecodeProperty(type: Any, from: String)` * type: 문자열에서 디코딩할 래핑된 유형입니다. * from: 지정된 유형으로 디코딩할 문자열입니다. 문자열로 래핑된 값을 JSON에서 디코딩할 수 없을 때 발생합니다. * `cannotEncodeModel(EncodingError)` * EncodingError: 인코딩 오류가 탐지되었습니다. 코드 가능한 모델을 JSON으로 인코딩할 수 없는 경우 발생합니다. * `cannotParse응답` 인스턴스의 응답을 예상 형식으로 구문 분석할 수 없을 때 발생합니다. * `잘못된 URL` URL을 구성할 수 없을 때 발생합니다. 예를 들어 문자열에 URL에서 잘못된 문자가 포함되어 있거나 빈 문자열인 경우입니다. * `missingAttachmentMetadata` 첨부 파일 메타데이터 헤더가 누락되었을 때 발생 * `missingServiceConfiguration` 예상 서비스 구성이 누락될 때 발생합니다. * `MissingSysID` 예상 sys_id 매개변수가 누락되었을 때 발생합니다. * `네트워크(NetworkServiceError)` * genericError(문자열) * operationCanceled * serviceDisabled * serverError(오류) * systemError(오류) 네트워크 서비스에 오류가 발생할 때 발생합니다. {#NTblServ-update_S_S_S_O_O_O__NowDataErroriOS-ul-enum} {#NTblServ-update_S_S_S_O_O_O__ul_dpx_jvk_spb} |
[표 51. 매개변수]

{#NTblServ-update_S_S_S_O_O_O__table_nmv_vpr_spb} {#NTblServ-update_S_S_S_O_O_O__table_omv_vpr_spb__entry__2}

| 유형 | 설명 |
|-|-|
| 없음 |   |
[표 52. 반환]

{#NTblServ-update_S_S_S_O_O_O__table_omv_vpr_spb}  
다음 코드 예제에서는 이 메서드를 호출하는 방법을 보여 줍니다.

    struct User: SysIdentifiableModel {
      var sysId: String = ""
      var name: String
    }

    let user = User(sysId: "12345", name: "abel")
    let coder: Coder = .default

    tableService.update(user, in: "sys_user") { [weak self] result in
      switch result {
        case .success(let model):
          do {
            let data = try coder.jsonEncoder.encode(model)
            self?.publish(data: data)
          } catch {
            self?.publish(result: .failure(error))
          }            
        case .failure(let error):
          // Failed to update with NowDataError
          self?.publish(result: .failure(error))
      }
    }

## NowTableService - update\<Model: SysIdentifiableModel\>(_ model: Model, in tableName: String, coder: Coder = .default, writeOptions: FieldWriteOptions? = nil, configuration: FetchConfiguration? = nil) {#ariaid-title28}

지정된 테이블에서 지정된 코딩 가능 모델을 업데이트합니다.
주:  
이 방법은 더 이상 사용되지 않습니다. 대신 메서드의 async/await 구현을 사용해야 합니다.
{#NTblServ-update_S_S_S_O_O__table_n4q_3yk_spb__entry__3}

| 이름 | 유형 | 설명 |
|-|-|-|
| 모델 | 모델 | 테이블에서 업데이트할 `SysIdentifiableModel` 모델입니다. |
| tableName에서 | 문자열 | 인시던트와 같은 기록을 쓸 테이블의 이름입니다. |
| 코더 | 코더 | 옵션입니다. 인스턴스와 주고받는 데이터를 인코딩하거나 디코딩하는 데 사용할 `코더`입니다.ServiceNow 가능한 값: * 기본값: 기본 인코더는 디바이스 `로케일` 및 `시간대`를 사용하여 `yyy-MM-dd HH:mm:ss` 형식을 사용하여 날짜 형식을 지정합니다. * custom(JSONEncoder, JSONDecoder): `사용자 지정` 코더를 사용하여 JSON 디코딩/인코딩을 보다 세부적으로 제어할 수 있습니다. 이 열거형은 특수 날짜 형식, 시간대 또는 로캘을 사용하는 경우와 같이 고유한 `JSONEncoder` 및 `JSONDecoder`를 제공하는 데만 사용합니다. let myEncoder = JSONEncoder() myEncoder.dateFormat = ... let myDecoder = JSONDecoder() myDecoder.dateFormat = ... let coder: Coder = .custom(myEncoder, myDecoder) {#NTblServ-update_S_S_S_O_O__ul_nx3_wrd_sqb} 기본값: .default |
| 쓰기 옵션 | [필드 쓰기 옵션](https://servicenow-prod.fluidtopics.net/WOiRi11uSPh_WQiGS~BeYQ#FieldWriteOptionsiOSStruct "FieldWriteOptions 클래스는 인스턴스의 ServiceNow 기록에 있는 필드를 업데이트하거나 작성하기 위한 옵션을 설정하는 기능을 제공합니다.") | 옵션입니다. 기록에 기록되는 데이터에 적용할 구성 옵션입니다. 기본값: nil |
| 구성 | [구성 가져오기](https://servicenow-prod.fluidtopics.net/qqENiJFzWL5KlZdDs2tgnw#FetchConfigiOSStructure "FetchConfiguration 구조는 인스턴스에서 ServiceNow 기록을 가져오기 위한 구성을 정의하는 기능을 제공합니다.") | 옵션입니다. 반환할 기록을 정의하는 필터, 페이지 매김 페이지 크기 제한, 검색할 필드 및 필드에 포함할 항목을 포함하여 검색된 기록에 적용할 구성입니다. 기본값: nil - 모든 기록이 반환됩니다. |
[표 53. 매개변수]

{#NTblServ-update_S_S_S_O_O__table_n4q_3yk_spb} {#NTblServ-update_S_S_S_O_O__table_o4q_3yk_spb__entry__2}

| 유형 | 설명 |
|-|-|
| AnyPublisher\<Model, NowDataError\> | 성공: 지정된 테이블에서 업데이트된 디코딩 가능한 모델입니다. 실패: NowDataError * `accessToken(AccessTokenProviderError)` * AccessTokenProviderError: 액세스 토큰 제공자의 오류 코드 또는 메시지입니다. * accessTokenRetrievalFailed * userSessionError(_ error: Error) 접근 토큰에 오류가 있을 때 발생합니다. * `첨부 확인` 첨부 파일이 확인에 실패할 때 발생합니다. * `badResponse(statusCode: HTTPStatusCode)` * HTTPStatusCode: 인스턴스에서 받은 상태 코드입니다. 요청에서 예기치 않은 응답을 반환할 때 발생 * `cannotDecodeModel(DecodingError)` * DecodingError: 디코딩 오류가 탐지되었습니다. 코드화 가능한 모델을 JSON에서 디코딩할 수 없을 때 발생합니다. * `cannotDecodeProperty(type: Any, from: String)` * type: 문자열에서 디코딩할 래핑된 유형입니다. * from: 지정된 유형으로 디코딩할 문자열입니다. 문자열로 래핑된 값을 JSON에서 디코딩할 수 없을 때 발생합니다. * `cannotEncodeModel(EncodingError)` * EncodingError: 인코딩 오류가 탐지되었습니다. 코드 가능한 모델을 JSON으로 인코딩할 수 없는 경우 발생합니다. * `cannotParse응답` 인스턴스의 응답을 예상 형식으로 구문 분석할 수 없을 때 발생합니다. * `잘못된 URL` URL을 구성할 수 없을 때 발생합니다. 예를 들어 문자열에 URL에서 잘못된 문자가 포함되어 있거나 빈 문자열인 경우입니다. * `missingAttachmentMetadata` 첨부 파일 메타데이터 헤더가 누락되었을 때 발생 * `missingServiceConfiguration` 예상 서비스 구성이 누락될 때 발생합니다. * `MissingSysID` 예상 sys_id 매개변수가 누락되었을 때 발생합니다. * `네트워크(NetworkServiceError)` * genericError(문자열) * operationCanceled * serviceDisabled * serverError(오류) * systemError(오류) 네트워크 서비스에 오류가 발생할 때 발생합니다. {#NTblServ-update_S_S_S_O_O__NowDataErroriOS-ul-enum} |
[표 54. 반환]

{#NTblServ-update_S_S_S_O_O__table_o4q_3yk_spb}  
다음 코드 예제에서는 이 메서드를 호출하는 방법을 보여 줍니다.

    struct User: SysIdentifiableModel {
      var sysId: String = ""
      var name: String
    }

    let user = User(sysId: "12345", name: "abel")
    let coder: Coder = .default

    tableService.update(user, in: "sys_user")
      .subscribe(on: DispatchQueue.global())
      .receive(on: DispatchQueue.main)
      .sink { [weak self] completion in
        if case let .failure(error) = completion {
          // Failed to update with NowDataError
          self?.publish(result: .failure(error))
        }
      } receiveValue: { [weak self] updatedModel in
        do {
          let data = try coder.jsonEncoder.encode(updatedModel)
          self?.publish(data: data)
        } catch {
          // Failed to update with NowDataError
          self?.publish(result: .failure(error))
        }
      }
      .store(in: &subscriptions)

## NowTableService - updateRecord(sysId: SysID, in tableName: String, withfields: \[FieldName: FieldValue\], writeOptions: FieldWriteOptions? = nil, configuration: FieldReadConfiguration? = nil) 비동기 Throw {#ariaid-title29}

지정된 필드로 지정된 기록을 업데이트합니다.
데이터를 사용자 지정 [코드 모델](https://developer.apple.com/documentation/foundation/archives_and_serialization/encoding_and_decoding_custom_types)로 디코딩하거나 함수를 [NowTableService - paginator\<Model: Decodable\>(from tableName: String, path: String = Constants.resultPath, coder: Coder = .default, configuration: FetchConfiguration? = nil)](https://servicenow-prod.fluidtopics.net/u6t2OtbkgbZ8ejLrrT~GfA#NTblServ-paginator_S_S_S_O "중첩을 처리하는 디코딩된 모델 페이지의 반복을 활성화하는 페이지 매김기를 생성합니다.") 사용할 수 있습니다. 또는 편리한 함수 convertToRecords() 를 사용하여 데이터를 NowRecord 객체로 변환할 수 있습니다. 다음은 NowRecord를 내보내도록 게시자를 변환하는 방법을 보여줍니다.

    let dataPublisher: AnyPublisher<Data, NowDataError> = ...
    let recordsPublisher: AnyPublisher<[NowRecord], NowDataError> = myPublisher.convertToRecords()

주:  
기록 내의 모든 필드를 업데이트하지 못할 수 있습니다. 예를 들어 프리픽스가 `sys_` 인 필드는 일반적으로 자동으로 생성되며 업데이트할 수 없는 시스템 매개변수입니다. 지정되지 않았으며 시스템에서 자동 생성되지 않은 필드는 연결된 데이터 유형의 null 값으로 설정됩니다.
{#NTblServ-updateRecord-async_S_A_O_O__table_cjl_5sj_ppb__entry__3}

| 이름 | 유형 | 설명 |
|-|-|-|
| sysId | 문자열 | 인스턴스에서 반환할 기록의 Sys_id입니다.ServiceNow |
| 필드 포함 | \[필드 이름: 필드 값\] | 기록에 포함할 필드의 이름-값 쌍입니다. |
| tableName에서 | 문자열 | 인시던트와 같은 기록을 쓸 테이블의 이름입니다. |
| 쓰기 옵션 | [필드 쓰기 옵션](https://servicenow-prod.fluidtopics.net/WOiRi11uSPh_WQiGS~BeYQ#FieldWriteOptionsiOSStruct "FieldWriteOptions 클래스는 인스턴스의 ServiceNow 기록에 있는 필드를 업데이트하거나 작성하기 위한 옵션을 설정하는 기능을 제공합니다.") | 옵션입니다. 기록에 기록되는 데이터에 적용할 구성 옵션입니다. 기본값: nil |
| 구성 | [구성 가져오기](https://servicenow-prod.fluidtopics.net/qqENiJFzWL5KlZdDs2tgnw#FetchConfigiOSStructure "FetchConfiguration 구조는 인스턴스에서 ServiceNow 기록을 가져오기 위한 구성을 정의하는 기능을 제공합니다.") | 옵션입니다. 반환할 기록을 정의하는 필터, 페이지 매김 페이지 크기 제한, 검색할 필드 및 필드에 포함할 항목을 포함하여 검색된 기록에 적용할 구성입니다. 기본값: nil - 모든 기록이 반환됩니다. |
[표 55. 매개변수]

{#NTblServ-updateRecord-async_S_A_O_O__table_cjl_5sj_ppb} {#NTblServ-updateRecord-async_S_A_O_O__table_djl_5sj_ppb__entry__2}

| 유형 | 설명 |
|-|-|
| 데이터 | 메서드가 성공하면 반환됩니다. 업데이트된 기록을 포함하는 데이터 객체입니다. |
| NowDataError | 메서드가 실패할 때 throw됩니다. * `accessToken(AccessTokenProviderError)` * AccessTokenProviderError: 액세스 토큰 제공자의 오류 코드 또는 메시지입니다. * accessTokenRetrievalFailed * userSessionError(_ error: Error) 접근 토큰에 오류가 있을 때 발생합니다. * `첨부 확인` 첨부 파일이 확인에 실패할 때 발생합니다. * `badResponse(statusCode: HTTPStatusCode)` * HTTPStatusCode: 인스턴스에서 받은 상태 코드입니다. 요청에서 예기치 않은 응답을 반환할 때 발생 * `cannotDecodeModel(DecodingError)` * DecodingError: 디코딩 오류가 탐지되었습니다. 코드화 가능한 모델을 JSON에서 디코딩할 수 없을 때 발생합니다. * `cannotDecodeProperty(type: Any, from: String)` * type: 문자열에서 디코딩할 래핑된 유형입니다. * from: 지정된 유형으로 디코딩할 문자열입니다. 문자열로 래핑된 값을 JSON에서 디코딩할 수 없을 때 발생합니다. * `cannotEncodeModel(EncodingError)` * EncodingError: 인코딩 오류가 탐지되었습니다. 코드 가능한 모델을 JSON으로 인코딩할 수 없는 경우 발생합니다. * `cannotParse응답` 인스턴스의 응답을 예상 형식으로 구문 분석할 수 없을 때 발생합니다. * `잘못된 URL` URL을 구성할 수 없을 때 발생합니다. 예를 들어 문자열에 URL에서 잘못된 문자가 포함되어 있거나 빈 문자열인 경우입니다. * `missingAttachmentMetadata` 첨부 파일 메타데이터 헤더가 누락되었을 때 발생 * `missingServiceConfiguration` 예상 서비스 구성이 누락될 때 발생합니다. * `MissingSysID` 예상 sys_id 매개변수가 누락되었을 때 발생합니다. * `네트워크(NetworkServiceError)` * genericError(문자열) * operationCanceled * serviceDisabled * serverError(오류) * systemError(오류) 네트워크 서비스에 오류가 발생할 때 발생합니다. {#NTblServ-updateRecord-async_S_A_O_O__NowDataErroriOS-ul-enum} |
[표 56. 반환]

{#NTblServ-updateRecord-async_S_A_O_O__table_djl_5sj_ppb}  
다음 코드 예제에서는 이 메서드를 호출하는 방법을 보여 줍니다.

    do { 
        let dataResult: Data = try await tableService.updateRecord(with: fields, in: tableName, writeOptions: writeOptions, configuration: configuration) 
        let recordResult: NowRecord = dataResult.convertToRecord() 
    } catch { 
        print("Record update failed with NowDataError: \(error)") 
    }

## NowTableService - updateRecord(sysId: SysID, in tableName: String, with fields: \[FieldName: FieldValue\], writeOptions: FieldWriteOptions? = nil, configuration: FieldReadConfiguration? = nil, completion: @escaping (Result\<Data, NowDataError\>) {#ariaid-title30}

지정된 필드로 지정된 기록을 업데이트한 다음 기록이 저장되면 핸들러를 실행 completion 합니다.
필요한 경우 반환 결과를 사용자 지정 Codable 모델로 디코딩하거나 대신 함수를 [NowTableService - paginator\<Model: Decodable\>(from tableName: String, path: String = Constants.resultPath, coder: Coder = .default, configuration: FetchConfiguration? = nil)](https://servicenow-prod.fluidtopics.net/u6t2OtbkgbZ8ejLrrT~GfA#NTblServ-paginator_S_S_S_O "중첩을 처리하는 디코딩된 모델 페이지의 반복을 활성화하는 페이지 매김기를 생성합니다.") 사용할 수 있습니다. 또는 편리한 함수 convertToRecords() 를 사용하여 데이터를 NowRecord 객체로 변환할 수 있습니다. 다음은 NowRecord를 내보내도록 게시자를 변환하는 방법을 보여줍니다.

    let dataPublisher: AnyPublisher<Data, NowDataError> = ...
    let recordsPublisher: AnyPublisher<[NowRecord], NowDataError> = myResult.convertToRecords()

주:  
기록 내의 모든 필드를 업데이트하지 못할 수 있습니다. 예를 들어 프리픽스가 `sys_` 인 필드는 일반적으로 자동으로 생성되며 업데이트할 수 없는 시스템 매개변수입니다. 지정되지 않았으며 시스템에서 자동 생성되지 않은 필드는 연결된 데이터 유형의 null 값으로 설정됩니다.
{#NTblServ-updateRecord_S_A_O_O_O__table_jq5_ttj_ppb__entry__3}

| 이름 | 유형 | 설명 |
|-|-|-|
| sysId | 문자열 | 인스턴스에서 반환할 기록의 Sys_id입니다.ServiceNow |
| 필드 포함 | \[필드 이름: 필드 값\] | 기록에 포함할 필드의 이름-값 쌍입니다. |
| tableName에서 | 문자열 | 인시던트와 같은 기록을 쓸 테이블의 이름입니다. |
| 쓰기 옵션 | [필드 쓰기 옵션](https://servicenow-prod.fluidtopics.net/WOiRi11uSPh_WQiGS~BeYQ#FieldWriteOptionsiOSStruct "FieldWriteOptions 클래스는 인스턴스의 ServiceNow 기록에 있는 필드를 업데이트하거나 작성하기 위한 옵션을 설정하는 기능을 제공합니다.") | 옵션입니다. 기록에 기록되는 데이터에 적용할 구성 옵션입니다. 기본값: nil |
| 구성 | [구성 가져오기](https://servicenow-prod.fluidtopics.net/qqENiJFzWL5KlZdDs2tgnw#FetchConfigiOSStructure "FetchConfiguration 구조는 인스턴스에서 ServiceNow 기록을 가져오기 위한 구성을 정의하는 기능을 제공합니다.") | 옵션입니다. 반환할 기록을 정의하는 필터, 페이지 매김 페이지 크기 제한, 검색할 필드 및 필드에 포함할 항목을 포함하여 검색된 기록에 적용할 구성입니다. 기본값: nil - 모든 기록이 반환됩니다. |
| 완료 | @escaping(결과\<데이터, NowDataError\>) | 기록을 검색한 후 실행할 완성 핸들러입니다. 반환 값: * 성공: 데이터 - 요청된 기록 * 오류: NowDataError * `accessToken(AccessTokenProviderError)` * AccessTokenProviderError: 액세스 토큰 제공자의 오류 코드 또는 메시지입니다. * accessTokenRetrievalFailed * userSessionError(_ error: Error) 접근 토큰에 오류가 있을 때 발생합니다. * `첨부 확인` 첨부 파일이 확인에 실패할 때 발생합니다. * `badResponse(statusCode: HTTPStatusCode)` * HTTPStatusCode: 인스턴스에서 받은 상태 코드입니다. 요청에서 예기치 않은 응답을 반환할 때 발생 * `cannotDecodeModel(DecodingError)` * DecodingError: 디코딩 오류가 탐지되었습니다. 코드화 가능한 모델을 JSON에서 디코딩할 수 없을 때 발생합니다. * `cannotDecodeProperty(type: Any, from: String)` * type: 문자열에서 디코딩할 래핑된 유형입니다. * from: 지정된 유형으로 디코딩할 문자열입니다. 문자열로 래핑된 값을 JSON에서 디코딩할 수 없을 때 발생합니다. * `cannotEncodeModel(EncodingError)` * EncodingError: 인코딩 오류가 탐지되었습니다. 코드 가능한 모델을 JSON으로 인코딩할 수 없는 경우 발생합니다. * `cannotParse응답` 인스턴스의 응답을 예상 형식으로 구문 분석할 수 없을 때 발생합니다. * `잘못된 URL` URL을 구성할 수 없을 때 발생합니다. 예를 들어 문자열에 URL에서 잘못된 문자가 포함되어 있거나 빈 문자열인 경우입니다. * `missingAttachmentMetadata` 첨부 파일 메타데이터 헤더가 누락되었을 때 발생 * `missingServiceConfiguration` 예상 서비스 구성이 누락될 때 발생합니다. * `MissingSysID` 예상 sys_id 매개변수가 누락되었을 때 발생합니다. * `네트워크(NetworkServiceError)` * genericError(문자열) * operationCanceled * serviceDisabled * serverError(오류) * systemError(오류) 네트워크 서비스에 오류가 발생할 때 발생합니다. {#NTblServ-updateRecord_S_A_O_O_O__NowDataErroriOS-ul-enum} {#NTblServ-updateRecord_S_A_O_O_O__ul_uzx_thj_ppb} |
[표 57. 매개변수]

{#NTblServ-updateRecord_S_A_O_O_O__table_jq5_ttj_ppb} {#NTblServ-updateRecord_S_A_O_O_O__table_kq5_ttj_ppb__entry__2}

| 유형 | 설명 |
|-|-|
| 없음 |   |
[표 58. 반환]

{#NTblServ-updateRecord_S_A_O_O_O__table_kq5_ttj_ppb}  
다음 코드 예제에서는 이 메서드를 호출하는 방법을 보여 줍니다.

    tableService.updateRecord(sysId: sysId, in: tableName, with: fields, writeOptions: writeOptions, configuration: readConfiguration) { [weak self] result in
      switch result {
        case .success(let data):
          self?.publish(data: data)
        case .failure(let error):
           // Failed to update with NowDataError
      }
    }

## NowTableService - updateRecord(sysId: SysID, in tableName: String, withfields: \[FieldName: FieldValue\], writeOptions: FieldWriteOptions? = nil, configuration: FieldReadConfiguration? = nil) {#ariaid-title31}

지정된 필드로 지정된 기록을 업데이트합니다.
주:  
이 방법은 더 이상 사용되지 않습니다. 대신 메서드의 async/await 구현을 사용해야 합니다.  
이 게시자는 사용자 지정 [코드 모델](https://developer.apple.com/documentation/foundation/archives_and_serialization/encoding_and_decoding_custom_types)로 디코딩할 수 있는 데이터를 내보내거나 함수를 사용할 수도 있습니다.[NowTableService - paginator\<Model: Decodable\>(from tableName: String, path: String = Constants.resultPath, coder: Coder = .default, configuration: FetchConfiguration? = nil)](https://servicenow-prod.fluidtopics.net/u6t2OtbkgbZ8ejLrrT~GfA#NTblServ-paginator_S_S_S_O "중첩을 처리하는 디코딩된 모델 페이지의 반복을 활성화하는 페이지 매김기를 생성합니다.") 또는 편리한 함수 convertToRecords() 를 사용하여 데이터를 NowRecord 객체로 변환할 수 있습니다. 다음은 NowRecord를 내보내도록 게시자를 변환하는 방법을 보여줍니다.

    let dataPublisher: AnyPublisher<Data, NowDataError> = ...
    let recordsPublisher: AnyPublisher<[NowRecord], NowDataError> = myPublisher.convertToRecords()

주:  
기록 내의 모든 필드를 업데이트하지 못할 수 있습니다. 예를 들어 프리픽스가 `sys_` 인 필드는 일반적으로 자동으로 생성되며 업데이트할 수 없는 시스템 매개변수입니다. 지정되지 않았으며 시스템에서 자동 생성되지 않은 필드는 연결된 데이터 유형의 null 값으로 설정됩니다.
{#NTblServ-updateRecord_S_A_O_O__table_cjl_5sj_ppb__entry__3}

| 이름 | 유형 | 설명 |
|-|-|-|
| sysId | 문자열 | 인스턴스에서 반환할 기록의 Sys_id입니다.ServiceNow |
| 필드 포함 | \[필드 이름: 필드 값\] | 기록에 포함할 필드의 이름-값 쌍입니다. |
| tableName에서 | 문자열 | 인시던트와 같은 기록을 쓸 테이블의 이름입니다. |
| 쓰기 옵션 | [필드 쓰기 옵션](https://servicenow-prod.fluidtopics.net/WOiRi11uSPh_WQiGS~BeYQ#FieldWriteOptionsiOSStruct "FieldWriteOptions 클래스는 인스턴스의 ServiceNow 기록에 있는 필드를 업데이트하거나 작성하기 위한 옵션을 설정하는 기능을 제공합니다.") | 옵션입니다. 기록에 기록되는 데이터에 적용할 구성 옵션입니다. 기본값: nil |
| 구성 | [구성 가져오기](https://servicenow-prod.fluidtopics.net/qqENiJFzWL5KlZdDs2tgnw#FetchConfigiOSStructure "FetchConfiguration 구조는 인스턴스에서 ServiceNow 기록을 가져오기 위한 구성을 정의하는 기능을 제공합니다.") | 옵션입니다. 반환할 기록을 정의하는 필터, 페이지 매김 페이지 크기 제한, 검색할 필드 및 필드에 포함할 항목을 포함하여 검색된 기록에 적용할 구성입니다. 기본값: nil - 모든 기록이 반환됩니다. |
[표 59. 매개변수]

{#NTblServ-updateRecord_S_A_O_O__table_cjl_5sj_ppb} {#NTblServ-updateRecord_S_A_O_O__table_djl_5sj_ppb__entry__2}

| 유형 | 설명 |
|-|-|
| AnyPublisher\<Data, NowDataError\> | 성공: 업데이트된 기록을 포함하는 데이터 객체입니다. 실패: NowDataError * `accessToken(AccessTokenProviderError)` * AccessTokenProviderError: 액세스 토큰 제공자의 오류 코드 또는 메시지입니다. * accessTokenRetrievalFailed * userSessionError(_ error: Error) 접근 토큰에 오류가 있을 때 발생합니다. * `첨부 확인` 첨부 파일이 확인에 실패할 때 발생합니다. * `badResponse(statusCode: HTTPStatusCode)` * HTTPStatusCode: 인스턴스에서 받은 상태 코드입니다. 요청에서 예기치 않은 응답을 반환할 때 발생 * `cannotDecodeModel(DecodingError)` * DecodingError: 디코딩 오류가 탐지되었습니다. 코드화 가능한 모델을 JSON에서 디코딩할 수 없을 때 발생합니다. * `cannotDecodeProperty(type: Any, from: String)` * type: 문자열에서 디코딩할 래핑된 유형입니다. * from: 지정된 유형으로 디코딩할 문자열입니다. 문자열로 래핑된 값을 JSON에서 디코딩할 수 없을 때 발생합니다. * `cannotEncodeModel(EncodingError)` * EncodingError: 인코딩 오류가 탐지되었습니다. 코드 가능한 모델을 JSON으로 인코딩할 수 없는 경우 발생합니다. * `cannotParse응답` 인스턴스의 응답을 예상 형식으로 구문 분석할 수 없을 때 발생합니다. * `잘못된 URL` URL을 구성할 수 없을 때 발생합니다. 예를 들어 문자열에 URL에서 잘못된 문자가 포함되어 있거나 빈 문자열인 경우입니다. * `missingAttachmentMetadata` 첨부 파일 메타데이터 헤더가 누락되었을 때 발생 * `missingServiceConfiguration` 예상 서비스 구성이 누락될 때 발생합니다. * `MissingSysID` 예상 sys_id 매개변수가 누락되었을 때 발생합니다. * `네트워크(NetworkServiceError)` * genericError(문자열) * operationCanceled * serviceDisabled * serverError(오류) * systemError(오류) 네트워크 서비스에 오류가 발생할 때 발생합니다. {#NTblServ-updateRecord_S_A_O_O__NowDataErroriOS-ul-enum} |
[표 60. 반환]

{#NTblServ-updateRecord_S_A_O_O__table_djl_5sj_ppb}  
이 예시에서는 지정된 필드를 사용하여 지정된 테이블의 기록을 업데이트하는 기능을 만드는 방법을 보여줍니다. 호출의 출력은 데이터를 원하는 모델로 변환할 수 있는 ByteArray입니다.

    tableService.updateRecord(sysId: sysId, in: tableName, with: fields, writeOptions: writeOptions, configuration: readConfiguration)
        .subscribe(on: DispatchQueue.global())
        .receive(on: DispatchQueue.main)
        .convertToRecord()
        .sink { completion in
            if case let .failure(error) = completion {
                print("Update failed with NowDataError: \(error)")
            }
        } receiveValue: { record in
            print("Record updated: \(record)")
        }
        .store(in: &subscriptions)


