Aller au contenu

Configurer un service fichier CSV

Nous allons configurer un service externe de type CSV. Nous allons utiliser le fichier /var/www/mdf-api/referential/service.csv. Le fichier est de la forme :

fournisseur;TVA
A Soft Software;FRXX123456789
Adirrp;FRXX123456790
Agile Infomedia;FRXX123456791
Aluchepips;FRXX123456792
Apixum;FRXX123456793

Le séparateur est ;. La première ligne contient le nom des colonnes du csv (ici fournisseur et TVA).

L'encodage est en UTF-8 (sans BOM)

Configuration de l'agent délégué

Chaque service externe a besoin d'un agent délégué pour fonctionner. Un service CSV n'a pas besoin de paramétrage spécifique, un agent délégué quelconque suffit.

Configuration du service

Configuration via API

Nécessite au préalable le droit de création et de modification sur le service "csvService".

Attribuer les droits (création et mise à jour)

POST users/<UID>/set-access-controls

{
    "agent":"/<delegate-agents>/<id de l'agent délégué>",
    "accessRights":["create","update"],
    "targetEntityType":"csvService"
}
Créer le service

POST csv-services

identifier : identifiant métier du service à créer

agent : UID de l'agent autorisé à utiliser le service

searchableFields : champs sur lesquels la recherche est activée

sortableFields : champs sur lesquels le tri est activé

responseFormat : mapping entre le nom des champs du fichier et ceux de la réponse souhaitée

(Nom du champ à utiliser pour la réponse : Nom du champ dans le fichier csv)

filePath : chemin d'accès du fichier csv

separator : caractère de séparation des champs du fichier csv

{
  "identifier": "csv-service",
  "agent": "/<delegate-agents>/<id de l'agent délégué à utiliser>",
  "searchableFields": ["fournisseur"],
  "sortableFields": ["fournisseur"],
  "responseFormat": {
    "fournisseur": "fournisseur",
    "tva": "TVA"
  },
  "filePath": "/var/www/mdf-api/referential/service.csv",
  "separator": ";"
}

Pour modifier le service si besoin :

PUT csv-services/<ID du service>

(Obtenir l'identifiant le cas échéant via la commande GET csv-services)

Configuration via fixtures

Mdm\ExternalService\Domain\CsvService:
  csv-service:
    identifier: 'csv-service'
    agent: '@csv-mdm'
    owner: '@bernard_blier->id'
    searchableFields: ['fournisseur']
    sortableFields: ['fournisseur']
    responseFormat: {
      "fournisseur": "fournisseur",
      "tva": "TVA"
    }
    filePath: '/var/www/mdf-api/referential/service.csv'
    separator: ";"

Pour plus d'information sur la structure du service, cliquer ici

Utiliser l'API pour la recherche

On peut maintenant rechercher dans le service CSV en faisant un appel à l'API :

GET /external-services/csv-service/search?founisseur=soft

Réponse :

[
  {
    "fournisseur": "A Soft Software",
    "tva": "FRXX123456789"
  }
]

Utiliser le service dans un modèle d'attributs

Il est possible maintenant d'utiliser ce service dans un modèle d'attributs, pour cela suivre la documentation disponible ici