Classe NowTableService : iOS

  • Rversion finale: Yokohama
  • Mis à jour 30 janv. 2025
  • 77 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 des enregistrements de tables existantes ServiceNow .

    Tableau 1. Propriétés
    Nom Type Description
    configuration NowServiceConfiguration 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èves asynchrones

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

    Afin de créer un nouvel enregistrement par modèle, le modèle doit être conforme au protocole SysIdentifiableModel . Chaque table a généralement son propre modèle.

    Le paramètre du sys_Id modèle est ignoré lors de 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 modèle Result du completion gestionnaire.

    Tableau 2. Paramètres
    Nom Type Description
    modèle 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 vers et reçues de l’instance ServiceNow .
    Valeurs possibles :
    • par défaut : les encodeurs par défaut formatent les dates au format aaaa-MM-jj HH :mm :ss à l’aide des paramètres régionaux et du 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/l’encodage JSON.

      Utilisez cette énumération uniquement pour fournir vos propres 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

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

    Valeur par défaut : néant

    configuration Configuration de récupération 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 ce qu’il faut inclure dans les champs.

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

    Tableau 3. Renvoie
    Type Description
    Modèle Renvoyé en cas de réussite de la méthode. 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.
    NowDataError Levée en cas d’échec de la méthode.
    • accessToken(AccessTokenProviderError)
      • AccessTokenProviderError: code ou message d’erreur du fournisseur du jeton d’accès.
        • accessTokenRetrievalFailed
        • userSessionError(_ error : Erreur)

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

    • Validation de l’attachement

      Déclenché lorsqu’une pièce jointe échoue à la validation.

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

      Émise lorsqu’une demande renvoie une réponse inattendue

    • cannotDecodeModel(Erreur de décodage)
      • 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 : Tout, depuis : Chaîne)
      • type: type encapsulé à décoder à partir d’une chaîne.
      • from: chaîne à décoder selon le type spécifié.

      Déclenché lorsqu’une valeur encapsulée dans une chaîne ne peut pas être décodée à partir de JSON.

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

      Publié lorsqu’un modèle codable ne peut pas être codé au format JSON.

    • cannotParseResponse

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

    • URL invalide

      Émise 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 s’il s’agit d’une chaîne vide.

    • missingAttachmentMetadata

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

    • missingServiceConfiguration

      Lancé lorsqu’une configuration de service attendue est manquante.

    • missingSysID

      Déclenché lorsqu’un paramètre de sys_id attendu est manquant.

    • network(NetworkServiceError)
      • genericError(chaîne)
      • opérationannulée
      • serviceDisabled
      • serverError(Erreur)
      • systemError(Erreur)

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

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

    Afin de créer un nouvel enregistrement par modèle, le modèle doit être conforme au protocole SysIdentifiableModel . Chaque table a 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 sys_Id modèle est ignoré lors de 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 modèle Result du completion gestionnaire.

    Tableau 4. Paramètres
    Nom Type Description
    modèle 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 vers et reçues de l’instance ServiceNow .
    Valeurs possibles :
    • par défaut : les encodeurs par défaut formatent les dates au format aaaa-MM-jj HH :mm :ss à l’aide des paramètres régionaux et du 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/l’encodage JSON.

      Utilisez cette énumération uniquement pour fournir vos propres 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

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

    Valeur par défaut : néant

    configuration Configuration de récupération 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 ce qu’il faut inclure dans les champs.

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

    achèvement @escaping (Result<Model, NowDataError>) Gestionnaire d’achèvement à exécuter après avoir créé le ou les modèles décodables spécifiés.
    Valeurs renvoyées 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 ou message d’erreur du fournisseur du jeton d’accès.
          • accessTokenRetrievalFailed
          • userSessionError(_ error : Erreur)

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

      • Validation de l’attachement

        Déclenché lorsqu’une pièce jointe échoue à la validation.

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

        Émise lorsqu’une demande renvoie une réponse inattendue

      • cannotDecodeModel(Erreur de décodage)
        • 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 : Tout, depuis : Chaîne)
        • type: type encapsulé à décoder à partir d’une chaîne.
        • from: chaîne à décoder selon le type spécifié.

        Déclenché lorsqu’une valeur encapsulée dans une chaîne ne peut pas être décodée à partir de JSON.

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

        Publié lorsqu’un modèle codable ne peut pas être codé au format JSON.

      • cannotParseResponse

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

      • URL invalide

        Émise 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 s’il s’agit d’une chaîne vide.

      • missingAttachmentMetadata

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

      • missingServiceConfiguration

        Lancé lorsqu’une configuration de service attendue est manquante.

      • missingSysID

        Déclenché lorsqu’un paramètre de sys_id attendu est manquant.

      • network(NetworkServiceError)
        • genericError(chaîne)
        • opérationannulée
        • serviceDisabled
        • serverError(Erreur)
        • systemError(Erreur)

        Lancé 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, coder : 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 plutôt utiliser l’implémentation async/await de la méthode.
    Afin de créer un nouvel enregistrement par modèle, le modèle doit être conforme au protocole SysIdentifiableModel . Chaque table a 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 sys_Id modèle est ignoré lors de la création. Le sysId est affecté 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 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.

    Valeur par défaut : Constants.resultPath

    codeur Codeur Facultatif. Codeur à utiliser pour coder ou décoder les données envoyées vers et reçues de l’instance ServiceNow .
    Valeurs possibles :
    • par défaut : les encodeurs par défaut formatent les dates au format aaaa-MM-jj HH :mm :ss à l’aide des paramètres régionaux et du 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/l’encodage JSON.

      Utilisez cette énumération uniquement pour fournir vos propres 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

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

    Valeur par défaut : néant

    configuration Configuration de récupération 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 ce qu’il faut 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(with fields : [FieldName : FieldValue], in tableName : String, writeOptions : FieldWriteOptions ? = nil, configuration : FieldReadConfiguration ? = nil) Lèves asynchrones

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

    Le publisher émet des données que vous pouvez décoder dans un modèle codable personnalisé, ou vous pouvez également utiliser la NowTableService : paginateur<Modèle : décodable>(from tableName : Chaîne, chemin : Chaîne = Constants.resultPath, codeur : Codeur = .default, configuration : FetchConfiguration ? = nul) fonction. Vous pouvez également utiliser la fonction de commodité convertToRecords() pour transformer les données en objet NowRecord. L’exemple suivant montre comment convertir un éditeur pour émettre 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 qui sont générés automatiquement et 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 [FieldName : FieldValue] 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.
    options d’écriture Options d’écriture de champ Facultatif. Options de configuration à appliquer aux données en cours d’écriture dans l’enregistrement.

    Valeur par défaut : néant

    configuration Configuration de récupération 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 ce qu’il faut inclure dans les champs.

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

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

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

    • Validation de l’attachement

      Déclenché lorsqu’une pièce jointe échoue à la validation.

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

      Émise lorsqu’une demande renvoie une réponse inattendue

    • cannotDecodeModel(Erreur de décodage)
      • 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 : Tout, depuis : Chaîne)
      • type: type encapsulé à décoder à partir d’une chaîne.
      • from: chaîne à décoder selon le type spécifié.

      Déclenché lorsqu’une valeur encapsulée dans une chaîne ne peut pas être décodée à partir de JSON.

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

      Publié lorsqu’un modèle codable ne peut pas être codé au format JSON.

    • cannotParseResponse

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

    • URL invalide

      Émise 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 s’il s’agit d’une chaîne vide.

    • missingAttachmentMetadata

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

    • missingServiceConfiguration

      Lancé lorsqu’une configuration de service attendue est manquante.

    • missingSysID

      Déclenché lorsqu’un paramètre de sys_id attendu est manquant.

    • network(NetworkServiceError)
      • genericError(chaîne)
      • opérationannulée
      • serviceDisabled
      • serverError(Erreur)
      • systemError(Erreur)

      Lancé 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(with fields : [FieldName : FieldValue], in tableName : String, writeOptions : FieldWriteOptions, configuration : FieldReadConfiguration, completion : @escaping (Result<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 de retour dans un modèle codable personnalisé ou vous pouvez utiliser la NowTableService : paginateur<Modèle : décodable>(from tableName : Chaîne, chemin : Chaîne = Constants.resultPath, codeur : Codeur = .default, configuration : FetchConfiguration ? = nul) fonction à la place. Vous pouvez également utiliser la fonction de commodité convertToRecords() pour transformer les données en objet NowRecord. L’exemple suivant montre comment convertir un éditeur pour émettre 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 qui sont générés automatiquement et 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 [FieldName : FieldValue] 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.
    options d’écriture Options d’écriture de champ Facultatif. Options de configuration à appliquer aux données en cours d’écriture dans l’enregistrement.

    Valeur par défaut : néant

    configuration Configuration de lecture de champ Facultatif. Options de configuration qui spécifient les champs à renvoyer et ceux à inclure dans les champs.

    Valeur par défaut : néant

    achèvement @escaping (résultat<données, NowDataError>) Gestionnaire d’achèvement à exécuter après avoir récupéré les enregistrements.
    Valeurs renvoyées :
    • Réussite : données - Enregistrements demandés
    • Erreur : NowDataError
      • accessToken(AccessTokenProviderError)
        • AccessTokenProviderError: code ou message d’erreur du fournisseur du jeton d’accès.
          • accessTokenRetrievalFailed
          • userSessionError(_ error : Erreur)

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

      • Validation de l’attachement

        Déclenché lorsqu’une pièce jointe échoue à la validation.

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

        Émise lorsqu’une demande renvoie une réponse inattendue

      • cannotDecodeModel(Erreur de décodage)
        • 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 : Tout, depuis : Chaîne)
        • type: type encapsulé à décoder à partir d’une chaîne.
        • from: chaîne à décoder selon le type spécifié.

        Déclenché lorsqu’une valeur encapsulée dans une chaîne ne peut pas être décodée à partir de JSON.

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

        Publié lorsqu’un modèle codable ne peut pas être codé au format JSON.

      • cannotParseResponse

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

      • URL invalide

        Émise 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 s’il s’agit d’une chaîne vide.

      • missingAttachmentMetadata

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

      • missingServiceConfiguration

        Lancé lorsqu’une configuration de service attendue est manquante.

      • missingSysID

        Déclenché lorsqu’un paramètre de sys_id attendu est manquant.

      • network(NetworkServiceError)
        • genericError(chaîne)
        • opérationannulée
        • serviceDisabled
        • serverError(Erreur)
        • systemError(Erreur)

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

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

    Remarque :
    Cette méthode a été déconseillée. Vous devez plutôt utiliser l’implémentation async/await de la méthode.
    Le publisher émet des données que vous pouvez décoder dans un modèle codable personnalisé, ou vous pouvez également utiliser la NowTableService : paginateur<Modèle : décodable>(from tableName : Chaîne, chemin : Chaîne = Constants.resultPath, codeur : Codeur = .default, configuration : FetchConfiguration ? = nul) fonction. Vous pouvez également utiliser la fonction de commodité convertToRecords() pour transformer les données en objet NowRecord. L’exemple suivant montre comment convertir un éditeur pour émettre 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 qui sont générés automatiquement et 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 [FieldName : FieldValue] 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.
    options d’écriture Options d’écriture de champ Facultatif. Options de configuration à appliquer aux données en cours d’écriture dans l’enregistrement.

    Valeur par défaut : néant

    configuration Configuration de récupération 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 ce qu’il faut inclure dans les champs.

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

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

    Échec : NowDataError

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

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

    • Validation de l’attachement

      Déclenché lorsqu’une pièce jointe échoue à la validation.

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

      Émise lorsqu’une demande renvoie une réponse inattendue

    • cannotDecodeModel(Erreur de décodage)
      • 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 : Tout, depuis : Chaîne)
      • type: type encapsulé à décoder à partir d’une chaîne.
      • from: chaîne à décoder selon le type spécifié.

      Déclenché lorsqu’une valeur encapsulée dans une chaîne ne peut pas être décodée à partir de JSON.

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

      Publié lorsqu’un modèle codable ne peut pas être codé au format JSON.

    • cannotParseResponse

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

    • URL invalide

      Émise 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 s’il s’agit d’une chaîne vide.

    • missingAttachmentMetadata

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

    • missingServiceConfiguration

      Lancé lorsqu’une configuration de service attendue est manquante.

    • missingSysID

      Déclenché lorsqu’un paramètre de sys_id attendu est manquant.

    • network(NetworkServiceError)
      • genericError(chaîne)
      • opérationannulée
      • serviceDisabled
      • serverError(Erreur)
      • systemError(Erreur)

      Lancé 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 dans le modèle de votre choix.

    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 : supprimer (_ modèle : modèle, à partir du nom de table : chaîne) lèves asynchrones

    Supprime le modèle de 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 le sys_id de l’enregistrement à supprimer.
    à partir de tableName Chaîne Nom de la table à partir de laquelle supprimer les informations, par exemple incident.
    Tableau 15. Renvoie
    Type Description
    Néant Rien n’est renvoyé lorsque la méthode réussit.
    NowDataError Levée en cas d’échec de la méthode.
    • accessToken(AccessTokenProviderError)
      • AccessTokenProviderError: code ou message d’erreur du fournisseur du jeton d’accès.
        • accessTokenRetrievalFailed
        • userSessionError(_ error : Erreur)

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

    • Validation de l’attachement

      Déclenché lorsqu’une pièce jointe échoue à la validation.

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

      Émise lorsqu’une demande renvoie une réponse inattendue

    • cannotDecodeModel(Erreur de décodage)
      • 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 : Tout, depuis : Chaîne)
      • type: type encapsulé à décoder à partir d’une chaîne.
      • from: chaîne à décoder selon le type spécifié.

      Déclenché lorsqu’une valeur encapsulée dans une chaîne ne peut pas être décodée à partir de JSON.

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

      Publié lorsqu’un modèle codable ne peut pas être codé au format JSON.

    • cannotParseResponse

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

    • URL invalide

      Émise 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 s’il s’agit d’une chaîne vide.

    • missingAttachmentMetadata

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

    • missingServiceConfiguration

      Lancé lorsqu’une configuration de service attendue est manquante.

    • missingSysID

      Déclenché lorsqu’un paramètre de sys_id attendu est manquant.

    • network(NetworkServiceError)
      • genericError(chaîne)
      • opérationannulée
      • serviceDisabled
      • serverError(Erreur)
      • systemError(Erreur)

      Lancé 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<Void, NowDataError>))

    Supprime le modèle de 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 le sys_id de l’enregistrement à supprimer.
    à partir de tableName Chaîne Nom de la table à partir de laquelle supprimer les informations, par exemple incident.
    achèvement @escaping (Résultat<Annulé, NowDataError>) Gestionnaire de complétion à exécuter après la suppression du ou des modèles codables spécifiés.
    Valeurs renvoyées :
    • Réussite : aucun retour
    • Échec : NowDataError
      • accessToken(AccessTokenProviderError)
        • AccessTokenProviderError: code ou message d’erreur du fournisseur du jeton d’accès.
          • accessTokenRetrievalFailed
          • userSessionError(_ error : Erreur)

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

      • Validation de l’attachement

        Déclenché lorsqu’une pièce jointe échoue à la validation.

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

        Émise lorsqu’une demande renvoie une réponse inattendue

      • cannotDecodeModel(Erreur de décodage)
        • 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 : Tout, depuis : Chaîne)
        • type: type encapsulé à décoder à partir d’une chaîne.
        • from: chaîne à décoder selon le type spécifié.

        Déclenché lorsqu’une valeur encapsulée dans une chaîne ne peut pas être décodée à partir de JSON.

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

        Publié lorsqu’un modèle codable ne peut pas être codé au format JSON.

      • cannotParseResponse

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

      • URL invalide

        Émise 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 s’il s’agit d’une chaîne vide.

      • missingAttachmentMetadata

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

      • missingServiceConfiguration

        Lancé lorsqu’une configuration de service attendue est manquante.

      • missingSysID

        Déclenché lorsqu’un paramètre de sys_id attendu est manquant.

      • network(NetworkServiceError)
        • genericError(chaîne)
        • opérationannulée
        • serviceDisabled
        • serverError(Erreur)
        • systemError(Erreur)

        Lancé 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 de codable spécifié de la table spécifiée.

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

    Échec : NowDataError

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

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

    • Validation de l’attachement

      Déclenché lorsqu’une pièce jointe échoue à la validation.

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

      Émise lorsqu’une demande renvoie une réponse inattendue

    • cannotDecodeModel(Erreur de décodage)
      • 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 : Tout, depuis : Chaîne)
      • type: type encapsulé à décoder à partir d’une chaîne.
      • from: chaîne à décoder selon le type spécifié.

      Déclenché lorsqu’une valeur encapsulée dans une chaîne ne peut pas être décodée à partir de JSON.

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

      Publié lorsqu’un modèle codable ne peut pas être codé au format JSON.

    • cannotParseResponse

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

    • URL invalide

      Émise 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 s’il s’agit d’une chaîne vide.

    • missingAttachmentMetadata

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

    • missingServiceConfiguration

      Lancé lorsqu’une configuration de service attendue est manquante.

    • missingSysID

      Déclenché lorsqu’un paramètre de sys_id attendu est manquant.

    • network(NetworkServiceError)
      • genericError(chaîne)
      • opérationannulée
      • serviceDisabled
      • serverError(Erreur)
      • systemError(Erreur)

      Lancé 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) Levées asynchrones

    Supprime l’enregistrement spécifié 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 les informations, par exemple incident.
    Tableau 21. Renvoie
    Type Description
    Néant Rien n’est renvoyé lorsque la méthode réussit.
    NowDataError Levée en cas d’échec de la méthode.
    • accessToken(AccessTokenProviderError)
      • AccessTokenProviderError: code ou message d’erreur du fournisseur du jeton d’accès.
        • accessTokenRetrievalFailed
        • userSessionError(_ error : Erreur)

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

    • Validation de l’attachement

      Déclenché lorsqu’une pièce jointe échoue à la validation.

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

      Émise lorsqu’une demande renvoie une réponse inattendue

    • cannotDecodeModel(Erreur de décodage)
      • 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 : Tout, depuis : Chaîne)
      • type: type encapsulé à décoder à partir d’une chaîne.
      • from: chaîne à décoder selon le type spécifié.

      Déclenché lorsqu’une valeur encapsulée dans une chaîne ne peut pas être décodée à partir de JSON.

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

      Publié lorsqu’un modèle codable ne peut pas être codé au format JSON.

    • cannotParseResponse

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

    • URL invalide

      Émise 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 s’il s’agit d’une chaîne vide.

    • missingAttachmentMetadata

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

    • missingServiceConfiguration

      Lancé lorsqu’une configuration de service attendue est manquante.

    • missingSysID

      Déclenché lorsqu’un paramètre de sys_id attendu est manquant.

    • network(NetworkServiceError)
      • genericError(chaîne)
      • opérationannulée
      • serviceDisabled
      • serverError(Erreur)
      • systemError(Erreur)

      Lancé 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 : chaîne, complétion : @escaping (Result<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 les informations, par exemple incident.
    achèvement @escaping (Résultat<Annulé, NowDataError>) Réussite : rien n’est retourné.

    Échec : NowDataError

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

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

    • Validation de l’attachement

      Déclenché lorsqu’une pièce jointe échoue à la validation.

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

      Émise lorsqu’une demande renvoie une réponse inattendue

    • cannotDecodeModel(Erreur de décodage)
      • 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 : Tout, depuis : Chaîne)
      • type: type encapsulé à décoder à partir d’une chaîne.
      • from: chaîne à décoder selon le type spécifié.

      Déclenché lorsqu’une valeur encapsulée dans une chaîne ne peut pas être décodée à partir de JSON.

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

      Publié lorsqu’un modèle codable ne peut pas être codé au format JSON.

    • cannotParseResponse

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

    • URL invalide

      Émise 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 s’il s’agit d’une chaîne vide.

    • missingAttachmentMetadata

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

    • missingServiceConfiguration

      Lancé lorsqu’une configuration de service attendue est manquante.

    • missingSysID

      Déclenché lorsqu’un paramètre de sys_id attendu est manquant.

    • network(NetworkServiceError)
      • genericError(chaîne)
      • opérationannulée
      • serviceDisabled
      • serverError(Erreur)
      • systemError(Erreur)

      Lancé 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, à partir de tableName : chaîne)

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

    Remarque :
    Cette méthode a été déconseillée. Vous devez plutôt utiliser l’implémentation async/await de la méthode.
    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 les informations, par exemple incident.
    Tableau 25. Renvoie
    Type Description
    AnyPublisher<Void, NowDataError> Réussite : aucun retour

    Échec : NowDataError

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

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

    • Validation de l’attachement

      Déclenché lorsqu’une pièce jointe échoue à la validation.

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

      Émise lorsqu’une demande renvoie une réponse inattendue

    • cannotDecodeModel(Erreur de décodage)
      • 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 : Tout, depuis : Chaîne)
      • type: type encapsulé à décoder à partir d’une chaîne.
      • from: chaîne à décoder selon le type spécifié.

      Déclenché lorsqu’une valeur encapsulée dans une chaîne ne peut pas être décodée à partir de JSON.

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

      Publié lorsqu’un modèle codable ne peut pas être codé au format JSON.

    • cannotParseResponse

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

    • URL invalide

      Émise 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 s’il s’agit d’une chaîne vide.

    • missingAttachmentMetadata

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

    • missingServiceConfiguration

      Lancé lorsqu’une configuration de service attendue est manquante.

    • missingSysID

      Déclenché lorsqu’un paramètre de sys_id attendu est manquant.

    • network(NetworkServiceError)
      • genericError(chaîne)
      • opérationannulée
      • serviceDisabled
      • serverError(Erreur)
      • systemError(Erreur)

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

    Cet exemple montre comment créer une fonction qui supprime un enregistrement d’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 NowServiceConfiguration Paramètres de configuration à utiliser lors de la création du service.
    coreServiceProvider NowCoreServiceProviding Facultatif. Fournisseur de service à associer à NowTableService.

    Valeur par défaut : néant

    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<Model : Decodable>(with sysId : SysID ? = nil, from tableName : String, path : String = Constants.resultPath, coder : Coder = .default, configuration : FetchConfiguration ? = nil) Lèves asynchrones

    Permet 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 à ce qui suit :
    {
      "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 paginateur ou NowTableService : paginateur<Modèle : décodable>(from tableName : Chaîne, chemin : Chaîne = Constants.resultPath, codeur : Codeur = .default, configuration : FetchConfiguration ? = nul) pour extraire les modèles paginés.
    Tableau 27. Paramètres
    Nom Type Description
    avec sysId SysID Facultatif. Sys_id de l’enregistrement à renvoyer. Indiquez la sys_id si vous souhaitez récupérer un enregistrement spécifique.

    Valeur par défaut : néant

    à partir de tableName Chaîne Nom de la table à partir de laquelle récupérer les enregistrements, par exemple par 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.

    Par défaut : résultat

    codeur Codeur Facultatif. Codeur à utiliser pour coder ou décoder les données envoyées vers et reçues de l’instance ServiceNow .
    Valeurs possibles :
    • par défaut : les encodeurs par défaut formatent les dates au format aaaa-MM-jj HH :mm :ss à l’aide des paramètres régionaux et du 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/l’encodage JSON.

      Utilisez cette énumération uniquement pour fournir vos propres 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 Configuration de récupération 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 ce qu’il faut inclure dans les champs.

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

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

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

    • Validation de l’attachement

      Déclenché lorsqu’une pièce jointe échoue à la validation.

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

      Émise lorsqu’une demande renvoie une réponse inattendue

    • cannotDecodeModel(Erreur de décodage)
      • 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 : Tout, depuis : Chaîne)
      • type: type encapsulé à décoder à partir d’une chaîne.
      • from: chaîne à décoder selon le type spécifié.

      Déclenché lorsqu’une valeur encapsulée dans une chaîne ne peut pas être décodée à partir de JSON.

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

      Publié lorsqu’un modèle codable ne peut pas être codé au format JSON.

    • cannotParseResponse

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

    • URL invalide

      Émise 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 s’il s’agit d’une chaîne vide.

    • missingAttachmentMetadata

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

    • missingServiceConfiguration

      Lancé lorsqu’une configuration de service attendue est manquante.

    • missingSysID

      Déclenché lorsqu’un paramètre de sys_id attendu est manquant.

    • network(NetworkServiceError)
      • genericError(chaîne)
      • opérationannulée
      • serviceDisabled
      • serverError(Erreur)
      • systemError(Erreur)

      Lancé 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 type de modèle unique, 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<Model : Decodable>(_ type : Model.Type, with sysId : SysID ? = nil, from tableName : String, path : String = Constants.resultPath, coder : Coder = .default, configuration : FetchConfiguration ? = nil, completion : @escaping (Result<Model, NowDataError>))

    Récupère le(s) modèle(s) décodable(s) à 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 à ce qui suit :
    {
      "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 Modèle.Type 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 par 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.

    Valeur par défaut : Constants.resultPath

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

    Valeur par défaut : .default

    configuration Configuration de récupération 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 ce qu’il faut 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 avoir récupéré le(s) modèle(s) décodable(s) spécifié(s).
    Valeurs renvoyées pour le gestionnaire de complétion :
    • Réussite : données pour le type de modèle demandé.
    • Échec : NowDataError
      • accessToken(AccessTokenProviderError)
        • AccessTokenProviderError: code ou message d’erreur du fournisseur du jeton d’accès.
          • accessTokenRetrievalFailed
          • userSessionError(_ error : Erreur)

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

      • Validation de l’attachement

        Déclenché lorsqu’une pièce jointe échoue à la validation.

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

        Émise lorsqu’une demande renvoie une réponse inattendue

      • cannotDecodeModel(Erreur de décodage)
        • 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 : Tout, depuis : Chaîne)
        • type: type encapsulé à décoder à partir d’une chaîne.
        • from: chaîne à décoder selon le type spécifié.

        Déclenché lorsqu’une valeur encapsulée dans une chaîne ne peut pas être décodée à partir de JSON.

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

        Publié lorsqu’un modèle codable ne peut pas être codé au format JSON.

      • cannotParseResponse

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

      • URL invalide

        Émise 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 s’il s’agit d’une chaîne vide.

      • missingAttachmentMetadata

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

      • missingServiceConfiguration

        Lancé lorsqu’une configuration de service attendue est manquante.

      • missingSysID

        Déclenché lorsqu’un paramètre de sys_id attendu est manquant.

      • network(NetworkServiceError)
        • genericError(chaîne)
        • opérationannulée
        • serviceDisabled
        • serverError(Erreur)
        • systemError(Erreur)

        Lancé 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 modèle décodable unique 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<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 plutôt utiliser l’implémentation async/await de la méthode.
    Table Les réponses d’API sont imbriquées à l’intérieur d’un result paramètre similaire à ce qui suit :
    {
      "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 paginateur ou NowTableService : paginateur<Modèle : décodable>(from tableName : Chaîne, chemin : Chaîne = Constants.resultPath, codeur : Codeur = .default, configuration : FetchConfiguration ? = nul) pour extraire les modèles paginés.
    Tableau 31. Paramètres
    Nom Type Description
    avec sysId SysID Facultatif. Sys_id de l’enregistrement à renvoyer. Indiquez la sys_id si vous souhaitez récupérer un enregistrement spécifique.

    Valeur par défaut : néant

    à partir de tableName Chaîne Nom de la table à partir de laquelle récupérer les enregistrements, par exemple par 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.

    Par défaut : résultat

    codeur Codeur Facultatif. Codeur à utiliser pour coder ou décoder les données envoyées vers et reçues de l’instance ServiceNow .
    Valeurs possibles :
    • par défaut : les encodeurs par défaut formatent les dates au format aaaa-MM-jj HH :mm :ss à l’aide des paramètres régionaux et du 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/l’encodage JSON.

      Utilisez cette énumération uniquement pour fournir vos propres 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 Configuration de récupération 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 ce qu’il faut inclure dans les champs.

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

    Tableau 32. Renvoie
    Type Description
    AnyPublisher<Model, NowDataError> Réussite : l’éditeur a renvoyé un ou plusieurs modèles décodables.

    Échec : NowDataError

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

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

    • Validation de l’attachement

      Déclenché lorsqu’une pièce jointe échoue à la validation.

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

      Émise lorsqu’une demande renvoie une réponse inattendue

    • cannotDecodeModel(Erreur de décodage)
      • 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 : Tout, depuis : Chaîne)
      • type: type encapsulé à décoder à partir d’une chaîne.
      • from: chaîne à décoder selon le type spécifié.

      Déclenché lorsqu’une valeur encapsulée dans une chaîne ne peut pas être décodée à partir de JSON.

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

      Publié lorsqu’un modèle codable ne peut pas être codé au format JSON.

    • cannotParseResponse

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

    • URL invalide

      Émise 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 s’il s’agit d’une chaîne vide.

    • missingAttachmentMetadata

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

    • missingServiceConfiguration

      Lancé lorsqu’une configuration de service attendue est manquante.

    • missingSysID

      Déclenché lorsqu’un paramètre de sys_id attendu est manquant.

    • network(NetworkServiceError)
      • genericError(chaîne)
      • opérationannulée
      • serviceDisabled
      • serverError(Erreur)
      • systemError(Erreur)

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

    Pour obtenir un éditeur qui fournit des modèles d’utilisateurs 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 d’itérer entre les 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 : paginateur<Modèle : décodable>(from tableName : Chaîne, chemin : Chaîne = Constants.resultPath, codeur : Codeur = .default, configuration : FetchConfiguration ? = nul) fonction. Vous pouvez également utiliser la fonction de commodité convertToRecords() pour transformer les données en objet NowRecord. L’exemple suivant montre comment convertir un éditeur pour émettre des NowRecords :
    let dataPublisher: AnyPublisher<Data, NowDataError> = ...
    let recordsPublisher: AnyPublisher<[NowRecord], NowDataError> = myPublisher.convertToRecords()
    Remarque :
    À moins qu’il ne soit remplacé dans le configuration paramètre, un paginateur renvoie 20 éléments par page. En fonction de l’évaluation de l’ACL, le nombre réel d’éléments extraits 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 par incident.
    configuration Configuration de récupération 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 ce qu’il faut inclure dans les champs.

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

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

    Échec : NowDataError

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

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

    • Validation de l’attachement

      Déclenché lorsqu’une pièce jointe échoue à la validation.

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

      Émise lorsqu’une demande renvoie une réponse inattendue

    • cannotDecodeModel(Erreur de décodage)
      • 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 : Tout, depuis : Chaîne)
      • type: type encapsulé à décoder à partir d’une chaîne.
      • from: chaîne à décoder selon le type spécifié.

      Déclenché lorsqu’une valeur encapsulée dans une chaîne ne peut pas être décodée à partir de JSON.

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

      Publié lorsqu’un modèle codable ne peut pas être codé au format JSON.

    • cannotParseResponse

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

    • URL invalide

      Émise 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 s’il s’agit d’une chaîne vide.

    • missingAttachmentMetadata

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

    • missingServiceConfiguration

      Lancé lorsqu’une configuration de service attendue est manquante.

    • missingSysID

      Déclenché lorsqu’un paramètre de sys_id attendu est manquant.

    • network(NetworkServiceError)
      • genericError(chaîne)
      • opérationannulée
      • serviceDisabled
      • serverError(Erreur)
      • systemError(Erreur)

      Lancé 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 : paginateur<Modèle : décodable>(from tableName : Chaîne, chemin : Chaîne = Constants.resultPath, codeur : Codeur = .default, configuration : FetchConfiguration ? = nul)

    Crée un paginateur qui permet l’itération de pages de modèles décodés qui gèrent l’imbrication.

    Les ServiceNow réponses d’API de la table REST sont imbriquées dans une propriété de résultat similaire à ce qui suit :
    {
      "result": [
        { "name": "Ash Williams" },
        { "name": "Lionel Cosgrove" },
        { "name": "Laurie Strode" }
      ]
    }
    Pour obtenir un paginateur qui fournit des modèles utilisateur décodés, extrayez 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 :
    À moins qu’il ne soit remplacé dans le configuration paramètre, un paginateur renvoie 20 éléments par page. Selon les évaluations ACL, le nombre réel d’éléments extraits 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 à la combinaison, veillez à 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 par 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 d’accès personnalisé permet d’extraire ou d’itérer sur les données imbriquées.

    Par défaut : résultat

    codeur Codeur Facultatif. Codeur à utiliser pour coder ou décoder les données envoyées vers et reçues de l’instance ServiceNow .
    Valeurs possibles :
    • par défaut : les encodeurs par défaut formatent les dates au format aaaa-MM-jj HH :mm :ss à l’aide des paramètres régionaux et du 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/l’encodage JSON.

      Utilisez cette énumération uniquement pour fournir vos propres 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 Configuration de récupération 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 ce qu’il faut inclure dans les champs.

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

    Tableau 36. Renvoie
    Type Description
    Paginateur<données> Réussite : objet paginateur contenant le(s) modèle(s) décodable (s) paginé(s).

    Échec : NowDataError

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

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

    • Validation de l’attachement

      Déclenché lorsqu’une pièce jointe échoue à la validation.

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

      Émise lorsqu’une demande renvoie une réponse inattendue

    • cannotDecodeModel(Erreur de décodage)
      • 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 : Tout, depuis : Chaîne)
      • type: type encapsulé à décoder à partir d’une chaîne.
      • from: chaîne à décoder selon le type spécifié.

      Déclenché lorsqu’une valeur encapsulée dans une chaîne ne peut pas être décodée à partir de JSON.

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

      Publié lorsqu’un modèle codable ne peut pas être codé au format JSON.

    • cannotParseResponse

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

    • URL invalide

      Émise 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 s’il s’agit d’une chaîne vide.

    • missingAttachmentMetadata

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

    • missingServiceConfiguration

      Lancé lorsqu’une configuration de service attendue est manquante.

    • missingSysID

      Déclenché lorsqu’un paramètre de sys_id attendu est manquant.

    • network(NetworkServiceError)
      • genericError(chaîne)
      • opérationannulée
      • serviceDisabled
      • serverError(Erreur)
      • systemError(Erreur)

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

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

    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 de résultat, afin que vous puissiez éliminer le path paramètre en toute sécurité.

    NowTableService : record(avec sysId : SysID, from tableName : String, configuration : FieldReadConfiguration ? = nil) Lèves asynchrones

    Récupère un enregistrement spécifié 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 : paginateur<Modèle : décodable>(from tableName : Chaîne, chemin : Chaîne = Constants.resultPath, codeur : Codeur = .default, configuration : FetchConfiguration ? = nul) fonction. Vous pouvez également utiliser la fonction de commodité convertToRecords() pour transformer les données en objet NowRecord. L’exemple suivant montre comment convertir un éditeur pour émettre 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 de l’instance ServiceNow .
    à partir de tableName Chaîne Nom de la table à partir de laquelle récupérer les enregistrements, par exemple par incident.
    configuration Configuration de récupération 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 ce qu’il faut inclure dans les champs.

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

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

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

    • Validation de l’attachement

      Déclenché lorsqu’une pièce jointe échoue à la validation.

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

      Émise lorsqu’une demande renvoie une réponse inattendue

    • cannotDecodeModel(Erreur de décodage)
      • 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 : Tout, depuis : Chaîne)
      • type: type encapsulé à décoder à partir d’une chaîne.
      • from: chaîne à décoder selon le type spécifié.

      Déclenché lorsqu’une valeur encapsulée dans une chaîne ne peut pas être décodée à partir de JSON.

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

      Publié lorsqu’un modèle codable ne peut pas être codé au format JSON.

    • cannotParseResponse

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

    • URL invalide

      Émise 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 s’il s’agit d’une chaîne vide.

    • missingAttachmentMetadata

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

    • missingServiceConfiguration

      Lancé lorsqu’une configuration de service attendue est manquante.

    • missingSysID

      Déclenché lorsqu’un paramètre de sys_id attendu est manquant.

    • network(NetworkServiceError)
      • genericError(chaîne)
      • opérationannulée
      • serviceDisabled
      • serverError(Erreur)
      • systemError(Erreur)

      Lancé 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(avec sysId : SysID, from tableName : String, configuration : FieldReadConfiguration, complétion : @escaping (Result<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 de retour dans un modèle codable personnalisé ou vous pouvez utiliser la NowTableService : paginateur<Modèle : décodable>(from tableName : Chaîne, chemin : Chaîne = Constants.resultPath, codeur : Codeur = .default, configuration : FetchConfiguration ? = nul) fonction à la place. Vous pouvez également utiliser la fonction de commodité convertToRecords() pour transformer les données en objet NowRecord. L’exemple suivant montre comment convertir un éditeur pour émettre 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 de l’instance ServiceNow .
    à partir de tableName Chaîne Nom de la table à partir de laquelle récupérer les enregistrements, par exemple par incident.
    configuration Configuration de récupération 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 ce qu’il faut inclure dans les champs.

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

    achèvement @escaping (résultat<données, NowDataError>) Gestionnaire d’achèvement à exécuter après avoir récupéré les enregistrements.
    Valeurs renvoyées :
    • Réussite : données - Enregistrements demandés
    • Erreur : NowDataError
      • accessToken(AccessTokenProviderError)
        • AccessTokenProviderError: code ou message d’erreur du fournisseur du jeton d’accès.
          • accessTokenRetrievalFailed
          • userSessionError(_ error : Erreur)

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

      • Validation de l’attachement

        Déclenché lorsqu’une pièce jointe échoue à la validation.

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

        Émise lorsqu’une demande renvoie une réponse inattendue

      • cannotDecodeModel(Erreur de décodage)
        • 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 : Tout, depuis : Chaîne)
        • type: type encapsulé à décoder à partir d’une chaîne.
        • from: chaîne à décoder selon le type spécifié.

        Déclenché lorsqu’une valeur encapsulée dans une chaîne ne peut pas être décodée à partir de JSON.

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

        Publié lorsqu’un modèle codable ne peut pas être codé au format JSON.

      • cannotParseResponse

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

      • URL invalide

        Émise 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 s’il s’agit d’une chaîne vide.

      • missingAttachmentMetadata

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

      • missingServiceConfiguration

        Lancé lorsqu’une configuration de service attendue est manquante.

      • missingSysID

        Déclenché lorsqu’un paramètre de sys_id attendu est manquant.

      • network(NetworkServiceError)
        • genericError(chaîne)
        • opérationannulée
        • serviceDisabled
        • serverError(Erreur)
        • systemError(Erreur)

        Lancé 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(avec 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 plutôt utiliser l’implémentation async/await de la méthode.
    Le publisher émet des données que vous pouvez décoder dans un modèle codable personnalisé, ou vous pouvez également utiliser la NowTableService : paginateur<Modèle : décodable>(from tableName : Chaîne, chemin : Chaîne = Constants.resultPath, codeur : Codeur = .default, configuration : FetchConfiguration ? = nul) fonction. Vous pouvez également utiliser la fonction de commodité convertToRecords() pour transformer les données en objet NowRecord. L’exemple suivant montre comment convertir un éditeur pour émettre 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 de l’instance ServiceNow .
    à partir de tableName Chaîne Nom de la table à partir de laquelle récupérer les enregistrements, par exemple par incident.
    configuration Configuration de récupération 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 ce qu’il faut inclure dans les champs.

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

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

    Échec : NowDataError

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

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

    • Validation de l’attachement

      Déclenché lorsqu’une pièce jointe échoue à la validation.

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

      Émise lorsqu’une demande renvoie une réponse inattendue

    • cannotDecodeModel(Erreur de décodage)
      • 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 : Tout, depuis : Chaîne)
      • type: type encapsulé à décoder à partir d’une chaîne.
      • from: chaîne à décoder selon le type spécifié.

      Déclenché lorsqu’une valeur encapsulée dans une chaîne ne peut pas être décodée à partir de JSON.

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

      Publié lorsqu’un modèle codable ne peut pas être codé au format JSON.

    • cannotParseResponse

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

    • URL invalide

      Émise 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 s’il s’agit d’une chaîne vide.

    • missingAttachmentMetadata

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

    • missingServiceConfiguration

      Lancé lorsqu’une configuration de service attendue est manquante.

    • missingSysID

      Déclenché lorsqu’un paramètre de sys_id attendu est manquant.

    • network(NetworkServiceError)
      • genericError(chaîne)
      • opérationannulée
      • serviceDisabled
      • serverError(Erreur)
      • systemError(Erreur)

      Lancé 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 dans le modèle de votre choix.

    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 : enregistrements (from tableName : String, configuration : FetchConfiguration ? = nil) Levées asynchrones

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

    Le publisher émet des données que vous pouvez décoder dans un modèle codable personnalisé, ou vous pouvez également utiliser la NowTableService : paginateur<Modèle : décodable>(from tableName : Chaîne, chemin : Chaîne = Constants.resultPath, codeur : Codeur = .default, configuration : FetchConfiguration ? = nul) fonction. Vous pouvez également utiliser la fonction de commodité convertToRecords() pour transformer les données en objet NowRecord. L’exemple suivant montre comment convertir un éditeur pour émettre 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 par incident.
    configuration Configuration de récupération 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 ce qu’il faut inclure dans les champs.

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

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

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

    • Validation de l’attachement

      Déclenché lorsqu’une pièce jointe échoue à la validation.

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

      Émise lorsqu’une demande renvoie une réponse inattendue

    • cannotDecodeModel(Erreur de décodage)
      • 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 : Tout, depuis : Chaîne)
      • type: type encapsulé à décoder à partir d’une chaîne.
      • from: chaîne à décoder selon le type spécifié.

      Déclenché lorsqu’une valeur encapsulée dans une chaîne ne peut pas être décodée à partir de JSON.

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

      Publié lorsqu’un modèle codable ne peut pas être codé au format JSON.

    • cannotParseResponse

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

    • URL invalide

      Émise 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 s’il s’agit d’une chaîne vide.

    • missingAttachmentMetadata

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

    • missingServiceConfiguration

      Lancé lorsqu’une configuration de service attendue est manquante.

    • missingSysID

      Déclenché lorsqu’un paramètre de sys_id attendu est manquant.

    • network(NetworkServiceError)
      • genericError(chaîne)
      • opérationannulée
      • serviceDisabled
      • serverError(Erreur)
      • systemError(Erreur)

      Lancé 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<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 de retour dans un modèle codable personnalisé ou vous pouvez utiliser la NowTableService : paginateur<Modèle : décodable>(from tableName : Chaîne, chemin : Chaîne = Constants.resultPath, codeur : Codeur = .default, configuration : FetchConfiguration ? = nul) fonction à la place. Vous pouvez également utiliser la fonction de commodité convertToRecords() pour transformer les données en objet NowRecord. L’exemple suivant montre comment convertir un éditeur pour émettre 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 Configuration de récupération 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 ce qu’il faut inclure dans les champs.

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

    achèvement @escaping (résultat<données, NowDataError>) Gestionnaire d’achèvement à exécuter après avoir récupéré les enregistrements.
    Valeurs renvoyées :
    • Réussite : données - Enregistrements demandés
    • Erreur : NowDataError
      • accessToken(AccessTokenProviderError)
        • AccessTokenProviderError: code ou message d’erreur du fournisseur du jeton d’accès.
          • accessTokenRetrievalFailed
          • userSessionError(_ error : Erreur)

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

      • Validation de l’attachement

        Déclenché lorsqu’une pièce jointe échoue à la validation.

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

        Émise lorsqu’une demande renvoie une réponse inattendue

      • cannotDecodeModel(Erreur de décodage)
        • 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 : Tout, depuis : Chaîne)
        • type: type encapsulé à décoder à partir d’une chaîne.
        • from: chaîne à décoder selon le type spécifié.

        Déclenché lorsqu’une valeur encapsulée dans une chaîne ne peut pas être décodée à partir de JSON.

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

        Publié lorsqu’un modèle codable ne peut pas être codé au format JSON.

      • cannotParseResponse

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

      • URL invalide

        Émise 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 s’il s’agit d’une chaîne vide.

      • missingAttachmentMetadata

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

      • missingServiceConfiguration

        Lancé lorsqu’une configuration de service attendue est manquante.

      • missingSysID

        Déclenché lorsqu’un paramètre de sys_id attendu est manquant.

      • network(NetworkServiceError)
        • genericError(chaîne)
        • opérationannulée
        • serviceDisabled
        • serverError(Erreur)
        • systemError(Erreur)

        Lancé 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 des enregistrements de la table spécifiée.

    Remarque :
    Cette méthode a été déconseillée. Vous devez plutôt utiliser l’implémentation async/await de la méthode.
    Le publisher émet des données que vous pouvez décoder dans un modèle codable personnalisé, ou vous pouvez également utiliser la NowTableService : paginateur<Modèle : décodable>(from tableName : Chaîne, chemin : Chaîne = Constants.resultPath, codeur : Codeur = .default, configuration : FetchConfiguration ? = nul) fonction. Vous pouvez également utiliser la fonction de commodité convertToRecords() pour transformer les données en objet NowRecord. L’exemple suivant montre comment convertir un éditeur pour émettre 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 par incident.
    configuration Configuration de récupération 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 ce qu’il faut inclure dans les champs.

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

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

    Échec : NowDataError

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

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

    • Validation de l’attachement

      Déclenché lorsqu’une pièce jointe échoue à la validation.

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

      Émise lorsqu’une demande renvoie une réponse inattendue

    • cannotDecodeModel(Erreur de décodage)
      • 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 : Tout, depuis : Chaîne)
      • type: type encapsulé à décoder à partir d’une chaîne.
      • from: chaîne à décoder selon le type spécifié.

      Déclenché lorsqu’une valeur encapsulée dans une chaîne ne peut pas être décodée à partir de JSON.

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

      Publié lorsqu’un modèle codable ne peut pas être codé au format JSON.

    • cannotParseResponse

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

    • URL invalide

      Émise 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 s’il s’agit d’une chaîne vide.

    • missingAttachmentMetadata

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

    • missingServiceConfiguration

      Lancé lorsqu’une configuration de service attendue est manquante.

    • missingSysID

      Déclenché lorsqu’un paramètre de sys_id attendu est manquant.

    • network(NetworkServiceError)
      • genericError(chaîne)
      • opérationannulée
      • serviceDisabled
      • serverError(Erreur)
      • systemError(Erreur)

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

    Cet exemple montre comment créer une fonction qui extrait plusieurs enregistrements d’une table spécifiée. Il crée un objet qui planifie l’exécution de la demande à un moment donné dans le futur et renvoie 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<Model : SysIdentifiableModel>(_ model : Model, in tableName : String, coder : Coder = .default, writeOptions : FieldWriteOptions ? = nil, configuration : FetchConfiguration ? = nil) Lèves asynchrones

    Met à jour le modèle de 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 vers et reçues de l’instance ServiceNow .
    Valeurs possibles :
    • par défaut : les encodeurs par défaut formatent les dates au format aaaa-MM-jj HH :mm :ss à l’aide des paramètres régionaux et du 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/l’encodage JSON.

      Utilisez cette énumération uniquement pour fournir vos propres 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

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

    Valeur par défaut : néant

    configuration Configuration de récupération 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 ce qu’il faut inclure dans les champs.

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

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

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

    • Validation de l’attachement

      Déclenché lorsqu’une pièce jointe échoue à la validation.

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

      Émise lorsqu’une demande renvoie une réponse inattendue

    • cannotDecodeModel(Erreur de décodage)
      • 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 : Tout, depuis : Chaîne)
      • type: type encapsulé à décoder à partir d’une chaîne.
      • from: chaîne à décoder selon le type spécifié.

      Déclenché lorsqu’une valeur encapsulée dans une chaîne ne peut pas être décodée à partir de JSON.

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

      Publié lorsqu’un modèle codable ne peut pas être codé au format JSON.

    • cannotParseResponse

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

    • URL invalide

      Émise 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 s’il s’agit d’une chaîne vide.

    • missingAttachmentMetadata

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

    • missingServiceConfiguration

      Lancé lorsqu’une configuration de service attendue est manquante.

    • missingSysID

      Déclenché lorsqu’un paramètre de sys_id attendu est manquant.

    • network(NetworkServiceError)
      • genericError(chaîne)
      • opérationannulée
      • serviceDisabled
      • serverError(Erreur)
      • systemError(Erreur)

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

    Met à jour le modèle de 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 vers et reçues de l’instance ServiceNow .
    Valeurs possibles :
    • par défaut : les encodeurs par défaut formatent les dates au format aaaa-MM-jj HH :mm :ss à l’aide des paramètres régionaux et du 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/l’encodage JSON.

      Utilisez cette énumération uniquement pour fournir vos propres 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

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

    Valeur par défaut : néant

    configuration Configuration de récupération 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 ce qu’il faut 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 mise à jour du ou des modèles de codable spécifiés.
    Valeurs renvoyées :
    • Réussite : modèle
    • Échec : NowDataError
      • accessToken(AccessTokenProviderError)
        • AccessTokenProviderError: code ou message d’erreur du fournisseur du jeton d’accès.
          • accessTokenRetrievalFailed
          • userSessionError(_ error : Erreur)

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

      • Validation de l’attachement

        Déclenché lorsqu’une pièce jointe échoue à la validation.

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

        Émise lorsqu’une demande renvoie une réponse inattendue

      • cannotDecodeModel(Erreur de décodage)
        • 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 : Tout, depuis : Chaîne)
        • type: type encapsulé à décoder à partir d’une chaîne.
        • from: chaîne à décoder selon le type spécifié.

        Déclenché lorsqu’une valeur encapsulée dans une chaîne ne peut pas être décodée à partir de JSON.

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

        Publié lorsqu’un modèle codable ne peut pas être codé au format JSON.

      • cannotParseResponse

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

      • URL invalide

        Émise 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 s’il s’agit d’une chaîne vide.

      • missingAttachmentMetadata

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

      • missingServiceConfiguration

        Lancé lorsqu’une configuration de service attendue est manquante.

      • missingSysID

        Déclenché lorsqu’un paramètre de sys_id attendu est manquant.

      • network(NetworkServiceError)
        • genericError(chaîne)
        • opérationannulée
        • serviceDisabled
        • serverError(Erreur)
        • systemError(Erreur)

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

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

    Remarque :
    Cette méthode a été déconseillée. Vous devez plutôt utiliser l’implémentation async/await de la méthode.
    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 vers et reçues de l’instance ServiceNow .
    Valeurs possibles :
    • par défaut : les encodeurs par défaut formatent les dates au format aaaa-MM-jj HH :mm :ss à l’aide des paramètres régionaux et du 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/l’encodage JSON.

      Utilisez cette énumération uniquement pour fournir vos propres 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

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

    Valeur par défaut : néant

    configuration Configuration de récupération 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 ce qu’il faut inclure dans les champs.

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

    Tableau 54. Renvoie
    Type Description
    AnyPublisher<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 ou message d’erreur du fournisseur du jeton d’accès.
        • accessTokenRetrievalFailed
        • userSessionError(_ error : Erreur)

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

    • Validation de l’attachement

      Déclenché lorsqu’une pièce jointe échoue à la validation.

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

      Émise lorsqu’une demande renvoie une réponse inattendue

    • cannotDecodeModel(Erreur de décodage)
      • 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 : Tout, depuis : Chaîne)
      • type: type encapsulé à décoder à partir d’une chaîne.
      • from: chaîne à décoder selon le type spécifié.

      Déclenché lorsqu’une valeur encapsulée dans une chaîne ne peut pas être décodée à partir de JSON.

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

      Publié lorsqu’un modèle codable ne peut pas être codé au format JSON.

    • cannotParseResponse

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

    • URL invalide

      Émise 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 s’il s’agit d’une chaîne vide.

    • missingAttachmentMetadata

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

    • missingServiceConfiguration

      Lancé lorsqu’une configuration de service attendue est manquante.

    • missingSysID

      Déclenché lorsqu’un paramètre de sys_id attendu est manquant.

    • network(NetworkServiceError)
      • genericError(chaîne)
      • opérationannulée
      • serviceDisabled
      • serverError(Erreur)
      • systemError(Erreur)

      Lancé 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) Levées asynchrones

    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 : paginateur<Modèle : décodable>(from tableName : Chaîne, chemin : Chaîne = Constants.resultPath, codeur : Codeur = .default, configuration : FetchConfiguration ? = nul) fonction. Vous pouvez également utiliser la fonction de commodité convertToRecords() pour transformer les données en objet NowRecord. L’exemple suivant montre comment convertir un éditeur pour émettre 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 qui sont générés automatiquement et 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 de l’instance ServiceNow .
    avec champs [FieldName : FieldValue] 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.
    options d’écriture Options d’écriture de champ Facultatif. Options de configuration à appliquer aux données en cours d’écriture dans l’enregistrement.

    Valeur par défaut : néant

    configuration Configuration de récupération 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 ce qu’il faut inclure dans les champs.

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

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

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

    • Validation de l’attachement

      Déclenché lorsqu’une pièce jointe échoue à la validation.

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

      Émise lorsqu’une demande renvoie une réponse inattendue

    • cannotDecodeModel(Erreur de décodage)
      • 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 : Tout, depuis : Chaîne)
      • type: type encapsulé à décoder à partir d’une chaîne.
      • from: chaîne à décoder selon le type spécifié.

      Déclenché lorsqu’une valeur encapsulée dans une chaîne ne peut pas être décodée à partir de JSON.

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

      Publié lorsqu’un modèle codable ne peut pas être codé au format JSON.

    • cannotParseResponse

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

    • URL invalide

      Émise 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 s’il s’agit d’une chaîne vide.

    • missingAttachmentMetadata

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

    • missingServiceConfiguration

      Lancé lorsqu’une configuration de service attendue est manquante.

    • missingSysID

      Déclenché lorsqu’un paramètre de sys_id attendu est manquant.

    • network(NetworkServiceError)
      • genericError(chaîne)
      • opérationannulée
      • serviceDisabled
      • serverError(Erreur)
      • systemError(Erreur)

      Lancé 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, dans tableName : chaîne, avec champs : [FieldName : FieldValue], writeOptions : FieldWriteOptions ? = nil, configuration : FieldReadConfiguration ? = nil, complétion : @escaping (Result<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 de retour dans un modèle codable personnalisé ou vous pouvez utiliser la NowTableService : paginateur<Modèle : décodable>(from tableName : Chaîne, chemin : Chaîne = Constants.resultPath, codeur : Codeur = .default, configuration : FetchConfiguration ? = nul) fonction à la place. Vous pouvez également utiliser la fonction de commodité convertToRecords() pour transformer les données en objet NowRecord. L’exemple suivant montre comment convertir un éditeur pour émettre 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 qui sont générés automatiquement et 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 de l’instance ServiceNow .
    avec champs [FieldName : FieldValue] 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.
    options d’écriture Options d’écriture de champ Facultatif. Options de configuration à appliquer aux données en cours d’écriture dans l’enregistrement.

    Valeur par défaut : néant

    configuration Configuration de récupération 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 ce qu’il faut inclure dans les champs.

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

    achèvement @escaping (résultat<données, NowDataError>) Gestionnaire d’achèvement à exécuter après avoir récupéré les enregistrements.
    Valeurs renvoyées :
    • Réussite : données - Enregistrements demandés
    • Erreur : NowDataError
      • accessToken(AccessTokenProviderError)
        • AccessTokenProviderError: code ou message d’erreur du fournisseur du jeton d’accès.
          • accessTokenRetrievalFailed
          • userSessionError(_ error : Erreur)

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

      • Validation de l’attachement

        Déclenché lorsqu’une pièce jointe échoue à la validation.

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

        Émise lorsqu’une demande renvoie une réponse inattendue

      • cannotDecodeModel(Erreur de décodage)
        • 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 : Tout, depuis : Chaîne)
        • type: type encapsulé à décoder à partir d’une chaîne.
        • from: chaîne à décoder selon le type spécifié.

        Déclenché lorsqu’une valeur encapsulée dans une chaîne ne peut pas être décodée à partir de JSON.

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

        Publié lorsqu’un modèle codable ne peut pas être codé au format JSON.

      • cannotParseResponse

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

      • URL invalide

        Émise 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 s’il s’agit d’une chaîne vide.

      • missingAttachmentMetadata

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

      • missingServiceConfiguration

        Lancé lorsqu’une configuration de service attendue est manquante.

      • missingSysID

        Déclenché lorsqu’un paramètre de sys_id attendu est manquant.

      • network(NetworkServiceError)
        • genericError(chaîne)
        • opérationannulée
        • serviceDisabled
        • serverError(Erreur)
        • systemError(Erreur)

        Lancé 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 plutôt utiliser l’implémentation async/await de la méthode.
    Le publisher émet des données que vous pouvez décoder dans un modèle codable personnalisé, ou vous pouvez également utiliser la NowTableService : paginateur<Modèle : décodable>(from tableName : Chaîne, chemin : Chaîne = Constants.resultPath, codeur : Codeur = .default, configuration : FetchConfiguration ? = nul) fonction. Vous pouvez également utiliser la fonction de commodité convertToRecords() pour transformer les données en objet NowRecord. L’exemple suivant montre comment convertir un éditeur pour émettre 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 qui sont générés automatiquement et 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 de l’instance ServiceNow .
    avec champs [FieldName : FieldValue] 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.
    options d’écriture Options d’écriture de champ Facultatif. Options de configuration à appliquer aux données en cours d’écriture dans l’enregistrement.

    Valeur par défaut : néant

    configuration Configuration de récupération 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 ce qu’il faut inclure dans les champs.

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

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

    Échec : NowDataError

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

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

    • Validation de l’attachement

      Déclenché lorsqu’une pièce jointe échoue à la validation.

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

      Émise lorsqu’une demande renvoie une réponse inattendue

    • cannotDecodeModel(Erreur de décodage)
      • 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 : Tout, depuis : Chaîne)
      • type: type encapsulé à décoder à partir d’une chaîne.
      • from: chaîne à décoder selon le type spécifié.

      Déclenché lorsqu’une valeur encapsulée dans une chaîne ne peut pas être décodée à partir de JSON.

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

      Publié lorsqu’un modèle codable ne peut pas être codé au format JSON.

    • cannotParseResponse

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

    • URL invalide

      Émise 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 s’il s’agit d’une chaîne vide.

    • missingAttachmentMetadata

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

    • missingServiceConfiguration

      Lancé lorsqu’une configuration de service attendue est manquante.

    • missingSysID

      Déclenché lorsqu’un paramètre de sys_id attendu est manquant.

    • network(NetworkServiceError)
      • genericError(chaîne)
      • opérationannulée
      • serviceDisabled
      • serverError(Erreur)
      • systemError(Erreur)

      Lancé 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 dans le modèle de votre choix.

    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)