Trace 10 - Import BOAMP et mapping marchés publics
Récupération et pré-remplissage de données de marchés publics.
Exploitation et traitement de données volumineuses
Compréhension des besoins métier et utilisateurs
Adaptation à un environnement logiciel existant
Trace 10
Pré-remplir un marché à partir de données BOAMP
Trace 10 - Interface où l'utilisateur peut importer des données de marché public.
La Trace 10 ci-contre est une copie d'écran de l'interface d'import
BOAMP. Elle correspond au nouveau sujet commencé pendant le stage : faciliter la création de marchés et fournisseurs pour les écoles en récupérant des informations déjà disponibles sur une source officielle française. Dans la Trace 10, avant de penser uniquement à l'appel technique, il fallait identifier ce qui doit être automatisé.
Les zones de l'interface représentent le lien entre une donnée externe et le formulaire de l'application. L'objectif n'était pas seulement d'appeler une API, mais de pré-remplir correctement les champs utiles, de réutiliser les valeurs existantes quand elles existent déjà et de préparer la création des valeurs manquantes quand c'est nécessaire. Cela revient à transformer une source externe en champs applicatifs tout en respectant les contraintes du formulaire existant. C'est aussi un travail d'ajouter une fonctionnalité dans une application existante, car l'import doit suivre les listes et les usages déjà en place.
- Création d'une route Symfony pour récupérer les données d'un marché.
- Mapping des champs simples : libellé, numéro, description, dates, critères.
- Préparation du mapping plus complexe : CPV, type de marché, procédure, regroupement et création si inexistant.
Mapping préparé
| Donnée BOAMP | Champ application | Traitement |
|---|---|---|
| objet | Libellé | auto-rempli |
| idweb | Numéro du marché | auto-rempli |
| description / OBJET_COMPLET | Description | auto-rempli |
| critères d'attribution | Description du choix de l'offre | auto-rempli si trouvé |
| dateparution | Date de publication | auto-rempli |
| datelimitereponse | Date limite de dépôt | auto-rempli |
| AwardDate | Date d'attribution | auto-rempli si trouvé |
| CPV | Code CPV | réutilisé ou créé |
| type_marche | Type de marché | réutilisé ou créé |
| procedure_libellé | Procédure | réutilisé ou créé |
| nomacheteur / organisme | Regroupement | réutilisé ou créé |
| type_marche = SERVICES | Marché de service | auto-rempli |
La première étape a été d'identifier les champs simples, comme le numéro du marché, le libellé, les dates ou la description. Ces champs peuvent être pré-remplis assez directement. La difficulté arrive ensuite avec les champs qui dépendent de listes métier, comme le CPV, le type de marché, la procédure ou le regroupement. Pour ces données, il ne suffit pas de copier une valeur : il faut vérifier si elle existe déjà dans l'application, la réutiliser si possible ou prévoir sa création.
L'import doit respecter les listes déjà présentes, réutiliser les codes existants et créer les données manquantes seulement quand c'est nécessaire. La fonctionnalité doit donc s'intégrer dans les usages et les données déjà en place.