NowTableService 클래스 - iOS

  • 릴리스 버전: Australia
  • 업데이트 날짜 2026년 03월 12일
  • 소요 시간: 130분
  • NowTableService 클래스는 기존 ServiceNow 테이블의 레코드에 대해 생성, 읽기, 업데이트 및 삭제 작업을 수행할 수 있는 기능을 제공합니다.

    표 1. 속성
    이름 유형 설명
    구성 NowService구성 서비스가 초기화될 때 제공된 구성 설정입니다.

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

    지정된 Codable 모델을 지정된 테이블에 삽입합니다.

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

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

    표 2. 매개변수
    이름 유형 설명
    모델 SysIdentifiableModel 테이블에 삽입할 필드의 모델 정의입니다.
    tableName에서 문자열 인시던트와 같은 기록을 쓸 테이블의 이름입니다.
    코더 코더 옵션입니다. 인스턴스와 주고받는 데이터를 인코딩하거나 디코딩하는 데 사용할 코더입니다.ServiceNow
    가능한 값:
    • 기본값: 기본 인코더는 디바이스 로케일시간대를 사용하여 yyy-MM-dd HH:mm:ss 형식을 사용하여 날짜 형식을 지정합니다.
    • custom(JSONEncoder, JSONDecoder):

      사용자 지정 코더를 사용하여 JSON 디코딩/인코딩을 보다 세부적으로 제어할 수 있습니다.

      이 열거형은 특수 날짜 형식, 시간대 또는 로캘을 사용하는 경우와 같이 고유한 JSONEncoderJSONDecoder를 제공하는 데만 사용합니다.

      let myEncoder = JSONEncoder()
      myEncoder.dateFormat = …
      let myDecoder = JSONDecoder()
      myDecoder.dateFormat = …
      let coder: Coder = .custom(myEncoder, myDecoder)

    기본값: .default

    쓰기 옵션 필드 쓰기 옵션 옵션입니다. 기록에 기록되는 데이터에 적용할 구성 옵션입니다.

    기본값: nil

    구성 구성 가져오기 옵션입니다. 반환할 기록을 정의하는 필터, 페이지 매김 페이지 크기 제한, 검색할 필드 및 필드에 포함할 항목을 포함하여 검색된 기록에 적용할 구성입니다.

    기본값: nil - 모든 기록이 반환됩니다.

    표 3. 반환
    유형 설명
    모델 메서드가 성공하면 반환됩니다. 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(오류)

      네트워크 서비스에 오류가 발생할 때 발생합니다.

    다음 코드 예제에서는 이 메서드를 호출하는 방법을 보여 줍니다.

    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>))

    지정된 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

    표 4. 매개변수
    이름 유형 설명
    모델 SysIdentifiableModel 테이블에 삽입할 필드의 모델 정의입니다.
    tableName에서 문자열 인시던트와 같은 기록을 쓸 테이블의 이름입니다.
    코더 코더 옵션입니다. 인스턴스와 주고받는 데이터를 인코딩하거나 디코딩하는 데 사용할 코더입니다.ServiceNow
    가능한 값:
    • 기본값: 기본 인코더는 디바이스 로케일시간대를 사용하여 yyy-MM-dd HH:mm:ss 형식을 사용하여 날짜 형식을 지정합니다.
    • custom(JSONEncoder, JSONDecoder):

      사용자 지정 코더를 사용하여 JSON 디코딩/인코딩을 보다 세부적으로 제어할 수 있습니다.

      이 열거형은 특수 날짜 형식, 시간대 또는 로캘을 사용하는 경우와 같이 고유한 JSONEncoderJSONDecoder를 제공하는 데만 사용합니다.

      let myEncoder = JSONEncoder()
      myEncoder.dateFormat = …
      let myDecoder = JSONDecoder()
      myDecoder.dateFormat = …
      let coder: Coder = .custom(myEncoder, myDecoder)

    기본값: .default

    쓰기 옵션 필드 쓰기 옵션 옵션입니다. 기록에 기록되는 데이터에 적용할 구성 옵션입니다.

    기본값: nil

    구성 구성 가져오기 옵션입니다. 반환할 기록을 정의하는 필터, 페이지 매김 페이지 크기 제한, 검색할 필드 및 필드에 포함할 항목을 포함하여 검색된 기록에 적용할 구성입니다.

    기본값: 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(오류)

        네트워크 서비스에 오류가 발생할 때 발생합니다.

    표 5. 반환
    유형 설명
    안 함

    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)

    하나의 코드 가능 모델을 지정된 테이블에 삽입합니다.

    주:
    이 방법은 더 이상 사용되지 않습니다. 대신 메서드의 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 콜백 모델에 반환됩니다.
    표 6. 매개변수
    이름 유형 설명
    모델 SysIdentifiableModel 테이블에 삽입할 SysIdentifiableModel 모델입니다.
    tableName에서 문자열 인시던트와 같은 기록을 쓸 테이블의 이름입니다.
    경로 문자열 옵션입니다. 중첩 유형에 대해 점으로 구분된 경로입니다. 예를 들어 더 깊은 중첩을 위한 result 또는 foo.bar.baz .

    기본값: constants.resultPath

    코더 코더 옵션입니다. 인스턴스와 주고받는 데이터를 인코딩하거나 디코딩하는 데 사용할 코더입니다.ServiceNow
    가능한 값:
    • 기본값: 기본 인코더는 디바이스 로케일시간대를 사용하여 yyy-MM-dd HH:mm:ss 형식을 사용하여 날짜 형식을 지정합니다.
    • custom(JSONEncoder, JSONDecoder):

      사용자 지정 코더를 사용하여 JSON 디코딩/인코딩을 보다 세부적으로 제어할 수 있습니다.

      이 열거형은 특수 날짜 형식, 시간대 또는 로캘을 사용하는 경우와 같이 고유한 JSONEncoderJSONDecoder를 제공하는 데만 사용합니다.

      let myEncoder = JSONEncoder()
      myEncoder.dateFormat = …
      let myDecoder = JSONDecoder()
      myDecoder.dateFormat = …
      let coder: Coder = .custom(myEncoder, myDecoder)

    기본값: .default

    쓰기 옵션 필드 쓰기 옵션 옵션입니다. 기록에 기록되는 데이터에 적용할 구성 옵션입니다.

    기본값: nil

    구성 구성 가져오기 옵션입니다. 반환할 기록을 정의하는 필터, 페이지 매김 페이지 크기 제한, 검색할 필드 및 필드에 포함할 항목을 포함하여 검색된 기록에 적용할 구성입니다.

    기본값: nil - 모든 기록이 반환됩니다.

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

    실패: NowDataError

    @escaping(결과<모델, NowDataError>)

    사용자 [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

    지정된 필드가 포함된 지정된 테이블에 기록을 삽입합니다.

    게시자는 사용자 지정 코드 모델로 디코딩할 수 있는 데이터를 내보내거나 함수를 사용할 수도 있습니다.NowTableService - paginator<Model: Decodable>(from tableName: String, path: String = Constants.resultPath, coder: Coder = .default, configuration: FetchConfiguration? = nil) 또는 편리한 함수 convertToRecords() 를 사용하여 데이터를 NowRecord 객체로 변환할 수 있습니다. 다음은 NowRecord를 내보내도록 게시자를 변환하는 방법을 보여줍니다.
    let dataPublisher: AnyPublisher<Data, NowDataError> = ...
    let recordsPublisher: AnyPublisher<[NowRecord], NowDataError> = myPublisher.convertToRecords()
    주:
    기록 내의 모든 필드를 업데이트하지 못할 수 있습니다. 예를 들어 프리픽스가 sys_ 인 필드는 일반적으로 자동으로 생성되며 업데이트할 수 없는 시스템 매개변수입니다. 지정되지 않았으며 시스템에서 자동 생성되지 않은 필드는 연결된 데이터 유형의 null 값으로 설정됩니다.
    표 8. 매개변수
    이름 유형 설명
    필드 포함 [필드 이름: 필드 값] 기록에 포함할 필드의 이름-값 쌍입니다.
    tableName에서 문자열 인시던트와 같은 기록을 쓸 테이블의 이름입니다.
    쓰기 옵션 필드 쓰기 옵션 옵션입니다. 기록에 기록되는 데이터에 적용할 구성 옵션입니다.

    기본값: nil

    구성 구성 가져오기 옵션입니다. 반환할 기록을 정의하는 필터, 페이지 매김 페이지 크기 제한, 검색할 필드 및 필드에 포함할 항목을 포함하여 검색된 기록에 적용할 구성입니다.

    기본값: nil - 모든 기록이 반환됩니다.

    표 9. 반환
    유형 설명
    데이터 메서드가 성공하면 반환됩니다. 새 기록을 포함하는 데이터 객체입니다.
    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(오류)

      네트워크 서비스에 오류가 발생할 때 발생합니다.

    다음 코드 예제에서는 이 메서드를 호출하는 방법을 보여 줍니다.

    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>)

    지정된 테이블에 지정된 기록을 삽입하고 기록이 저장된 후 핸들러를 실행 completion 합니다.

    필요한 경우 반환 결과를 사용자 지정 Codable 모델로 디코딩하거나 대신 함수를 NowTableService - paginator<Model: Decodable>(from tableName: String, path: String = Constants.resultPath, coder: Coder = .default, configuration: FetchConfiguration? = nil) 사용할 수 있습니다. 또는 편리한 함수 convertToRecords() 를 사용하여 데이터를 NowRecord 객체로 변환할 수 있습니다. 다음은 NowRecord를 내보내도록 게시자를 변환하는 방법을 보여줍니다.
    let dataPublisher: AnyPublisher<Data, NowDataError> = ...
    let recordsPublisher: AnyPublisher<[NowRecord], NowDataError> = myResult.convertToRecords()
    주:
    기록 내의 모든 필드를 업데이트하지 못할 수 있습니다. 예를 들어 프리픽스가 sys_ 인 필드는 일반적으로 자동으로 생성되며 업데이트할 수 없는 시스템 매개변수입니다. 지정되지 않았으며 시스템에서 자동 생성되지 않은 필드는 연결된 데이터 유형의 null 값으로 설정됩니다.
    표 10. 매개변수
    이름 유형 설명
    필드 포함 [필드 이름: 필드 값] 기록에 포함할 필드의 이름-값 쌍입니다.
    tableName에서 문자열 인시던트와 같은 기록을 쓸 테이블의 이름입니다.
    쓰기 옵션 필드 쓰기 옵션 옵션입니다. 기록에 기록되는 데이터에 적용할 구성 옵션입니다.

    기본값: nil

    구성 필드읽기 구성 옵션입니다. 반환할 필드와 필드에 포함할 항목을 지정하는 구성 옵션입니다.

    기본값: 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(오류)

        네트워크 서비스에 오류가 발생할 때 발생합니다.

    표 11. 반환
    유형 설명
    없음

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

    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)

    지정된 필드가 포함된 지정된 테이블에 기록을 삽입합니다.

    주:
    이 방법은 더 이상 사용되지 않습니다. 대신 메서드의 async/await 구현을 사용해야 합니다.
    게시자는 사용자 지정 코드 모델로 디코딩할 수 있는 데이터를 내보내거나 함수를 사용할 수도 있습니다.NowTableService - paginator<Model: Decodable>(from tableName: String, path: String = Constants.resultPath, coder: Coder = .default, configuration: FetchConfiguration? = nil) 또는 편리한 함수 convertToRecords() 를 사용하여 데이터를 NowRecord 객체로 변환할 수 있습니다. 다음은 NowRecord를 내보내도록 게시자를 변환하는 방법을 보여줍니다.
    let dataPublisher: AnyPublisher<Data, NowDataError> = ...
    let recordsPublisher: AnyPublisher<[NowRecord], NowDataError> = myPublisher.convertToRecords()
    주:
    기록 내의 모든 필드를 업데이트하지 못할 수 있습니다. 예를 들어 프리픽스가 sys_ 인 필드는 일반적으로 자동으로 생성되며 업데이트할 수 없는 시스템 매개변수입니다. 지정되지 않았으며 시스템에서 자동 생성되지 않은 필드는 연결된 데이터 유형의 null 값으로 설정됩니다.
    표 12. 매개변수
    이름 유형 설명
    필드 포함 [필드 이름: 필드 값] 기록에 포함할 필드의 이름-값 쌍입니다.
    tableName에서 문자열 인시던트와 같은 기록을 쓸 테이블의 이름입니다.
    쓰기 옵션 필드 쓰기 옵션 옵션입니다. 기록에 기록되는 데이터에 적용할 구성 옵션입니다.

    기본값: nil

    구성 구성 가져오기 옵션입니다. 반환할 기록을 정의하는 필터, 페이지 매김 페이지 크기 제한, 검색할 필드 및 필드에 포함할 항목을 포함하여 검색된 기록에 적용할 구성입니다.

    기본값: nil - 모든 기록이 반환됩니다.

    표 13. 반환
    유형 설명
    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(오류)

      네트워크 서비스에 오류가 발생할 때 발생합니다.

    이 예시에서는 지정된 필드를 사용하여 지정된 테이블에 기록을 삽입하는 기능을 만드는 방법을 보여줍니다. 호출의 출력은 데이터를 원하는 모델로 변환할 수 있는 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

    지정된 테이블에서 지정된 Codable 모델을 삭제합니다.

    표 14. 매개변수
    이름 유형 설명
    모델 모델 테이블에서 삭제할 SysIdentifiableModel입니다. 삭제할 기록의 sys_id 포함해야 합니다.
    from tableName 문자열 인시 트와 같은 정보를 삭제할 테이블의 이름입니다.
    표 15. 반환
    유형 설명
    없음 메서드가 성공하면 아무 것도 반환되지 않습니다.
    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(오류)

      네트워크 서비스에 오류가 발생할 때 발생합니다.

    다음 코드 예제에서는 이 메서드를 호출하는 방법을 보여 줍니다.

    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>))

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

    표 16. 매개변수
    이름 유형 설명
    모델 모델 테이블에서 삭제할 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(오류)

        네트워크 서비스에 오류가 발생할 때 발생합니다.

    표 17. 반환
    유형 설명
    없음

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

    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)

    지정된 테이블에서 지정된 Codable 모델을 삭제합니다.

    주:
    이 방법은 더 이상 사용되지 않습니다. 대신 메서드의 async/await 구현을 사용해야 합니다.
    표 18. 매개변수
    이름 유형 설명
    모델 모델 테이블에서 삭제할 SysIdentifiableModel입니다. 삭제할 기록의 sys_id 포함해야 합니다.
    from tableName 문자열 인시 트와 같은 정보를 삭제할 테이블의 이름입니다.
    표 19. 반환
    유형 설명
    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(오류)

      네트워크 서비스에 오류가 발생할 때 발생합니다.

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

    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

    지정된 테이블에서 지정된 기록을 삭제합니다.

    표 20. 매개변수
    이름 유형 설명
    sysId 문자열 삭제할 기록의 Sys_id입니다.
    from tableName 문자열 인시 트와 같은 정보를 삭제할 테이블의 이름입니다.
    표 21. 반환
    유형 설명
    없음 메서드가 성공하면 아무 것도 반환되지 않습니다.
    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(오류)

      네트워크 서비스에 오류가 발생할 때 발생합니다.

    다음 코드 예제에서는 이 메서드를 호출하는 방법을 보여 줍니다.

    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>))

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

    표 22. 매개변수
    이름 유형 설명
    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(오류)

      네트워크 서비스에 오류가 발생할 때 발생합니다.

    표 23. 반환
    유형 설명
    없음

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

    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)

    지정된 테이블에서 지정된 기록을 삭제합니다.

    주:
    이 방법은 더 이상 사용되지 않습니다. 대신 메서드의 async/await 구현을 사용해야 합니다.
    표 24. 매개변수
    이름 유형 설명
    sysId 문자열 삭제할 기록의 Sys_id입니다.
    from tableName 문자열 인시 트와 같은 정보를 삭제할 테이블의 이름입니다.
    표 25. 반환
    유형 설명
    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(오류)

      네트워크 서비스에 오류가 발생할 때 발생합니다.

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

    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)

    NowTableService 객체를 작성합니다.

    표 26. 매개변수
    이름 유형 설명
    구성 NowService구성 서비스를 만들 때 사용할 구성 매개변수입니다.
    coreServiceProvider NowCoreService제공 옵션입니다. NowTableService와 연결할 서비스 제공자입니다.

    기본값: nil

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

    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

    지정된 테이블에서 디코딩 가능한 모델을 검색할 수 있습니다.

    테이블 API 응답은 다음과 유사한 매개변수 내에 result 중첩됩니다.
    {
      "result": [
        { "name": "Ash Williams" },
        { "name": "Lionel Cosgrove" },
        { "name": "Laurie Strode" }
      ]
    }
    큰 결과 집합의 경우 페이지 매김 함수 NowTableService - 페이지 매김자(from tableName: String, configuration: FetchConfiguration? = nil) 중 하나를 사용하거나 NowTableService - paginator<Model: Decodable>(from tableName: String, path: String = Constants.resultPath, coder: Coder = .default, configuration: FetchConfiguration? = nil) 페이지 매김된 모델을 가져옵니다.
    표 27. 매개변수
    이름 유형 설명
    sysId 포함 SysID 옵션입니다. 반환할 기록의 Sys_id입니다. 특정 기록을 검색하려면 sys_id 제공합니다.

    기본값: nil

    from tableName 문자열 인시 트와 같은 기록을 검색할 테이블의 이름입니다.
    경로 문자열 중첩 유형에 대해 점으로 구분된 경로입니다. 예를 들어 더 깊은 중첩을 위한 result 또는 foo.bar.baz .

    기본값: 결과

    코더 코더 옵션입니다. 인스턴스와 주고받는 데이터를 인코딩하거나 디코딩하는 데 사용할 코더입니다.ServiceNow
    가능한 값:
    • 기본값: 기본 인코더는 디바이스 로케일시간대를 사용하여 yyy-MM-dd HH:mm:ss 형식을 사용하여 날짜 형식을 지정합니다.
    • custom(JSONEncoder, JSONDecoder):

      사용자 지정 코더를 사용하여 JSON 디코딩/인코딩을 보다 세부적으로 제어할 수 있습니다.

      이 열거형은 특수 날짜 형식, 시간대 또는 로캘을 사용하는 경우와 같이 고유한 JSONEncoderJSONDecoder를 제공하는 데만 사용합니다.

      let myEncoder = JSONEncoder()
      myEncoder.dateFormat = …
      let myDecoder = JSONDecoder()
      myDecoder.dateFormat = …
      let coder: Coder = .custom(myEncoder, myDecoder)

    기본값: .default

    구성 구성 가져오기 옵션입니다. 반환할 기록을 정의하는 필터, 페이지 매김 페이지 크기 제한, 검색할 필드 및 필드에 포함할 항목을 포함하여 검색된 기록에 적용할 구성입니다.

    기본값: nil - 모든 기록이 반환됩니다.

    표 28. 반환
    유형 설명
    모델 메서드가 성공하면 반환됩니다. 디코딩 가능한 모델입니다.
    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(오류)

      네트워크 서비스에 오류가 발생할 때 발생합니다.

    다음 코드 예제에서는 이 메서드를 호출하는 방법을 보여 줍니다.

    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>))

    지정된 테이블에서 디코딩 가능한 모델을 검색합니다.

    테이블 API 응답은 다음과 유사한 매개변수 내에 result 중첩됩니다.
    {
      "result": [
        { "name": "Ash Williams" },
        { "name": "Lionel Cosgrove" },
        { "name": "Laurie Strode" }
      ]
    }

    이 함수를 사용하여 중첩된 출력 대신 디코딩 가능한 모델을 가져옵니다.

    표 29. 매개변수
    이름 유형 설명
    유형 모델.유형 디코딩할 값의 유형입니다.
    sysId 포함 문자열 옵션입니다. 반환할 기록의 Sys_id입니다.

    기본값: 설정에 따라 반환되는 모든 기록입니다.configuration

    from tableName 문자열 인시 트와 같은 기록을 검색할 테이블의 이름입니다.
    경로 문자열 옵션입니다. 중첩 유형에 대해 점으로 구분된 경로입니다. 예를 들어 더 깊은 중첩을 위한 result 또는 foo.bar.baz .

    기본값: constants.resultPath

    코더 코더 옵션입니다. 인스턴스와 주고받는 데이터를 인코딩하거나 디코딩하는 데 사용할 코더입니다.ServiceNow

    기본값: .default

    구성 구성 가져오기 옵션입니다. 반환할 기록을 정의하는 필터, 페이지 매김 페이지 크기 제한, 검색할 필드 및 필드에 포함할 항목을 포함하여 검색된 기록에 적용할 구성입니다.

    기본값: 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(오류)

        네트워크 서비스에 오류가 발생할 때 발생합니다.

    표 30. 반환
    유형 설명
    없음

    디코딩된 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)

    지정된 테이블에서 디코딩 가능한 모델을 검색할 수 있는 게시자를 작성합니다.

    주:
    이 방법은 더 이상 사용되지 않습니다. 대신 메서드의 async/await 구현을 사용해야 합니다.
    테이블 API 응답은 다음과 유사한 매개변수 내에 result 중첩됩니다.
    {
      "result": [
        { "name": "Ash Williams" },
        { "name": "Lionel Cosgrove" },
        { "name": "Laurie Strode" }
      ]
    }
    큰 결과 집합의 경우 페이지 매김 함수 NowTableService - 페이지 매김자(from tableName: String, configuration: FetchConfiguration? = nil) 중 하나를 사용하거나 NowTableService - paginator<Model: Decodable>(from tableName: String, path: String = Constants.resultPath, coder: Coder = .default, configuration: FetchConfiguration? = nil) 페이지 매김된 모델을 가져옵니다.
    표 31. 매개변수
    이름 유형 설명
    sysId 포함 SysID 옵션입니다. 반환할 기록의 Sys_id입니다. 특정 기록을 검색하려면 sys_id 제공합니다.

    기본값: nil

    from tableName 문자열 인시 트와 같은 기록을 검색할 테이블의 이름입니다.
    경로 문자열 중첩 유형에 대해 점으로 구분된 경로입니다. 예를 들어 더 깊은 중첩을 위한 result 또는 foo.bar.baz .

    기본값: 결과

    코더 코더 옵션입니다. 인스턴스와 주고받는 데이터를 인코딩하거나 디코딩하는 데 사용할 코더입니다.ServiceNow
    가능한 값:
    • 기본값: 기본 인코더는 디바이스 로케일시간대를 사용하여 yyy-MM-dd HH:mm:ss 형식을 사용하여 날짜 형식을 지정합니다.
    • custom(JSONEncoder, JSONDecoder):

      사용자 지정 코더를 사용하여 JSON 디코딩/인코딩을 보다 세부적으로 제어할 수 있습니다.

      이 열거형은 특수 날짜 형식, 시간대 또는 로캘을 사용하는 경우와 같이 고유한 JSONEncoderJSONDecoder를 제공하는 데만 사용합니다.

      let myEncoder = JSONEncoder()
      myEncoder.dateFormat = …
      let myDecoder = JSONDecoder()
      myDecoder.dateFormat = …
      let coder: Coder = .custom(myEncoder, myDecoder)

    기본값: .default

    구성 구성 가져오기 옵션입니다. 반환할 기록을 정의하는 필터, 페이지 매김 페이지 크기 제한, 검색할 필드 및 필드에 포함할 항목을 포함하여 검색된 기록에 적용할 구성입니다.

    기본값: nil - 모든 기록이 반환됩니다.

    표 32. 반환
    유형 설명
    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(오류)

      네트워크 서비스에 오류가 발생할 때 발생합니다.

    [ 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)

    기록 페이지를 반복할 수 있는 페이지 매김기를 생성합니다.

    페이지 매김자의 게시자는 사용자 지정 코드 모델로 디코딩할 수 있는 데이터를 내보내거나 함수를 사용할 수도 있습니다.NowTableService - paginator<Model: Decodable>(from tableName: String, path: String = Constants.resultPath, coder: Coder = .default, configuration: FetchConfiguration? = nil) 또는 편리한 함수 convertToRecords() 를 사용하여 데이터를 NowRecord 객체로 변환할 수 있습니다. 다음은 NowRecord를 내보내도록 게시자를 변환하는 방법을 보여줍니다.
    let dataPublisher: AnyPublisher<Data, NowDataError> = ...
    let recordsPublisher: AnyPublisher<[NowRecord], NowDataError> = myPublisher.convertToRecords()
    주:
    매개변수에서 configuration 재정의되지 않는 한 페이지 매김자는 페이지당 20개의 항목을 반환합니다. ACL 평가에 따라 페이지에 대해 가져온 실제 항목 수가 기본값 또는 구성된 값보다 적을 수 있습니다.
    표 33. 매개변수
    이름 유형 설명
    tableName 문자열 인시 트와 같은 기록을 검색할 테이블의 이름입니다.
    구성 구성 가져오기 옵션입니다. 반환할 기록을 정의하는 필터, 페이지 매김 페이지 크기 제한, 검색할 필드 및 필드에 포함할 항목을 포함하여 검색된 기록에 적용할 구성입니다.

    기본값: nil - 모든 기록이 반환됩니다.

    표 34. 반환
    유형 설명
    페이지 매김기<데이터> 성공: 지정된 기록을 포함하는 페이지 매김기 객체입니다.

    실패: 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(오류)

      네트워크 서비스에 오류가 발생할 때 발생합니다.

    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)

    중첩을 처리하는 디코딩된 모델 페이지의 반복을 활성화하는 페이지 매김기를 생성합니다.

    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)
    주:
    모든 구독 결합과 마찬가지로 예기치 않은 결과를 방지하려면 구독을 유지해야 합니다.
    표 35. 매개변수
    이름 유형 설명
    from tableName 문자열 인시 트와 같은 기록을 검색할 테이블의 이름입니다.
    경로 문자열 중첩 유형에 대해 점으로 구분된 경로입니다. 예를 들어 더 깊은 중첩을 위한 result 또는 result.user.photos 입니다. 사용자 지정 경로를 지정하면 중첩된 데이터를 가져오거나 반복할 수 있습니다.

    기본값: 결과

    코더 코더 옵션입니다. 인스턴스와 주고받는 데이터를 인코딩하거나 디코딩하는 데 사용할 코더입니다.ServiceNow
    가능한 값:
    • 기본값: 기본 인코더는 디바이스 로케일시간대를 사용하여 yyy-MM-dd HH:mm:ss 형식을 사용하여 날짜 형식을 지정합니다.
    • custom(JSONEncoder, JSONDecoder):

      사용자 지정 코더를 사용하여 JSON 디코딩/인코딩을 보다 세부적으로 제어할 수 있습니다.

      이 열거형은 특수 날짜 형식, 시간대 또는 로캘을 사용하는 경우와 같이 고유한 JSONEncoderJSONDecoder를 제공하는 데만 사용합니다.

      let myEncoder = JSONEncoder()
      myEncoder.dateFormat = …
      let myDecoder = JSONDecoder()
      myDecoder.dateFormat = …
      let coder: Coder = .custom(myEncoder, myDecoder)

    기본값: .default

    구성 구성 가져오기 옵션입니다. 반환할 기록을 정의하는 필터, 페이지 매김 페이지 크기 제한, 검색할 필드 및 필드에 포함할 항목을 포함하여 검색된 기록에 적용할 구성입니다.

    기본값: nil - 모든 기록이 반환됩니다.

    표 36. 반환
    유형 설명
    페이지 매김기<데이터> 성공: 페이지 매김된 디코딩 가능 모델을 포함하는 페이지 매김기 객체입니다.

    실패: 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(오류)

      네트워크 서비스에 오류가 발생할 때 발생합니다.

    이 예제에서는 디코딩된 사용자 모델을 제공하는 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

    인스턴스의 지정된 테이블에서 지정된 기록을 조회합니다 ServiceNow .

    게시자는 사용자 지정 코드 모델로 디코딩할 수 있는 데이터를 내보내거나 함수를 사용할 수도 있습니다.NowTableService - paginator<Model: Decodable>(from tableName: String, path: String = Constants.resultPath, coder: Coder = .default, configuration: FetchConfiguration? = nil) 또는 편리한 함수 convertToRecords() 를 사용하여 데이터를 NowRecord 객체로 변환할 수 있습니다. 다음은 NowRecord를 내보내도록 게시자를 변환하는 방법을 보여줍니다.
    let dataPublisher: AnyPublisher<Data, NowDataError> = ...
    let recordsPublisher: AnyPublisher<[NowRecord], NowDataError> = myPublisher.convertToRecords()
    표 37. 매개변수
    이름 유형 설명
    sysId 문자열 인스턴스에서 반환할 기록의 Sys_id입니다.ServiceNow
    from tableName 문자열 인시 트와 같은 기록을 검색할 테이블의 이름입니다.
    구성 구성 가져오기 옵션입니다. 반환할 기록을 정의하는 필터, 페이지 매김 페이지 크기 제한, 검색할 필드 및 필드에 포함할 항목을 포함하여 검색된 기록에 적용할 구성입니다.

    기본값: nil - 모든 기록이 반환됩니다.

    표 38. 반환
    유형 설명
    데이터 메서드가 성공하면 반환됩니다. 지정된 기록을 포함하는 데이터 객체입니다.
    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(오류)

      네트워크 서비스에 오류가 발생할 때 발생합니다.

    다음 코드 예제에서는 이 메서드를 호출하는 방법을 보여 줍니다.

    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>)

    지정된 테이블에서 지정된 기록을 검색한 다음 기록이 검색된 후 완료 핸들러를 실행합니다.

    필요한 경우 반환 결과를 사용자 지정 Codable 모델로 디코딩하거나 대신 함수를 NowTableService - paginator<Model: Decodable>(from tableName: String, path: String = Constants.resultPath, coder: Coder = .default, configuration: FetchConfiguration? = nil) 사용할 수 있습니다. 또는 편리한 함수 convertToRecords() 를 사용하여 데이터를 NowRecord 객체로 변환할 수 있습니다. 다음은 NowRecord를 내보내도록 게시자를 변환하는 방법을 보여줍니다.
    let dataPublisher: AnyPublisher<Data, NowDataError> = ...
    let recordsPublisher: AnyPublisher<[NowRecord], NowDataError> = myResult.convertToRecords()
    큰 결과 세트의 경우 함수를 NowTableService - 페이지 매김자(from tableName: String, configuration: FetchConfiguration? = nil) 사용하여 페이지 매김된 결과를 가져옵니다.
    표 39. 매개변수
    이름 유형 설명
    sysId 문자열 인스턴스에서 반환할 기록의 Sys_id입니다.ServiceNow
    from tableName 문자열 인시 트와 같은 기록을 검색할 테이블의 이름입니다.
    구성 구성 가져오기 옵션입니다. 반환할 기록을 정의하는 필터, 페이지 매김 페이지 크기 제한, 검색할 필드 및 필드에 포함할 항목을 포함하여 검색된 기록에 적용할 구성입니다.

    기본값: 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(오류)

        네트워크 서비스에 오류가 발생할 때 발생합니다.

    표 40. 반환
    유형 설명
    없음

    다음 코드 예제에서는 이 메서드를 호출하는 방법을 보여 줍니다.

    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)

    인스턴스의 지정된 테이블 ServiceNow 에서 지정된 기록을 검색하는 게시자를 만듭니다.

    주:
    이 방법은 더 이상 사용되지 않습니다. 대신 메서드의 async/await 구현을 사용해야 합니다.
    게시자는 사용자 지정 코드 모델로 디코딩할 수 있는 데이터를 내보내거나 함수를 사용할 수도 있습니다.NowTableService - paginator<Model: Decodable>(from tableName: String, path: String = Constants.resultPath, coder: Coder = .default, configuration: FetchConfiguration? = nil) 또는 편리한 함수 convertToRecords() 를 사용하여 데이터를 NowRecord 객체로 변환할 수 있습니다. 다음은 NowRecord를 내보내도록 게시자를 변환하는 방법을 보여줍니다.
    let dataPublisher: AnyPublisher<Data, NowDataError> = ...
    let recordsPublisher: AnyPublisher<[NowRecord], NowDataError> = myPublisher.convertToRecords()
    표 41. 매개변수
    이름 유형 설명
    sysId 문자열 인스턴스에서 반환할 기록의 Sys_id입니다.ServiceNow
    from tableName 문자열 인시 트와 같은 기록을 검색할 테이블의 이름입니다.
    구성 구성 가져오기 옵션입니다. 반환할 기록을 정의하는 필터, 페이지 매김 페이지 크기 제한, 검색할 필드 및 필드에 포함할 항목을 포함하여 검색된 기록에 적용할 구성입니다.

    기본값: nil - 모든 기록이 반환됩니다.

    표 42. 반환
    유형 설명
    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(오류)

      네트워크 서비스에 오류가 발생할 때 발생합니다.

    이 예시에서는 지정된 필드를 사용하여 지정된 테이블에서 지정된 기록을 검색하는 기능을 만드는 방법을 보여줍니다. 호출의 출력은 데이터를 원하는 모델로 변환할 수 있는 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

    지정된 테이블에서 기록을 검색합니다.

    게시자는 사용자 지정 코드 모델로 디코딩할 수 있는 데이터를 내보내거나 함수를 사용할 수도 있습니다.NowTableService - paginator<Model: Decodable>(from tableName: String, path: String = Constants.resultPath, coder: Coder = .default, configuration: FetchConfiguration? = nil) 또는 편리한 함수 convertToRecords() 를 사용하여 데이터를 NowRecord 객체로 변환할 수 있습니다. 다음은 NowRecord를 내보내도록 게시자를 변환하는 방법을 보여줍니다.
    let dataPublisher: AnyPublisher<Data, NowDataError> = ...
    let recordsPublisher: AnyPublisher<[NowRecord], NowDataError> = myPublisher.convertToRecords()
    큰 결과 세트의 경우 함수를 NowTableService - 페이지 매김자(from tableName: String, configuration: FetchConfiguration? = nil) 사용하여 페이지 매김된 결과를 가져옵니다.
    표 43. 매개변수
    이름 유형 설명
    from tableName 문자열 인시 트와 같은 기록을 검색할 테이블의 이름입니다.
    구성 구성 가져오기 옵션입니다. 반환할 기록을 정의하는 필터, 페이지 매김 페이지 크기 제한, 검색할 필드 및 필드에 포함할 항목을 포함하여 검색된 기록에 적용할 구성입니다.

    기본값: nil - 모든 기록이 반환됩니다.

    표 44. 반환
    유형 설명
    데이터 메서드가 성공하면 반환됩니다. 지정된 기록을 포함하는 데이터 객체입니다.
    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(오류)

      네트워크 서비스에 오류가 발생할 때 발생합니다.

    다음 코드 예제에서는 이 메서드를 호출하는 방법을 보여 줍니다.

    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>))

    지정된 테이블에서 기록을 검색하고 기록이 completion 검색된 후 핸들러를 실행합니다.

    필요한 경우 반환 결과를 사용자 지정 Codable 모델로 디코딩하거나 대신 함수를 NowTableService - paginator<Model: Decodable>(from tableName: String, path: String = Constants.resultPath, coder: Coder = .default, configuration: FetchConfiguration? = nil) 사용할 수 있습니다. 또는 편리한 함수 convertToRecords() 를 사용하여 데이터를 NowRecord 객체로 변환할 수 있습니다. 다음은 NowRecord를 내보내도록 게시자를 변환하는 방법을 보여줍니다.
    let dataPublisher: AnyPublisher<Data, NowDataError> = ...
    let recordsPublisher: AnyPublisher<[NowRecord], NowDataError> = myResult.convertToRecords()
    큰 결과 세트의 경우 함수를 NowTableService - 페이지 매김자(from tableName: String, configuration: FetchConfiguration? = nil) 사용하여 페이지 매김된 결과를 가져옵니다.
    표 45. 매개변수
    이름 유형 설명
    tableName에서 문자열 인시던트와 같은 기록을 쓸 테이블의 이름입니다.
    구성 구성 가져오기 옵션입니다. 반환할 기록을 정의하는 필터, 페이지 매김 페이지 크기 제한, 검색할 필드 및 필드에 포함할 항목을 포함하여 검색된 기록에 적용할 구성입니다.

    기본값: 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(오류)

        네트워크 서비스에 오류가 발생할 때 발생합니다.

    표 46. 반환
    유형 설명
    없음

    다음 코드 예제에서는 이 메서드를 호출하는 방법을 보여 줍니다.

    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)

    지정된 테이블에서 기록을 검색할 수 있는 게시자를 작성합니다.

    주:
    이 방법은 더 이상 사용되지 않습니다. 대신 메서드의 async/await 구현을 사용해야 합니다.
    게시자는 사용자 지정 코드 모델로 디코딩할 수 있는 데이터를 내보내거나 함수를 사용할 수도 있습니다.NowTableService - paginator<Model: Decodable>(from tableName: String, path: String = Constants.resultPath, coder: Coder = .default, configuration: FetchConfiguration? = nil) 또는 편리한 함수 convertToRecords() 를 사용하여 데이터를 NowRecord 객체로 변환할 수 있습니다. 다음은 NowRecord를 내보내도록 게시자를 변환하는 방법을 보여줍니다.
    let dataPublisher: AnyPublisher<Data, NowDataError> = ...
    let recordsPublisher: AnyPublisher<[NowRecord], NowDataError> = myPublisher.convertToRecords()
    큰 결과 세트의 경우 함수를 NowTableService - 페이지 매김자(from tableName: String, configuration: FetchConfiguration? = nil) 사용하여 페이지 매김된 결과를 가져옵니다.
    표 47. 매개변수
    이름 유형 설명
    from tableName 문자열 인시 트와 같은 기록을 검색할 테이블의 이름입니다.
    구성 구성 가져오기 옵션입니다. 반환할 기록을 정의하는 필터, 페이지 매김 페이지 크기 제한, 검색할 필드 및 필드에 포함할 항목을 포함하여 검색된 기록에 적용할 구성입니다.

    기본값: nil - 모든 기록이 반환됩니다.

    표 48. 반환
    유형 설명
    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(오류)

      네트워크 서비스에 오류가 발생할 때 발생합니다.

    이 예제에서는 지정된 테이블에서 여러 기록을 가져오는 함수를 만드는 방법을 보여줍니다. 미래의 특정 시점에 요청이 실행되도록 예약하고 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

    지정된 테이블에서 지정된 코드 가능 모델을 업데이트합니다.

    표 49. 매개변수
    이름 유형 설명
    모델 모델 테이블에서 업데이트할 SysIdentifiableModel 모델입니다.
    tableName에서 문자열 인시던트와 같은 기록을 쓸 테이블의 이름입니다.
    코더 코더 옵션입니다. 인스턴스와 주고받는 데이터를 인코딩하거나 디코딩하는 데 사용할 코더입니다.ServiceNow
    가능한 값:
    • 기본값: 기본 인코더는 디바이스 로케일시간대를 사용하여 yyy-MM-dd HH:mm:ss 형식을 사용하여 날짜 형식을 지정합니다.
    • custom(JSONEncoder, JSONDecoder):

      사용자 지정 코더를 사용하여 JSON 디코딩/인코딩을 보다 세부적으로 제어할 수 있습니다.

      이 열거형은 특수 날짜 형식, 시간대 또는 로캘을 사용하는 경우와 같이 고유한 JSONEncoderJSONDecoder를 제공하는 데만 사용합니다.

      let myEncoder = JSONEncoder()
      myEncoder.dateFormat = …
      let myDecoder = JSONDecoder()
      myDecoder.dateFormat = …
      let coder: Coder = .custom(myEncoder, myDecoder)

    기본값: .default

    쓰기 옵션 필드 쓰기 옵션 옵션입니다. 기록에 기록되는 데이터에 적용할 구성 옵션입니다.

    기본값: nil

    구성 구성 가져오기 옵션입니다. 반환할 기록을 정의하는 필터, 페이지 매김 페이지 크기 제한, 검색할 필드 및 필드에 포함할 항목을 포함하여 검색된 기록에 적용할 구성입니다.

    기본값: nil - 모든 기록이 반환됩니다.

    표 50. 반환
    유형 설명
    모델 메서드가 성공하면 반환됩니다. 지정된 테이블에서 업데이트된 디코딩 가능한 모델입니다.
    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(오류)

      네트워크 서비스에 오류가 발생할 때 발생합니다.

    다음 코드 예제에서는 이 메서드를 호출하는 방법을 보여 줍니다.

    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>))

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

    표 51. 매개변수
    이름 유형 설명
    모델 모델 테이블에서 업데이트할 SysIdentifiableModel 모델입니다.
    tableName에서 문자열 인시던트와 같은 기록을 쓸 테이블의 이름입니다.
    코더 코더 옵션입니다. 인스턴스와 주고받는 데이터를 인코딩하거나 디코딩하는 데 사용할 코더입니다.ServiceNow
    가능한 값:
    • 기본값: 기본 인코더는 디바이스 로케일시간대를 사용하여 yyy-MM-dd HH:mm:ss 형식을 사용하여 날짜 형식을 지정합니다.
    • custom(JSONEncoder, JSONDecoder):

      사용자 지정 코더를 사용하여 JSON 디코딩/인코딩을 보다 세부적으로 제어할 수 있습니다.

      이 열거형은 특수 날짜 형식, 시간대 또는 로캘을 사용하는 경우와 같이 고유한 JSONEncoderJSONDecoder를 제공하는 데만 사용합니다.

      let myEncoder = JSONEncoder()
      myEncoder.dateFormat = …
      let myDecoder = JSONDecoder()
      myDecoder.dateFormat = …
      let coder: Coder = .custom(myEncoder, myDecoder)

    기본값: .default

    쓰기 옵션 필드 쓰기 옵션 옵션입니다. 기록에 기록되는 데이터에 적용할 구성 옵션입니다.

    기본값: nil

    구성 구성 가져오기 옵션입니다. 반환할 기록을 정의하는 필터, 페이지 매김 페이지 크기 제한, 검색할 필드 및 필드에 포함할 항목을 포함하여 검색된 기록에 적용할 구성입니다.

    기본값: 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(오류)

        네트워크 서비스에 오류가 발생할 때 발생합니다.

    표 52. 반환
    유형 설명
    없음

    다음 코드 예제에서는 이 메서드를 호출하는 방법을 보여 줍니다.

    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)

    지정된 테이블에서 지정된 코딩 가능 모델을 업데이트합니다.

    주:
    이 방법은 더 이상 사용되지 않습니다. 대신 메서드의 async/await 구현을 사용해야 합니다.
    표 53. 매개변수
    이름 유형 설명
    모델 모델 테이블에서 업데이트할 SysIdentifiableModel 모델입니다.
    tableName에서 문자열 인시던트와 같은 기록을 쓸 테이블의 이름입니다.
    코더 코더 옵션입니다. 인스턴스와 주고받는 데이터를 인코딩하거나 디코딩하는 데 사용할 코더입니다.ServiceNow
    가능한 값:
    • 기본값: 기본 인코더는 디바이스 로케일시간대를 사용하여 yyy-MM-dd HH:mm:ss 형식을 사용하여 날짜 형식을 지정합니다.
    • custom(JSONEncoder, JSONDecoder):

      사용자 지정 코더를 사용하여 JSON 디코딩/인코딩을 보다 세부적으로 제어할 수 있습니다.

      이 열거형은 특수 날짜 형식, 시간대 또는 로캘을 사용하는 경우와 같이 고유한 JSONEncoderJSONDecoder를 제공하는 데만 사용합니다.

      let myEncoder = JSONEncoder()
      myEncoder.dateFormat = …
      let myDecoder = JSONDecoder()
      myDecoder.dateFormat = …
      let coder: Coder = .custom(myEncoder, myDecoder)

    기본값: .default

    쓰기 옵션 필드 쓰기 옵션 옵션입니다. 기록에 기록되는 데이터에 적용할 구성 옵션입니다.

    기본값: nil

    구성 구성 가져오기 옵션입니다. 반환할 기록을 정의하는 필터, 페이지 매김 페이지 크기 제한, 검색할 필드 및 필드에 포함할 항목을 포함하여 검색된 기록에 적용할 구성입니다.

    기본값: nil - 모든 기록이 반환됩니다.

    표 54. 반환
    유형 설명
    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(오류)

      네트워크 서비스에 오류가 발생할 때 발생합니다.

    다음 코드 예제에서는 이 메서드를 호출하는 방법을 보여 줍니다.

    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

    지정된 필드로 지정된 기록을 업데이트합니다.

    데이터를 사용자 지정 코드 모델로 디코딩하거나 함수를 NowTableService - paginator<Model: Decodable>(from tableName: String, path: String = Constants.resultPath, coder: Coder = .default, configuration: FetchConfiguration? = nil) 사용할 수 있습니다. 또는 편리한 함수 convertToRecords() 를 사용하여 데이터를 NowRecord 객체로 변환할 수 있습니다. 다음은 NowRecord를 내보내도록 게시자를 변환하는 방법을 보여줍니다.
    let dataPublisher: AnyPublisher<Data, NowDataError> = ...
    let recordsPublisher: AnyPublisher<[NowRecord], NowDataError> = myPublisher.convertToRecords()
    주:
    기록 내의 모든 필드를 업데이트하지 못할 수 있습니다. 예를 들어 프리픽스가 sys_ 인 필드는 일반적으로 자동으로 생성되며 업데이트할 수 없는 시스템 매개변수입니다. 지정되지 않았으며 시스템에서 자동 생성되지 않은 필드는 연결된 데이터 유형의 null 값으로 설정됩니다.
    표 55. 매개변수
    이름 유형 설명
    sysId 문자열 인스턴스에서 반환할 기록의 Sys_id입니다.ServiceNow
    필드 포함 [필드 이름: 필드 값] 기록에 포함할 필드의 이름-값 쌍입니다.
    tableName에서 문자열 인시던트와 같은 기록을 쓸 테이블의 이름입니다.
    쓰기 옵션 필드 쓰기 옵션 옵션입니다. 기록에 기록되는 데이터에 적용할 구성 옵션입니다.

    기본값: nil

    구성 구성 가져오기 옵션입니다. 반환할 기록을 정의하는 필터, 페이지 매김 페이지 크기 제한, 검색할 필드 및 필드에 포함할 항목을 포함하여 검색된 기록에 적용할 구성입니다.

    기본값: nil - 모든 기록이 반환됩니다.

    표 56. 반환
    유형 설명
    데이터 메서드가 성공하면 반환됩니다. 업데이트된 기록을 포함하는 데이터 객체입니다.
    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(오류)

      네트워크 서비스에 오류가 발생할 때 발생합니다.

    다음 코드 예제에서는 이 메서드를 호출하는 방법을 보여 줍니다.

    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>)

    지정된 필드로 지정된 기록을 업데이트한 다음 기록이 저장되면 핸들러를 실행 completion 합니다.

    필요한 경우 반환 결과를 사용자 지정 Codable 모델로 디코딩하거나 대신 함수를 NowTableService - paginator<Model: Decodable>(from tableName: String, path: String = Constants.resultPath, coder: Coder = .default, configuration: FetchConfiguration? = nil) 사용할 수 있습니다. 또는 편리한 함수 convertToRecords() 를 사용하여 데이터를 NowRecord 객체로 변환할 수 있습니다. 다음은 NowRecord를 내보내도록 게시자를 변환하는 방법을 보여줍니다.
    let dataPublisher: AnyPublisher<Data, NowDataError> = ...
    let recordsPublisher: AnyPublisher<[NowRecord], NowDataError> = myResult.convertToRecords()
    주:
    기록 내의 모든 필드를 업데이트하지 못할 수 있습니다. 예를 들어 프리픽스가 sys_ 인 필드는 일반적으로 자동으로 생성되며 업데이트할 수 없는 시스템 매개변수입니다. 지정되지 않았으며 시스템에서 자동 생성되지 않은 필드는 연결된 데이터 유형의 null 값으로 설정됩니다.
    표 57. 매개변수
    이름 유형 설명
    sysId 문자열 인스턴스에서 반환할 기록의 Sys_id입니다.ServiceNow
    필드 포함 [필드 이름: 필드 값] 기록에 포함할 필드의 이름-값 쌍입니다.
    tableName에서 문자열 인시던트와 같은 기록을 쓸 테이블의 이름입니다.
    쓰기 옵션 필드 쓰기 옵션 옵션입니다. 기록에 기록되는 데이터에 적용할 구성 옵션입니다.

    기본값: nil

    구성 구성 가져오기 옵션입니다. 반환할 기록을 정의하는 필터, 페이지 매김 페이지 크기 제한, 검색할 필드 및 필드에 포함할 항목을 포함하여 검색된 기록에 적용할 구성입니다.

    기본값: 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(오류)

        네트워크 서비스에 오류가 발생할 때 발생합니다.

    표 58. 반환
    유형 설명
    없음

    다음 코드 예제에서는 이 메서드를 호출하는 방법을 보여 줍니다.

    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)

    지정된 필드로 지정된 기록을 업데이트합니다.

    주:
    이 방법은 더 이상 사용되지 않습니다. 대신 메서드의 async/await 구현을 사용해야 합니다.
    게시자는 사용자 지정 코드 모델로 디코딩할 수 있는 데이터를 내보내거나 함수를 사용할 수도 있습니다.NowTableService - paginator<Model: Decodable>(from tableName: String, path: String = Constants.resultPath, coder: Coder = .default, configuration: FetchConfiguration? = nil) 또는 편리한 함수 convertToRecords() 를 사용하여 데이터를 NowRecord 객체로 변환할 수 있습니다. 다음은 NowRecord를 내보내도록 게시자를 변환하는 방법을 보여줍니다.
    let dataPublisher: AnyPublisher<Data, NowDataError> = ...
    let recordsPublisher: AnyPublisher<[NowRecord], NowDataError> = myPublisher.convertToRecords()
    주:
    기록 내의 모든 필드를 업데이트하지 못할 수 있습니다. 예를 들어 프리픽스가 sys_ 인 필드는 일반적으로 자동으로 생성되며 업데이트할 수 없는 시스템 매개변수입니다. 지정되지 않았으며 시스템에서 자동 생성되지 않은 필드는 연결된 데이터 유형의 null 값으로 설정됩니다.
    표 59. 매개변수
    이름 유형 설명
    sysId 문자열 인스턴스에서 반환할 기록의 Sys_id입니다.ServiceNow
    필드 포함 [필드 이름: 필드 값] 기록에 포함할 필드의 이름-값 쌍입니다.
    tableName에서 문자열 인시던트와 같은 기록을 쓸 테이블의 이름입니다.
    쓰기 옵션 필드 쓰기 옵션 옵션입니다. 기록에 기록되는 데이터에 적용할 구성 옵션입니다.

    기본값: nil

    구성 구성 가져오기 옵션입니다. 반환할 기록을 정의하는 필터, 페이지 매김 페이지 크기 제한, 검색할 필드 및 필드에 포함할 항목을 포함하여 검색된 기록에 적용할 구성입니다.

    기본값: nil - 모든 기록이 반환됩니다.

    표 60. 반환
    유형 설명
    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(오류)

      네트워크 서비스에 오류가 발생할 때 발생합니다.

    이 예시에서는 지정된 필드를 사용하여 지정된 테이블의 기록을 업데이트하는 기능을 만드는 방법을 보여줍니다. 호출의 출력은 데이터를 원하는 모델로 변환할 수 있는 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)