Lire un enregistrement

La syntaxe permettant de récupérer un enregistrement avec un identifiant unique est la suivante:

curl --insecure --silent \
     -H "Authorization: Bearer <bearer_token>" \
     'https://<host>/SNV4SRV-ws-war/api/v1/<taskId>/<recordId>'

Si le code de retour HTTP est 200, la réponse sera structurée comme ceci:

{
  "metadata": {
    "apiVersion": "1.0",
    "taskId": "<taskId>",
    "taskType": "<type>",
    "domainId": "<domain>"
  },
  "data": { ... }
}

Selon le type de tâche (taskType), le contenu de la clé data prend différentes formes.

Tâches simples (taskType = B)

Dans ce cas, l’objet représenté contient les champs de l’enregistrement. Ce sont les mêmes données qui sont présentes dans la liste des enregistrements. Voici un exemple avec la tâche GTP40:

curl --insecure --silent \
     -H "Authorization: Bearer <bearer_token>" \
     'https://<host>/SNV4SRV-ws-war/api/v1/GTP40/1638B5E4080-180-D05099-56F1A1'

La structure retournée est la suivante:

{
  "metadata": {
    "apiVersion": "1.0",
    "taskId": "GTP40",
    "taskType": "B",
    "domainId": "X01"
  },
  "data": {
    "$recordId": "1638B5E4080-180-D05099-56F1A1",
    "STRUCTURE": "S04-AGR",
    "STRUCTURELABEL": "Agriculture",
    "COLLABORATEUR": "AA-90-SUPERADMIN",
    "COLLABORATEURLABEL": "Superadmins",
    "DOSSIER": "924265",
    "DOSSIERLABEL": "Talon Godard",
    "NO_RECO": "1638B5E4080-180-D05099-56F1A1",
    "DEBUT": "2018-05-23T07:00:00+0100",
    "FIN": "2018-05-23T17:00:00+0100",
    "REALIZED": {
      "key": "3",
      "value": "Réel seulement"
    },
    "TYPE": "A.VACANCES",
    "TYPELABEL": "Vacances",
    "ISVALIDATED": {
      "key": "1",
      "value": "Pas encore regardé"
    },
    "PRIORITY": {
      "key": "3",
      "value": "Normal (Saisie manuelle)"
    },
    "EVTID": "1638B5E4080-180-D05099-56F1A1",
    "PERGID": 1,
    "PERWREC": 0,
    "PERTYP": {
      "key": "2",
      "value": "Hebdomadaire"
    },
    "PEREND": "2018-05-25T23:59:59+0100",
    "PERWMON": true,
    "PERWTUE": true,
    "PERWWED": true,
    "PERWTHU": true,
    "PERWFRI": true,
    "PERWSAT": false,
    "PERWSUN": false
  }
}

Tâches de dossier (taskType = R)

Pour ces tâches, la structure est scindée en 2:

  • l’en-tête (qui est la seule partie retournée lors de la liste des enregistrements).
  • les pages du dossier.
Info:

Le terme page dans un dossier n’a aucun lien avec la pagination, il s’agit simplement de données propres à un thème qui sont regroupées ensemble.

Dans le cadre d’un ADR02, la structure est la suivante:

curl --insecure --silent \
     -H "Authorization: Bearer <bearer_token>" \
     'https://<host>/SNV4SRV-ws-war/api/v1/ADR02/111212'
{
  "metadata": {
    "apiVersion": "1.0",
    "taskId": "ADR02",
    "taskType": "R",
    "domainId": "X01"
  },
  "data": {
    "$recordId": "111212",
    "header": {
      "HEADER_LIEN_ADRESSE": "1439205893307",
      "HEADER_LIEN_ADRESSE_NA": "Wiatt Tauxe",
      "DOSSIER_ID": "111212",
      "SECUSOC1": "756.1241.7797.26",
      "DOSSIER_LABEL": "Wiatt Tauxe",
      "DOSSIER_DOMKEY": "Vufflens-Le-Chateau"
    },
    "pages": {
      ...
    }
  }
}

