Configurer les données de résultats de retour

  • Rversion finale: Australia
  • Mis à jour 12 mars 2026
  • 3 minutes de lecture
  • Dans le Mobile SDK, lorsque vous interagissez avec les données d’une ServiceNow instance via un point de terminaison REST, vous pouvez configurer les données renvoyées dans les résultats renvoyés.

    Vous configurez les données à renvoyer à l’aide de la structure FetchConfiguration . Cette structure vous permet de configurer :
    • Enregistrements spécifiques à renvoyer à partir d’une table.
    • Champs spécifiques à renvoyer à partir des enregistrements.
    • Nombre d’enregistrements à renvoyer.
    Remarque :
    En règle générale, vous souhaitez utiliser la même FetchConfiguration pour toutes vos opérations CRUD pour un certain type de modèle, car elle détermine les champs renvoyés. Il doit au moins correspondre aux propriétés requises sur votre modèle, sinon le décodage JSON échouera.

    Configuration des enregistrements spécifiques à renvoyer

    La structure Filtre d’un appel FetchConfiguration vous permet de filtrer et de trier les enregistrements extraits d’une ServiceNow instance et renvoyés dans les résultats de retour à partir d’un point de terminaison REST. Ce filtre est transmis dans le sysparm_query paramètre du point de terminaison de l’API REST. Pour plus d’informations, consultez l’API de table.

    Vous pouvez initialiser la structure du filtre de quatre manières différentes en fonction des capacités de filtrage souhaitées :
    1. Filtrer par requête codée requête codée. Ce type de filtre vous permet de transmettre une requête codée qui est appliquée aux enregistrements de la table spécifiée.
      Par exemple, l’appel suivant renvoie uniquement les enregistrements qui sont actifs et dont le champ Description courte contient le mot « cassé » :
      Filter(query: "active=true^short_descriptionLIKEbroken"

      Pour utiliser ce type de filtrage, initialisez la structure du filtre à l’aide de la Filtre : init(query : String, queryCategory : String ? = nil) fonction.

    2. Filtrer par critères. Ce filtre vous permet de filtrer en fonction d’un ou de plusieurs critères de filtre qui sont OU ensemble.
      Par exemple, un responsable a un employé Abel Tuter qui est en PTO. Ils veulent savoir s’il existe des incidents actifs qui ne sont affectés à personne ou affectés à Abel Tuter afin de pouvoir les affecter ou les réaffecter. Ils veulent également voir dans cette même liste tous les incidents qui ont une escalade élevée ou en retard afin de pouvoir également les traiter. L’exemple suivant montre comment créer les filtres nécessaires pour obtenir ces données :
      let activeIncidents = Condition.boolean(field: "active", .is(true))
      
      let assignedToEmpty = Condition.string(field: "assigned_to", .isEmpty) 
      
      let assignedToAbel = Condition.string(field: "assigned_to", .is("Abel Tuter")) 
      
      let assignedToAbelOrEmpty = CompoundCondition.or([assignedToEmpty, assignedToAbel]) 
      
      let needToReassign = Criteria(conditions: [activeIncidents, assignedToAbelOrEmpty])
      
      let highEscelations = Condition.string(field: "escalation", .is("2"))
      
      let overdueEscelations = Condition.string(field: "escalation", .is("3"))
      
      let highORoverdueEscelations = CompoundCondition.or([highEscelations, overdueEscelations]) 
      
      let needToHandleEscalation = Criteria(condition: highOrOverdueEscelations) 
      
      let myPrioritiesForTodayFilter = Filter(criteria: [needToReassign, needToHandleEscalation])
      
      

      Pour utiliser ce type de filtrage, initialisez la structure du filtre à l’aide de la Filter : init(criteria criteriaList : [Criteria], sortBy : [Sort] ? = nil, queryCategory : String ? = nil) fonction.

    3. Filtrer par mots clés et conditions. Ce filtre vous permet de filtrer les enregistrements en fonction de mots clés spécifiques et de conditions qui sont ensemble.

      Par exemple, les filtres suivants répertorient tous les enregistrements qui contiennent le mot clé « iOS13 ou iOS 14 » et qui remplissent la condition spécifiée, triés par testField.

      testKeywordsAndConditionsAndSort() {
        let keywords = "iOS 13 | iOS 14"
        let conditionA = Condition.boolean(field: testField, .is(true))
        let conditionB = Condition.boolean(field: testField2, .is(false))
        let sortA = Sort.asc(testField)
        let filter = Filter(keywords: keywords, conditions: [conditionA, conditionB], sortBy: [sortA])
        
        XCTAssertEqual(filter.query, "123TEXTQUERY321=\(keywords)^\(conditionA.query)^\(conditionB.query)^EQ^\(sortA.query)")
      }

      Pour utiliser ce type de filtrage, initialisez la structure du filtre à l’aide de la Filter : init(mots-clés : Chaîne ? = nil, conditions : [Condition], sortBy : [Tri] ? = nil) fonction.

    4. Filtrer par conditions. Ce filtre vous permet de filtrer les enregistrements qui remplissent toutes les conditions spécifiées (ET ensemble).

      Par exemple, les filtres suivants concernent tous les enregistrements dont le champ Actif est « vrai » et dont la valeur de date est « aujourd’hui » ou toute date postérieure à aujourd’hui.

      // Where the record is active
      let condition1 = Condition.boolean(field: "active", .is(true))
      
      // AND the date value of the SLA due field is on "today" or any date after today.
      let condition2 = Condition.dateTime(field: "sla_due", .atOrAfter(0, .daysAgoStart))
      
      let filter = Filter(conditions: [condition1, condition2])

      Pour utiliser ce type de filtrage, initialisez la structure du filtre à l’aide de la Filter - init(conditions : [QueryProviding], sorts : [Sort] ? = nil) fonction.

    Configuration des champs spécifiques à retourner

    L’appel Structure de FieldReadConfiguration : iOS à la méthode FetchConfiguration vous permet de configurer les champs à renvoyer dans les résultats renvoyés. En outre, vous pouvez configurer le format/contenu des champs renvoyés comme suit :
    • Valeurs d’affichage
    • Valeurs réelles
    • Exclure les liens de référence
    Remarque :
    La configuration des champs pour qu’ils correspondent à un modèle codable peut réduire la charge utile renvoyée par l’instance ServiceNow , améliorant ainsi l’efficacité du réseau en réduisant le transfert de données.