Classe NowTableService : iOS

  • Rversion finale: Washingtondc
  • Mis à jour 1 févr. 2024
  • 78 minutes de lecture
  • La classe NowTableService fournit des fonctions qui vous permettent d’effectuer des opérations de création, de lecture, de mise à jour et de suppression sur les enregistrements de tables existantes ServiceNow .

    Tableau 1. Propriétés
    Nom Type Description
    configuration Configuration Now ServiceConfiguration Paramètres de configuration fournis lors de l’initialisation du service.

    NowTableService – create<Model : SysIdentifiableModel>(_ model : Model, in tableName : String, coder : Coder, writeOptions : FieldWriteOptions, configuration : FetchConfiguration) lève une fonction asynchrone

    Insère le modèle codable spécifié dans la table spécifiée.

    Pour créer un nouvel enregistrement par modèle, le modèle doit se conformer au protocole SysIdentifiableModel . Chaque table aura généralement son propre modèle.

    Le paramètre du modèle est ignoré lors de sys_Id la création, car il sysId est généré par la ServiceNow plateforme. La ServiceNow plateforme générée sys_Id est renvoyée dans le completion modèle de résultat du gestionnaire.

    Tableau 2. Paramètres
    Nom Type Description
    modèle SysIdentifiableModel Définition du modèle des champs à insérer dans la table.
    dans tableName Chaîne Nom de la table dans laquelle écrire les enregistrements, par exemple incident.
    Codeur Codeur Facultatif. Codeur à utiliser pour coder ou décoder les données envoyées et reçues de l’instance ServiceNow .
    Valeurs possibles :
    • default : les encodeurs par défaut formatent les dates en utilisant le format aaa-MM-jj HH :mm :ss en utilisant les paramètres régionaux et le fuseau horaire de l’appareil.
    • personnalisé (JSONEncoder, JSONDecoder) :

      Utilisez des codeurs personnalisés pour avoir un contrôle plus précis sur le décodage/encodage JSON.

      Utilisez uniquement cette énumération pour fournir votre propre JSONEncoder et JSONDecoder, par exemple lorsque vous utilisez des formats de date, des fuseaux horaires ou des paramètres régionaux spéciaux.

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

    Valeur par défaut : .default

    writeOptions (options d’écriture) Options d’écriture du champ Facultatif. Options de configuration à appliquer aux données en cours d’écriture dans l’enregistrement.

    Valeur par défaut : nulle

    configuration FetchConfiguration (Récupérer la configuration) Facultatif. Configuration à appliquer aux enregistrements récupérés, y compris les filtres qui définissent les enregistrements à renvoyer, la limite de taille de page de pagination, les champs à récupérer et les éléments à inclure dans les champs.

    Valeur par défaut : néant : tous les enregistrements renvoyés.

    Tableau 3. Renvoie
    Type Description
    Modèle Renvoyé lorsque la méthode réussit. Modèle codable qui a été inséré dans la table spécifiée, y compris le sys_Id. Utilisez cette sys_id pour référencer cet enregistrement dans les futurs appels de méthode.
    Erreur NowDataError Levée lorsque la méthode échoue.
    • accessToken(AccessTokenProviderError)
      • AccessTokenProviderError: code d’erreur ou message du fournisseur de jeton d’accès.
        • accessTokenRetrievalFailed
        • userSessionError(_ erreur : erreur)

      Levée en cas d’erreur dans le jeton d’accès.

    • attachmentValidation

      Levée lorsqu’une pièce jointe échoue à la validation.

    • badResponse(statusCode : HTTPStatusCode)
      • HTTPStatusCode: code d’état reçu de l’instance.

      Levée lorsqu’une demande renvoie une réponse inattendue

    • cannotDecodeModel(DecodingError)
      • DecodingError: erreur de décodage détectée.

      Levée lorsqu’un modèle codable ne peut pas être décodé à partir de JSON.

    • cannotDecodeProperty(type : N’importe lequel, de : Chaîne)
      • type: type encapsulé à décoder à partir d’une chaîne.
      • from: chaîne à décoder vers le type spécifié.

      Levée lorsqu’une valeur enveloppée de chaîne ne peut pas être décodée à partir de JSON.

    • cannotEncodeModel(EncodingError)
      • EncodingError: erreur d’encodage détectée.

      Levée lorsqu’un modèle codable ne peut pas être encodé en JSON.

    • cannotParseResponse

      Levée lorsqu’une réponse de l’instance ne peut pas être analysée dans son format attendu.

    • URL non valide

      Levée lorsqu’une URL ne peut pas être formée. Par exemple, si la chaîne contient des caractères illégaux dans une URL ou est une chaîne vide.

    • missingAttachmentMetadata

      Levée lorsque l’en-tête des métadonnées de la pièce jointe est manquant.

    • missingServiceConfiguration (en anglais seulement)

      Levée lorsqu’une configuration de service attendue est manquante.

    • missingSysID (en anglais seulement)

      Levée lorsqu’un paramètre de sys_id attendu est manquant.

    • réseau (NetworkServiceError)
      • genericError(chaîne)
      • operationCanceled
      • serviceDésactivé
      • serverError(Erreur)
      • systemError(Erreur)

      Levée lorsqu’un service réseau a rencontré une erreur.

    L’exemple de code suivant montre comment appeler cette méthode.

    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, codeur : Coder, writeOptions : FieldWriteOptions, configuration : FetchConfiguration, completion : @escaping (Result<Model, NowDataError>))

    Insère le modèle codable spécifié dans la table spécifiée, puis exécute le completion gestionnaire.

    Pour créer un nouvel enregistrement par modèle, le modèle doit se conformer au protocole SysIdentifiableModel . Chaque table aura généralement son propre modèle. Par exemple :
    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):
          ...
      }
    }

    Le paramètre du modèle est ignoré lors de sys_Id la création, car il sysId est généré par la ServiceNow plateforme. La ServiceNow plateforme générée sys_Id est renvoyée dans le completion modèle de résultat du gestionnaire.

    Tableau 4. Paramètres
    Nom Type Description
    modèle SysIdentifiableModel Définition du modèle des champs à insérer dans la table.
    dans tableName Chaîne Nom de la table dans laquelle écrire les enregistrements, par exemple incident.
    Codeur Codeur Facultatif. Codeur à utiliser pour coder ou décoder les données envoyées et reçues de l’instance ServiceNow .
    Valeurs possibles :
    • default : les encodeurs par défaut formatent les dates en utilisant le format aaa-MM-jj HH :mm :ss en utilisant les paramètres régionaux et le fuseau horaire de l’appareil.
    • personnalisé (JSONEncoder, JSONDecoder) :

      Utilisez des codeurs personnalisés pour avoir un contrôle plus précis sur le décodage/encodage JSON.

      Utilisez uniquement cette énumération pour fournir votre propre JSONEncoder et JSONDecoder, par exemple lorsque vous utilisez des formats de date, des fuseaux horaires ou des paramètres régionaux spéciaux.

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

    Valeur par défaut : .default

    writeOptions (options d’écriture) Options d’écriture du champ Facultatif. Options de configuration à appliquer aux données en cours d’écriture dans l’enregistrement.

    Valeur par défaut : nulle

    configuration FetchConfiguration (Récupérer la configuration) Facultatif. Configuration à appliquer aux enregistrements récupérés, y compris les filtres qui définissent les enregistrements à renvoyer, la limite de taille de page de pagination, les champs à récupérer et les éléments à inclure dans les champs.

    Valeur par défaut : néant : tous les enregistrements renvoyés.

    Achèvement @escaping (Result<Model, NowDataError>) Gestionnaire de complétion à exécuter après la création du ou des modèles décodables spécifiés.
    Valeurs de retour pour le gestionnaire de complétion :
    • Réussite : modèle : données pour le type de modèle créé.
    • Échec : NowDataError
      • accessToken(AccessTokenProviderError)
        • AccessTokenProviderError: code d’erreur ou message du fournisseur de jeton d’accès.
          • accessTokenRetrievalFailed
          • userSessionError(_ erreur : erreur)

        Levée en cas d’erreur dans le jeton d’accès.

      • attachmentValidation

        Levée lorsqu’une pièce jointe échoue à la validation.

      • badResponse(statusCode : HTTPStatusCode)
        • HTTPStatusCode: code d’état reçu de l’instance.

        Levée lorsqu’une demande renvoie une réponse inattendue

      • cannotDecodeModel(DecodingError)
        • DecodingError: erreur de décodage détectée.

        Levée lorsqu’un modèle codable ne peut pas être décodé à partir de JSON.

      • cannotDecodeProperty(type : N’importe lequel, de : Chaîne)
        • type: type encapsulé à décoder à partir d’une chaîne.
        • from: chaîne à décoder vers le type spécifié.

        Levée lorsqu’une valeur enveloppée de chaîne ne peut pas être décodée à partir de JSON.

      • cannotEncodeModel(EncodingError)
        • EncodingError: erreur d’encodage détectée.

        Levée lorsqu’un modèle codable ne peut pas être encodé en JSON.

      • cannotParseResponse

        Levée lorsqu’une réponse de l’instance ne peut pas être analysée dans son format attendu.

      • URL non valide

        Levée lorsqu’une URL ne peut pas être formée. Par exemple, si la chaîne contient des caractères illégaux dans une URL ou est une chaîne vide.

      • missingAttachmentMetadata

        Levée lorsque l’en-tête des métadonnées de la pièce jointe est manquant.

      • missingServiceConfiguration (en anglais seulement)

        Levée lorsqu’une configuration de service attendue est manquante.

      • missingSysID (en anglais seulement)

        Levée lorsqu’un paramètre de sys_id attendu est manquant.

      • réseau (NetworkServiceError)
        • genericError(chaîne)
        • operationCanceled
        • serviceDésactivé
        • serverError(Erreur)
        • systemError(Erreur)

        Levée lorsqu’un service réseau a rencontré une erreur.

    Tableau 5. Renvoie
    Type Description
    Néant

    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, codeur : Coder = .default, writeOptions : FieldWriteOptions ? = nil, configuration : FetchConfiguration = nil)

    Insère un modèle codable dans la table spécifiée.

    Remarque :
    Cette méthode a été déconseillée. Vous devez utiliser l’implémentation async/await de la méthode à la place.
    Pour créer un nouvel enregistrement par modèle, le modèle doit se conformer au protocole SysIdentifiableModel . Chaque table aura généralement son propre modèle. Par exemple :
    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):
          ...
      }
    }
    Remarque :
    Le paramètre du modèle est ignoré lors de sys_Id la création. Il sysId est attribué par la ServiceNow plateforme. La ServiceNow plateforme générée sys_Id est renvoyée dans le modèle de rappel receiveValue de l’éditeur.
    Tableau 6. Paramètres
    Nom Type Description
    modèle SysIdentifiableModel Modèle SysIdentifiableModel à insérer dans la table.
    dans tableName Chaîne Nom de la table dans laquelle écrire les enregistrements, par exemple incident.
    chemin d'accès Chaîne Facultatif. Chemin d’accès séparé par des points pour le type imbriqué. Par exemple, result ou foo.bar.baz pour une imbrication plus profonde.

    Par défaut : Constants.resultPath

    Codeur Codeur Facultatif. Codeur à utiliser pour coder ou décoder les données envoyées et reçues de l’instance ServiceNow .
    Valeurs possibles :
    • default : les encodeurs par défaut formatent les dates en utilisant le format aaa-MM-jj HH :mm :ss en utilisant les paramètres régionaux et le fuseau horaire de l’appareil.
    • personnalisé (JSONEncoder, JSONDecoder) :

      Utilisez des codeurs personnalisés pour avoir un contrôle plus précis sur le décodage/encodage JSON.

      Utilisez uniquement cette énumération pour fournir votre propre JSONEncoder et JSONDecoder, par exemple lorsque vous utilisez des formats de date, des fuseaux horaires ou des paramètres régionaux spéciaux.

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

    Valeur par défaut : .default

    writeOptions (options d’écriture) Options d’écriture du champ Facultatif. Options de configuration à appliquer aux données en cours d’écriture dans l’enregistrement.

    Valeur par défaut : nulle

    configuration FetchConfiguration (Récupérer la configuration) Facultatif. Configuration à appliquer aux enregistrements récupérés, y compris les filtres qui définissent les enregistrements à renvoyer, la limite de taille de page de pagination, les champs à récupérer et les éléments à inclure dans les champs.

    Valeur par défaut : néant : tous les enregistrements renvoyés.

    Tableau 7. Renvoie
    Type Description
    AnyPublisher<Model,NowDataError> Réussite : modèle codable qui a été inséré dans la table spécifiée, y compris sys_Id. Utilisez cette sys_id pour référencer cet enregistrement dans les futurs appels de méthode.

    Échec : NowDataError

    @escaping (Result<Model, NowDataError>)

    Montre comment insérer un seul enregistrement dans la table Utilisateur [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(avec les champs : [FieldName : FieldValue], dans tableName : String, writeOptions : FieldWriteOptions ? = nil, configuration : FieldReadConfiguration ? = nil) lève une asynchrone

    Insère un enregistrement dans la table spécifiée qui contient les champs spécifiés.

    Le publisher émet des données que vous pouvez décoder dans un modèle Codable personnalisé, ou vous pouvez également utiliser la NowTableService – paginator&lt;Model : Decodable>(from tableName : String, path : String = Constants.resultPath, codeur : Coder = .default, configuration : FetchConfiguration ? = nil) fonction. Vous pouvez également utiliser la fonction pratique convertToRecords() pour transformer des données en un objet NowRecord. L’article suivant montre comment convertir un éditeur pour qu’il émette des NowRecords :
    let dataPublisher: AnyPublisher<Data, NowDataError> = ...
    let recordsPublisher: AnyPublisher<[NowRecord], NowDataError> = myPublisher.convertToRecords()
    Remarque :
    Tous les champs d’un enregistrement peuvent ne pas être disponibles pour la mise à jour. Par exemple, les champs dont le préfixe est sys_ sont généralement des paramètres système générés automatiquement et qui ne peuvent pas être mis à jour. Les champs qui ne sont pas spécifiés et qui ne sont pas générés automatiquement par le système sont définis sur la valeur null du type de données associé.
    Tableau 8. Paramètres
    Nom Type Description
    avec champs [Nom de champ : ValeurDeChamp] Paires nom-valeur des champs à inclure dans l’enregistrement.
    dans tableName Chaîne Nom de la table dans laquelle écrire les enregistrements, par exemple incident.
    writeOptions (options d’écriture) Options d’écriture du champ Facultatif. Options de configuration à appliquer aux données en cours d’écriture dans l’enregistrement.

    Valeur par défaut : nulle

    configuration FetchConfiguration (Récupérer la configuration) Facultatif. Configuration à appliquer aux enregistrements récupérés, y compris les filtres qui définissent les enregistrements à renvoyer, la limite de taille de page de pagination, les champs à récupérer et les éléments à inclure dans les champs.

    Valeur par défaut : néant : tous les enregistrements renvoyés.

    Tableau 9. Renvoie
    Type Description
    Données Renvoyé lorsque la méthode réussit. Objet de données contenant le nouvel enregistrement.
    Erreur NowDataError Levée lorsque la méthode échoue.
    • accessToken(AccessTokenProviderError)
      • AccessTokenProviderError: code d’erreur ou message du fournisseur de jeton d’accès.
        • accessTokenRetrievalFailed
        • userSessionError(_ erreur : erreur)

      Levée en cas d’erreur dans le jeton d’accès.

    • attachmentValidation

      Levée lorsqu’une pièce jointe échoue à la validation.

    • badResponse(statusCode : HTTPStatusCode)
      • HTTPStatusCode: code d’état reçu de l’instance.

      Levée lorsqu’une demande renvoie une réponse inattendue

    • cannotDecodeModel(DecodingError)
      • DecodingError: erreur de décodage détectée.

      Levée lorsqu’un modèle codable ne peut pas être décodé à partir de JSON.

    • cannotDecodeProperty(type : N’importe lequel, de : Chaîne)
      • type: type encapsulé à décoder à partir d’une chaîne.
      • from: chaîne à décoder vers le type spécifié.

      Levée lorsqu’une valeur enveloppée de chaîne ne peut pas être décodée à partir de JSON.

    • cannotEncodeModel(EncodingError)
      • EncodingError: erreur d’encodage détectée.

      Levée lorsqu’un modèle codable ne peut pas être encodé en JSON.

    • cannotParseResponse

      Levée lorsqu’une réponse de l’instance ne peut pas être analysée dans son format attendu.

    • URL non valide

      Levée lorsqu’une URL ne peut pas être formée. Par exemple, si la chaîne contient des caractères illégaux dans une URL ou est une chaîne vide.

    • missingAttachmentMetadata

      Levée lorsque l’en-tête des métadonnées de la pièce jointe est manquant.

    • missingServiceConfiguration (en anglais seulement)

      Levée lorsqu’une configuration de service attendue est manquante.

    • missingSysID (en anglais seulement)

      Levée lorsqu’un paramètre de sys_id attendu est manquant.

    • réseau (NetworkServiceError)
      • genericError(chaîne)
      • operationCanceled
      • serviceDésactivé
      • serverError(Erreur)
      • systemError(Erreur)

      Levée lorsqu’un service réseau a rencontré une erreur.

    Les exemples de code suivants montrent comment appeler cette méthode.

    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(avec champs : [FieldName : FieldValue], dans tableName : String, writeOptions : FieldWriteOptions, configuration : FieldReadConfiguration, completion : @escaping (Result&lt;Data, NowDataError>)

    Insère l’enregistrement spécifié dans la table spécifiée, puis exécute le completion gestionnaire une fois l’enregistrement enregistré.

    Si nécessaire, vous pouvez décoder les résultats renvoyés dans un modèle codable personnalisé ou utiliser la NowTableService – paginator&lt;Model : Decodable>(from tableName : String, path : String = Constants.resultPath, codeur : Coder = .default, configuration : FetchConfiguration ? = nil) fonction à la place. Vous pouvez également utiliser la fonction pratique convertToRecords() pour transformer des données en un objet NowRecord. L’article suivant montre comment convertir un éditeur pour qu’il émette des NowRecords :
    let dataPublisher: AnyPublisher<Data, NowDataError> = ...
    let recordsPublisher: AnyPublisher<[NowRecord], NowDataError> = myResult.convertToRecords()
    Remarque :
    Tous les champs d’un enregistrement peuvent ne pas être disponibles pour la mise à jour. Par exemple, les champs dont le préfixe est sys_ sont généralement des paramètres système générés automatiquement et qui ne peuvent pas être mis à jour. Les champs qui ne sont pas spécifiés et qui ne sont pas générés automatiquement par le système sont définis sur la valeur null du type de données associé.
    Tableau 10. Paramètres
    Nom Type Description
    avec champs [Nom de champ : ValeurDeChamp] Paires nom-valeur des champs à inclure dans l’enregistrement.
    dans tableName Chaîne Nom de la table dans laquelle écrire les enregistrements, par exemple incident.
    writeOptions (options d’écriture) Options d’écriture du champ Facultatif. Options de configuration à appliquer aux données en cours d’écriture dans l’enregistrement.

    Valeur par défaut : nulle

    configuration Configuration de lecture de champ Facultatif. Options de configuration qui spécifient les champs à renvoyer et ce qu’il faut inclure dans les champs.

    Valeur par défaut : nulle

    Achèvement @escaping (Résultat&lt;données, NowDataError>) Gestionnaire de complétion à exécuter une fois les enregistrements récupérés.
    Valeurs de retour :
    • Réussite : données - enregistrements demandés
    • Erreur : NowDataError
      • accessToken(AccessTokenProviderError)
        • AccessTokenProviderError: code d’erreur ou message du fournisseur de jeton d’accès.
          • accessTokenRetrievalFailed
          • userSessionError(_ erreur : erreur)

        Levée en cas d’erreur dans le jeton d’accès.

      • attachmentValidation

        Levée lorsqu’une pièce jointe échoue à la validation.

      • badResponse(statusCode : HTTPStatusCode)
        • HTTPStatusCode: code d’état reçu de l’instance.

        Levée lorsqu’une demande renvoie une réponse inattendue

      • cannotDecodeModel(DecodingError)
        • DecodingError: erreur de décodage détectée.

        Levée lorsqu’un modèle codable ne peut pas être décodé à partir de JSON.

      • cannotDecodeProperty(type : N’importe lequel, de : Chaîne)
        • type: type encapsulé à décoder à partir d’une chaîne.
        • from: chaîne à décoder vers le type spécifié.

        Levée lorsqu’une valeur enveloppée de chaîne ne peut pas être décodée à partir de JSON.

      • cannotEncodeModel(EncodingError)
        • EncodingError: erreur d’encodage détectée.

        Levée lorsqu’un modèle codable ne peut pas être encodé en JSON.

      • cannotParseResponse

        Levée lorsqu’une réponse de l’instance ne peut pas être analysée dans son format attendu.

      • URL non valide

        Levée lorsqu’une URL ne peut pas être formée. Par exemple, si la chaîne contient des caractères illégaux dans une URL ou est une chaîne vide.

      • missingAttachmentMetadata

        Levée lorsque l’en-tête des métadonnées de la pièce jointe est manquant.

      • missingServiceConfiguration (en anglais seulement)

        Levée lorsqu’une configuration de service attendue est manquante.

      • missingSysID (en anglais seulement)

        Levée lorsqu’un paramètre de sys_id attendu est manquant.

      • réseau (NetworkServiceError)
        • genericError(chaîne)
        • operationCanceled
        • serviceDésactivé
        • serverError(Erreur)
        • systemError(Erreur)

        Levée lorsqu’un service réseau a rencontré une erreur.

    Tableau 11. Renvoie
    Type Description
    Néant

    L’exemple de code suivant montre comment appeler cette fonction.

    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(avec les champs : [FieldName : FieldValue], dans tableName : String, writeOptions : FieldWriteOptions ? = nil, configuration : FieldReadConfiguration ? = nil)

    Insère un enregistrement dans la table spécifiée qui contient les champs spécifiés.

    Remarque :
    Cette méthode a été déconseillée. Vous devez utiliser l’implémentation async/await de la méthode à la place.
    Le publisher émet des données que vous pouvez décoder dans un modèle Codable personnalisé, ou vous pouvez également utiliser la NowTableService – paginator&lt;Model : Decodable>(from tableName : String, path : String = Constants.resultPath, codeur : Coder = .default, configuration : FetchConfiguration ? = nil) fonction. Vous pouvez également utiliser la fonction pratique convertToRecords() pour transformer des données en un objet NowRecord. L’article suivant montre comment convertir un éditeur pour qu’il émette des NowRecords :
    let dataPublisher: AnyPublisher<Data, NowDataError> = ...
    let recordsPublisher: AnyPublisher<[NowRecord], NowDataError> = myPublisher.convertToRecords()
    Remarque :
    Tous les champs d’un enregistrement peuvent ne pas être disponibles pour la mise à jour. Par exemple, les champs dont le préfixe est sys_ sont généralement des paramètres système générés automatiquement et qui ne peuvent pas être mis à jour. Les champs qui ne sont pas spécifiés et qui ne sont pas générés automatiquement par le système sont définis sur la valeur null du type de données associé.
    Tableau 12. Paramètres
    Nom Type Description
    avec champs [Nom de champ : ValeurDeChamp] Paires nom-valeur des champs à inclure dans l’enregistrement.
    dans tableName Chaîne Nom de la table dans laquelle écrire les enregistrements, par exemple incident.
    writeOptions (options d’écriture) Options d’écriture du champ Facultatif. Options de configuration à appliquer aux données en cours d’écriture dans l’enregistrement.

    Valeur par défaut : nulle

    configuration FetchConfiguration (Récupérer la configuration) Facultatif. Configuration à appliquer aux enregistrements récupérés, y compris les filtres qui définissent les enregistrements à renvoyer, la limite de taille de page de pagination, les champs à récupérer et les éléments à inclure dans les champs.

    Valeur par défaut : néant : tous les enregistrements renvoyés.

    Tableau 13. Renvoie
    Type Description
    AnyPublisher&lt;Data, NowDataError> Réussite : objet de données contenant l’enregistrement mis à jour.

    Échec : NowDataError

    • accessToken(AccessTokenProviderError)
      • AccessTokenProviderError: code d’erreur ou message du fournisseur de jeton d’accès.
        • accessTokenRetrievalFailed
        • userSessionError(_ erreur : erreur)

      Levée en cas d’erreur dans le jeton d’accès.

    • attachmentValidation

      Levée lorsqu’une pièce jointe échoue à la validation.

    • badResponse(statusCode : HTTPStatusCode)
      • HTTPStatusCode: code d’état reçu de l’instance.

      Levée lorsqu’une demande renvoie une réponse inattendue

    • cannotDecodeModel(DecodingError)
      • DecodingError: erreur de décodage détectée.

      Levée lorsqu’un modèle codable ne peut pas être décodé à partir de JSON.

    • cannotDecodeProperty(type : N’importe lequel, de : Chaîne)
      • type: type encapsulé à décoder à partir d’une chaîne.
      • from: chaîne à décoder vers le type spécifié.

      Levée lorsqu’une valeur enveloppée de chaîne ne peut pas être décodée à partir de JSON.

    • cannotEncodeModel(EncodingError)
      • EncodingError: erreur d’encodage détectée.

      Levée lorsqu’un modèle codable ne peut pas être encodé en JSON.

    • cannotParseResponse

      Levée lorsqu’une réponse de l’instance ne peut pas être analysée dans son format attendu.

    • URL non valide

      Levée lorsqu’une URL ne peut pas être formée. Par exemple, si la chaîne contient des caractères illégaux dans une URL ou est une chaîne vide.

    • missingAttachmentMetadata

      Levée lorsque l’en-tête des métadonnées de la pièce jointe est manquant.

    • missingServiceConfiguration (en anglais seulement)

      Levée lorsqu’une configuration de service attendue est manquante.

    • missingSysID (en anglais seulement)

      Levée lorsqu’un paramètre de sys_id attendu est manquant.

    • réseau (NetworkServiceError)
      • genericError(chaîne)
      • operationCanceled
      • serviceDésactivé
      • serverError(Erreur)
      • systemError(Erreur)

      Levée lorsqu’un service réseau a rencontré une erreur.

    Cet exemple montre comment créer une fonction qui insère un enregistrement dans la table spécifiée, avec les champs spécifiés. La sortie de l’appel est un ByteArray qui vous permet de convertir les données en n’importe quel modèle que vous voulez.

    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) lève une fonction asynchrone

    Supprime le modèle codable spécifié de la table spécifiée.

    Tableau 14. Paramètres
    Nom Type Description
    modèle Modèle SysIdentifiableModel à supprimer de la table. Il doit contenir l’sys_id de l’enregistrement à supprimer.
    à partir de tableName Chaîne Nom de la table à partir de laquelle supprimer l’information, par exemple l’incident.
    Tableau 15. Renvoie
    Type Description
    Néant Rien n’est retourné lorsque la méthode réussit.
    Erreur NowDataError Levée lorsque la méthode échoue.
    • accessToken(AccessTokenProviderError)
      • AccessTokenProviderError: code d’erreur ou message du fournisseur de jeton d’accès.
        • accessTokenRetrievalFailed
        • userSessionError(_ erreur : erreur)

      Levée en cas d’erreur dans le jeton d’accès.

    • attachmentValidation

      Levée lorsqu’une pièce jointe échoue à la validation.

    • badResponse(statusCode : HTTPStatusCode)
      • HTTPStatusCode: code d’état reçu de l’instance.

      Levée lorsqu’une demande renvoie une réponse inattendue

    • cannotDecodeModel(DecodingError)
      • DecodingError: erreur de décodage détectée.

      Levée lorsqu’un modèle codable ne peut pas être décodé à partir de JSON.

    • cannotDecodeProperty(type : N’importe lequel, de : Chaîne)
      • type: type encapsulé à décoder à partir d’une chaîne.
      • from: chaîne à décoder vers le type spécifié.

      Levée lorsqu’une valeur enveloppée de chaîne ne peut pas être décodée à partir de JSON.

    • cannotEncodeModel(EncodingError)
      • EncodingError: erreur d’encodage détectée.

      Levée lorsqu’un modèle codable ne peut pas être encodé en JSON.

    • cannotParseResponse

      Levée lorsqu’une réponse de l’instance ne peut pas être analysée dans son format attendu.

    • URL non valide

      Levée lorsqu’une URL ne peut pas être formée. Par exemple, si la chaîne contient des caractères illégaux dans une URL ou est une chaîne vide.

    • missingAttachmentMetadata

      Levée lorsque l’en-tête des métadonnées de la pièce jointe est manquant.

    • missingServiceConfiguration (en anglais seulement)

      Levée lorsqu’une configuration de service attendue est manquante.

    • missingSysID (en anglais seulement)

      Levée lorsqu’un paramètre de sys_id attendu est manquant.

    • réseau (NetworkServiceError)
      • genericError(chaîne)
      • operationCanceled
      • serviceDésactivé
      • serverError(Erreur)
      • systemError(Erreur)

      Levée lorsqu’un service réseau a rencontré une erreur.

    Les exemples de code suivants montrent comment appeler cette méthode.

    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&lt;Void, NowDataError>))

    Supprime le modèle codable spécifié de la table spécifiée, puis exécute le gestionnaire approprié completion .

    Tableau 16. Paramètres
    Nom Type Description
    modèle Modèle SysIdentifiableModel à supprimer de la table. Il doit contenir l’sys_id de l’enregistrement à supprimer.
    à partir de tableName Chaîne Nom de la table à partir de laquelle supprimer l’information, par exemple l’incident.
    Achèvement @escaping (Résultat&lt;Void, NowDataError>) Gestionnaire de complétion à exécuter après la suppression du ou des modèles codables spécifiés.
    Valeurs de retour :
    • Réussite : aucun retour
    • Échec : NowDataError
      • accessToken(AccessTokenProviderError)
        • AccessTokenProviderError: code d’erreur ou message du fournisseur de jeton d’accès.
          • accessTokenRetrievalFailed
          • userSessionError(_ erreur : erreur)

        Levée en cas d’erreur dans le jeton d’accès.

      • attachmentValidation

        Levée lorsqu’une pièce jointe échoue à la validation.

      • badResponse(statusCode : HTTPStatusCode)
        • HTTPStatusCode: code d’état reçu de l’instance.

        Levée lorsqu’une demande renvoie une réponse inattendue

      • cannotDecodeModel(DecodingError)
        • DecodingError: erreur de décodage détectée.

        Levée lorsqu’un modèle codable ne peut pas être décodé à partir de JSON.

      • cannotDecodeProperty(type : N’importe lequel, de : Chaîne)
        • type: type encapsulé à décoder à partir d’une chaîne.
        • from: chaîne à décoder vers le type spécifié.

        Levée lorsqu’une valeur enveloppée de chaîne ne peut pas être décodée à partir de JSON.

      • cannotEncodeModel(EncodingError)
        • EncodingError: erreur d’encodage détectée.

        Levée lorsqu’un modèle codable ne peut pas être encodé en JSON.

      • cannotParseResponse

        Levée lorsqu’une réponse de l’instance ne peut pas être analysée dans son format attendu.

      • URL non valide

        Levée lorsqu’une URL ne peut pas être formée. Par exemple, si la chaîne contient des caractères illégaux dans une URL ou est une chaîne vide.

      • missingAttachmentMetadata

        Levée lorsque l’en-tête des métadonnées de la pièce jointe est manquant.

      • missingServiceConfiguration (en anglais seulement)

        Levée lorsqu’une configuration de service attendue est manquante.

      • missingSysID (en anglais seulement)

        Levée lorsqu’un paramètre de sys_id attendu est manquant.

      • réseau (NetworkServiceError)
        • genericError(chaîne)
        • operationCanceled
        • serviceDésactivé
        • serverError(Erreur)
        • systemError(Erreur)

        Levée lorsqu’un service réseau a rencontré une erreur.

    Tableau 17. Renvoie
    Type Description
    Néant

    L’exemple de code suivant montre comment appeler cette fonction.

    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)

    Supprime le modèle codable spécifié de la table spécifiée.

    Remarque :
    Cette méthode a été déconseillée. Vous devez utiliser l’implémentation async/await de la méthode à la place.
    Tableau 18. Paramètres
    Nom Type Description
    modèle Modèle SysIdentifiableModel à supprimer de la table. Il doit contenir l’sys_id de l’enregistrement à supprimer.
    à partir de tableName Chaîne Nom de la table à partir de laquelle supprimer l’information, par exemple l’incident.
    Tableau 19. Renvoie
    Type Description
    AnyPublisher&lt;Void, NowDataError> Réussite : aucun retour

    Échec : NowDataError

    • accessToken(AccessTokenProviderError)
      • AccessTokenProviderError: code d’erreur ou message du fournisseur de jeton d’accès.
        • accessTokenRetrievalFailed
        • userSessionError(_ erreur : erreur)

      Levée en cas d’erreur dans le jeton d’accès.

    • attachmentValidation

      Levée lorsqu’une pièce jointe échoue à la validation.

    • badResponse(statusCode : HTTPStatusCode)
      • HTTPStatusCode: code d’état reçu de l’instance.

      Levée lorsqu’une demande renvoie une réponse inattendue

    • cannotDecodeModel(DecodingError)
      • DecodingError: erreur de décodage détectée.

      Levée lorsqu’un modèle codable ne peut pas être décodé à partir de JSON.

    • cannotDecodeProperty(type : N’importe lequel, de : Chaîne)
      • type: type encapsulé à décoder à partir d’une chaîne.
      • from: chaîne à décoder vers le type spécifié.

      Levée lorsqu’une valeur enveloppée de chaîne ne peut pas être décodée à partir de JSON.

    • cannotEncodeModel(EncodingError)
      • EncodingError: erreur d’encodage détectée.

      Levée lorsqu’un modèle codable ne peut pas être encodé en JSON.

    • cannotParseResponse

      Levée lorsqu’une réponse de l’instance ne peut pas être analysée dans son format attendu.

    • URL non valide

      Levée lorsqu’une URL ne peut pas être formée. Par exemple, si la chaîne contient des caractères illégaux dans une URL ou est une chaîne vide.

    • missingAttachmentMetadata

      Levée lorsque l’en-tête des métadonnées de la pièce jointe est manquant.

    • missingServiceConfiguration (en anglais seulement)

      Levée lorsqu’une configuration de service attendue est manquante.

    • missingSysID (en anglais seulement)

      Levée lorsqu’un paramètre de sys_id attendu est manquant.

    • réseau (NetworkServiceError)
      • genericError(chaîne)
      • operationCanceled
      • serviceDésactivé
      • serverError(Erreur)
      • systemError(Erreur)

      Levée lorsqu’un service réseau a rencontré une erreur.

    L’exemple de code suivant montre comment appeler cette fonction.

    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) lève une fonction asynchrone

    Supprime l’enregistrement spécifié à partir de la table spécifiée.

    Tableau 20. Paramètres
    Nom Type Description
    sysId Chaîne Sys_id de l’enregistrement à supprimer.
    à partir de tableName Chaîne Nom de la table à partir de laquelle supprimer l’information, par exemple l’incident.
    Tableau 21. Renvoie
    Type Description
    Néant Rien n’est retourné lorsque la méthode réussit.
    Erreur NowDataError Levée lorsque la méthode échoue.
    • accessToken(AccessTokenProviderError)
      • AccessTokenProviderError: code d’erreur ou message du fournisseur de jeton d’accès.
        • accessTokenRetrievalFailed
        • userSessionError(_ erreur : erreur)

      Levée en cas d’erreur dans le jeton d’accès.

    • attachmentValidation

      Levée lorsqu’une pièce jointe échoue à la validation.

    • badResponse(statusCode : HTTPStatusCode)
      • HTTPStatusCode: code d’état reçu de l’instance.

      Levée lorsqu’une demande renvoie une réponse inattendue

    • cannotDecodeModel(DecodingError)
      • DecodingError: erreur de décodage détectée.

      Levée lorsqu’un modèle codable ne peut pas être décodé à partir de JSON.

    • cannotDecodeProperty(type : N’importe lequel, de : Chaîne)
      • type: type encapsulé à décoder à partir d’une chaîne.
      • from: chaîne à décoder vers le type spécifié.

      Levée lorsqu’une valeur enveloppée de chaîne ne peut pas être décodée à partir de JSON.

    • cannotEncodeModel(EncodingError)
      • EncodingError: erreur d’encodage détectée.

      Levée lorsqu’un modèle codable ne peut pas être encodé en JSON.

    • cannotParseResponse

      Levée lorsqu’une réponse de l’instance ne peut pas être analysée dans son format attendu.

    • URL non valide

      Levée lorsqu’une URL ne peut pas être formée. Par exemple, si la chaîne contient des caractères illégaux dans une URL ou est une chaîne vide.

    • missingAttachmentMetadata

      Levée lorsque l’en-tête des métadonnées de la pièce jointe est manquant.

    • missingServiceConfiguration (en anglais seulement)

      Levée lorsqu’une configuration de service attendue est manquante.

    • missingSysID (en anglais seulement)

      Levée lorsqu’un paramètre de sys_id attendu est manquant.

    • réseau (NetworkServiceError)
      • genericError(chaîne)
      • operationCanceled
      • serviceDésactivé
      • serverError(Erreur)
      • systemError(Erreur)

      Levée lorsqu’un service réseau a rencontré une erreur.

    Les exemples de code suivants montrent comment appeler cette méthode.

    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&lt;Void, NowDataError>))

    Supprime l’enregistrement spécifié de la table spécifiée, puis exécute l’objet completion une fois l’enregistrement supprimé.

    Tableau 22. Paramètres
    Nom Type Description
    sysId Chaîne Sys_id de l’enregistrement à supprimer.
    à partir de tableName Chaîne Nom de la table à partir de laquelle supprimer l’information, par exemple l’incident.
    Achèvement @escaping (Résultat&lt;Void, NowDataError>) Réussite : rien n’est retourné.

    Échec : NowDataError

    • accessToken(AccessTokenProviderError)
      • AccessTokenProviderError: code d’erreur ou message du fournisseur de jeton d’accès.
        • accessTokenRetrievalFailed
        • userSessionError(_ erreur : erreur)

      Levée en cas d’erreur dans le jeton d’accès.

    • attachmentValidation

      Levée lorsqu’une pièce jointe échoue à la validation.

    • badResponse(statusCode : HTTPStatusCode)
      • HTTPStatusCode: code d’état reçu de l’instance.

      Levée lorsqu’une demande renvoie une réponse inattendue

    • cannotDecodeModel(DecodingError)
      • DecodingError: erreur de décodage détectée.

      Levée lorsqu’un modèle codable ne peut pas être décodé à partir de JSON.

    • cannotDecodeProperty(type : N’importe lequel, de : Chaîne)
      • type: type encapsulé à décoder à partir d’une chaîne.
      • from: chaîne à décoder vers le type spécifié.

      Levée lorsqu’une valeur enveloppée de chaîne ne peut pas être décodée à partir de JSON.

    • cannotEncodeModel(EncodingError)
      • EncodingError: erreur d’encodage détectée.

      Levée lorsqu’un modèle codable ne peut pas être encodé en JSON.

    • cannotParseResponse

      Levée lorsqu’une réponse de l’instance ne peut pas être analysée dans son format attendu.

    • URL non valide

      Levée lorsqu’une URL ne peut pas être formée. Par exemple, si la chaîne contient des caractères illégaux dans une URL ou est une chaîne vide.

    • missingAttachmentMetadata

      Levée lorsque l’en-tête des métadonnées de la pièce jointe est manquant.

    • missingServiceConfiguration (en anglais seulement)

      Levée lorsqu’une configuration de service attendue est manquante.

    • missingSysID (en anglais seulement)

      Levée lorsqu’un paramètre de sys_id attendu est manquant.

    • réseau (NetworkServiceError)
      • genericError(chaîne)
      • operationCanceled
      • serviceDésactivé
      • serverError(Erreur)
      • systemError(Erreur)

      Levée lorsqu’un service réseau a rencontré une erreur.

    Tableau 23. Renvoie
    Type Description
    Néant

    L’exemple de code suivant montre comment appeler cette fonction.

    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, de tableName : String)

    Supprime l’enregistrement spécifié à partir de la table spécifiée.

    Remarque :
    Cette méthode a été déconseillée. Vous devez utiliser l’implémentation async/await de la méthode à la place.
    Tableau 24. Paramètres
    Nom Type Description
    sysId Chaîne Sys_id de l’enregistrement à supprimer.
    à partir de tableName Chaîne Nom de la table à partir de laquelle supprimer l’information, par exemple l’incident.
    Tableau 25. Renvoie
    Type Description
    AnyPublisher&lt;Void, NowDataError> Réussite : aucun retour

    Échec : NowDataError

    • accessToken(AccessTokenProviderError)
      • AccessTokenProviderError: code d’erreur ou message du fournisseur de jeton d’accès.
        • accessTokenRetrievalFailed
        • userSessionError(_ erreur : erreur)

      Levée en cas d’erreur dans le jeton d’accès.

    • attachmentValidation

      Levée lorsqu’une pièce jointe échoue à la validation.

    • badResponse(statusCode : HTTPStatusCode)
      • HTTPStatusCode: code d’état reçu de l’instance.

      Levée lorsqu’une demande renvoie une réponse inattendue

    • cannotDecodeModel(DecodingError)
      • DecodingError: erreur de décodage détectée.

      Levée lorsqu’un modèle codable ne peut pas être décodé à partir de JSON.

    • cannotDecodeProperty(type : N’importe lequel, de : Chaîne)
      • type: type encapsulé à décoder à partir d’une chaîne.
      • from: chaîne à décoder vers le type spécifié.

      Levée lorsqu’une valeur enveloppée de chaîne ne peut pas être décodée à partir de JSON.

    • cannotEncodeModel(EncodingError)
      • EncodingError: erreur d’encodage détectée.

      Levée lorsqu’un modèle codable ne peut pas être encodé en JSON.

    • cannotParseResponse

      Levée lorsqu’une réponse de l’instance ne peut pas être analysée dans son format attendu.

    • URL non valide

      Levée lorsqu’une URL ne peut pas être formée. Par exemple, si la chaîne contient des caractères illégaux dans une URL ou est une chaîne vide.

    • missingAttachmentMetadata

      Levée lorsque l’en-tête des métadonnées de la pièce jointe est manquant.

    • missingServiceConfiguration (en anglais seulement)

      Levée lorsqu’une configuration de service attendue est manquante.

    • missingSysID (en anglais seulement)

      Levée lorsqu’un paramètre de sys_id attendu est manquant.

    • réseau (NetworkServiceError)
      • genericError(chaîne)
      • operationCanceled
      • serviceDésactivé
      • serverError(Erreur)
      • systemError(Erreur)

      Levée lorsqu’un service réseau a rencontré une erreur.

    Cet exemple montre comment créer une fonction qui supprime un enregistrement dans une table spécifiée.

    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)

    Crée un objet NowTableService.

    Tableau 26. Paramètres
    Nom Type Description
    configuration Configuration Now ServiceConfiguration Paramètres de configuration à utiliser lors de la création du service.
    coreServiceProvider NowCoreServiceProviding Facultatif. Fournisseur de services à associer au NowTableService.

    Valeur par défaut : nulle

    L’exemple de code suivant montre comment appeler cette fonction.

    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&lt;Model : Decodable>(with sysId : SysID ? = nil, from tableName : String, path : String = Constants.resultPath, codeur : Coder = .default, configuration : FetchConfiguration ? = nil) lève une fonction asynchrone

    Active la récupération du ou des modèles décodables à partir d’une table spécifiée.

    Table Les réponses d’API sont imbriquées à l’intérieur d’un result paramètre similaire au suivant :
    {
      "result": [
        { "name": "Ash Williams" },
        { "name": "Lionel Cosgrove" },
        { "name": "Laurie Strode" }
      ]
    }
    Pour les jeux de résultats volumineux, utilisez l’une des fonctions NowTableService – paginator(from tableName : String, configuration : FetchConfiguration ? = nil) de pagination ou NowTableService – paginator&lt;Model : Decodable>(from tableName : String, path : String = Constants.resultPath, codeur : Coder = .default, configuration : FetchConfiguration ? = nil) pour extraire les modèles paginés.
    Tableau 27. Paramètres
    Nom Type Description
    avec sysId SysID Facultatif. Sys_id de l’enregistrement à renvoyer. Fournissez le sys_id si vous souhaitez récupérer un enregistrement spécifique.

    Valeur par défaut : nulle

    à partir de tableName Chaîne Nom de la table à partir de laquelle récupérer les enregistrements , par exemple incident.
    chemin d'accès Chaîne Chemin d’accès séparé par des points pour le type imbriqué. Par exemple, result ou foo.bar.baz pour une imbrication plus profonde.

    Valeur par défaut : résultat

    Codeur Codeur Facultatif. Codeur à utiliser pour coder ou décoder les données envoyées et reçues de l’instance ServiceNow .
    Valeurs possibles :
    • default : les encodeurs par défaut formatent les dates en utilisant le format aaa-MM-jj HH :mm :ss en utilisant les paramètres régionaux et le fuseau horaire de l’appareil.
    • personnalisé (JSONEncoder, JSONDecoder) :

      Utilisez des codeurs personnalisés pour avoir un contrôle plus précis sur le décodage/encodage JSON.

      Utilisez uniquement cette énumération pour fournir votre propre JSONEncoder et JSONDecoder, par exemple lorsque vous utilisez des formats de date, des fuseaux horaires ou des paramètres régionaux spéciaux.

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

    Valeur par défaut : .default

    configuration FetchConfiguration (Récupérer la configuration) Facultatif. Configuration à appliquer aux enregistrements récupérés, y compris les filtres qui définissent les enregistrements à renvoyer, la limite de taille de page de pagination, les champs à récupérer et les éléments à inclure dans les champs.

    Valeur par défaut : néant : tous les enregistrements renvoyés.

    Tableau 28. Renvoie
    Type Description
    Modèle Renvoyé lorsque la méthode réussit. Modèle(s) décodable(s).
    Erreur NowDataError Levée lorsque la méthode échoue.
    • accessToken(AccessTokenProviderError)
      • AccessTokenProviderError: code d’erreur ou message du fournisseur de jeton d’accès.
        • accessTokenRetrievalFailed
        • userSessionError(_ erreur : erreur)

      Levée en cas d’erreur dans le jeton d’accès.

    • attachmentValidation

      Levée lorsqu’une pièce jointe échoue à la validation.

    • badResponse(statusCode : HTTPStatusCode)
      • HTTPStatusCode: code d’état reçu de l’instance.

      Levée lorsqu’une demande renvoie une réponse inattendue

    • cannotDecodeModel(DecodingError)
      • DecodingError: erreur de décodage détectée.

      Levée lorsqu’un modèle codable ne peut pas être décodé à partir de JSON.

    • cannotDecodeProperty(type : N’importe lequel, de : Chaîne)
      • type: type encapsulé à décoder à partir d’une chaîne.
      • from: chaîne à décoder vers le type spécifié.

      Levée lorsqu’une valeur enveloppée de chaîne ne peut pas être décodée à partir de JSON.

    • cannotEncodeModel(EncodingError)
      • EncodingError: erreur d’encodage détectée.

      Levée lorsqu’un modèle codable ne peut pas être encodé en JSON.

    • cannotParseResponse

      Levée lorsqu’une réponse de l’instance ne peut pas être analysée dans son format attendu.

    • URL non valide

      Levée lorsqu’une URL ne peut pas être formée. Par exemple, si la chaîne contient des caractères illégaux dans une URL ou est une chaîne vide.

    • missingAttachmentMetadata

      Levée lorsque l’en-tête des métadonnées de la pièce jointe est manquant.

    • missingServiceConfiguration (en anglais seulement)

      Levée lorsqu’une configuration de service attendue est manquante.

    • missingSysID (en anglais seulement)

      Levée lorsqu’un paramètre de sys_id attendu est manquant.

    • réseau (NetworkServiceError)
      • genericError(chaîne)
      • operationCanceled
      • serviceDésactivé
      • serverError(Erreur)
      • systemError(Erreur)

      Levée lorsqu’un service réseau a rencontré une erreur.

    L’exemple de code suivant montre comment appeler cette méthode.

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

    L’exemple de code suivant montre comment extraire un seul modèle décodable par sys_id. Utilisez un seul type de modèle, tel que User.self, plutôt que [User].self.

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

    NowTableService – model&lt;Model : Decodable>(_ type : Model.Type, with sysId : SysID ? = nil, from tableName : String, path : String = Constants.resultPath, codeur : Codeur = .default, configuration : FetchConfiguration ? = nil, completion : @escaping (Result&lt;Model, NowDataError>))

    Récupère le(s) modèle(s) décodable à partir d’une table spécifiée.

    Table Les réponses d’API sont imbriquées à l’intérieur d’un result paramètre similaire au suivant :
    {
      "result": [
        { "name": "Ash Williams" },
        { "name": "Lionel Cosgrove" },
        { "name": "Laurie Strode" }
      ]
    }

    Utilisez cette fonction pour obtenir des modèles décodables au lieu d’une sortie imbriquée.

    Tableau 29. Paramètres
    Nom Type Description
    type Type de modèle Type de valeur à décoder.
    avec sysId Chaîne Facultatif. Sys_id de l’enregistrement à renvoyer.

    Par défaut : tous les enregistrements renvoyés selon les configuration paramètres.

    à partir de tableName Chaîne Nom de la table à partir de laquelle récupérer les enregistrements , par exemple incident.
    chemin d'accès Chaîne Facultatif. Chemin d’accès séparé par des points pour le type imbriqué. Par exemple, result ou foo.bar.baz pour une imbrication plus profonde.

    Par défaut : Constants.resultPath

    Codeur Codeur Facultatif. Codeur à utiliser pour coder ou décoder les données envoyées et reçues de l’instance ServiceNow .

    Valeur par défaut : .default

    configuration FetchConfiguration (Récupérer la configuration) Facultatif. Configuration à appliquer aux enregistrements récupérés, y compris les filtres qui définissent les enregistrements à renvoyer, la limite de taille de page de pagination, les champs à récupérer et les éléments à inclure dans les champs.

    Valeur par défaut : néant : tous les enregistrements renvoyés.

    Achèvement@escaping (Result&lt;Model, NowDataError>)Gestionnaire de complétion à exécuter après avoir récupéré le ou les modèles décodables spécifiés.
    Valeurs de retour pour le gestionnaire de complétion :
    • Réussite : données pour le type de modèle demandé.
    • Échec : NowDataError
      • accessToken(AccessTokenProviderError)
        • AccessTokenProviderError: code d’erreur ou message du fournisseur de jeton d’accès.
          • accessTokenRetrievalFailed
          • userSessionError(_ erreur : erreur)

        Levée en cas d’erreur dans le jeton d’accès.

      • attachmentValidation

        Levée lorsqu’une pièce jointe échoue à la validation.

      • badResponse(statusCode : HTTPStatusCode)
        • HTTPStatusCode: code d’état reçu de l’instance.

        Levée lorsqu’une demande renvoie une réponse inattendue

      • cannotDecodeModel(DecodingError)
        • DecodingError: erreur de décodage détectée.

        Levée lorsqu’un modèle codable ne peut pas être décodé à partir de JSON.

      • cannotDecodeProperty(type : N’importe lequel, de : Chaîne)
        • type: type encapsulé à décoder à partir d’une chaîne.
        • from: chaîne à décoder vers le type spécifié.

        Levée lorsqu’une valeur enveloppée de chaîne ne peut pas être décodée à partir de JSON.

      • cannotEncodeModel(EncodingError)
        • EncodingError: erreur d’encodage détectée.

        Levée lorsqu’un modèle codable ne peut pas être encodé en JSON.

      • cannotParseResponse

        Levée lorsqu’une réponse de l’instance ne peut pas être analysée dans son format attendu.

      • URL non valide

        Levée lorsqu’une URL ne peut pas être formée. Par exemple, si la chaîne contient des caractères illégaux dans une URL ou est une chaîne vide.

      • missingAttachmentMetadata

        Levée lorsque l’en-tête des métadonnées de la pièce jointe est manquant.

      • missingServiceConfiguration (en anglais seulement)

        Levée lorsqu’une configuration de service attendue est manquante.

      • missingSysID (en anglais seulement)

        Levée lorsqu’un paramètre de sys_id attendu est manquant.

      • réseau (NetworkServiceError)
        • genericError(chaîne)
        • operationCanceled
        • serviceDésactivé
        • serverError(Erreur)
        • systemError(Erreur)

        Levée lorsqu’un service réseau a rencontré une erreur.

    Tableau 30. Renvoie
    Type Description
    Néant

    Pour récupérer une collection de modèles décodés 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):
       ...
     }
    }

    Pour extraire un seul modèle décodable par sys_id, utilisez un seul type de modèle, tel que User.self, plutôt que [User].self.

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

    NowTableService - model&lt;Model : Decodable>(with sysId : SysID ? = nil, from tableName : String, path : String = Constants.resultPath, coder : Coder = .default, configuration : FetchConfiguration ? = nil)

    Crée un éditeur qui permet la récupération du ou des modèles décodables à partir d’une table spécifiée.

    Remarque :
    Cette méthode a été déconseillée. Vous devez utiliser l’implémentation async/await de la méthode à la place.
    Table Les réponses d’API sont imbriquées à l’intérieur d’un result paramètre similaire au suivant :
    {
      "result": [
        { "name": "Ash Williams" },
        { "name": "Lionel Cosgrove" },
        { "name": "Laurie Strode" }
      ]
    }
    Pour les jeux de résultats volumineux, utilisez l’une des fonctions NowTableService – paginator(from tableName : String, configuration : FetchConfiguration ? = nil) de pagination ou NowTableService – paginator&lt;Model : Decodable>(from tableName : String, path : String = Constants.resultPath, codeur : Coder = .default, configuration : FetchConfiguration ? = nil) pour extraire les modèles paginés.
    Tableau 31. Paramètres
    Nom Type Description
    avec sysId SysID Facultatif. Sys_id de l’enregistrement à renvoyer. Fournissez le sys_id si vous souhaitez récupérer un enregistrement spécifique.

    Valeur par défaut : nulle

    à partir de tableName Chaîne Nom de la table à partir de laquelle récupérer les enregistrements , par exemple incident.
    chemin d'accès Chaîne Chemin d’accès séparé par des points pour le type imbriqué. Par exemple, result ou foo.bar.baz pour une imbrication plus profonde.

    Valeur par défaut : résultat

    Codeur Codeur Facultatif. Codeur à utiliser pour coder ou décoder les données envoyées et reçues de l’instance ServiceNow .
    Valeurs possibles :
    • default : les encodeurs par défaut formatent les dates en utilisant le format aaa-MM-jj HH :mm :ss en utilisant les paramètres régionaux et le fuseau horaire de l’appareil.
    • personnalisé (JSONEncoder, JSONDecoder) :

      Utilisez des codeurs personnalisés pour avoir un contrôle plus précis sur le décodage/encodage JSON.

      Utilisez uniquement cette énumération pour fournir votre propre JSONEncoder et JSONDecoder, par exemple lorsque vous utilisez des formats de date, des fuseaux horaires ou des paramètres régionaux spéciaux.

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

    Valeur par défaut : .default

    configuration FetchConfiguration (Récupérer la configuration) Facultatif. Configuration à appliquer aux enregistrements récupérés, y compris les filtres qui définissent les enregistrements à renvoyer, la limite de taille de page de pagination, les champs à récupérer et les éléments à inclure dans les champs.

    Valeur par défaut : néant : tous les enregistrements renvoyés.

    Tableau 32. Renvoie
    Type Description
    AnyPublisher&lt;Model, NowDataError> Réussite : l’éditeur renvoie un ou plusieurs modèles décodables.

    Échec : NowDataError

    • accessToken(AccessTokenProviderError)
      • AccessTokenProviderError: code d’erreur ou message du fournisseur de jeton d’accès.
        • accessTokenRetrievalFailed
        • userSessionError(_ erreur : erreur)

      Levée en cas d’erreur dans le jeton d’accès.

    • attachmentValidation

      Levée lorsqu’une pièce jointe échoue à la validation.

    • badResponse(statusCode : HTTPStatusCode)
      • HTTPStatusCode: code d’état reçu de l’instance.

      Levée lorsqu’une demande renvoie une réponse inattendue

    • cannotDecodeModel(DecodingError)
      • DecodingError: erreur de décodage détectée.

      Levée lorsqu’un modèle codable ne peut pas être décodé à partir de JSON.

    • cannotDecodeProperty(type : N’importe lequel, de : Chaîne)
      • type: type encapsulé à décoder à partir d’une chaîne.
      • from: chaîne à décoder vers le type spécifié.

      Levée lorsqu’une valeur enveloppée de chaîne ne peut pas être décodée à partir de JSON.

    • cannotEncodeModel(EncodingError)
      • EncodingError: erreur d’encodage détectée.

      Levée lorsqu’un modèle codable ne peut pas être encodé en JSON.

    • cannotParseResponse

      Levée lorsqu’une réponse de l’instance ne peut pas être analysée dans son format attendu.

    • URL non valide

      Levée lorsqu’une URL ne peut pas être formée. Par exemple, si la chaîne contient des caractères illégaux dans une URL ou est une chaîne vide.

    • missingAttachmentMetadata

      Levée lorsque l’en-tête des métadonnées de la pièce jointe est manquant.

    • missingServiceConfiguration (en anglais seulement)

      Levée lorsqu’une configuration de service attendue est manquante.

    • missingSysID (en anglais seulement)

      Levée lorsqu’un paramètre de sys_id attendu est manquant.

    • réseau (NetworkServiceError)
      • genericError(chaîne)
      • operationCanceled
      • serviceDésactivé
      • serverError(Erreur)
      • systemError(Erreur)

      Levée lorsqu’un service réseau a rencontré une erreur.

    Pour obtenir un éditeur qui fournit des modèles utilisateur décodés par type, tels que [Users].self, extrayez les modèles en spécifiant un chemin d’accès séparé par des points.

    struct User: Codable {
      varname: String
    }
    
    let service: NowTableService = ...
    let publisher: AnyPublisher<[User], NowDataError> = service.model(from: "sys_user", path: "user.photos.gps_location")
     

    Pour extraire un seul modèle décodable par sys_id, utilisez un seul type de modèle User.self , plutôt que [User].self.

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

    NowTableService – paginator(from tableName : String, configuration : FetchConfiguration ? = nil)

    Crée un paginateur qui permet l’itération à travers des pages d’enregistrements.

    Le paginateur publisher émet des données que vous pouvez décoder dans un modèle Codable personnalisé, ou vous pouvez également utiliser la NowTableService – paginator&lt;Model : Decodable>(from tableName : String, path : String = Constants.resultPath, codeur : Coder = .default, configuration : FetchConfiguration ? = nil) fonction. Vous pouvez également utiliser la fonction pratique convertToRecords() pour transformer des données en un objet NowRecord. L’article suivant montre comment convertir un éditeur pour qu’il émette des NowRecords :
    let dataPublisher: AnyPublisher<Data, NowDataError> = ...
    let recordsPublisher: AnyPublisher<[NowRecord], NowDataError> = myPublisher.convertToRecords()
    Remarque :
    Sauf s’il est remplacé dans le configuration paramètre, un paginateur renvoie 20 éléments par page. En fonction de l’évaluation ACL, le nombre réel d’éléments récupérés pour une page peut être inférieur à la valeur par défaut ou configurée.
    Tableau 33. Paramètres
    Nom Type Description
    tableName Chaîne Nom de la table à partir de laquelle récupérer les enregistrements , par exemple incident.
    configuration FetchConfiguration (Récupérer la configuration) Facultatif. Configuration à appliquer aux enregistrements récupérés, y compris les filtres qui définissent les enregistrements à renvoyer, la limite de taille de page de pagination, les champs à récupérer et les éléments à inclure dans les champs.

    Valeur par défaut : néant : tous les enregistrements renvoyés.

    Tableau 34. Renvoie
    Type Description
    Paginateur &lt;données> Réussite : objet paginateur contenant les enregistrements spécifiés.

    Échec : NowDataError

    • accessToken(AccessTokenProviderError)
      • AccessTokenProviderError: code d’erreur ou message du fournisseur de jeton d’accès.
        • accessTokenRetrievalFailed
        • userSessionError(_ erreur : erreur)

      Levée en cas d’erreur dans le jeton d’accès.

    • attachmentValidation

      Levée lorsqu’une pièce jointe échoue à la validation.

    • badResponse(statusCode : HTTPStatusCode)
      • HTTPStatusCode: code d’état reçu de l’instance.

      Levée lorsqu’une demande renvoie une réponse inattendue

    • cannotDecodeModel(DecodingError)
      • DecodingError: erreur de décodage détectée.

      Levée lorsqu’un modèle codable ne peut pas être décodé à partir de JSON.

    • cannotDecodeProperty(type : N’importe lequel, de : Chaîne)
      • type: type encapsulé à décoder à partir d’une chaîne.
      • from: chaîne à décoder vers le type spécifié.

      Levée lorsqu’une valeur enveloppée de chaîne ne peut pas être décodée à partir de JSON.

    • cannotEncodeModel(EncodingError)
      • EncodingError: erreur d’encodage détectée.

      Levée lorsqu’un modèle codable ne peut pas être encodé en JSON.

    • cannotParseResponse

      Levée lorsqu’une réponse de l’instance ne peut pas être analysée dans son format attendu.

    • URL non valide

      Levée lorsqu’une URL ne peut pas être formée. Par exemple, si la chaîne contient des caractères illégaux dans une URL ou est une chaîne vide.

    • missingAttachmentMetadata

      Levée lorsque l’en-tête des métadonnées de la pièce jointe est manquant.

    • missingServiceConfiguration (en anglais seulement)

      Levée lorsqu’une configuration de service attendue est manquante.

    • missingSysID (en anglais seulement)

      Levée lorsqu’un paramètre de sys_id attendu est manquant.

    • réseau (NetworkServiceError)
      • genericError(chaîne)
      • operationCanceled
      • serviceDésactivé
      • serverError(Erreur)
      • systemError(Erreur)

      Levée lorsqu’un service réseau a rencontré une erreur.

    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&lt;Model : Decodable>(from tableName : String, path : String = Constants.resultPath, codeur : Coder = .default, configuration : FetchConfiguration ? = nil)

    Crée un paginateur qui active l’itération des pages du ou des modèles décodés qui gèrent l’imbrication.

    Les ServiceNow réponses de l’API de table REST sont imbriquées à l’intérieur d’une propriété de résultat semblable à la suivante :
    {
      "result": [
        { "name": "Ash Williams" },
        { "name": "Lionel Cosgrove" },
        { "name": "Laurie Strode" }
      ]
    }
    Pour obtenir un paginateur qui fournit des modèles utilisateur décodés, récupérez le paginateur en spécifiant un chemin séparé par des points ; Dans ce cas, result.
    struct User: Codable {
      varname: String
    }
    
    let service: NowTableService = ...
    let paginator: Paginator<[User]> = service.paginator(from: "sys_user", path: "result")
    Remarque :
    Sauf s’il est remplacé dans le configuration paramètre, un paginateur renvoie 20 éléments par page. Selon les évaluations d’ACL, le nombre réel d’éléments récupérés pour une page peut être inférieur à la valeur par défaut ou configurée.
    Après avoir obtenu un objet Paginator, abonnez-vous à son éditeur de combinaison pour commencer à recevoir des données :
    paginator.publisher
      .subscribe(on: DispatchQueue.global())
      .receive(on: DispatchQueue.main)
      .sink { … }
      .store(in: &subscriptions)
    Remarque :
    Comme pour tous les abonnements Combine, assurez-vous de conserver l’abonnement pour éviter des résultats inattendus.
    Tableau 35. Paramètres
    Nom Type Description
    à partir de tableName Chaîne Nom de la table à partir de laquelle récupérer les enregistrements , par exemple incident.
    chemin d’accès Chaîne Chemin d’accès séparé par des points pour le type imbriqué. Par exemple, result ou result.user.photos pour une imbrication plus profonde. La spécification d’un chemin personnalisé permet d’extraire ou d’itérer sur les données imbriquées.

    Valeur par défaut : résultat

    Codeur Codeur Facultatif. Codeur à utiliser pour coder ou décoder les données envoyées et reçues de l’instance ServiceNow .
    Valeurs possibles :
    • default : les encodeurs par défaut formatent les dates en utilisant le format aaa-MM-jj HH :mm :ss en utilisant les paramètres régionaux et le fuseau horaire de l’appareil.
    • personnalisé (JSONEncoder, JSONDecoder) :

      Utilisez des codeurs personnalisés pour avoir un contrôle plus précis sur le décodage/encodage JSON.

      Utilisez uniquement cette énumération pour fournir votre propre JSONEncoder et JSONDecoder, par exemple lorsque vous utilisez des formats de date, des fuseaux horaires ou des paramètres régionaux spéciaux.

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

    Valeur par défaut : .default

    configuration FetchConfiguration (Récupérer la configuration) Facultatif. Configuration à appliquer aux enregistrements récupérés, y compris les filtres qui définissent les enregistrements à renvoyer, la limite de taille de page de pagination, les champs à récupérer et les éléments à inclure dans les champs.

    Valeur par défaut : néant : tous les enregistrements renvoyés.

    Tableau 36. Renvoie
    Type Description
    Paginateur &lt;données> Réussite : objet paginateur contenant un ou plusieurs modèles décodables paginés .

    Échec : NowDataError

    • accessToken(AccessTokenProviderError)
      • AccessTokenProviderError: code d’erreur ou message du fournisseur de jeton d’accès.
        • accessTokenRetrievalFailed
        • userSessionError(_ erreur : erreur)

      Levée en cas d’erreur dans le jeton d’accès.

    • attachmentValidation

      Levée lorsqu’une pièce jointe échoue à la validation.

    • badResponse(statusCode : HTTPStatusCode)
      • HTTPStatusCode: code d’état reçu de l’instance.

      Levée lorsqu’une demande renvoie une réponse inattendue

    • cannotDecodeModel(DecodingError)
      • DecodingError: erreur de décodage détectée.

      Levée lorsqu’un modèle codable ne peut pas être décodé à partir de JSON.

    • cannotDecodeProperty(type : N’importe lequel, de : Chaîne)
      • type: type encapsulé à décoder à partir d’une chaîne.
      • from: chaîne à décoder vers le type spécifié.

      Levée lorsqu’une valeur enveloppée de chaîne ne peut pas être décodée à partir de JSON.

    • cannotEncodeModel(EncodingError)
      • EncodingError: erreur d’encodage détectée.

      Levée lorsqu’un modèle codable ne peut pas être encodé en JSON.

    • cannotParseResponse

      Levée lorsqu’une réponse de l’instance ne peut pas être analysée dans son format attendu.

    • URL non valide

      Levée lorsqu’une URL ne peut pas être formée. Par exemple, si la chaîne contient des caractères illégaux dans une URL ou est une chaîne vide.

    • missingAttachmentMetadata

      Levée lorsque l’en-tête des métadonnées de la pièce jointe est manquant.

    • missingServiceConfiguration (en anglais seulement)

      Levée lorsqu’une configuration de service attendue est manquante.

    • missingSysID (en anglais seulement)

      Levée lorsqu’un paramètre de sys_id attendu est manquant.

    • réseau (NetworkServiceError)
      • genericError(chaîne)
      • operationCanceled
      • serviceDésactivé
      • serverError(Erreur)
      • systemError(Erreur)

      Levée lorsqu’un service réseau a rencontré une erreur.

    Cet exemple montre comment obtenir un objet Paginator qui fournit des modèles User décodés. Vous pouvez extraire l’objet Paginator souhaité en indiquant au compilateur de renvoyer une collection de modèles User ([User]) et en informant l’objet Paginator que les utilisateurs sont imbriqués sous le chemin d’accès du résultat.

    struct User: Codable {
      var name: String
    }
    
    let service: NowTableService = ...
    let paginator: Paginator<[User]> = service.paginator(from: "sys_user", path: "result")
    Remarque :
    L’API Table renvoie toujours les résultats imbriqués sous un chemin d’accès aux résultats, afin que vous puissiez éliminer le path paramètre en toute sécurité.

    NowTableService : record(with sysId : SysID, from tableName : String, configuration : FieldReadConfiguration ? = nil) lève une fonction asynchrone

    Récupère un enregistrement spécifié à partir de la table spécifiée sur une ServiceNow instance.

    Le publisher émet des données que vous pouvez décoder dans un modèle Codable personnalisé, ou vous pouvez également utiliser la NowTableService – paginator&lt;Model : Decodable>(from tableName : String, path : String = Constants.resultPath, codeur : Coder = .default, configuration : FetchConfiguration ? = nil) fonction. Vous pouvez également utiliser la fonction pratique convertToRecords() pour transformer des données en un objet NowRecord. L’article suivant montre comment convertir un éditeur pour qu’il émette des NowRecords :
    let dataPublisher: AnyPublisher<Data, NowDataError> = ...
    let recordsPublisher: AnyPublisher<[NowRecord], NowDataError> = myPublisher.convertToRecords()
    Tableau 37. Paramètres
    Nom Type Description
    sysId Chaîne Sys_id de l’enregistrement à renvoyer à partir de l’instance ServiceNow .
    à partir de tableName Chaîne Nom de la table à partir de laquelle récupérer les enregistrements , par exemple incident.
    configuration FetchConfiguration (Récupérer la configuration) Facultatif. Configuration à appliquer aux enregistrements récupérés, y compris les filtres qui définissent les enregistrements à renvoyer, la limite de taille de page de pagination, les champs à récupérer et les éléments à inclure dans les champs.

    Valeur par défaut : néant : tous les enregistrements renvoyés.

    Tableau 38. Renvoie
    Type Description
    Données Renvoyé lorsque la méthode réussit. Objet de données contenant l’enregistrement spécifié.
    Erreur NowDataError Levée lorsque la méthode échoue.
    • accessToken(AccessTokenProviderError)
      • AccessTokenProviderError: code d’erreur ou message du fournisseur de jeton d’accès.
        • accessTokenRetrievalFailed
        • userSessionError(_ erreur : erreur)

      Levée en cas d’erreur dans le jeton d’accès.

    • attachmentValidation

      Levée lorsqu’une pièce jointe échoue à la validation.

    • badResponse(statusCode : HTTPStatusCode)
      • HTTPStatusCode: code d’état reçu de l’instance.

      Levée lorsqu’une demande renvoie une réponse inattendue

    • cannotDecodeModel(DecodingError)
      • DecodingError: erreur de décodage détectée.

      Levée lorsqu’un modèle codable ne peut pas être décodé à partir de JSON.

    • cannotDecodeProperty(type : N’importe lequel, de : Chaîne)
      • type: type encapsulé à décoder à partir d’une chaîne.
      • from: chaîne à décoder vers le type spécifié.

      Levée lorsqu’une valeur enveloppée de chaîne ne peut pas être décodée à partir de JSON.

    • cannotEncodeModel(EncodingError)
      • EncodingError: erreur d’encodage détectée.

      Levée lorsqu’un modèle codable ne peut pas être encodé en JSON.

    • cannotParseResponse

      Levée lorsqu’une réponse de l’instance ne peut pas être analysée dans son format attendu.

    • URL non valide

      Levée lorsqu’une URL ne peut pas être formée. Par exemple, si la chaîne contient des caractères illégaux dans une URL ou est une chaîne vide.

    • missingAttachmentMetadata

      Levée lorsque l’en-tête des métadonnées de la pièce jointe est manquant.

    • missingServiceConfiguration (en anglais seulement)

      Levée lorsqu’une configuration de service attendue est manquante.

    • missingSysID (en anglais seulement)

      Levée lorsqu’un paramètre de sys_id attendu est manquant.

    • réseau (NetworkServiceError)
      • genericError(chaîne)
      • operationCanceled
      • serviceDésactivé
      • serverError(Erreur)
      • systemError(Erreur)

      Levée lorsqu’un service réseau a rencontré une erreur.

    Les exemples de code suivants montrent comment appeler cette méthode.

    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(with sysId : SysID, from tableName : String, configuration : FieldReadConfiguration, completion : @escaping (Result&lt;Data, NowDataError>)

    Récupère l’enregistrement spécifié à partir de la table spécifiée, puis exécute un gestionnaire de complétion une fois l’enregistrement récupéré.

    Si nécessaire, vous pouvez décoder les résultats renvoyés dans un modèle codable personnalisé ou utiliser la NowTableService – paginator&lt;Model : Decodable>(from tableName : String, path : String = Constants.resultPath, codeur : Coder = .default, configuration : FetchConfiguration ? = nil) fonction à la place. Vous pouvez également utiliser la fonction pratique convertToRecords() pour transformer des données en un objet NowRecord. L’article suivant montre comment convertir un éditeur pour qu’il émette des NowRecords :
    let dataPublisher: AnyPublisher<Data, NowDataError> = ...
    let recordsPublisher: AnyPublisher<[NowRecord], NowDataError> = myResult.convertToRecords()
    Pour les jeux de résultats volumineux, utilisez la fonction pour extraire les NowTableService – paginator(from tableName : String, configuration : FetchConfiguration ? = nil) résultats paginés.
    Tableau 39. Paramètres
    Nom Type Description
    sysId Chaîne Sys_id de l’enregistrement à renvoyer à partir de l’instance ServiceNow .
    à partir de tableName Chaîne Nom de la table à partir de laquelle récupérer les enregistrements , par exemple incident.
    configuration FetchConfiguration (Récupérer la configuration) Facultatif. Configuration à appliquer aux enregistrements récupérés, y compris les filtres qui définissent les enregistrements à renvoyer, la limite de taille de page de pagination, les champs à récupérer et les éléments à inclure dans les champs.

    Valeur par défaut : néant : tous les enregistrements renvoyés.

    Achèvement @escaping (Résultat&lt;données, NowDataError>) Gestionnaire de complétion à exécuter une fois les enregistrements récupérés.
    Valeurs de retour :
    • Réussite : données - enregistrements demandés
    • Erreur : NowDataError
      • accessToken(AccessTokenProviderError)
        • AccessTokenProviderError: code d’erreur ou message du fournisseur de jeton d’accès.
          • accessTokenRetrievalFailed
          • userSessionError(_ erreur : erreur)

        Levée en cas d’erreur dans le jeton d’accès.

      • attachmentValidation

        Levée lorsqu’une pièce jointe échoue à la validation.

      • badResponse(statusCode : HTTPStatusCode)
        • HTTPStatusCode: code d’état reçu de l’instance.

        Levée lorsqu’une demande renvoie une réponse inattendue

      • cannotDecodeModel(DecodingError)
        • DecodingError: erreur de décodage détectée.

        Levée lorsqu’un modèle codable ne peut pas être décodé à partir de JSON.

      • cannotDecodeProperty(type : N’importe lequel, de : Chaîne)
        • type: type encapsulé à décoder à partir d’une chaîne.
        • from: chaîne à décoder vers le type spécifié.

        Levée lorsqu’une valeur enveloppée de chaîne ne peut pas être décodée à partir de JSON.

      • cannotEncodeModel(EncodingError)
        • EncodingError: erreur d’encodage détectée.

        Levée lorsqu’un modèle codable ne peut pas être encodé en JSON.

      • cannotParseResponse

        Levée lorsqu’une réponse de l’instance ne peut pas être analysée dans son format attendu.

      • URL non valide

        Levée lorsqu’une URL ne peut pas être formée. Par exemple, si la chaîne contient des caractères illégaux dans une URL ou est une chaîne vide.

      • missingAttachmentMetadata

        Levée lorsque l’en-tête des métadonnées de la pièce jointe est manquant.

      • missingServiceConfiguration (en anglais seulement)

        Levée lorsqu’une configuration de service attendue est manquante.

      • missingSysID (en anglais seulement)

        Levée lorsqu’un paramètre de sys_id attendu est manquant.

      • réseau (NetworkServiceError)
        • genericError(chaîne)
        • operationCanceled
        • serviceDésactivé
        • serverError(Erreur)
        • systemError(Erreur)

        Levée lorsqu’un service réseau a rencontré une erreur.

    Tableau 40. Renvoie
    Type Description
    Néant

    L’exemple de code suivant montre comment appeler cette méthode.

    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(with sysId : SysID, from tableName : String, configuration : FieldReadConfiguration ? = nil)

    Crée un éditeur pour récupérer un enregistrement spécifié à partir de la table spécifiée sur une ServiceNow instance.

    Remarque :
    Cette méthode a été déconseillée. Vous devez utiliser l’implémentation async/await de la méthode à la place.
    Le publisher émet des données que vous pouvez décoder dans un modèle Codable personnalisé, ou vous pouvez également utiliser la NowTableService – paginator&lt;Model : Decodable>(from tableName : String, path : String = Constants.resultPath, codeur : Coder = .default, configuration : FetchConfiguration ? = nil) fonction. Vous pouvez également utiliser la fonction pratique convertToRecords() pour transformer des données en un objet NowRecord. L’article suivant montre comment convertir un éditeur pour qu’il émette des NowRecords :
    let dataPublisher: AnyPublisher<Data, NowDataError> = ...
    let recordsPublisher: AnyPublisher<[NowRecord], NowDataError> = myPublisher.convertToRecords()
    Tableau 41. Paramètres
    Nom Type Description
    sysId Chaîne Sys_id de l’enregistrement à renvoyer à partir de l’instance ServiceNow .
    à partir de tableName Chaîne Nom de la table à partir de laquelle récupérer les enregistrements , par exemple incident.
    configuration FetchConfiguration (Récupérer la configuration) Facultatif. Configuration à appliquer aux enregistrements récupérés, y compris les filtres qui définissent les enregistrements à renvoyer, la limite de taille de page de pagination, les champs à récupérer et les éléments à inclure dans les champs.

    Valeur par défaut : néant : tous les enregistrements renvoyés.

    Tableau 42. Renvoie
    Type Description
    AnyPublisher&lt;Data, NowDataError> Réussite : objet de données contenant les enregistrements spécifiés.

    Échec : NowDataError

    • accessToken(AccessTokenProviderError)
      • AccessTokenProviderError: code d’erreur ou message du fournisseur de jeton d’accès.
        • accessTokenRetrievalFailed
        • userSessionError(_ erreur : erreur)

      Levée en cas d’erreur dans le jeton d’accès.

    • attachmentValidation

      Levée lorsqu’une pièce jointe échoue à la validation.

    • badResponse(statusCode : HTTPStatusCode)
      • HTTPStatusCode: code d’état reçu de l’instance.

      Levée lorsqu’une demande renvoie une réponse inattendue

    • cannotDecodeModel(DecodingError)
      • DecodingError: erreur de décodage détectée.

      Levée lorsqu’un modèle codable ne peut pas être décodé à partir de JSON.

    • cannotDecodeProperty(type : N’importe lequel, de : Chaîne)
      • type: type encapsulé à décoder à partir d’une chaîne.
      • from: chaîne à décoder vers le type spécifié.

      Levée lorsqu’une valeur enveloppée de chaîne ne peut pas être décodée à partir de JSON.

    • cannotEncodeModel(EncodingError)
      • EncodingError: erreur d’encodage détectée.

      Levée lorsqu’un modèle codable ne peut pas être encodé en JSON.

    • cannotParseResponse

      Levée lorsqu’une réponse de l’instance ne peut pas être analysée dans son format attendu.

    • URL non valide

      Levée lorsqu’une URL ne peut pas être formée. Par exemple, si la chaîne contient des caractères illégaux dans une URL ou est une chaîne vide.

    • missingAttachmentMetadata

      Levée lorsque l’en-tête des métadonnées de la pièce jointe est manquant.

    • missingServiceConfiguration (en anglais seulement)

      Levée lorsqu’une configuration de service attendue est manquante.

    • missingSysID (en anglais seulement)

      Levée lorsqu’un paramètre de sys_id attendu est manquant.

    • réseau (NetworkServiceError)
      • genericError(chaîne)
      • operationCanceled
      • serviceDésactivé
      • serverError(Erreur)
      • systemError(Erreur)

      Levée lorsqu’un service réseau a rencontré une erreur.

    Cet exemple montre comment créer une fonction qui récupère l’enregistrement spécifié à partir de la table spécifiée, avec les champs spécifiés. La sortie de l’appel est un ByteArray qui vous permet de convertir les données en n’importe quel modèle que vous voulez.

    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 : records(from tableName : String, configuration : FetchConfiguration ? = nil) lève une fonction asynchrone

    Récupère les enregistrements de la table spécifiée.

    Lla publisher émet des données que vous pouvez décoder dans un modèle Codable personnalisé, ou vous pouvez également utiliser la NowTableService – paginator&lt;Model : Decodable>(from tableName : String, path : String = Constants.resultPath, codeur : Coder = .default, configuration : FetchConfiguration ? = nil) fonction. Vous pouvez également utiliser la fonction pratique convertToRecords() pour transformer des données en un objet NowRecord. L’article suivant montre comment convertir un éditeur pour qu’il émette des NowRecords :
    let dataPublisher: AnyPublisher<Data, NowDataError> = ...
    let recordsPublisher: AnyPublisher<[NowRecord], NowDataError> = myPublisher.convertToRecords()
    Pour les jeux de résultats volumineux, utilisez la fonction pour extraire les NowTableService – paginator(from tableName : String, configuration : FetchConfiguration ? = nil) résultats paginés.
    Tableau 43. Paramètres
    Nom Type Description
    à partir de tableName Chaîne Nom de la table à partir de laquelle récupérer les enregistrements , par exemple incident.
    configuration FetchConfiguration (Récupérer la configuration) Facultatif. Configuration à appliquer aux enregistrements récupérés, y compris les filtres qui définissent les enregistrements à renvoyer, la limite de taille de page de pagination, les champs à récupérer et les éléments à inclure dans les champs.

    Valeur par défaut : néant : tous les enregistrements renvoyés.

    Tableau 44. Renvoie
    Type Description
    Données Renvoyé lorsque la méthode réussit. Objet de données contenant les enregistrements spécifiés.
    Erreur NowDataError Levée lorsque la méthode échoue.
    • accessToken(AccessTokenProviderError)
      • AccessTokenProviderError: code d’erreur ou message du fournisseur de jeton d’accès.
        • accessTokenRetrievalFailed
        • userSessionError(_ erreur : erreur)

      Levée en cas d’erreur dans le jeton d’accès.

    • attachmentValidation

      Levée lorsqu’une pièce jointe échoue à la validation.

    • badResponse(statusCode : HTTPStatusCode)
      • HTTPStatusCode: code d’état reçu de l’instance.

      Levée lorsqu’une demande renvoie une réponse inattendue

    • cannotDecodeModel(DecodingError)
      • DecodingError: erreur de décodage détectée.

      Levée lorsqu’un modèle codable ne peut pas être décodé à partir de JSON.

    • cannotDecodeProperty(type : N’importe lequel, de : Chaîne)
      • type: type encapsulé à décoder à partir d’une chaîne.
      • from: chaîne à décoder vers le type spécifié.

      Levée lorsqu’une valeur enveloppée de chaîne ne peut pas être décodée à partir de JSON.

    • cannotEncodeModel(EncodingError)
      • EncodingError: erreur d’encodage détectée.

      Levée lorsqu’un modèle codable ne peut pas être encodé en JSON.

    • cannotParseResponse

      Levée lorsqu’une réponse de l’instance ne peut pas être analysée dans son format attendu.

    • URL non valide

      Levée lorsqu’une URL ne peut pas être formée. Par exemple, si la chaîne contient des caractères illégaux dans une URL ou est une chaîne vide.

    • missingAttachmentMetadata

      Levée lorsque l’en-tête des métadonnées de la pièce jointe est manquant.

    • missingServiceConfiguration (en anglais seulement)

      Levée lorsqu’une configuration de service attendue est manquante.

    • missingSysID (en anglais seulement)

      Levée lorsqu’un paramètre de sys_id attendu est manquant.

    • réseau (NetworkServiceError)
      • genericError(chaîne)
      • operationCanceled
      • serviceDésactivé
      • serverError(Erreur)
      • systemError(Erreur)

      Levée lorsqu’un service réseau a rencontré une erreur.

    L’exemple de code suivant montre comment appeler cette méthode.

    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&lt;Data, NowDataError>))

    Récupère les enregistrements d’une table spécifiée, puis exécute le completion gestionnaire une fois les enregistrements récupérés.

    Si nécessaire, vous pouvez décoder les résultats renvoyés dans un modèle codable personnalisé ou utiliser la NowTableService – paginator&lt;Model : Decodable>(from tableName : String, path : String = Constants.resultPath, codeur : Coder = .default, configuration : FetchConfiguration ? = nil) fonction à la place. Vous pouvez également utiliser la fonction pratique convertToRecords() pour transformer des données en un objet NowRecord. L’article suivant montre comment convertir un éditeur pour qu’il émette des NowRecords :
    let dataPublisher: AnyPublisher<Data, NowDataError> = ...
    let recordsPublisher: AnyPublisher<[NowRecord], NowDataError> = myResult.convertToRecords()
    Pour les jeux de résultats volumineux, utilisez la fonction pour extraire les NowTableService – paginator(from tableName : String, configuration : FetchConfiguration ? = nil) résultats paginés.
    Tableau 45. Paramètres
    Nom Type Description
    dans tableName Chaîne Nom de la table dans laquelle écrire les enregistrements, par exemple incident.
    configuration FetchConfiguration (Récupérer la configuration) Facultatif. Configuration à appliquer aux enregistrements récupérés, y compris les filtres qui définissent les enregistrements à renvoyer, la limite de taille de page de pagination, les champs à récupérer et les éléments à inclure dans les champs.

    Valeur par défaut : néant : tous les enregistrements renvoyés.

    Achèvement @escaping (Résultat&lt;données, NowDataError>) Gestionnaire de complétion à exécuter une fois les enregistrements récupérés.
    Valeurs de retour :
    • Réussite : données - enregistrements demandés
    • Erreur : NowDataError
      • accessToken(AccessTokenProviderError)
        • AccessTokenProviderError: code d’erreur ou message du fournisseur de jeton d’accès.
          • accessTokenRetrievalFailed
          • userSessionError(_ erreur : erreur)

        Levée en cas d’erreur dans le jeton d’accès.

      • attachmentValidation

        Levée lorsqu’une pièce jointe échoue à la validation.

      • badResponse(statusCode : HTTPStatusCode)
        • HTTPStatusCode: code d’état reçu de l’instance.

        Levée lorsqu’une demande renvoie une réponse inattendue

      • cannotDecodeModel(DecodingError)
        • DecodingError: erreur de décodage détectée.

        Levée lorsqu’un modèle codable ne peut pas être décodé à partir de JSON.

      • cannotDecodeProperty(type : N’importe lequel, de : Chaîne)
        • type: type encapsulé à décoder à partir d’une chaîne.
        • from: chaîne à décoder vers le type spécifié.

        Levée lorsqu’une valeur enveloppée de chaîne ne peut pas être décodée à partir de JSON.

      • cannotEncodeModel(EncodingError)
        • EncodingError: erreur d’encodage détectée.

        Levée lorsqu’un modèle codable ne peut pas être encodé en JSON.

      • cannotParseResponse

        Levée lorsqu’une réponse de l’instance ne peut pas être analysée dans son format attendu.

      • URL non valide

        Levée lorsqu’une URL ne peut pas être formée. Par exemple, si la chaîne contient des caractères illégaux dans une URL ou est une chaîne vide.

      • missingAttachmentMetadata

        Levée lorsque l’en-tête des métadonnées de la pièce jointe est manquant.

      • missingServiceConfiguration (en anglais seulement)

        Levée lorsqu’une configuration de service attendue est manquante.

      • missingSysID (en anglais seulement)

        Levée lorsqu’un paramètre de sys_id attendu est manquant.

      • réseau (NetworkServiceError)
        • genericError(chaîne)
        • operationCanceled
        • serviceDésactivé
        • serverError(Erreur)
        • systemError(Erreur)

        Levée lorsqu’un service réseau a rencontré une erreur.

    Tableau 46. Renvoie
    Type Description
    Néant

    L’exemple de code suivant montre comment appeler cette méthode.

    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)

    Crée un éditeur qui vous permet de récupérer les enregistrements de la table spécifiée.

    Remarque :
    Cette méthode a été déconseillée. Vous devez utiliser l’implémentation async/await de la méthode à la place.
    Lla publisher émet des données que vous pouvez décoder dans un modèle Codable personnalisé, ou vous pouvez également utiliser la NowTableService – paginator&lt;Model : Decodable>(from tableName : String, path : String = Constants.resultPath, codeur : Coder = .default, configuration : FetchConfiguration ? = nil) fonction. Vous pouvez également utiliser la fonction pratique convertToRecords() pour transformer des données en un objet NowRecord. L’article suivant montre comment convertir un éditeur pour qu’il émette des NowRecords :
    let dataPublisher: AnyPublisher<Data, NowDataError> = ...
    let recordsPublisher: AnyPublisher<[NowRecord], NowDataError> = myPublisher.convertToRecords()
    Pour les jeux de résultats volumineux, utilisez la fonction pour extraire les NowTableService – paginator(from tableName : String, configuration : FetchConfiguration ? = nil) résultats paginés.
    Tableau 47. Paramètres
    Nom Type Description
    à partir de tableName Chaîne Nom de la table à partir de laquelle récupérer les enregistrements , par exemple incident.
    configuration FetchConfiguration (Récupérer la configuration) Facultatif. Configuration à appliquer aux enregistrements récupérés, y compris les filtres qui définissent les enregistrements à renvoyer, la limite de taille de page de pagination, les champs à récupérer et les éléments à inclure dans les champs.

    Valeur par défaut : néant : tous les enregistrements renvoyés.

    Tableau 48. Renvoie
    Type Description
    AnyPublisher&lt;Data, NowDataError> Réussite : objet de données contenant les enregistrements spécifiés.

    Échec : NowDataError

    • accessToken(AccessTokenProviderError)
      • AccessTokenProviderError: code d’erreur ou message du fournisseur de jeton d’accès.
        • accessTokenRetrievalFailed
        • userSessionError(_ erreur : erreur)

      Levée en cas d’erreur dans le jeton d’accès.

    • attachmentValidation

      Levée lorsqu’une pièce jointe échoue à la validation.

    • badResponse(statusCode : HTTPStatusCode)
      • HTTPStatusCode: code d’état reçu de l’instance.

      Levée lorsqu’une demande renvoie une réponse inattendue

    • cannotDecodeModel(DecodingError)
      • DecodingError: erreur de décodage détectée.

      Levée lorsqu’un modèle codable ne peut pas être décodé à partir de JSON.

    • cannotDecodeProperty(type : N’importe lequel, de : Chaîne)
      • type: type encapsulé à décoder à partir d’une chaîne.
      • from: chaîne à décoder vers le type spécifié.

      Levée lorsqu’une valeur enveloppée de chaîne ne peut pas être décodée à partir de JSON.

    • cannotEncodeModel(EncodingError)
      • EncodingError: erreur d’encodage détectée.

      Levée lorsqu’un modèle codable ne peut pas être encodé en JSON.

    • cannotParseResponse

      Levée lorsqu’une réponse de l’instance ne peut pas être analysée dans son format attendu.

    • URL non valide

      Levée lorsqu’une URL ne peut pas être formée. Par exemple, si la chaîne contient des caractères illégaux dans une URL ou est une chaîne vide.

    • missingAttachmentMetadata

      Levée lorsque l’en-tête des métadonnées de la pièce jointe est manquant.

    • missingServiceConfiguration (en anglais seulement)

      Levée lorsqu’une configuration de service attendue est manquante.

    • missingSysID (en anglais seulement)

      Levée lorsqu’un paramètre de sys_id attendu est manquant.

    • réseau (NetworkServiceError)
      • genericError(chaîne)
      • operationCanceled
      • serviceDésactivé
      • serverError(Erreur)
      • systemError(Erreur)

      Levée lorsqu’un service réseau a rencontré une erreur.

    Cet exemple montre comment créer une fonction qui récupère plusieurs enregistrements à partir d’une table spécifiée. Il crée un objet qui planifiera l’exécution de la requête à un moment donné dans le futur et renverra une réponse 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&lt;Model : SysIdentifiableModel>(_ model : Model, in tableName : String, codeur : Coder = .default, writeOptions : FieldWriteOptions ? = nil, configuration : FetchConfiguration ? = nil) lève une fonction asynchrone

    Met à jour le modèle codable spécifié dans la table spécifiée.

    Tableau 49. Paramètres
    Nom Type Description
    modèle Modèle Modèle SysIdentifiableModel à mettre à jour dans la table.
    dans tableName Chaîne Nom de la table dans laquelle écrire les enregistrements, par exemple incident.
    Codeur Codeur Facultatif. Codeur à utiliser pour coder ou décoder les données envoyées et reçues de l’instance ServiceNow .
    Valeurs possibles :
    • default : les encodeurs par défaut formatent les dates en utilisant le format aaa-MM-jj HH :mm :ss en utilisant les paramètres régionaux et le fuseau horaire de l’appareil.
    • personnalisé (JSONEncoder, JSONDecoder) :

      Utilisez des codeurs personnalisés pour avoir un contrôle plus précis sur le décodage/encodage JSON.

      Utilisez uniquement cette énumération pour fournir votre propre JSONEncoder et JSONDecoder, par exemple lorsque vous utilisez des formats de date, des fuseaux horaires ou des paramètres régionaux spéciaux.

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

    Valeur par défaut : .default

    writeOptions (options d’écriture) Options d’écriture du champ Facultatif. Options de configuration à appliquer aux données en cours d’écriture dans l’enregistrement.

    Valeur par défaut : nulle

    configuration FetchConfiguration (Récupérer la configuration) Facultatif. Configuration à appliquer aux enregistrements récupérés, y compris les filtres qui définissent les enregistrements à renvoyer, la limite de taille de page de pagination, les champs à récupérer et les éléments à inclure dans les champs.

    Valeur par défaut : néant : tous les enregistrements renvoyés.

    Tableau 50. Renvoie
    Type Description
    Modèle Renvoyé lorsque la méthode réussit. Modèle décodable qui a été mis à jour dans la table spécifiée.
    Erreur NowDataError Levée lorsque la méthode échoue.
    • accessToken(AccessTokenProviderError)
      • AccessTokenProviderError: code d’erreur ou message du fournisseur de jeton d’accès.
        • accessTokenRetrievalFailed
        • userSessionError(_ erreur : erreur)

      Levée en cas d’erreur dans le jeton d’accès.

    • attachmentValidation

      Levée lorsqu’une pièce jointe échoue à la validation.

    • badResponse(statusCode : HTTPStatusCode)
      • HTTPStatusCode: code d’état reçu de l’instance.

      Levée lorsqu’une demande renvoie une réponse inattendue

    • cannotDecodeModel(DecodingError)
      • DecodingError: erreur de décodage détectée.

      Levée lorsqu’un modèle codable ne peut pas être décodé à partir de JSON.

    • cannotDecodeProperty(type : N’importe lequel, de : Chaîne)
      • type: type encapsulé à décoder à partir d’une chaîne.
      • from: chaîne à décoder vers le type spécifié.

      Levée lorsqu’une valeur enveloppée de chaîne ne peut pas être décodée à partir de JSON.

    • cannotEncodeModel(EncodingError)
      • EncodingError: erreur d’encodage détectée.

      Levée lorsqu’un modèle codable ne peut pas être encodé en JSON.

    • cannotParseResponse

      Levée lorsqu’une réponse de l’instance ne peut pas être analysée dans son format attendu.

    • URL non valide

      Levée lorsqu’une URL ne peut pas être formée. Par exemple, si la chaîne contient des caractères illégaux dans une URL ou est une chaîne vide.

    • missingAttachmentMetadata

      Levée lorsque l’en-tête des métadonnées de la pièce jointe est manquant.

    • missingServiceConfiguration (en anglais seulement)

      Levée lorsqu’une configuration de service attendue est manquante.

    • missingSysID (en anglais seulement)

      Levée lorsqu’un paramètre de sys_id attendu est manquant.

    • réseau (NetworkServiceError)
      • genericError(chaîne)
      • operationCanceled
      • serviceDésactivé
      • serverError(Erreur)
      • systemError(Erreur)

      Levée lorsqu’un service réseau a rencontré une erreur.

    Les exemples de code suivants montrent comment appeler cette méthode.

    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&lt;Model : SysIdentifiableModel>(_ model : Model, in tableName : String, coder : Coder = .default, writeOptions : FieldWriteOptions ? = nil, configuration : FetchConfiguration ? = nil, completion : @escaping (Result&lt;Model, NowDataError>))

    Met à jour le modèle codable spécifié dans la table spécifiée, puis exécute le completion gestionnaire.

    Tableau 51. Paramètres
    Nom Type Description
    modèle Modèle Modèle SysIdentifiableModel à mettre à jour dans la table.
    dans tableName Chaîne Nom de la table dans laquelle écrire les enregistrements, par exemple incident.
    Codeur Codeur Facultatif. Codeur à utiliser pour coder ou décoder les données envoyées et reçues de l’instance ServiceNow .
    Valeurs possibles :
    • default : les encodeurs par défaut formatent les dates en utilisant le format aaa-MM-jj HH :mm :ss en utilisant les paramètres régionaux et le fuseau horaire de l’appareil.
    • personnalisé (JSONEncoder, JSONDecoder) :

      Utilisez des codeurs personnalisés pour avoir un contrôle plus précis sur le décodage/encodage JSON.

      Utilisez uniquement cette énumération pour fournir votre propre JSONEncoder et JSONDecoder, par exemple lorsque vous utilisez des formats de date, des fuseaux horaires ou des paramètres régionaux spéciaux.

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

    Valeur par défaut : .default

    writeOptions (options d’écriture) Options d’écriture du champ Facultatif. Options de configuration à appliquer aux données en cours d’écriture dans l’enregistrement.

    Valeur par défaut : nulle

    configuration FetchConfiguration (Récupérer la configuration) Facultatif. Configuration à appliquer aux enregistrements récupérés, y compris les filtres qui définissent les enregistrements à renvoyer, la limite de taille de page de pagination, les champs à récupérer et les éléments à inclure dans les champs.

    Valeur par défaut : néant : tous les enregistrements renvoyés.

    Achèvement @escaping (Result&lt;Model, NowDataError>) Gestionnaire de complétion à exécuter après la mise à jour du ou des modèles codables spécifiés.
    Valeurs de retour :
    • Réussite : modèle
    • Échec : NowDataError
      • accessToken(AccessTokenProviderError)
        • AccessTokenProviderError: code d’erreur ou message du fournisseur de jeton d’accès.
          • accessTokenRetrievalFailed
          • userSessionError(_ erreur : erreur)

        Levée en cas d’erreur dans le jeton d’accès.

      • attachmentValidation

        Levée lorsqu’une pièce jointe échoue à la validation.

      • badResponse(statusCode : HTTPStatusCode)
        • HTTPStatusCode: code d’état reçu de l’instance.

        Levée lorsqu’une demande renvoie une réponse inattendue

      • cannotDecodeModel(DecodingError)
        • DecodingError: erreur de décodage détectée.

        Levée lorsqu’un modèle codable ne peut pas être décodé à partir de JSON.

      • cannotDecodeProperty(type : N’importe lequel, de : Chaîne)
        • type: type encapsulé à décoder à partir d’une chaîne.
        • from: chaîne à décoder vers le type spécifié.

        Levée lorsqu’une valeur enveloppée de chaîne ne peut pas être décodée à partir de JSON.

      • cannotEncodeModel(EncodingError)
        • EncodingError: erreur d’encodage détectée.

        Levée lorsqu’un modèle codable ne peut pas être encodé en JSON.

      • cannotParseResponse

        Levée lorsqu’une réponse de l’instance ne peut pas être analysée dans son format attendu.

      • URL non valide

        Levée lorsqu’une URL ne peut pas être formée. Par exemple, si la chaîne contient des caractères illégaux dans une URL ou est une chaîne vide.

      • missingAttachmentMetadata

        Levée lorsque l’en-tête des métadonnées de la pièce jointe est manquant.

      • missingServiceConfiguration (en anglais seulement)

        Levée lorsqu’une configuration de service attendue est manquante.

      • missingSysID (en anglais seulement)

        Levée lorsqu’un paramètre de sys_id attendu est manquant.

      • réseau (NetworkServiceError)
        • genericError(chaîne)
        • operationCanceled
        • serviceDésactivé
        • serverError(Erreur)
        • systemError(Erreur)

        Levée lorsqu’un service réseau a rencontré une erreur.

    Tableau 52. Renvoie
    Type Description
    Néant

    L’exemple de code suivant montre comment appeler cette méthode.

    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&lt;Model : SysIdentifiableModel>(_ model : Model, in tableName : String, coder : Coder = .default, writeOptions : FieldWriteOptions ? = nil, configuration : FetchConfiguration ? = nil)

    Met à jour le modèle codable spécifié dans la table spécifiée.

    Remarque :
    Cette méthode a été déconseillée. Vous devez utiliser l’implémentation async/await de la méthode à la place.
    Tableau 53. Paramètres
    Nom Type Description
    modèle Modèle Modèle SysIdentifiableModel à mettre à jour dans la table.
    dans tableName Chaîne Nom de la table dans laquelle écrire les enregistrements, par exemple incident.
    Codeur Codeur Facultatif. Codeur à utiliser pour coder ou décoder les données envoyées et reçues de l’instance ServiceNow .
    Valeurs possibles :
    • default : les encodeurs par défaut formatent les dates en utilisant le format aaa-MM-jj HH :mm :ss en utilisant les paramètres régionaux et le fuseau horaire de l’appareil.
    • personnalisé (JSONEncoder, JSONDecoder) :

      Utilisez des codeurs personnalisés pour avoir un contrôle plus précis sur le décodage/encodage JSON.

      Utilisez uniquement cette énumération pour fournir votre propre JSONEncoder et JSONDecoder, par exemple lorsque vous utilisez des formats de date, des fuseaux horaires ou des paramètres régionaux spéciaux.

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

    Valeur par défaut : .default

    writeOptions (options d’écriture) Options d’écriture du champ Facultatif. Options de configuration à appliquer aux données en cours d’écriture dans l’enregistrement.

    Valeur par défaut : nulle

    configuration FetchConfiguration (Récupérer la configuration) Facultatif. Configuration à appliquer aux enregistrements récupérés, y compris les filtres qui définissent les enregistrements à renvoyer, la limite de taille de page de pagination, les champs à récupérer et les éléments à inclure dans les champs.

    Valeur par défaut : néant : tous les enregistrements renvoyés.

    Tableau 54. Renvoie
    Type Description
    AnyPublisher&lt;Model, NowDataError> Réussite : modèles décodables qui ont été mis à jour dans la table spécifiée.

    Échec : NowDataError

    • accessToken(AccessTokenProviderError)
      • AccessTokenProviderError: code d’erreur ou message du fournisseur de jeton d’accès.
        • accessTokenRetrievalFailed
        • userSessionError(_ erreur : erreur)

      Levée en cas d’erreur dans le jeton d’accès.

    • attachmentValidation

      Levée lorsqu’une pièce jointe échoue à la validation.

    • badResponse(statusCode : HTTPStatusCode)
      • HTTPStatusCode: code d’état reçu de l’instance.

      Levée lorsqu’une demande renvoie une réponse inattendue

    • cannotDecodeModel(DecodingError)
      • DecodingError: erreur de décodage détectée.

      Levée lorsqu’un modèle codable ne peut pas être décodé à partir de JSON.

    • cannotDecodeProperty(type : N’importe lequel, de : Chaîne)
      • type: type encapsulé à décoder à partir d’une chaîne.
      • from: chaîne à décoder vers le type spécifié.

      Levée lorsqu’une valeur enveloppée de chaîne ne peut pas être décodée à partir de JSON.

    • cannotEncodeModel(EncodingError)
      • EncodingError: erreur d’encodage détectée.

      Levée lorsqu’un modèle codable ne peut pas être encodé en JSON.

    • cannotParseResponse

      Levée lorsqu’une réponse de l’instance ne peut pas être analysée dans son format attendu.

    • URL non valide

      Levée lorsqu’une URL ne peut pas être formée. Par exemple, si la chaîne contient des caractères illégaux dans une URL ou est une chaîne vide.

    • missingAttachmentMetadata

      Levée lorsque l’en-tête des métadonnées de la pièce jointe est manquant.

    • missingServiceConfiguration (en anglais seulement)

      Levée lorsqu’une configuration de service attendue est manquante.

    • missingSysID (en anglais seulement)

      Levée lorsqu’un paramètre de sys_id attendu est manquant.

    • réseau (NetworkServiceError)
      • genericError(chaîne)
      • operationCanceled
      • serviceDésactivé
      • serverError(Erreur)
      • systemError(Erreur)

      Levée lorsqu’un service réseau a rencontré une erreur.

    L’exemple de code suivant montre comment appeler cette méthode.

    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) lève asynchrone

    Met à jour l’enregistrement spécifié avec les champs spécifiés.

    Vous pouvez décoder les données dans un modèle codable personnalisé, ou vous pouvez utiliser la NowTableService – paginator&lt;Model : Decodable>(from tableName : String, path : String = Constants.resultPath, codeur : Coder = .default, configuration : FetchConfiguration ? = nil) fonction. Vous pouvez également utiliser la fonction pratique convertToRecords() pour transformer des données en un objet NowRecord. L’article suivant montre comment convertir un éditeur pour qu’il émette des NowRecords :
    let dataPublisher: AnyPublisher<Data, NowDataError> = ...
    let recordsPublisher: AnyPublisher<[NowRecord], NowDataError> = myPublisher.convertToRecords()
    Remarque :
    Tous les champs d’un enregistrement peuvent ne pas être disponibles pour la mise à jour. Par exemple, les champs dont le préfixe est sys_ sont généralement des paramètres système générés automatiquement et qui ne peuvent pas être mis à jour. Les champs qui ne sont pas spécifiés et qui ne sont pas générés automatiquement par le système sont définis sur la valeur null du type de données associé.
    Tableau 55. Paramètres
    Nom Type Description
    sysId Chaîne Sys_id de l’enregistrement à renvoyer à partir de l’instance ServiceNow .
    avec champs [Nom de champ : ValeurDeChamp] Paires nom-valeur des champs à inclure dans l’enregistrement.
    dans tableName Chaîne Nom de la table dans laquelle écrire les enregistrements, par exemple incident.
    writeOptions (options d’écriture) Options d’écriture du champ Facultatif. Options de configuration à appliquer aux données en cours d’écriture dans l’enregistrement.

    Valeur par défaut : nulle

    configuration FetchConfiguration (Récupérer la configuration) Facultatif. Configuration à appliquer aux enregistrements récupérés, y compris les filtres qui définissent les enregistrements à renvoyer, la limite de taille de page de pagination, les champs à récupérer et les éléments à inclure dans les champs.

    Valeur par défaut : néant : tous les enregistrements renvoyés.

    Tableau 56. Renvoie
    Type Description
    Données Renvoyé lorsque la méthode réussit. Objet de données contenant l’enregistrement mis à jour.
    Erreur NowDataError Levée lorsque la méthode échoue.
    • accessToken(AccessTokenProviderError)
      • AccessTokenProviderError: code d’erreur ou message du fournisseur de jeton d’accès.
        • accessTokenRetrievalFailed
        • userSessionError(_ erreur : erreur)

      Levée en cas d’erreur dans le jeton d’accès.

    • attachmentValidation

      Levée lorsqu’une pièce jointe échoue à la validation.

    • badResponse(statusCode : HTTPStatusCode)
      • HTTPStatusCode: code d’état reçu de l’instance.

      Levée lorsqu’une demande renvoie une réponse inattendue

    • cannotDecodeModel(DecodingError)
      • DecodingError: erreur de décodage détectée.

      Levée lorsqu’un modèle codable ne peut pas être décodé à partir de JSON.

    • cannotDecodeProperty(type : N’importe lequel, de : Chaîne)
      • type: type encapsulé à décoder à partir d’une chaîne.
      • from: chaîne à décoder vers le type spécifié.

      Levée lorsqu’une valeur enveloppée de chaîne ne peut pas être décodée à partir de JSON.

    • cannotEncodeModel(EncodingError)
      • EncodingError: erreur d’encodage détectée.

      Levée lorsqu’un modèle codable ne peut pas être encodé en JSON.

    • cannotParseResponse

      Levée lorsqu’une réponse de l’instance ne peut pas être analysée dans son format attendu.

    • URL non valide

      Levée lorsqu’une URL ne peut pas être formée. Par exemple, si la chaîne contient des caractères illégaux dans une URL ou est une chaîne vide.

    • missingAttachmentMetadata

      Levée lorsque l’en-tête des métadonnées de la pièce jointe est manquant.

    • missingServiceConfiguration (en anglais seulement)

      Levée lorsqu’une configuration de service attendue est manquante.

    • missingSysID (en anglais seulement)

      Levée lorsqu’un paramètre de sys_id attendu est manquant.

    • réseau (NetworkServiceError)
      • genericError(chaîne)
      • operationCanceled
      • serviceDésactivé
      • serverError(Erreur)
      • systemError(Erreur)

      Levée lorsqu’un service réseau a rencontré une erreur.

    Les exemples de code suivants montrent comment appeler cette méthode.

    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, avec les champs : [FieldName : FieldValue], writeOptions : FieldWriteOptions ? = nil, configuration : FieldReadConfiguration ? = nil, completion : @escaping (Result&lt;Data, NowDataError>)

    Met à jour l’enregistrement spécifié avec les champs spécifiés, puis exécute le completion gestionnaire une fois l’enregistrement enregistré.

    Si nécessaire, vous pouvez décoder les résultats renvoyés dans un modèle codable personnalisé ou utiliser la NowTableService – paginator&lt;Model : Decodable>(from tableName : String, path : String = Constants.resultPath, codeur : Coder = .default, configuration : FetchConfiguration ? = nil) fonction à la place. Vous pouvez également utiliser la fonction pratique convertToRecords() pour transformer des données en un objet NowRecord. L’article suivant montre comment convertir un éditeur pour qu’il émette des NowRecords :
    let dataPublisher: AnyPublisher<Data, NowDataError> = ...
    let recordsPublisher: AnyPublisher<[NowRecord], NowDataError> = myResult.convertToRecords()
    Remarque :
    Tous les champs d’un enregistrement peuvent ne pas être disponibles pour la mise à jour. Par exemple, les champs dont le préfixe est sys_ sont généralement des paramètres système générés automatiquement et qui ne peuvent pas être mis à jour. Les champs qui ne sont pas spécifiés et qui ne sont pas générés automatiquement par le système sont définis sur la valeur null du type de données associé.
    Tableau 57. Paramètres
    Nom Type Description
    sysId Chaîne Sys_id de l’enregistrement à renvoyer à partir de l’instance ServiceNow .
    avec champs [Nom de champ : ValeurDeChamp] Paires nom-valeur des champs à inclure dans l’enregistrement.
    dans tableName Chaîne Nom de la table dans laquelle écrire les enregistrements, par exemple incident.
    writeOptions (options d’écriture) Options d’écriture du champ Facultatif. Options de configuration à appliquer aux données en cours d’écriture dans l’enregistrement.

    Valeur par défaut : nulle

    configuration FetchConfiguration (Récupérer la configuration) Facultatif. Configuration à appliquer aux enregistrements récupérés, y compris les filtres qui définissent les enregistrements à renvoyer, la limite de taille de page de pagination, les champs à récupérer et les éléments à inclure dans les champs.

    Valeur par défaut : néant : tous les enregistrements renvoyés.

    Achèvement @escaping (Résultat&lt;données, NowDataError>) Gestionnaire de complétion à exécuter une fois les enregistrements récupérés.
    Valeurs de retour :
    • Réussite : données - enregistrements demandés
    • Erreur : NowDataError
      • accessToken(AccessTokenProviderError)
        • AccessTokenProviderError: code d’erreur ou message du fournisseur de jeton d’accès.
          • accessTokenRetrievalFailed
          • userSessionError(_ erreur : erreur)

        Levée en cas d’erreur dans le jeton d’accès.

      • attachmentValidation

        Levée lorsqu’une pièce jointe échoue à la validation.

      • badResponse(statusCode : HTTPStatusCode)
        • HTTPStatusCode: code d’état reçu de l’instance.

        Levée lorsqu’une demande renvoie une réponse inattendue

      • cannotDecodeModel(DecodingError)
        • DecodingError: erreur de décodage détectée.

        Levée lorsqu’un modèle codable ne peut pas être décodé à partir de JSON.

      • cannotDecodeProperty(type : N’importe lequel, de : Chaîne)
        • type: type encapsulé à décoder à partir d’une chaîne.
        • from: chaîne à décoder vers le type spécifié.

        Levée lorsqu’une valeur enveloppée de chaîne ne peut pas être décodée à partir de JSON.

      • cannotEncodeModel(EncodingError)
        • EncodingError: erreur d’encodage détectée.

        Levée lorsqu’un modèle codable ne peut pas être encodé en JSON.

      • cannotParseResponse

        Levée lorsqu’une réponse de l’instance ne peut pas être analysée dans son format attendu.

      • URL non valide

        Levée lorsqu’une URL ne peut pas être formée. Par exemple, si la chaîne contient des caractères illégaux dans une URL ou est une chaîne vide.

      • missingAttachmentMetadata

        Levée lorsque l’en-tête des métadonnées de la pièce jointe est manquant.

      • missingServiceConfiguration (en anglais seulement)

        Levée lorsqu’une configuration de service attendue est manquante.

      • missingSysID (en anglais seulement)

        Levée lorsqu’un paramètre de sys_id attendu est manquant.

      • réseau (NetworkServiceError)
        • genericError(chaîne)
        • operationCanceled
        • serviceDésactivé
        • serverError(Erreur)
        • systemError(Erreur)

        Levée lorsqu’un service réseau a rencontré une erreur.

    Tableau 58. Renvoie
    Type Description
    Néant

    L’exemple de code suivant montre comment appeler cette méthode.

    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)

    Met à jour l’enregistrement spécifié avec les champs spécifiés.

    Remarque :
    Cette méthode a été déconseillée. Vous devez utiliser l’implémentation async/await de la méthode à la place.
    Le publisher émet des données que vous pouvez décoder dans un modèle Codable personnalisé, ou vous pouvez également utiliser la NowTableService – paginator&lt;Model : Decodable>(from tableName : String, path : String = Constants.resultPath, codeur : Coder = .default, configuration : FetchConfiguration ? = nil) fonction. Vous pouvez également utiliser la fonction pratique convertToRecords() pour transformer des données en un objet NowRecord. L’article suivant montre comment convertir un éditeur pour qu’il émette des NowRecords :
    let dataPublisher: AnyPublisher<Data, NowDataError> = ...
    let recordsPublisher: AnyPublisher<[NowRecord], NowDataError> = myPublisher.convertToRecords()
    Remarque :
    Tous les champs d’un enregistrement peuvent ne pas être disponibles pour la mise à jour. Par exemple, les champs dont le préfixe est sys_ sont généralement des paramètres système générés automatiquement et qui ne peuvent pas être mis à jour. Les champs qui ne sont pas spécifiés et qui ne sont pas générés automatiquement par le système sont définis sur la valeur null du type de données associé.
    Tableau 59. Paramètres
    Nom Type Description
    sysId Chaîne Sys_id de l’enregistrement à renvoyer à partir de l’instance ServiceNow .
    avec champs [Nom de champ : ValeurDeChamp] Paires nom-valeur des champs à inclure dans l’enregistrement.
    dans tableName Chaîne Nom de la table dans laquelle écrire les enregistrements, par exemple incident.
    writeOptions (options d’écriture) Options d’écriture du champ Facultatif. Options de configuration à appliquer aux données en cours d’écriture dans l’enregistrement.

    Valeur par défaut : nulle

    configuration FetchConfiguration (Récupérer la configuration) Facultatif. Configuration à appliquer aux enregistrements récupérés, y compris les filtres qui définissent les enregistrements à renvoyer, la limite de taille de page de pagination, les champs à récupérer et les éléments à inclure dans les champs.

    Valeur par défaut : néant : tous les enregistrements renvoyés.

    Tableau 60. Renvoie
    Type Description
    AnyPublisher&lt;Data, NowDataError> Réussite : objet de données contenant l’enregistrement mis à jour.

    Échec : NowDataError

    • accessToken(AccessTokenProviderError)
      • AccessTokenProviderError: code d’erreur ou message du fournisseur de jeton d’accès.
        • accessTokenRetrievalFailed
        • userSessionError(_ erreur : erreur)

      Levée en cas d’erreur dans le jeton d’accès.

    • attachmentValidation

      Levée lorsqu’une pièce jointe échoue à la validation.

    • badResponse(statusCode : HTTPStatusCode)
      • HTTPStatusCode: code d’état reçu de l’instance.

      Levée lorsqu’une demande renvoie une réponse inattendue

    • cannotDecodeModel(DecodingError)
      • DecodingError: erreur de décodage détectée.

      Levée lorsqu’un modèle codable ne peut pas être décodé à partir de JSON.

    • cannotDecodeProperty(type : N’importe lequel, de : Chaîne)
      • type: type encapsulé à décoder à partir d’une chaîne.
      • from: chaîne à décoder vers le type spécifié.

      Levée lorsqu’une valeur enveloppée de chaîne ne peut pas être décodée à partir de JSON.

    • cannotEncodeModel(EncodingError)
      • EncodingError: erreur d’encodage détectée.

      Levée lorsqu’un modèle codable ne peut pas être encodé en JSON.

    • cannotParseResponse

      Levée lorsqu’une réponse de l’instance ne peut pas être analysée dans son format attendu.

    • URL non valide

      Levée lorsqu’une URL ne peut pas être formée. Par exemple, si la chaîne contient des caractères illégaux dans une URL ou est une chaîne vide.

    • missingAttachmentMetadata

      Levée lorsque l’en-tête des métadonnées de la pièce jointe est manquant.

    • missingServiceConfiguration (en anglais seulement)

      Levée lorsqu’une configuration de service attendue est manquante.

    • missingSysID (en anglais seulement)

      Levée lorsqu’un paramètre de sys_id attendu est manquant.

    • réseau (NetworkServiceError)
      • genericError(chaîne)
      • operationCanceled
      • serviceDésactivé
      • serverError(Erreur)
      • systemError(Erreur)

      Levée lorsqu’un service réseau a rencontré une erreur.

    Cet exemple montre comment créer une fonction qui met à jour un enregistrement dans la table spécifiée, avec les champs spécifiés. La sortie de l’appel est un ByteArray qui vous permet de convertir les données en n’importe quel modèle que vous voulez.

    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)