Paramètres

Paramètres Type Description
modifiedSince Date Ne récupère que les pages qui ont été modifiées après cette date.

Voici un exemple d’utilisation de ce paramètre:

curl --insecure --silent \
     -H "Authorization: Bearer <bearer_token>" \
     'https://<host>/SNV4SRV-ws-war/api/v1/ADR02/111212?modifiedSince=2022-01-01T00:00:00-0100'

Gestion des pages

Les pages constituent les données de base du dossier. Elles peuvent être uniques ou multiples.

La clé pages contient un identifiant pour chaque type de page. Selon son type, l’objet sera:

  • si la page est unique (une seule occurrence par enregistrement), la liste des champs de la page.
  • si la page est multiple, une liste contenant les différentes occurrences.

Pages uniques

Dans l’exemple ci-dessous, la page ASSURANCES est unique. La clé contient les champs de la page.

{
  "metadata": { ... }
  "data": {
    "$recordId": "111212",
    "header": { ... },
    "pages": {
      "ASSURANCES": {
        "FM_PAGE_CREATION_DATE": "2015-11-25T09:20:36+0100",
        "FM_PAGE_NUMBER": 1,
        "FM_PAGE_VERSION": 0,
        "NOMCAISSE": "Groupe Mutuel",
        "NOASSURE1": "365483A3",
        "MONTANTPRIMEBASE": 361.3,
        "NOMASSURANCERC": "Générali",
        "NOASSURERC": "6758494G",
        "DOSSIERSUNET": false
      }
    }
  }
}

Pages multiples

Ici, la page PARENT est multiple. La clé contient un tableau d’objets.

{
  "metadata": { ... },
  "data": {
    "$recordId": "111212",
    "header": { ... },
    "pages": {
      "PARENT": [
        {
          "FM_PAGE_CREATION_DATE": "2015-11-25T09:23:34+0100",
          "FM_PAGE_NUMBER": 1,
          "FM_PAGE_VERSION": 0,
          "TITREADRESSE": {
            "key": "1",
            "value": "Madame"
          },
          "NOMPRENOM": "Jeanson Géraldine",
          "RUE": "Rue de Corbières 66",
          "NPVILLE": "1630",
          "NPVILLE_NA": "Bulle",
          "CANTON": {
            "key": "FR",
            "value": "Fribourg"
          },
          "PAYS": {
            "key": "CHE",
            "value": "Suisse"
          },
          "TITRECOURRIER": {
            "key": "2",
            "value": "Madame"
          },
          "LANGUEMATERNELLE": {
            "key": "FR",
            "value": "Français"
          },
          "NATIONALITE": {
            "key": "CHE",
            "value": "Suisse"
          },
          "GARDE": {
            "key": "0",
            "value": "Non"
          }
        }
      ]
    }
  }
}

Champs récurrents

Dans les pages, les champs suivants sont présents:

ID Type Description
FM_PAGE_CREATION_DATE Date Date de création de la page. Seul ce champ est assuré d’être toujours présent dans toutes les pages.
FM_PAGE_VERSION Integer Version de la page. Cette valeur est incrémentée à chaque modification. Il se peut que ce champ soit absent dans des pages datant d’une ancienne version de SAINet (<4.8).
FM_PAGE_NUMBER Integer Numéro d’occurrence de la page. Cette valeur est unique à travers les mêmes pages d’un même dossier. Les valeurs ne sont pas forcément consécutives.

Ces champs sont généralement présents dans les pages multiples datées:

ID Type Description
FM_PAGE_START_DATE Date Date de début de validité de la page.
FM_PAGE_END_DATE Date Date de fin de validité de la page.

Autres champs de page notables:

ID Type Description
FM_PAGE_MODIFICATION_DATE Date Date de dernière modification de la page.
FM_PAGE_MODIFICATION_BY String Utilisateur ayant effectué la dernière modification.
FM_PAGE_CEATION_BY String Utilisateur ayant créé la première version de la page.