CLA DMS / IO

Projet : CATALOGUE E-T-A-I
Cahier de Liaison Applicative(CLA)
INTERFACE APPLI. PARTENAIRE (ÉDITEUR)

SOMMAIRE

1. Introduction

1.1. Applications concerné

1.2. Objectifs

1.3. Contraintes

2. Engagement des parties    

2.1. Initialisation    

2.2. Mise à disposition réciproque d’environnements de test  

3. Management  

3.1. Planning    

3.2. Modalités de réception    

3.3. Avancement des travaux et communications    

4. Spécification générale    

4.1. Principes / impacts de l’interface    

4.2. Besoins sûreté-sécurité de la liaison    

5. Informations techniques globales XAT2V2    

5.1. Format d’échange XAT2V2    

5.2. Gestion des identifiants XAT2V2    

5.3. Message de réponse    

5.4. Anomalies bloquantes XAT2V2    

5.5. Alertes XAT2V2    

6. Paramétrage de l’interface dans Catalogue E-T-A-I    

7. Description du modèle XAT2V2 pour le service gestion de devis   

7.1. Settings  

7.2. Variante  

7.3. Devis   

8. Service de récupération de variantes 

8.1. Description détaillée de l’interface  

8.2. Cas d’utilisation  

8.3. Description des étapes XAT2V2  

8.4. Gestion des anomalies  

9. Service d’édition de devis   

9.1. Description détaillée de l’interface  

9.2. Cas d’utilisation 

9.3. Description des étapes XAT2V2 

9.4. Gestion des anomalies  

10. Service d’ouverture de la page d’accueil de Catalogue E-T-A-I   

10.1. Description détaillée de l’interface  

10.2. Description des étapes XAT2V2  

10.3. Gestion des anomalies  

11. Demande des prix et stocks 

11.1. Description détaillée de l’interface 

11.2. Requête XAT2V2 : Catalogue E-T-A-I -> Application partenaire  

11.3. Notification de Application partenaire (seulement accès par redirection)

11.4. Envoi du verbe getData (seulement accès par redirection) 

11.5. Réponse XAT2V2 : Application partenaire -> Catalogue E-T-A-I  

11.6. Gestion des anomalies 

12. Service d’envoi d’un panier à Application partenaire  

12.1. Description 

12.2. Requête XAT2V2 : Catalogue E-T-A-I -> Application partenaire 

12.3. Notification de Application partenaire (seulement accès par redirection) 

12.4. Envoi du verbe getData (seulement accès par redirection)   

12.5. Réponse XAT2V2 : Application partenaire -> Catalogue E-T-A-I  

12.6. Gestion des anomalies  

13. Service de suppression d’une session  

13.1. Description  

13.2. Requête XAT2V2 : Application partenaire -> Catalogue E-T-A-I  

13.3. Réponse XAT2V2 : Catalogue E-T-A-I -> Application partenaire  

13.4. Gestion des anomalies  

14. Service d’ajout d’éléments sans devis Catalogue E-T-A-I  

14.1. Description détaillée de l’interface 

14.2. Cas d’utilisation  

14.3. Description des étapes XAT2V2 

15. Service de recuperation des franco de port 

15.1. Description  

15.2. Requête XAT2V2 : Catalogue E-T-A-I -> Application partenaire 

15.3. Réponse XAT2V2 : Application partenaire -> Catalogue E-T-A-I 

15.4. Gestion des anomalies 

 

1. Introduction

1.1. Applications concernées

1.1.1. Application partenaire

Définir succinctement l’application partenaire de la liaison (généralement le côté « client » de l’interface), rappeler ses objectifs et indiquer les acteurs impliqués par l’application.

Parties prenantes de Application partenaire :

Rôle

Nom

Service

Maître d’ouvrage

Maître d’œuvre

1.1.2. Catalogue E-T-A-I

Catalogue E-T-A-I est une application utilisée par les réparateurs automobile. Elle permet entre autres d’identifier un véhicule, de proposer des catalogues de pièces adaptées afin d’aider à la réparation et de créer un devis de réparation pour ce véhicule, que l’on peut associer à un client. C’est une application hébergée en ligne.

Parties prenantes de Catalogue E-T-A-I :

Rôle

Nom

Service

Maître d’ouvrage

Aurélien VIRIEUX Grands comptes

Maître d’œuvre

Patrick VALET DSI

Maître d’œuvre XAT2V2

Stéphane RAOUL DSI

1.2. Objectifs

L’objectif de l’interface est de pouvoir effectuer les actions suivantes :

  • Identification de véhicule
  • Création/Edition d’un devis avec Catalogue E-T-A-I depuis Application partenaire et de le récupérer dans le logiciel de gestion. Le devis sera effectué en utilisant les données transmises par Application partenaire (taux de main d’œuvre, TVA, remises, véhicule, etc.)
  • Ouverture du navigateur de l’utilisateur sur la page d’accueil de Catalogue E-T-A-I.
  • Interrogation d’un service chez Application partenaire pour récupérer les prix et stocks d’un ensemble de pièces
  • Envoi d’un panier à Application partenaire avec une liste de pièces, ainsi que la quantité voulue par chacune de ces pièces.

1.3. Contraintes

Le transport des données sera assuré par l’intermédiaire du protocole XAT2V2 (propriété d’E-T-A-I).

2. Engagement des parties

Le but de l’établissement de ce contrat de liaison applicative est de garantir aux clients utilisateurs un niveau de service optimal sur la partie interface des deux applications, ceci par un engagement formel à maintenir cette interface dans un état de bon fonctionnement. Cet engagement est à prendre par les MOE et chefs de projet Informatique de ces applications.

2.1. Initialisation

2.1.1. Initialisation et mises à jour du CLA

  • C’est le Maître d’œuvre de l’application fournisseur (Catalogue E-T-A-I) qui est responsable de l’initialisation, ainsi que des mises à jour du CLA.
  • Le CLA doit être validé et signé par les différents acteurs concernés avant la mise en opérationnel de l’interface (cf. Liste des signataires en page de garde du présent document).
  • Le CLA peut être révisé à la demande de l’un des signataires, il est alors soumis à un nouveau processus complet de validation et de signature et à une rediffusion du contrat.
  • Le Maître d’œuvre de l’application fournisseur (Catalogue E-T-A-I) doit informer son homologue client de toute opération ponctuelle (mise à jour des données, modification du format d’envoi) et ceci au plus tard lorsque les spécifications détaillées sont figées.

2.1.2. Suivi de la mise en œuvre du CLA et actions

Tout retard dans les délais prévus est signalé à l’autre projet dès lors que ce retard a une conséquence sur le projet communicant. Des solutions dégradées sont alors mises en place dans les plus brefs délais si ces dernières permettent de débloquer les tâches du projet receveur.

Application fournisseur (Catalogue E-T-A-I)

Application cliente (Application partenaire)

Le MOA doit :

  • valider les risques sûreté et sécurité induits par l’évolution et partager les mêmes besoins sûreté sécurité
    • prévenir au plus tôt le Responsable le MOA de l’application cliente de toute évolution dans la structure du flux renvoyé
    • tenir compte des contraintes de l’application cliente pour la planification de ces modifications
  • assurer la recette fonctionnelle de toute évolution dans les délais négociés

Le MOA doit :

  • valider les risques sûreté et sécurité induits par l’évolution et partager les mêmes besoins sûreté sécurité
    • informer au plus tôt le MOA de l’application fournisseur de son intention d’utiliser de nouvelles données et à en négocier les modalités d’utilisation à l’initialisation et lors de modification de celles-ci.
    • adapter sa planification de prise en compte des modifications aux contraintes de recette et de mise en opérationnel de l’application fournisseur.
    • assurer la recette fonctionnelle des modifications dans les délais négociés
    • donner l’accord de mise en opérationnel après la recette fonctionnelle
  • informer le MOA de l’application fournisseur si l’interface devient inutile

Le MOE doit :

  • prendre en compte les besoins sûreté sécurité en décidant des mesures sûreté sécurité ad’hoc cohérentes
    • prévoir une recette technique des modifications
    • prévoir un serveur de test avec des accès pour le client afin de valider l’interface
    • assurer la coordination de la mise en opérationnel des modifications avec l’accord du MOA de l’application cliente
  • informer son homologue client de toute opération ponctuelle sur les entités communes (mise à jour de masse, purges, etc.…)

Le MOE doit :

  • prendre en compte les besoins sûreté sécurité en décidant des mesures sûreté sécurité ad hoc cohérentes
    • réaliser les modifications dans les délais négociés en accord avec le MOA
    • faire la recette technique.
    • prévoir un serveur de test avec des accès pour le fournisseur afin de valider l’interface
  • assurer la mise en opérationnel en relation avec l’application fournisseur

2.2. Mise à disposition réciproque d’environnements de tests

Afin d’assurer la pérennité de l’interface pour chaque montée en version d’un côté ou d’un autre, de faire des démonstrations commerciales de l’interface, ou encore pour simuler un problème d’interface par la hotline, la mise à disposition réciproque d’un environnement de test est nécessaire et obligatoire.

E-T-A-I s’engage à mettre à disposition de ses partenaires un environnement de test sur un serveur dédié, à l’image du serveur de production. Un jeu complet d’accès sera laissé à disposition du partenaire (client garage/client distributeur/administrateur de groupe) afin de se placer exactement dans le contexte client.

En retour, E-T-A-I a la possibilité d’héberger en local les versions lourdes des applications partenaires. Pour les solutions SaaS, un accès online sera nécessaire.

3. Management

3.1. Planning

Présenter un planning de réalisation de la mise en opérationnelle de l’interface et des modes de fonctionnement des deux applications dans le contexte de cette interface. Ce planning doit montrer les événements liés aux obligations du client et du fournisseur : mise à disposition de matériels, avertissement de nouvelles spécifications pouvant impacter l’autre application, …

Tâche

Application partenaire

Catalogue E-T-A-I

Fin des développements

Fin 1er phase de test (application seule)

Phase de test avec Application partenaire

Phase de validation XAT2 V2

Phase de pilotage

3.2. Modalités de réception

Participants, responsabilités, formulaires de validation de la recette.

3.3. Avancement des travaux et communications

Pour les notes et comptes-rendus d’avancement : délais de diffusion, rédacteur, destinataires, modalités de validation.

Pour les réunions : périodicité, objet, ordre du jour, participants, rédaction du CR, responsable du suivi des actions à mener.

4. Spécification générale

4.1. Principes / impacts de l’interface

Préciser l’origine du besoin d’effectuer cette liaison. Indiquer les applications concernées, les fonctions impactées et les données manipulées. Un schéma aidera à clarifier les échanges. On peut s’appuyer sur un diagramme de contexte.


4.2. Besoins sûreté-sécurité de la liaison

Fréquence : À la demande, Temps réel, planifié, ….

Volumétrie : Nombre échanges / jour

Technologie : Protocole.

SI Fournisseur

SI Client

Enjeux / Commentaires

Catalogue E-T-A-I

Application partenaire

Disponibilité du SI

OUI/NON

OUI/NON

 Confidentialité du flux

OUI/NON

OUI/NON

 Intégrité du flux

OUI/NON

OUI/NON

 Traçabilité des accès

OUI/NON

OUI/NON

 Perte de flux admise

OUI/NON

OUI/NON

 Continuité de fonctionnement en cas de sinistre majeur flux

OUI/NON

OUI/NON

 

 

Application Client Stratégique

OUI/NON

Application Fournisseur Stratégique

OUI/NON

5. Informations techniques globales XAT2V2

5.1. Format d’échange XAT2V2

XAT2V2 utilise le xml.

Pour l’échange de messages, il faut utiliser la méthode prévue dans le protocole http qui est la méthode POST.

Le content-type du message doit être : Content-Type: application/xml; charset= »UTF-8″

Le contenu du message est directement le xml.

L’encoding indiqué dans le xml doit être UTF-8. C’est-à-dire : <?xml version= »1.0″ encoding= »UTF-8″ ?>

Le xml doit être encodé en UTF-8, conformément aux charset et encoding indiqués.

Le schéma XSD est disponible à l’adresse suivante : http://www.xat2.etai.fr/xat2/v2/xsd/xat2_v2_0.xsd

Avec sa documentation : http://www.xat2.etai.fr/xat2/v2/XSDoc/xat2_v2_0.html

5.2. Gestion des identifiants XAT2V2

Tous les services nécessitent de s’authentifier auprès du serveur, pour cela il faut transmettre dans le message XAT2V2 les données d’authentification dans un élément <session-context>.

Tableau 1 – Description des identifiants XAT2V2

XML

Commentaires

<?xml version=« 1.0 » encoding=« utf-8 » standalone=« no »?>
<xat2 xmlns=« http://xat2.etai.fr » version=« 2.0 »>
<session-context>

<application-id>{applicationId}</application-id>

<dms-login>{dmsLogin}</dms-login>

<user-shared-id>{userSharedId}</user-shared-id>

<garage-shared-id>{garageSharedId}</garage-shared-id>

<session-id>{sessionId}</session-id>

</session-context>

Élément nécessaire à tout message Xat2, le sessionContext permet d’identifier l’appelant :

soit par un quadruplet dms-login / user-shared-id / garage-shared-id / application-id,

soit grâce à un identifiant de session valide (session-id).

</xat2>

 

L’application-id : c’est l’identifiant unique de Application partenaire fourni par E-T-A-I. Chaque DMS en possède au moins deux, un de simulation et un de production.

Le dms-login : c’est l’identification d’une instance de Application partenaire au sein d’un garage.

Le garage-shared-id : c’est l’identification du garage.

Le user-shared-id : c’est l’identification de l’utilisateur au sein de Catalogue E-T-A-I. Cet ID est lié à un login Catalogue E-T-A-I.

Le session-id : c’est l’id d’une session établie avec le quadruplet application-id, dms-login, garage-shared-id et user-shared-id. Tant qu’une session est active, le quadruplet est facultatif, on peut ne passer que le session-id de la session active dans le session-context. Une session est désactivée par une requête deleteSession avec le session-id de la session à invalider, ou s’il ne s’est rien pas-sé pendant un certain temps avec cette session (timeout).

5.3. Message de réponse

La réponse retournée par le serveur XAT2V2 est un xml XAT2. Il doit être lu directement dans la réponse du POST effectué précédemment. Il faut maintenant vérifier si tout s’est bien passé au niveau communication et que la demande a bien été interprétée par l’application.

Tableau 2 – Accusé de réception XAT2V2

XML

Commentaires

<?xml version=« 1.0 » encoding=« utf-8 » standalone=« no »?>
<xat2 xmlns=« http://xat2.etai.fr » version=« 2.0 »>

<message-list>

<message>

<message-category>ack</message-category>

<user-descriptiondictionary=« Xat2:message »ref=« complete »/>

</message>

</message-list>

Le bon déroulement du service est signalé par un message de la liste indiquant un message-category ack et une classification de ref complete du dictionnaire Xat2:message

Dans le cas contraire, un problème est survenu.

</xat2>

5.4. Anomalies bloquantes XAT2V2

Lorsqu’un problème bloquant survient, le serveur XAT2V2 renvoie au client un message d’erreur.

Tableau 3 – Message d’erreur XAT2V2

XML

Commentaires

<?xml
version=« 1.0 »
encoding=« utf-8 »
standalone=« no »?>

<xat2
xmlns=« http://xat2.etai.fr » version=« 2.0 »>

 
<message-list>

<message>


<message-category>error</message-category>


<user-description
dictionary=« Xat2:message »


ref=« {errorCode} »/>


</message>


</message-list>

Une erreur technique est spécifiée par un message de message-category error et une classification du dictionnaire Xat2:message

{errorCode} peut prendre les valeurs de la colonne « Code d’erreur » du Tableau 4 – Erreurs bloquantes XAT2V2

</xat2>

 

 

Liste des erreurs du dictionnaire « Xat2:message » :

Tableau 4 – Erreurs bloquantes XAT2V2

Code d’erreur

Explication

Comportement attendu

invalidUser

L’identifiant de l’utilisateur n’a pas été reconnu. La session ne peut pas être ouverte.

Afficher le message d’erreur chez le demandeur de la session.

Il y a un problème de configuration du userSharedid.

Afficher le usersharedid qui doit être vérifié.

accessDenied

L’application utilisée n’est pas habilitée pour se connecter à l’application.

Afficher le message d’erreur chez le demandeur de la session.

unknownVersion

Version de travail demandée non implémentée dans le logiciel.

La communication n’est pas possible, il faut utiliser la version v2.0 du protocole.

invalidDMS

dms Login inconnu

La communication n’est pas possible, il faut utiliser des identifiants valides. C’est un problème de configuration.

invalidGarage

identifiant garage inconnu de l’application.

La communication n’est pas possible, il faut utiliser un garageID valide. C’est un problème de configuration.

unknownVerb

verbe inconnu

Le verbe utilisé n’est pas connu par Catalogue E-T-A-I. Celle-ci ne pourra donc pas réaliser l’action demandée. Afficher un message d’erreur à l’utilisateur.

parseException

Problème avec la structure du xml.

Un problème est survenu dans la structure du xml.

Afficher et loguer le xml incriminé.

Cela nécessite une analyse pour comprendre l’erreur.

impossible

L’application ne peut pas prendre en compte le message.

Soit le serveur n’arrive pas à répondre, soit un problème protocolaire est survenu.

applicationTimeout

L’application n’a pas répondu dans le temps imparti.

Il est possible de réessayer à nouveau un peu plus tard.

sessionTimeout

La session a expiré.

La session XAT2 a expiré, recréer une nouvelle session XAT2.

5.5. Alertes XAT2V2

Lorsqu’un problème non bloquant survient, le serveur XAT2V2 renvoie au client un message d’alerte.

Tableau 5 – Message d’alerte XAT2V2

XML

Commentaires

<?xml
version=« 1.0 »
encoding=« utf-8 »
standalone=« no »?>

<xat2
xmlns=« http://xat2.etai.fr » version=« 2.0 »>

 


<message-list>


<message>


<message-category>warning</message-category>


<user-description
dictionary=« Xat2:message »


ref=« {alertCode} »/>


</message>


</message-list>

Une alerte est spécifiée par un message de message-category warning et une classification du dictionnaire Xat2:message

{alertCode} peut prendre les valeurs de la colonne « Code d’erreur » du Tableau 6 – Alertes XAT2V2

</xat2>

 

Liste des alertes du dictionnaire « Xat2:message » :

Tableau 6 – Alertes XAT2V2

Code d’erreur

Explication

Comportement attendu

unknownTerm

Un terme utilisé dans le shuttle n’est pas connu dans le dictionnaire cité en référence.

Affichage d’un message d’alerte simplifié dans l’application demandeuse et log des messages.

unknownDictionary

dictionnaire inconnu.

Un dictionnaire utilisé par Application partenaire est inconnu.

Cela signifie qu’une donnée n’a pas pu être interprétée par Catalogue E-T-A-I.

Il faut déterminer si c’est un problème bloquant ou si c’est juste une alerte.

Il faut loguer le problème et le xml.

6. Paramétrage de l’interface dans Catalogue E-T-A-I

Paramétrer l’interface dans Catalogue E-T-A-I permet d’obtenir les identifiants de connexion : dmsLogin, garageSharedID et userSharedID.

Pour aller sur la page de configuration, il faut se loguer dans Catalogue E-T-A-I puis taper l’URL suivante dans le navigateur : [site_NOM_APPLICATION]/Administration

Remplacer [site_NOM_APPLICATION] par l’URL d’appel de Catalogue E-T-A-I

Vous arriverez sur cette page :

Cliquer sur le lien « Configurer » situé à côté de « Multi-interfaçage »

Vous arriverez sur une page listant les interfaces, il faudra maintenant ajouter ou configurer celle qui vous intéresse.

Il faut cliquer sur pour créer une nouvelle configuration d’interface, ensuite il faudra entrer les paramètres de l’interface :

En haut de la page est listé un récapitulatif des IDs:

 

Récapitulatif des IDs

NB: l’application ID n’est pas visible ici, car cet identifiant est confidentiel et unique. Cet identifiant est fourni par E-T-A-I et est unique par Application partenaire. Ne pas confondre le DMS Login avec l’application ID.

7. Description du modèle XAT2V2 pour les services

Ci-dessous, une description du modèle XAT2V2.

7.1. Settings

7.1.1. Taux de main d’œuvre

Tableau 7 – Déclaration d’un taux de main d’œuvre

XML

Commentaires

<?xml
version=« 1.0 »
encoding=« utf-8 »
standalone=« no »?>

<xat2
xmlns=« http://xat2.etai.fr » version=« 2.0 »>

<shuttle>

<settings>

<labor-list>

 


<labor-cost-rate
internal-id=« {idValue} »>


<breakdown-list>


<classification
dictionary=« ETAI:sector »



ref=« {sectorValue} »/>


<classification
dictionary=« ETAI:level »



ref=« {levelValue} »/>


</breakdown-list>


<value>


<amount>{amountValue}</amount>


</value>


</labor-cost-rate>

Taux de main d’œuvre

Les taux de main d’œuvre sont caractérisés par l’élément classification faisant référence au dictionnaire « ETAI:sector ». Le taux de technicité est défini via le dictionnaire « ETAI:level ».

Les valeurs possibles sont :

sectorValue :

  • « mechanical » pour les taux de mécanique
  • « body » pour les taux de carrosserie
  • « paint » pour les taux de peinture

levelValue :

  • « 1 » pour un taux de niveau 1 (M1, T1, P1)
  • « 2 » pour un taux de niveau 2 (M2, T2)
  • « 3 »  pour un taux de niveau 3 (M3, T3)

Attention Catalogue E-T-A-I ne gère qu’un taux de peinture.

Le « internal-id » permet de faire le lien entre un taux et un autre élément (prix, temps, etc.). Il est facultatif, dans le cas où le taux n’est lié à aucun autre élément.


<labor-cost-rate>

 


<breakdown-list>


<classification
dictionary=« ETAI:sector »


ref=« paint »/>


<classification
dictionary=« ETAI:paint »


ref=« {paintValue} »/>


</breakdown-list>


<value>


<amount>{amountValue}</amount>


</value>


</labor-cost-rate>

Taux d’ingrédient de peinture

Les taux d’ingrédient de peinture sont caractérisés par l’élément classification faisant référence à la valeur « paint » du dictionnaire « ETAI:sector » ainsi qu’à l’élément classification faisant référence au dictionnaire « ETAI:paint ». Les valeurs possibles sont :

  • opaque (opaque)
  • varnished (vernie)
  • pearly (nacrée)
  • iridescent (irisée)

Le « internal-id » est régi par les mêmes règles que le « internal-id » des autres taux de mains d’œuvre.

</labor-list>

 

</settings>

</shuttle>

</xat2>

Tableau 8 – Liaison d’un taux de main d’œuvre à un temps

XML

Commentaires

<time
labor-internal-id=« {laborInternalId} »>


<value
value-type=« time »>


<amount>>{amountValue}</amount>


</value>

</time>

Exemple de liaison entre un taux de main d’œuvre et un temps

 

7.1.2. TVA

Tableau 9 – Déclaration d’un taux de TVA

XML

Commentaires

<?xml
version=« 1.0 »
encoding=« utf-8 »
standalone=« no »?>

<xat2
xmlns=« http://xat2.etai.fr » version=« 2.0 »>

<shuttle>

<settings>

<VAT-list>

 


<VAT-rate
internal-id=« {idValue} »>


<value>


<amount>{amountValue}</amount>


</value>


</VAT-rate>

TVA

La TVA est exprimée par défaut en pourcentage. La déclaration de plusieurs taux de TVA est possible.

Le « internal-id » permet de faire le lien entre un taux de tva et un prix. Ce point n’est applicable que pour le flux en direction de Application partenaire.

</VAT-list>

 

</settings>

</shuttle>

</xat2>

Tableau 10 – Liaison d’un taux de tva à un prix

XML

Commentaires

<price
VAT-internal-id=« {vatInternalId} »>


<breakdown-list>


<classification
dictionary=« ETAI:unit »
ref=« packet »/>


</breakdown-list>


<value-list>


<value
value-type=« exclTaxes »>


<amount>>{amountValue}</amount>


</value>


<value
value-type=« inclTaxes »>


<amount>>{amountValue}</amount>


</value>


</value-list>

</price>

Exemple de liaison entre un taux de tva et un prix

 

7.1.3. Remise

Sur Catalogue E-T-A-I, il existe plusieurs types de remise, une sur un élément en particulier (exemple : une pièce essuie-glace), sur un type d’éléments (exemple : remise sur toutes les pièces), ou une remise sur le total.

Tableau 11 – Déclaration d’une remise

XML

Commentaires

<?xml
version=« 1.0 »
encoding=« utf-8 »
standalone=« no »?>

<xat2
xmlns=« http://xat2.etai.fr » version=« 2.0 »>

<shuttle>

<settings>

<discount-list>

 

<discount
internal-id=« {idValue} »>


<breakdown-list>


<classification
dictionary=« ETAI:applicability »



ref=« {applicabilityRef} »/>

</breakdown-list>


<value
value-type=« percent »>


<amount>{amountValue}</amount>

</value>


</discount>

Remises par défaut

Toutes les remises sont exprimées en pourcentage et leur applicabilité est définie via le dictionnaire ETAI:applicability. Les références possibles sont :

  • part : remise par défaut pour pièces et ingrédients.
  • labor-rate : remise par défaut pour opérations de temps.
  • tire : remise par défaut pour les pneus.
  • total : remise sur le total du devis.

Le « internal-id » permet de faire le lien entre une remise et un autre élément (prix, temps, etc.)

</discount-list>

 

</settings>

</shuttle>

</xat2>

Tableau 12 – Liaison d’une remise avec un prix

XML

Commentaires

<price
discount-internal-id=« ID1 »
VAT-internal-id=« ID1 »
>


<breakdown-list>


<classification
dictionary=« ETAI:unit »
ref=« packet »/>


</breakdown-list>


<value-list>


<value
value-type=« exclTaxes »>


<amount>{amountValue}</amount>


<include-deduction>


<classification
dictionary=« ETAI:deductionType »


ref=« discount »/>


</include-deduction>


</value>


<value
value-type=« inclTaxes »>


<amount>{amountValue}</amount>


</value>


</value-list>

</price>

Exemple de liaison entre une remise et un prix

La liaison est réalisée grâce à l’attribut « discount-internal-id » du <price> qui pointe vers la valeur de l’  « internal-id » de la remise.

La <value> où la remise est appliquée contiendra un élément <include-deduction> du dictionnaire « ETAI:deductionType » et de la ref « discount ».

 

7.2. Variante

Tableau 13 – Déclaration d’une variante

XML

Commentaires

<?xml
version=« 1.0 »
encoding=« utf-8 »
standalone=« no »?>

<xat2
xmlns=« http://xat2.etai.fr » version=« 2.0 »>

<shuttle>

<vehicle-list>

<vehicle> 
<label>


<long-label>{longLabel}</long-label>


<short-label>{shortLabel}</short-label>


</label>

Libellé

Libellé de la variante


<identification-list>

Liste des identifications du véhicule


<identification>

 


<breakdown-list>


<classification
dictionary=« ETAI:vehicle »



ref=« variation »/>


</breakdown-list>

<label>

<short-label>{variationLabel}</short-label>

</label>


<classification-list>


<classification
dictionary=« ETAI:identifier »


ref=« variationId »


source=« etai »>

{variationId}


</classification>


</classification-list>


</identification>

Identification de la variante

L’identification est caractérisée, au sein de l’élément identification, par l’élément classification faisant référence à la valeur « variation » du dictionnaire ETAI:vehicle.

Ce niveau d’identification est lié à une notion de mécanique du véhicule (cylindrée, type de carburant, …).

L’identifiant de la variante est renseigné selon la source « etai » : identifiant de la base véhicule d’E-T-A-I.


<identification>

 


<breakdown-list>


<classification
dictionary=« ETAI:vehicle »



ref=« model »/>


</breakdown-list>

<label>

<short-label>{modelLabel}</short-label>

</label>


<classification-list>


<classification
dictionary=« ETAI:identifier »


ref=« modelId »


source=« etai »>

{modelId}


</classification>


</classification-list>


</identification>

Modèle du véhicule

Le modèle du véhicule est caractérisé, au sein de l’élément identification, par l’élément classification faisant référence à la valeur « model » du dictionnaire ETAI:vehicle.

Ce niveau d’identification est lié à une notion de carrosserie du véhicule (nombre de portes, forme de carrosserie, …).

L’identifiant du modèle est renseigné selon la source « etai » : identifiant de la base véhicule d’E-T-A-I.


<identification>

 


<breakdown-list>


<classification
dictionary=« ETAI:vehicle »



ref=« make »/>


</breakdown-list>

<label>

<short-label>{makeLabel}</short-label>

</label>


<classification-list>


<classification
dictionary=« ETAI:identifier »


ref=« makeId »


source=« etai »>

{makeId}


</classification>


</classification-list>


</identification>

Marque du véhicule

La marque du véhicule est caractérisée, au sein de l’élément identification, par l’élément classification faisant référence à la valeur « make » du dictionnaire ETAI:vehicle.

L’identifiant de la marque est renseigné selon la source « etai » : identifiant de la base véhicule d’E-T-A-I


</identification-list>

 


<alternative-ref-list>


<classification
dictionary=« ETAI:vehicle »


ref=« {refType} »>


{refValue}


</classification>


</alternative-ref-list>

Identifiants administratif du véhicule

Ces identifiants sont caractérisés par le dictionnaire « ETAI:vehicle ». Les valeurs des références possibles sont :

  • « engineType » (type moteur)
  • « vvt » (type mines / tvv)
  • « cnit »
  • « vin »
  • « registrationVin » (vin fourni par l la carte grise ou la recherche d’immatriculation)
  • « registration » (numéro de plaque d’immatriculation)

<date-list>

 

<explicit-date>

<breakdown-list>

<classification
dictionary=« ETAI:date »
ref=« firstRegistration »/>

</breakdown-list>

<date
format=« dd.MM.yyyy »>{dateValue}</date>

</explicit-date>

</date-list>

Date de 1ère mise en circulation

La date de 1ère mise en circulation du véhicule est caractérisée par un élément « date » comprenant une classification du dictionnaire « ETAI :date » et une ref « firstRegistration »

Le format de la date est décrite dans l’attribut « format » de l’élément « date ».


<mileage-list>

 


<value
value-type=« amount »>


<amount>{mileageValue}</amount>


<amount-of>


<classification
dictionary=« ETAI:measure »


ref=« mileageDeclared »/>


</amount-of>


<measurement>


<classification
dictionary=« ETAI:unit »


ref=« Km »/>


</measurement>


</value>


</mileage-list>

Kilométrage

Le kilométrage est défini par le dictionnaire ETAI:measure et l’unité « km » du dictionnaire ETAI:unit.


<gearbox>

 


<gear>{gearboxValue]</gear>


</gearbox>

Nombre de vitesses de la boîte de vitesse


<door-number>{doorNumber}</door-number>

Nombre de portes

<fuel>

 

<classification
dictionary=« ETAI:fuel »
ref=« diesel »/>

</fuel>

Carburant (facultatif)

Type de carburant du véhicule.

Les valeurs possibles correspondent aux références du dictionnaire « ETAI:fuel »


<fiscal-rating>{fiscalRatingValue}</fiscal-rating>

Puissance fiscale


<capacity-list>

 


<value
value-type=« amount »>


<amount>{amountValue}</amount>


<amount-of>


<classification
dictionary=« ETAI:measure »


ref=« engineCapacity »/>


</amount-of>


<measurement>


<classification
dictionary=« ETAI:unit »
ref=« cm3 »/>

</measurement>


</value>


</capacity-list>

Cylindrée

La cylindrée du véhicule fait partie de la section <capacity-list>. Elle correspond à la valeur caractérisée par la référence « engineCapacity » du dictionnaire « ETAI:measure ». Elle est exprimée en cm3.

</vehicle>

 

</vehicle-list>

</shuttle>

</xat2>

7.3. Devis

7.3.1. Client

Tableau 14 – Déclaration d’un client

XML

Commentaires

<?xml
version=« 1.0 »
encoding=« utf-8 »
standalone=« no »?>

<xat2
xmlns=« http://xat2.etai.fr » version=« 2.0 »>

<shuttle>

<person-list>

<person>  <breakdown-list>


<classification
dictionary=« ETAI:person »


ref=« client »/>


</breakdown-list>

Qualité de l’intervenant

Client.

<title
dictionary=« ETAI:personTitle »

 


ref=« {titleValue} »/>

<firstname>{firstname}</firstname>


<name>{name}</name>

Nom / Prénom / Civilité du client

La civilité du client est renseignée via le dictionnaire « ETAI:personTitle »

Les valeurs possibles sont :

  • « Mr »
  • « Mrs »
  • « Ms »
  • « company »

On pourra mettre le nom et le prénom dans l’attribut « name » dans le cas où les 2 informations ne sont pas séparées chez Application partenaire.


<place>

 


<address
number=« 1 »>{addressLine1}</address>


<address
number=« 2 »>{addressLine2}</address>


<zip-code>{zipCode}</zip-code>


<city>{city}</city>


<country>


<classification
dictionary=« ETAI:country »


ref=« {countryRef} »>

{countryLabel}


</classification>


</country>


</place>

Adresse du client

Une adresse peut être sur plusieurs lignes, si c’est le cas on définit plusieurs <address> en incrémentant la valeur de « number ». En règle générale, une adresse ne dépasse pas 5 lignes.

Le pays de l’adresse est défini selon le dictionnaire « ETAI:country ».

<contact-list>

 


<contact>


<contact-category
dictionary=« ETAI:contact »



ref=« {contactRef} »/>


<contact-value>{contactValue}</contact-value>


</contact>


</contact-list>

Moyens de contact du client

Un moyen de contact est défini selon le dictionnaire « ETAI:contact », les valeurs possibles de {contactRef} sont :

  • « phone »
  • « mobile »
  • « fax »
  • « email »

<agreement-list>

 


<agreement>

<classification
dictionary=« ETAI:agreement »


ref=« tvaIntra »>

{tvaIntraValue}

</classification>

</agreement>

</agreement-list>

Numéros d’agréments du client

La TVA intracommunautaire est défini par le dictionnaire « ETAI:agreement » et la ref « tvaIntra ».

<classification-list>

 

<classification
source=« partner » ref=« {idPartner} »/>


<classification
source=« etai » ref=« {idETAI} »/>

</classification-list>

Identifiant(s) de l’intervenant

Les 2 sources possibles pour un identifiant de client sont :

  • « partner » : identifiant du client dans la base Application partenaire
  • « etai » : identifiant du client dans la base Catalogue E-T-A-I

</person>

 

</person-list>

</shuttle>

</xat2>

7.3.2. Prix

Tableau 15 – Déclaration d’un prix

XML

Commentaires

<?xml
version=« 1.0 »
encoding=« utf-8 »
standalone=« no »?>

<xat2
xmlns=« http://xat2.etai.fr » version=« 2.0 »>

<shuttle>

<calculating-list>

<calculating>

<price-list>  <price VAT-internal-id=« {vatInternalId} »


discount-internal-id=« {discountInternalId} »


labor-internal-id=« {laborInternalId} »>

<breakdown-list>

<classification
dictionary=« ETAI:breakdown »


ref=« {priceType} »/>

</breakdown-list>


<value-list>


<value
value-type=« {valueType} »>


<amount>{amountValue}</amount>

<include-deduction>


<classification
dictionary=« ETAI:deductionType »


ref=« discount »/>


</include-deduction>


</value>


</value-list>


<debtor>


<classification
dictionary=« ETAI:person »


ref=« {piecePriceType} »/>

</debtor>

 


</price>

Prix

Un <price> peut contenir plusieurs <value> afin de fournir les prix HT, TTC. La consigne/déconsigne indiquera seulement le montant de la taxe.

 

{valueType} prendra la valeur :

  • « exclTaxes » pour un prix HT
  • « inclTaxes » pour un prix TTC
  • « taxes » pour le montant des taxes

Tout prix ayant un prix TTC doit avoir un lien vers un taux de tva via l’attribut « VAT-internal-id}

La classification du dictionnaire « ETAI:breakdown » indique à quel type d’élément ce prix est lié. Les valeurs possibles de {priceType} sont :

  • « total » (total d’un devis)
  • « wasteTreatment » (retraitement des déchets)
  • « deposityPayback » (consigne / déconsigne)
  • « packageDeal » (forfait)
  • « part » (pièces)
  • « labor » (temps)

Cette information ne concerne que le prix total d’un type donné, si le prix concerne une seule pièce, on ne mettra pas cette information.

Un prix peut être lié à une remise via l’attribut discount-internal-id. Les <value> où la remise est appliquée auront un attribut <include-deduction>

Le labor-internal-id fait référence à l’internal-id d’un labor cost rate défini dans l’élément settings (voir chapitre 7.1.2).

Le type de prix (prix de vente ou prix d’achat) est specifié par l’element <debtor> . Les valeurs possibles de {piecePriceType} sont :

  • « repairer » (prix d’achat)
  • « client » (prix de vente)

Si l’élément <debtor> n’est pas présent, on considère que le prix est un prix de vente

 

</price-list>

 

</calculating>

</calculating-list>

</shuttle>

</xat2>

7.3.3 Pièce

Tableau 16 – Déclaration d’une pièce

XML

Commentaires

<?xml
version=« 1.0 »
encoding=« utf-8 »
standalone=« no »?>

<xat2
xmlns=« http://xat2.etai.fr » version=« 2.0 »>

<shuttle>

<part-list>

<part>  <breakdown-list>

<classification
dictionary=« ETAI:breakdown »


ref=« {breakdownValue} »/>

<classification
dictionary=« ETAI:partIdentification »


ref=« {partIdentificationValue} »/>

</breakdown-list>

Identification du type de pièce.

Le type de la pièce est défini par la référence du dictionnaire « ETAI:breakdown ».

Valeurs possibles de breakdownValue :

  • « part » pour une pièce
  • « tire » pour un pneu
  • « ingredient » pour un ingrédient

Une précision est donnée sur les pièces par une référence au dictionnaire « ETAI:partIdentification ».

Valeurs possibles de {partIdentificationValue} :

  • « elementOE » pour les pièces constructeur
  • « elementAM » pour les pièces équipementier
  • « elementPRE » pour les pièces de réemploi
  • « elementGU » pour les pièces Gamme Universelle
  • « elementIU » pour les ingrédients universels

<label>

 


<short-label>{labelValue}</short-label>


</label>

Libellé de la pièce

<reference-list>

 


<classification
source=« {sourceValue} »>

ref=« {referenceValue} »>

</classification>


</reference-list>

Référence de la pièce

Dans l’attribut source, indiquer la source (type) de la référence. Les valeurs possibles de sourceValue sont

  • « catalog » : référence catalogue sans traitement
  • « clean » : référence nettoyée (sans espace, ni caractères spéciaux)

Pour chaque pièce, Catalogue E-T-A-I fournira ces 2 types de référence.

<supplier>

 

<abbreviation>{abbreviationValue}</abbreviation>


<label>


<long-label>{supplierLongLabel}</long-label>


</label>


<classification-list>


<classification
dictionary=« {supplierDictionary} »


ref= »{supplierRef} »/>


<classification
source=« etai »


ref= »{supplierIdETAI} »/>


</classification-list>


</supplier>

Équipementier de la pièce

L’élément abbreviation présente l’abréviation fournisseur pour les pièces AM (sur 3 ou 4 caractères).

.

L’élément long-label présente le libellé complet de l’équipementier.

 

Pour tous les types de pièces, un élément <classification> fournira une abréviation correspondant au <supplier>.

{supplierDictionary} peut prendre les valeurs suivantes :

  • « ETAI:supplier » pour les équipementiers
  • « ETAI:make » pour les constructeurs
  • « ETAI:manufacturer » pour les manufacturiers de pneus

{supplierRef} prendra les valeurs du dictionnaire {supplierDictionary}

Pour toutes les pièces, l’identifiant ETAI de l’équipementier est renseigné via le {supplierIdETAI}.

 

<classification-list>

 

<classification
dictionary=« ETAI:part »


ref=« family »>


{family-code-value}


</classification>

<classification
dictionary=« ETAI:part »


ref=« subfamily »/>


{subfamily-code-value}

</classification>

</classification-list>

Code famille et sous famille de la piece

Le code famille est specifié via l’élément classification du dictionnaire « ETAI:person » et de la ref  « family ».

 

Le code sous- famille est specifié via l’élément classification du dictionnaire « ETAI:person » et la ref  « sub-family ».

 

<quantity>

 


<amount>{quantityValue}</amount>

</quantity>

Quantité de la pièce


<price-list>

 


<price>


<breakdown-list>


<classification
dictionary=« ETAI:unit »



ref=« unit »/>

</breakdown-list>


<value-list>


<value
value-type=« exclTaxes »>


<amount>{amountValue}</amount>


</value>


</value-list>


</price>


<price
VAT-internal-id=« {vatInternalId} »


discount-internal-id=« {discountInternalId} »>

<breakdown-list>


<classification
dictionary=« ETAI:unit »


ref=« packet »/>


</breakdown-list>


<value-list>


<value
value-type=« exclTaxes »>


<amount>{amountValue}</amount>


<include-deduction>


<classification
dictionary=« ETAI:deductionType »


ref=« discount »/>

</include-deduction>


</value>


<value
value-type=« inclTaxes »>


<amount>{amountValue}</amount>


</value>


</value-list>


</price>


</price-list>

Prix de la pièce

Le prix unitaire de la pièce est caractérisé par l’élément classification faisant référence à la valeur unit du dictionnaire ETAI:unit.

Sa valeur est renseignée en HT.

 

Le prix final de la pièce est caractérisé par l’élément classification faisant référence à la valeur packet du dictionnaire ETAI:unit.

Ce prix représente le prix unitaire multiplié par la quantité.

Sa valeur est renseignée en HT et TTC.

Le VAT-internal-id fait référence à l’internal-id d’une TVA définie dans l’élément settings (voir chapitre 7.1.2).

Le discount-internal-id fait référence à l’internal-id d’une remise définie dans l’élément settings

 

</part>

 

</part-list>

</shuttle>

</xat2>

7.3.4. Opération

7.3.4.1. Description d’une opération supplémentaire (OS)

Tableau 17 – Déclaration d’une opération supplémentaire

XML

Commentaires

<?xml
version=« 1.0 »
encoding=« utf-8 »
standalone=« no »?>

<xat2
xmlns=« http://xat2.etai.fr » version=« 2.0 »>

<shuttle>

<calculating-list>

<calculating>

Une opération de temps supplémentaire est une sous-opération d’une opération de temps. Une opération supplémentaire porte son propre temps.

<operation-list>

 


<operation>

Déclaration des opérations de temps supplémentaire

<breakdown-list>

 


<classification
dictionary=« ETAI:breakdown »



ref=« labor »/>


<classification
dictionary=« ETAI:operationType »


ref=« additionnal »/>

</breakdown-list>

Type de l’opération supplémentaire

Le type de l’opération supplémentaire est défini par le dictionnaire « ETAI:breakdown » et la référence « labor ».

Le dictionnaire « ETAI:operationType» et la ref «additionnal » indique que c’est une opération de temps supplémentaire.

<label>

 


<short-label>{shortLabel}</short-label>


<long-label>{longLabel}</long-label>

</label>

Libellé de l’opération de temps supplémentaire

<reference-list>

 


<classification
source=« etai »


ref=« {operationRef} »/>

</reference-list>

Référence de l’opération de temps supplémentaire

Dans le cas où l’opération supplémentaire a une référence.


<intervention-list>

 


<classification
dictionary=« ETAI:intervention »


ref=« {interventionRef} »>


</classification>


</intervention-list>

Interventions de l’opération de temps supplémentaire

Le type de l’intervention est défini par le dictionnaire « ETAI:intervention ». Les valeurs possibles de {interventionRef} sont l’ensemble des entrées du dictionnaire.

<price-list>

 


<price/>

</price-list>

Prix de l’opération

Plus d’informations sur la structure d’un prix dans le chapitre 7.3.2 Prix

<time-list>

 


<time
labor-internal-id=« {laborInternalId} »>


<value>


<amount>{timeValue}</amount>


</value>

</time>


</time-list>

Temps de l’opération de temps supplémentaire

{timeValue} est renseignée en heure et en dixième d’heure après la décimale.

Le labor-internal-id fait référence à un taux de main d’œuvre défini dans l’élément settings


<operation>

 

<operation-list> </calculating>

</calculating-list>

</shuttle>

</xat2>

7.3.4.2. Description d’une opération comprise (YC) / non comprise (NC)

Tableau 18 – Déclaration d’une opération comprise / non comprise

XML

Commentaires

<?xml
version=« 1.0 »
encoding=« utf-8 »
standalone=« no »?>

<xat2
xmlns=« http://xat2.etai.fr » version=« 2.0 »>

<shuttle>

<calculating-list>

<calculating>

<operation-list>

<operation>

Une opération de temps comprise ou non comprise est une sous-opérations d’une opération de temps. Ces opérations ne portent aucun temps. Ce sont des informations décrivant l’opération de temps principale.

<elementary-operation-list>

 


<elementary-operation>

Déclaration des opérations de temps comprise / non comprise

<breakdown-list>

 


<classification
dictionary=« ETAI:breakdown »


ref=« labor »/>

<classification
dictionary=« ETAI:operationType »


ref=« {operationTypeValue} »/>

</breakdown-list>

Type de l’opération comprise / non comprise

Le type de l’opération est défini par le dictionnaire « ETAI:breakdown » et la référence « labor ».

 

Le type de l’opération est spécifié par le dictionnaire « ETAI:operationType». Les valeurs possibles de {operationTypeValue} sont :

  • « include » : opération comprise
  • « exclude » : opération non comprise

 

<label>

 


<short-label>{shortLabel}</short-label>


<long-label>{longLabel}</long-label>


</label>

Libellé de l’opération comprise / non comprise


<intervention-list>

 


<classification
dictionary=« ETAI:intervention »


ref=« {interventionRef} »>

{interventionLabel}


</classification>


</intervention-list>

Intervention de l’opération comprise / non comprise

Le type de l’intervention est défini par le dictionnaire « ETAI:intervention ». Les valeurs possibles de {interventionRef} sont l’ensemble des entrées du dictionnaire.

</elementary-operation>

 


</elementary-operation-list>
 </operation>

</operation-list>

</calculating>

</calculating-list>

</shuttle>

</xat2>

7.3.4.3. Opération Forfait

Tableau 19 – Déclaration d’un forfait

XML

Commentaires

<?xml
version=« 1.0 »
encoding=« utf-8 »
standalone=« no »?>

<xat2
xmlns=« http://xat2.etai.fr » version=« 2.0 »>

<shuttle>

<calculating-list>

<calculating>

<operation-list>  <operation> 
<breakdown-list>


<classification
dictionary=« ETAI:breakdown »



ref=« {packageDealType} »/>


<classification
dictionary=« ETAI:packageDealType »



ref=« {packageDealSubType} »/>

 

</breakdown-list>

Type de l’opération

Le type de l’opération (forfait) est défini par le dictionnaire « ETAI:breakdown ». Les valeurs possibles de packageDealType sont :

  • « packageDeal » pour les forfaits locaux / forfaits MO (Main d’œuvre) / forfaits PTI (Pièces Temps Ingrédients)
  • « nationalPackageDeal » pour les forfaits nationaux

 

Type du forfait

Le type du forfait est défini par le dictionnaire « ETAI:packageDealType ».
Les valeurs possibles de packageDealSubType sont l’ensemble des entrées du dictionnaire pour les forfaits locaux.

Valeurs de {packageDealSubType} :

  • « labor » dans le cas d’un forfait MO
  • « pti » dans le cas d’un forfait PTI
  • Pas de classification « ETAI:packageDealType » pour les forfaits nationaux

 

<label>

 


<short-label>{labelValue}</short-label>


<long-label>{descriptionValue}</long-label>


</label>

Libellé de l’opération

L’attribut <short-label> contient le libellé du forfait.

L’attribut <long-label> contiendra la description du forfait.

<reference-list>

 


<classification
source=« etai »


ref=« {packageDealCode} »/>

</reference-list>

Référence du forfait

   <price-list>

 


<price/>

</price-list>

Prix de l’opération

Le prix d’un forfait local correspond au prix des pièces et à un temps. Les prix des forfaits sont donc l’addition du prix des pièces et du temps multiplié par le taux de main d’œuvre.

 

Plus d’informations sur la structure d’un <price> dans le chapitre 7.3.2 Prix

 


<time-list>

 


<time
labor-internal-id=« {laborInternalId} »>


<value
value-type=« time »>


<amount>{timeValue}</amount>


</value>


</time>


</time-list>

Temps

 

Le « labor-internal-id » fait référence à un taux de main d’œuvre défini dans l’élément settings

 

<part-link-list>

 


<part-link
part-internal-id=« {partInternalId} »/>


</part-link-list>

Pièce

Les forfaits nationaux contiennent des pièces.

Lien entre le forfait et les pièces via le « part-internal-id ».

<comment-list>

 

<classification-list>

<classification
dictionary=« ETAI:commentType »
ref=« description »>{descriptionForfait}</classification>

</classification-list>

</comment-list>

Description du forfait PTI

{descriptionForfait} contient la description du forfait PTI

</operation> </operation-list>

 

</calculating>

</calculating-list>

</shuttle>

</xat2>

7.3.4.4. Opération temps divers

Tableau 20 – Déclaration d’une opération temps divers

XML

Commentaires

<?xml
version=« 1.0 »
encoding=« utf-8 »
standalone=« no »?>

<xat2
xmlns=« http://xat2.etai.fr » version=« 2.0 »>

<shuttle>

<calculating-list>

<calculating>

<operation-list>  <operation> 
<breakdown-list>


<classification
dictionary=« ETAI:breakdown »


ref=« labor »/>

<classification
dictionary=« ETAI:operationType »


ref=« main »/>


</breakdown-list>

Type de l’opération de temps principal

Le type de l’opération (temps divers) est défini par le dictionnaire « ETAI:breakdown » et la référence « labor ».

 

Le dictionnaire « ETAI:operationType» et la ref «main » indique que c’est une opération de temps principale.

 

<label>

 


<short-label>{shortLabel}</short-label>


<long-label>{longLabel}</long-label>


</label>

Libellé de l’opération de temps principal

<reference-list>

 


<classification
source=« etai » ref=« {operationRef} »/>

</reference-list>

Référence de l’opération de temps principal


<intervention-list>

 


<classification
dictionary=« ETAI:intervention »


ref=« {interventionRef} »>

{interventionLabel}


</classification>

</intervention-list>

Interventions de l’opération de temps principal

Le type de l’intervention est défini par le dictionnaire « ETAI:intervention ». Les valeurs possibles de {interventionRef} sont l’ensemble des entrées du dictionnaire.

<price-list>

 


<price/>

</price-list>

Prix de l’opération

Correspond au temps multiplié par le prix du taux de main d’œuvre.

 

Plus d’informations sur la structure d’un <price> dans le chapitre 7.3.2 Prix

 

<time-list>

 


<time
labor-internal-id=« {laborInternalId} »>


<value
value-type=« time »>


<amount>{timeValue}</amount>


</value>


</time>


</time-list>

Temps

{timeValue} est renseignée en heure et en dixième d’heure après la décimale.

 

Le labor-internal-id fait référence à un taux de main d’œuvre défini dans l’élément settings

 


</operation>
 </operation-list>

 

</calculating>

</calculating-list>

</shuttle>

</xat2>

 

7.3.4.5. Opération Pièces et Temps

Tableau 21 – Déclaration d’une Opération Pièces et Temps

XML

Commentaires

<?xml
version=« 1.0 »
encoding=« utf-8 »
standalone=« no »?>

<xat2
xmlns=« http://xat2.etai.fr » version=« 2.0 »>

<shuttle>

<calculating-list>

<calculating>

<operation-list> 
<operation>
  <breakdown-list>


<classification
dictionary=« ETAI:breakdown »


ref=« labor »/>


<classification
dictionary=« ETAI:operationType »


ref=« main »/>

</breakdown-list>

Type de l’opération

Le type de l’opération est défini par le dictionnaire « ETAI:breakdown » et la référence « labor ».

 

Le dictionnaire « ETAI:operationType» et la ref «main » indique que c’est une opération de temps principale.

 


<label>

 


<short-label>{shortLabel}</short-label>


<long-label>{longLabel}</long-label>


</label>

Libellé de l’opération

<reference-list>

 


<classification
source=« etai » ref=« {operationRef} »/>

</reference-list>

Référence de l’opération

<price-list>

 


<price/>

</price-list>

Prix de l’opération

Correspond au prix de l’opération

 

Plus d’informations sur la structure d’un <price> dans le chapitre 7.3.2 Prix

 


<time-list>

 


<time
labor-internal-id=« {laborInternalId} »>


<value
value-type=« time »>


<amount>{timeValue}</amount>


</value>


</time>


</time-list>

Temps de l’opération de temps principal

{timeValue} est renseignée en heure et en dixième d’heure après la décimale.

 

Le labor-internal-id fait référence à un taux de main d’œuvre défini dans l’élément settings

 

<part-link-list>

 


<part-link
part-internal-id=« {partInternalId} »/>


</part-link-list>

Pièce

Lien entre l’opération et les pièces du devis via le « part-internal-id ».

 


<!–Liste des opérations principales–>


<operation-list>


<operation>


<!–Liste des opérations supplémentaires–>


<operation-list>


<operation>


<!–Déclaration d’une operation supplémentaire–>


</operation>


</operation-list>

 


<!–Liste des opérations YC / NC–>


<elementary-operation-list>


<elementary-operation>


<!–Déclaration d’une opération YC / NC–>


<elementary-operation>


<elementary-operation-list>

</operation>


</operation-list>

Liste des sous-opérations

Une opération Pièces et Temps pourra contenir plusieurs opérations principales, qui elles-mêmes pourront contenir des opérations supplémentaires et des opérations comprises / non comprises.

Voir Chapitre 7.3.4.1 Description d’une opération supplémentaire (OS)

Voir Chapitre 7.3.4.2 Description d’une opération comprise (YC) / non comprise (NC)


</operation>
 </operation-list>

 

</calculating>

</calculating-list>

</shuttle>

</xat2>

7.3.4.6. Opération Plan d’entretien

Tableau 22 – Déclaration d’une opération plan d’entretien

XML

Commentaires

<?xml
version=« 1.0 »
encoding=« utf-8 »
standalone=« no »?>

<xat2
xmlns=« http://xat2.etai.fr » version=« 2.0 »>

<shuttle>

<calculating-list>

<calculating>

<operation-list> 
<operation>
 
<breakdown-list>


<classification
dictionary=« ETAI:breakdown »


ref=« servicePlan »/>


</breakdown-list>

Type de l’opération

Le type de l’opération est défini par le dictionnaire « ETAI:breakdown » et la référence « servicePlan ».


<label>

 


<short-label>{label}</short-label>


<long-label>{description}</long-label>


</label>

Libellé de l’opération

L’attribut <short-label> contient le libellé du plan d’entretien.

L’attribut <long-label> contiendra la description du plan d’entretien.

<price-list>

 


<price/>

</price-list>

Prix du plan d’entretien

Correspond au temps multiplié par le prix du taux de main d’œuvre et du prix des pièces.

 

Plus d’informations sur la structure d’un prix dans le chapitre 7.3.2 Prix

 


<time-list>

 


<time
labor-internal-id=« {laborInternalId} »>


<value
value-type=« time »>


<amount>{timeValue}</amount>


</value>


</time>


</time-list>

Liste des Temps du plan d’entretien

{timeValue} est renseignée en heure et en dixième d’heure après la décimale.

 

Le labor-internal-id fait référence à un taux de main d’œuvre défini dans l’élément settings

 

<part-link-list>

 


<part-link
part-internal-id=« {partInternalId} »/>


</part-link-list>

Pièce

Lien entre le plan d’entretien et les pièces du devis via le « part-internal-id ».


<!–Liste des opérations principales–>

 


<operation-list>


<operation>


<!–Liste des opérations supplémentaires–>


<operation-list>


<operation>


<!–Déclaration d’une operation supplémentaire–>


</operation>


</operation-list>

 


<!–Liste des opérations YC / NC–>


<elementary-operation-list>


<elementary-operation>


<!–Déclaration d’une opération YC / NC–>


<elementary-operation>


<elementary-operation-list>

</operation>


</operation-list>

Liste des opérations

 

Un plan d’entretien pourra contenir plusieurs opérations principales, qui elles-mêmes pourront contenir des opérations supplémentaires et des opérations comprises / non comprises.

Voir Chapitre 7.3.4.1 Description d’une opération supplémentaire

Voir Chapitre 7.3.4.2 Description d’une opération comprise (YC) / non comprise

 


</operation>
 </operation-list>

 

</calculating>

</calculating-list>

</shuttle>

</xat2>

7.3.4.7. Opération Consigne

Le prix de la consigne n’est pas comptabilisé dans le prix total du devis.

Tableau 23 – Déclaration d’une consigne

XML

Commentaires

<?xml
version=« 1.0 »
encoding=« utf-8 »
standalone=« no »?>

<xat2
xmlns=« http://xat2.etai.fr » version=« 2.0 »>

<shuttle>

<calculating-list>

<calculating>

<operation-list> 
<operation>
 
<breakdown-list>


<classification
dictionary=« ETAI:breakdown »


ref=« depositPayback »/>


</breakdown-list>

Type de l’opération

Le type de l’opération est défini par le dictionnaire « ETAI:breakdown » et la ref « depositPayback ».


<label>

 


<short-label>{shortLabelValue}</short-label>


</label>

Libellé de l’opération

L’attribut <short-label> contient le libellé de la consigne.

<price-list>

 


<price/>

</price-list>

Prix de l’opération

 

Plus d’informations sur la structure d’un prix dans le chapitre 7.3.2 Prix

 


</operation>
 </operation-list>

 

</calculating>

</calculating-list>

</shuttle>

</xat2>

7.3.4.8. Opération Retraitement des déchets

Tableau 24 – Déclaration du retraitement des déchets

XML

Commentaires

<?xml
version=« 1.0 »
encoding=« utf-8 »
standalone=« no »?>

<xat2
xmlns=« http://xat2.etai.fr » version=« 2.0 »>

<shuttle>

<calculating-list>

<calculating>

<operation-list> 
<operation>
 
<breakdown-list>


<classification
dictionary=« ETAI:breakdown »


ref=« wasteTreatment »/>


</breakdown-list>

Type de l’opération

Le type de l’opération est défini par le dictionnaire « ETAI:breakdown » et la ref « wasteTreatment ».


<label>

 


<short-label>{shortLabelValue}</short-label>


</label>

Libellé de l’opération

L’attribut <short-label> contient le libellé de l’opération de type retraitement des déchets.

<price-list>

 


<price/>

</price-list>

Prix de l’opération

 

Plus d’informations sur la structure d’un prix dans le chapitre 7.3.2 Prix

 


</operation>
 
</operation-list>

 


</calculating>


</calculating-list>

</shuttle>

</xat2>

8. Service de récupération de variantes

8.1. Description détaillée de l’interface

8.1.1. Description

Ce service a pour objectif de permettre à Application partenaire de trouver les caractéristiques d’un véhicule.

Ce service utilise le mode interactif de XAT2V2, il y a donc une gestion de la session dans les échanges.

8.1.2. Liste des données

Application partenaire è Catalogue E-T-A-I

Donnée

Description / commentaire

applicationID

Identifiant de l’application.

dmslogin

Identifiant de l’interface.

garagesharedID

Identifiant du garage.

usersharedID

Identifiant de l’utilisateur.

Véhicule

Objet contenant les caractéristiques du véhicule.

Afin de trouver la variante, Application partenaire pourra fournir certaines données d’identification du véhicule :

  • Le numéro d’immatriculation
  • Le VIN (Vehicle Immatriculation Number)
  • Le CNIT (Code National d’Identification du type)
  • Le type mine

 

Catalogue E-T-A-I è Application partenaire

Donnée

Description / commentaire

Véhicule

Objet contenant les caractéristiques du véhicule.

Dans le cas où ces informations sont disponibles pour le véhicule sélectionné, on renverra :

  • Libellé de la variante
  • Identifications de la variante (marque / modèle / variante)
  • Références administratives du véhicule (vin / cnit / vvt)
  • Nombre de portes
  • Cylindrée
  • Puissance fiscale

8.1.3. Volumétrie et Fréquence – vision métier

Le tableau suivant est mis à titre indicatif. Libre au rédacteur d’ajouter ou supprimer des colonnes ou de donner la volumétrie sans tableau.

Nombre

moyen de

demandes / jour

Pic de

Demandes /
15 minutes

Taille moyenne
demande

Application partenaire

Taille maximale
demande

Application partenaire

Taille moyenne
réponse

Catalogue E-T-A-I

Taille maximale
réponse

Catalogue E-T-A-I

8.1.4. Étapes de l’appel au service interactif

  • Envoi de la requête de recherche de véhicule avec les identifiants de connexion, le shuttle, etc. (Application partenaire à
    Catalogue E-T-A-I)
  • Vérification des identifiants de connexion, préparation de l’environnement sur Catalogue E-T-A-I, création de la session, et renvoi à Application partenaire l’url vers laquelle il faut envoyer l’utilisateur, ainsi que l’id de session. Si la requête est incorrecte, on renvoie une erreur à l’application (Catalogue E-T-A-I
    à Application partenaire).
  • Si pas d’anomalie reçue, Application partenaire ouvre un navigateur et redirige l’utilisateur vers l’url reçue
  • L’utilisateur effectue sa sélection de variante (Application partenaire à
    Catalogue E-T-A-I)
  • L’application ETAI notifie, par un message XAT2, Application partenaire que son travail est terminé (par appel direct ou par une redirection en utilisant le navigateur de l’utilisateur) (Catalogue E-T-A-I
    à
    Application partenaire)
  • Application partenaire reprend la main et invoque le serveur XAT2 pour obtenir le résultat du travail effectué par l’utilisateur.
    (Application partenaire
    à
    Catalogue E-T-A-I)

8.1.5. Composer l’URL à laquelle envoyer les xml

L’URL à laquelle il faut envoyer les requêtes XAT2V2 est de la forme : http://<application_ETAI>/rest/xat2v2/.

URL

Commentaires

http://

Il s’agit du protocole http.

Présence obligatoire.

Écrire en minuscules.

<application_ETAI>

Il s’agit de l’application online E-T-A-I.

Présence obligatoire.

Faire attention aux minuscules/majuscules. Écrire le nom exactement.

/

Séparateur

rest

REST est la technologie employée pour communiquer.

Présence obligatoire.

Écrire en minuscules.

/

Séparateur

xat2v2

Il s’agit du protocole XAT2V2.

Présence obligatoire.

Écrire en minuscules.

/

Séparateur

8.1.6. Schéma d’ensemble des traitements

8.1.7. Condition d’appel / contexte

Les données obligatoires dans l’appel à ce service :

  • les informations de connexion (usersharedID, dmslogin, …)
  • le verbe

8.1.8. Type d’exécution de l’interface

Les différents transferts de données entre les 2 logiciels sont à l’initiative de l’utilisateur.

Un bouton « Catalogue E-T-A-I » sera présent dans le logiciel Application partenaire. Lorsque l’utilisateur cliquera dessus, un nouveau navigateur web s’ouvrira pour afficher les pages de Catalogue E-T-A-I.

Dans ce dernier, si Application partenaire a fait le choix d’un accès direct ou par redirection, un bouton de transfert sera présent pour renvoyer la variante à Application partenaire.

8.1.9. Disponibilité de l’interface

L’interface sera disponible au même titre que Catalogue E-T-A-I et Application partenaire, c’est-à-dire 7j/7j et 24h/24h.

E-T-A-I se réserve cependant le droit d’interrompre le service en cas de mise à jour de l’application ou des données. Ces interventions n’interviendront pas avant 19h.

8.1.10. Performance

Le temps de traitement d’un message XAT2V2 par Catalogue E-T-A-I ne doit pas prendre plus de 20 secondes.

Lorsqu’un utilisateur lance le transfert de la variante vers Application partenaire, ce dernier doit la recevoir dans les 20 secondes qui suivent.

8.2. Cas d’utilisation

Deux scénarios sont possibles lors de l’utilisation de ce service.

  • Soit la variante n’est pas trouvée, et dans ce cas, l’utilisateur sera redirigé vers la recherche d’Identification de Véhicule sur le site Catalogue E-T-A-I
  • Soit la variante est directement trouvée via les informations fournies par Application partenaire, dans ce cas l’utilisateur est amené sur une page affichant la variante trouvée.

8.2.1. Cas où le véhicule est directement identifié

Si le véhicule est directement identifié à partir des données fournies dans la requête, l’utilisateur est amené vers la page de la variante.

  • Si le résultat correspond à la variante attendue par l’utilisateur, alors celui-ci pourra la sélectionner, afin que les caractéristiques de la variante soient transmises via XAT2V2 au logiciel de gestion.
  • Si la variante affichée n’est pas celle attendue, alors l’utilisateur pourra sélectionner manuellement la variante de son choix via les différents moyens de sélection.

8.2.2. Cas où l’utilisateur doit rechercher manuellement le véhicule

Lorsqu’on ne peut pas identifier directement une variante à partir des informations fournies par Application partenaire, alors on va le rediriger vers la recherche d’Identification de Véhicule sur le site Catalogue E-T-A-I, où il devra sélectionner manuellement sa variante, et une fois cela fait, les données de la variante choisie seront envoyées via XAT2V2 à Application partenaire.

Les raisons pour laquelle on ne peut trouver une variante unique sont multiples :

  • Recherche de variante à partir d’une marque : alors dans ce cas l’utilisateur sera amené sur la page de choix du modèle.

Figure 1 – Recherche Variante – Sélection du modèle

 

  • Recherche avec plusieurs résultats : alors dans ce cas, l’utilisateur devra sélectionner la variante voulue parmi la liste de choix.

Figure 2 – Recherche Variante – Sélection d’une variante

  • Recherche sans paramètre ou sans résultat : alors dans ce cas l’utilisateur sera amené sur la page de choix de la marque de la variante.


Figure 3 – Recherche Variante – Liste des marques

8.3. Description des étapes XAT2V2

Le service est interactif, ci-dessous est décrit l’ensemble du processus pour l’utilisation du service.

Certaines étapes dépendent du type d’accès de Application partenaire, s’il est en accès direct ou en accès par redirection.

8.3.1. Requête XAT2V2 : Application partenaire -> Catalogue E-T-A-I

Verbe à utiliser : redirectVehicle (la casse est importante)

Lorsque l’on effectue une recherche de variante, on ne peut indiquer qu’un paramètre de recherche (soit CNIT, soit mine par exemple), car un seul paramètre est pris en compte.

Tableau 25 – Recherche de variante – liste des différents paramètres d’identification

XML

Commentaires

<?xml
version=« 1.0 »
encoding=« utf-8 »
standalone=« no »?>

<xat2
xmlns=« http://xat2.etai.fr » version=« 2.0 »>
 <uri-list>


<uri-service
action=« DMSaddress »


direct-access=« {directAccessValue} »>


<uri>{partnerUrl}</uri>


</uri-service>

</uri-list>

Url pour contacter Application partenaire.

{directAccessValue} a 2 valeurs possibles :

  • « true » : l’application est accessible en mode direct
  • « false » : l’application est accessible en mode redirection

{partnerUrl} est l’url de l’Application partenaire.

<session-context>

 


<application-id>{applicationId}</application-id>


<dms-login>{dmsLogin}</dms-login>


<user-shared-id>{userSharedId}</user-shared-id>


<garage-shared-id>{garageSharedId}</garage-shared-id>


</session-context>

Identifiants de session

Voir Chapitre 5.2 Gestion des identifiants XAT2V2

<shuttle> 
<transport>

 

<partner>

<name>{dmsName}</name>

<editor dictionary= »ETAI:editor » ref= »{editorRef}« >

<version-code>{dmsVersion}</version-code>

</partner>


<action-list>


<action>


<verb>redirectVehicle</verb>


<option-list><option>force</option></option-list>


</action>


</action-list>

</transport>

Verbe XAT2V2

« redirectVehicle »

 

Option « force » : optionnel. Permet de forcer la connexion au service. Si un utilisateur utilise déjà les identifiants du session-context, il sera déconnecté.

Si l’option n’est pas mise alors si un utilisateur utilise déjà les identifiants du session-context, le serveur XAT2V2 accusera réception que le session-context est en cours d’utilisation (ack inWork).

partner : information sur Application partenaire communicant avec Catalogue E-T-A-I.

 

<vehicle-list>

 


<vehicle>
  <alternative-ref-list>


<classification
dictionary=« ETAI:vehicle »



ref=« {refType} »>

{refValue}


</classification>


</alternative-ref-list>

Identifiants administratif du véhicule

Ces identifiants sont caractérisés par le dictionnaire ETAI:vehicle. Les valeurs possibles de {refType} sont :

  • « registration » (immatriculation)
  • « vvt »  (type mines / tvv)
  • « cnit »
  • « vin »

</vehicle>

 

</vehicle-list>

</shuttle>

</xat2>

Exemple – recherche par immatriculation :

XML

<?xml
version=« 1.0 »
encoding=« UTF-8 »
standalone=« no »?>

<xat2
xmlns=« http://xat2.etai.fr »
version=« 2.0 »>

<uri-list>


<!–Exemple en accès direct–>


<uri-service
action=« DMSaddress »
direct-access=« true »>


<!–Mettre l’url de votre serveur que Catalogue E-T-A-I contactera pour renvoyer les données–>


<uri>METTRE VALEUR URL</uri>


</uri-service>

</uri-list>

<session-context>


<application-id>METTRE VALEUR APPLICATION ID</application-id>


<dms-login>METTRE VALEUR DMS LOGIN</dms-login>


<user-shared-id>METTRE VALEUR USER SHARED ID</user-shared-id>


<garage-shared-id>METTRE VALEUR GARAGE SHARED ID</garage-shared-id>

</session-context>

<shuttle>


<transport>

<partner>

<name>METTRE NOM DU DMS</name>

<editor dictionary= »ETAI:editor » ref= »METTRE RÉFÉRENCE ÉDITEUR« >

<version-code>METTRE VERSION DU DMS</version-code>

</partner>


<action-list>


<action>


<verb>redirectVehicle</verb>

<option-list>

<option>force</option>

</option-list>


</action>


</action-list>


</transport>


<vehicle-list>


<vehicle>


<alternative-ref-list>


<!–Recherche par immat–>


<classification
dictionary=« ETAI:vehicle »
ref=« registration »>METTRE VALEUR IMMATRICULATION</classification>


</alternative-ref-list>


</vehicle>


</vehicle-list>

</shuttle>

</xat2>

Exemple – recherche par cnit :

XML

<?xml
version=« 1.0 »
encoding=« UTF-8 »
standalone=« no »?>

<xat2
xmlns=« http://xat2.etai.fr »
version=« 2.0 »>

<uri-list>


<!–Exemple en accès direct–>


<uri-service
action=« DMSaddress »
direct-access=« true »>


<!–Mettre l’url de votre serveur que Catalogue E-T-A-I contactera pour renvoyer les données–>


<uri>METTRE VALEUR URL</uri>


</uri-service>

</uri-list>

<session-context>


<application-id>METTRE VALEUR APPLICATION ID</application-id>


<dms-login>METTRE VALEUR DMS LOGIN</dms-login>


<user-shared-id>METTRE VALEUR USER SHARED ID</user-shared-id>


<garage-shared-id>METTRE VALEUR GARAGE SHARED ID</garage-shared-id>

</session-context>

<shuttle>


<transport>

<partner>

<name>METTRE NOM DU DMS</name>

<editor dictionary= »ETAI:editor » ref= »METTRE RÉFÉRENCE ÉDITEUR« >

<version-code>METTRE VERSION DU DMS</version-code>

</partner>


<action-list>


<action>


<verb>redirectVehicle</verb>

<option-list>

<option>force</option>

</option-list>


</action>


</action-list>


</transport>


<vehicle-list>


<vehicle>


<alternative-ref-list>


<!–Recherche par immat–>


<classification
dictionary=« ETAI:vehicle »
ref=« cnit »>METTRE VALEUR CNIT</classification>


</alternative-ref-list>


</vehicle>


</vehicle-list>

</shuttle>

</xat2>

8.3.2. ACK avec url Catalogue E-T-A-I

Catalogue E-T-A-I va préparer l’environnement pour l’arrivée prochaine de l’utilisateur sur l’application.

Une fois cela fait, il va répondre au précédent message XAT2V2 de Application partenaire en lui envoyant un accusé de réception contenant l’url de redirection, ainsi que l’id de session.

Tableau 26 – Envoi de l’id de session

XML

Commentaires

<?xml
version=« 1.0 »
encoding=« utf-8 »
standalone=« no »?>

<xat2
xmlns=« http://xat2.etai.fr » version=« 2.0 »>
 
<date-list>


<explicit-date
source=« XAT2 »>


<breakdown-list>


<classification
dictionary=« ETAI:date »



ref=« receive »


source=« XAT2 »>


Receive date


</classification>


</breakdown-list>

<date
format=« dd.MM.yyyy HH:mm:ss:S Z »>


{dateValue}


</date>


</explicit-date>


<explicit-date
source=« XAT2 »>


<breakdown-list>


<classification
dictionary=« ETAI:date »


ref=« dispatch »


source=« XAT2 »>


Completion date


</classification>


</breakdown-list>


<date
format=« dd.MM.yyyy HH:mm:ss:S Z »>


{dateValue}


</date>


</explicit-date>

</date-list>

Le serveur XAT2 renvoie les dates liées au message.


<message-list>

 


<message>


<message-category>ack</message-category>


<technical-description>


redirectVehicle processing complete


</technical-description>


<classification-list>


<classification
dictionary=« Xat2:message »

ref=« complete »/>

</classification-list>


</message>

</message-list>

Accusé de réception

<message-list> contiendra un message indiquant le bon déroulement de l’échange via une <classification> spécifié par le dictionnaire « Xat2:message » et la ref « complete ».

<session-context>

 


<dms-login>{dmsLogin}</dms-login>


<user-shared-id>{userSharedId}</user-shared-id>


<garage-shared-id>{garageSharedId}</garage-shared-id>


<session-id>{sessionId}</session-id>


<last-accessed-time
format=« dd.MM.yyyy HH:mm:ss:S Z »>

{dateValue}


</last-accessed-time>


<max-session-duration>


{durationValue}


</max-session-duration>

</session-context>

Identifiants de session

Contient l’id de session

<uri-list>

 


<uri-service
action=« Display »
direct-access=« true »>


<uri>{displayUrl}</uri>


</uri-service>

</uri-list>

URL d’affichage

Dans <uri-list>, on retrouvera l’url à ouvrir dans le navigateur de l’utilisateur.

Elle devra être complétée de l’id de session :

  • {displayUrl}?sessionid={sessionId}

<shuttle/>

 

</xat2>

8.3.3. Redirection de l’utilisateur sur Catalogue E-T-A-I

Dans le xml XAT2 récupéré précédemment, il faut récupérer le numéro de session XAT2.

Ce numéro sera utilisé ensuite pour pouvoir lancer l’application ETAI.

XML

Commentaires

<?xml
version=« 1.0 »
encoding=« utf-8 »
standalone=« no »?>

<xat2
xmlns=« http://xat2.etai.fr » version=« 2.0 »>
 <session-context>


<session-id>{sessionId}</session-id>

</session-context>

Le session-id contient le numéro de session XAT2.

Attention, cette chaîne peut aller jusqu’à 64 caractères.

<shuttle/>

 

</xat2>

L’url d’affichage est récupérable dans la réponse XAT2V2 du message précédent.

XML

Commentaires

<?xml
version=« 1.0 »
encoding=« utf-8 »
standalone=« no »?>

<xat2
xmlns=« http://xat2.etai.fr » version=« 2.0 »>
 <uri-list>


<uri-service
action=« Display »>


<uri>{displayUrl}</uri>


</uri-service>

</uri-list>

 

L’uri service ayant l’action « Display » contient l’url d’affichage Catalogue E-T-A-I .

<shuttle/>

 

</xat2>

Il faut compléter l’url avec l’id de session XAT2 renvoyée par Catalogue E-T-A-I.

Ouvrir un navigateur avec l’URL suivante : http://{application_ETAI}/rest/xat2disp?sessionid={session-id}

Tableau 27 – Format de l’url de redirection

URL

Commentaires

http://

Obligatoire et en minuscule

{application_ETAI}

Le nom de Catalogue E-T-A-I

(par exemple www.atelioam.com )

Faire attention aux minuscules et majuscules.

/

Séparateur

rest

REST est la technologie employée pour communiquer.

Présence obligatoire.

Écrire en minuscules.

/

Séparateur

xat2disp

Le service « display » de XAT2 qui indique que l’on souhaite entrer dans Catalogue E-T-A-I.

Écrire en minuscules

?

Caractère « point d’interrogation » obligatoire

sessionid

Le nom du paramètre

Écrire en minuscules

=

Séparateur entre le paramètre et sa valeur

{session-id}

Indiquer le numéro de session XAT2 récupéré précédemment.

Les caractères doivent être rigoureusement identiques.

Exemple : http://www.atelioam.com/rest/xat2disp?sessionid=1324df4dd

On notera que l’utilisateur n’a pas besoin de saisir son login ou son password E-T-A-I.

Une fois l’utilisateur sur Catalogue E-T-A-I, il effectuera un certain nombre d’actions, et une fois qu’il aura trouvé son véhicule, il le sélectionnera, et cela enverra une notification XAT2V2 à Application partenaire.

8.3.4. Notification du client (seulement accès par redirection)

Si Application partenaire est en accès via le mode redirection, alors pour l’avertir que les données sont prêtes on va effectuer une redirection vers l’url fournie lors de l’envoi du verbe redirectVehicle.

8.3.5. Envoi du verbe getData (seulement accès par redirection)

Si Application partenaire est en mode d’accès par redirection, alors il va devoir envoyer une requête avec le verbe getData afin de récupérer les données de la variante.

Tableau 28 – Envoi du verbe getData

XML

Commentaires

<?xml
version=« 1.0 »
encoding=« utf-8 »
standalone=« no »?>

<xat2
xmlns=« http://www.xat2.etai.fr« 
version=« 2.0 »>


<session-context>


<session-id>{sessionId}</session-id>

</session-context>


<shuttle>


<transport>


<action-list>


<action>


<verb>getData</verb>


</action>


</action-list>


</transport>


</shuttle>

</xat2>

Indiquer l’id de session, et envoi du verbe getData

 

8.3.6. Réponse XAT2V2 : Catalogue E-T-A-I -> Application partenaire

Le flux renvoie un message XAT2V2 contenant le véhicule choisi par l’utilisateur.

Les données du véhicule seront renvoyées :

  • Soit suite à l’appel du verbe « getData » (accès par redirection), donc on renverra le véhicule dans un message de type ack en réponse.
  • Soit en tant que message XAT2V2 avec le verbe « postVehicle »

Tableau 29 – réponse de la recherche de variante

XML

Commentaires

<?xml
version=« 1.0 »
encoding=« utf-8 »
standalone=« no »?>

<xat2
xmlns=« http://xat2.etai.fr »
version=« 2.0 »>
 
<date-list>


<explicit-date
source=« XAT2 »>


<breakdown-list>


<classification
dictionary=« ETAI:date »



ref=« receive »


source=« XAT2 »>


Receive date


</classification>


</breakdown-list>

<date
format=« dd.MM.yyyy HH:mm:ss:S Z »>


{dateValue}


</date>


</explicit-date>


<explicit-date
source=« XAT2 »>


<breakdown-list>


<classification
dictionary=« ETAI:date »


ref=« dispatch »


source=« XAT2 »>


Completion date


</classification>


</breakdown-list>


<date
format=« dd.MM.yyyy HH:mm:ss:S Z »>


{dateValue}


</date>


</explicit-date>

</date-list>

Liste des dates concernant la requête XAT2V2

 

Cette donnée ne sera présente que si Application partenaire est en mode d’accès par redirection

 


<message-list>

 


<message>


<message-category>ack</message-category>


<technical-description>


getData processing complete


</technical-description>


<classification-list>


<classification
dictionary=« Xat2:message »


ref=« complete »/>


</classification-list>


</message>


</message-list>

Liste des messages

 

Cette donnée ne sera présente que si Application partenaire est en mode d’accès par redirection

Ci-contre, un message de type Accuse de réception pour indiquer que Catalogue E-T-A-I a bien reçu la requête « getData » et que tout s’est bien déroulé.

<message-list> contiendra un message indiquant le bon déroulement de l’échange via une <classification> spécifié par le dictionnaire « Xat2:message » et la ref « complete ».

 

<session-context>

 


<session-id>{sessionId}</session-id>

</session-context>

Contexte de session

En mode accès direct, le <session-id> sera renseigné.

<shuttle> 
<transport>

 


<action-list>


<action>


<verb>postVehicle</verb>


</action>


</action-list>

</transport>

Verbe postVehicle

Cette donnée ne sera présente que si Application partenaire est en mode d’accès direct.

<vehicle-list>

 


<vehicle>
 
<label>


<short-label>{shortLabel}</short-label>


<long-label>{longLabel}</long-label>

</label>

Libellé de la variante


<identification>

 


<breakdown-list>


<classification
dictionary=« ETAI:vehicle »



ref=« make »/>


</breakdown-list>

<label>

<short-label>{makeLabel}</short-label>

</label>


<classification-list>


<classification
dictionary=« ETAI:identifier »


ref=« makeId »


source=« etai »>

{makeId}


</classification>


</classification-list>


</identification>

Marque du véhicule

La marque du véhicule est caractérisée, au sein de l’élément identification, par l’élément classification faisant référence à la valeur « make » du dictionnaire ETAI:vehicle.

L’identifiant de la marque est renseigné selon la source « etai » : identifiant de la base véhicule d’E-T-A-I


<identification>

 


<breakdown-list>


<classification
dictionary=« ETAI:vehicle »



ref=« model »/>


</breakdown-list>

<label>

<short-label>{modelLabel}</short-label>

</label>


<classification-list>


<classification
dictionary=« ETAI:identifier »


ref=« modelId »


source=« etai »>

{modelId}


</classification>


</classification-list>


</identification>

Modèle du véhicule

Le modèle du véhicule est caractérisé, au sein de l’élément identification, par l’élément classification faisant référence à la valeur « model » du dictionnaire ETAI:vehicle.

Ce niveau d’identification est lié à une notion de carrosserie du véhicule (nombre de portes, forme de carrosserie, …).

L’identifiant du modèle est renseigné selon la source « etai » : identifiant de la base véhicule d’E-T-A-I.


<identification>

 


<breakdown-list>


<classification
dictionary=« ETAI:vehicle »



ref=« variation »/>


</breakdown-list>

<label>

<short-label>{variationLabel}</short-label>

</label>


<classification-list>


<classification
dictionary=« ETAI:identifier »


ref=« variationId »


source=« etai »>

{variationId}


</classification>


</classification-list>


</identification>

Identification de la variante

L’identification est caractérisée, au sein de l’élément identification, par l’élément classification faisant référence à la valeur « variation » du dictionnaire ETAI:vehicle.

Ce niveau d’identification est lié à une notion de mécanique du véhicule (cylindrée, type de carburant, …).

L’identifiant de la variante est renseigné selon la source « etai » : identifiant de la base véhicule d’E-T-A-I.


<alternative-ref-list>

 


<classification
dictionary=« ETAI:vehicle »



ref=« {refType »>

{refValue}


</classification>


</alternative-ref-list>

Identifiants administratif du véhicule

Ces identifiants sont caractérisés par le dictionnaire « ETAI:vehicle ».

{refType} peut prendre les valeurs suivantes :

vvt (type mines / tvv)

  • cnit
  • vin
  • registration

La liste peut contenir plusieurs références d’un même type.


<gearbox>

 


<gear>{gearboxValue]</gear>


</gearbox>

Nombre de vitesses de la boite de vitesse


<door-number>{doorNumberValue}</door-number>

Nombre de portes

<fuel>

 

<classification
dictionary=« ETAI:fuel »
ref=« diesel »/>

</fuel>

Carburant (facultatif)

Type de carburant du véhicule.

Les valeurs possibles correspondent aux références du dictionnaire « ETAI:fuel »


<fiscal-rating>{fiscalRatingValue}</fiscal-rating>

Puissance fiscale


<capacity-list>

 


<value
value-type=« amount »>


<amount>{amountValue}</amount>


<amount-of>


<classification
dictionary=« ETAI:measure »


ref=« engineCapacity »/>


</amount-of>


<measurement>


<classification
dictionary=« ETAI:unit »
ref=« cm3 »/>


</measurement>


</value>


</capacity-list>

Cylindrée

La cylindrée du véhicule fait partie de la section <capacity-list>. Elle correspond à la valeur caractérisée par la référence « engineCapacity » du dictionnaire « ETAI:measure ». Elle est exprimée en cm3.


</vehicle>

 


</vehicle-list>
 </shuttle>

</xat2>

8.4. Gestion des anomalies

Les erreurs bloquantes pouvant être renvoyées par le serveur XAT2V2 sont listés dans le Chapitre 5.4 Anomalies bloquantes XAT2V2

Si les valeurs des paramètres de recherche de la requête sont invalides (exemple : un code variante etai contenant des lettres), alors aucun message d’erreur ne sera renvoyé, mais l’utilisateur sera redirigé vers la page d’accueil de la recherche de variante.

9. Service d’édition de devis

9.1. Description détaillée de l’interface

9.1.1. Description

Ce service a pour objectif de permettre à Application partenaire de créer ou éditer un devis sur Catalogue E-T-A-I, avant de le renvoyer à Application partenaire.

Ce service utilise le mode interactif de XAT2V2, il y a donc une gestion de la session dans les échanges.

9.1.2. Liste des données

Application partenaire è Catalogue E-T-A-I
Donnée

Description / commentaire

applicationID

Identifiant de l’application.

dmslogin

Identifiant de l’interface.

garagesharedID

Identifiant du garage.

usersharedID

Identifiant de l’utilisateur.

Code du devis

Code du devis chez le partenaire

Taux de main d’œuvre

Liste des taux de main d’œuvre

TVA

Tva

Remises

Liste des remises

Véhicule

Objet contenant les caractéristiques véhicule (marque, immatriculation, …)

Client

Objet contenant des informations sur le client (nom, adresse, …)

 

Catalogue E-T-A-I è Application partenaire
Donnée

Description / commentaire

Taux de main d’œuvre

Liste des taux de main d’œuvre

TVA

Tva

Remises

Liste des remises

Devis

Objet contenant les informations sur le devis :

Liste des pièces

La liste des pièces impliquées dans le devis.

Liste des opérations de temps

La liste des opérations de temps du devis.

Liste des forfaits

La liste des forfaits du devis.

Liste des ingrédients

La liste des ingrédients utilisés dans le devis.

Consigne / déconsigne

Liste des consignes / déconsignes dans le devis

Retraitement des déchets

Liste des retraitements des déchets dans le devis

Montants du devis

Montants du devis ventilé par taux, secteur d’activité, …

Véhicule

Objet contenant les caractéristiques du véhicule (marque, immatriculation, nombre de portes, moteur, …)

9.1.3. Volumétrie et Fréquence – vision métier

Le tableau suivant est mis à titre indicatif. Libre au rédacteur d’ajouter ou supprimer des colonnes ou de donner la volumétrie sans tableau.

Nombre

moyen de

demandes / jour

Pic de

Demandes /
15 minutes

Taille moyenne
demande

Application partenaire

Taille maximale
demande

Application partenaire

Taille moyenne
réponse

Catalogue E-T-A-I

Taille maximale
réponse

Catalogue E-T-A-I

9.1.4. Étapes de l’appel au service interactif

  • Envoi de la requête d’édition de devis avec les données de connexion, le shuttle, etc. (Application partenaire à
    Catalogue E-T-A-I)
  • Vérification des identifiants de connexion, préparation de l’environnement sur Catalogue E-T-A-I, création de la session, et renvoi à Application partenaire l’url vers laquelle il faut envoyer l’utilisateur, ainsi que l’id de session. Si la requête est incorrecte, on renvoie une erreur à l’application (Catalogue E-T-A-I
    à Application partenaire).
  • Si pas d’anomalie reçue, Application partenaire ouvre un navigateur et redirige l’utilisateur vers l’url reçue
  • L’utilisateur effectue la création ou la modification d’un devis (Application partenaire à
    Catalogue E-T-A-I)
  • L’application ETAI notifie, par un message XAT2, Application partenaire que son travail est terminé (par appel direct ou par une redirection en utilisant le navigateur de l’utilisateur) (Catalogue E-T-A-I
    à Application partenaire)
  • Application partenaire reprend la main et invoque le serveur XAT2 pour obtenir le résultat du travail effectué par l’utilisateur.
    (Application partenaire
    à
    Catalogue E-T-A-I)

9.1.5. Composer L’URL à laquelle envoyer les xml

L’URL à laquelle il faut envoyer les requêtes XAT2V2 est de la forme : http://<application_ETAI>/rest/xat2v2/.

URL

Commentaires

http://

Il s’agit du protocole http.

Présence obligatoire.

Écrire en minuscules.

<application_ETAI>

Il s’agit de l’application online E-T-A-I.

Présence obligatoire.

Faire attention aux minuscules/majuscules. Écrire le nom exactement.

/

Séparateur

rest

REST est la technologie employée pour communiquer.

Présence obligatoire.

Écrire en minuscules.

/

Séparateur

xat2v2

Il s’agit du protocole XAT2V2.

Présence obligatoire.

Écrire en minuscules.

/

Séparateur

9.1.6. Schéma d’ensemble des traitements

9.1.7. Condition d’appel / contexte

Outre les informations de connexion (usersharedID, dmslogin, …), Application partenaire doit spécifier au minimum l’identifiant du devis actuellement ouvert dans l’application de gestion, ainsi que le client et l’identifiant du véhicule. Ensuite selon les autres données renseignées, certains champs seront obligatoires.

9.1.8. Type d’exécution de l’interface

Les différents transferts de données entre les 2 logiciels sont à l’initiative de l’utilisateur.

Un bouton « Catalogue E-T-A-I  » sera présent dans Application partenaire. Lorsque l’utilisateur cliquera dessus, un nouveau navigateur web s’ouvrira pour afficher les pages de Catalogue E-T-A-I.

Un bouton de transfert sera présent pour renvoyer le devis à Application partenaire.

9.1.9. Disponibilité de l’interface

L’interface sera disponible au même titre que les applications Catalogue E-T-A-I et Application partenaire.

E-T-A-I se réserve cependant le droit d’interrompre le service en cas de mise à jour de l’application ou des données. Ces interventions interviendront entre 12h30 et 13h30 en journée ou après 19h.

9.1.10. Performance

Le temps de traitement d’un message XAT2V2 par Catalogue E-T-A-I ne doit pas prendre plus de 10 secondes.

Lorsqu’un utilisateur lance le transfert du devis vers Application partenaire, ce     dernier doit renvoyer un acquittement de reception dans les 10 secondes qui suivent.

9.2. Cas d’utilisation

Trois scénarios sont possibles lors de l’utilisation de ce service :

  • Si le devis existe déjà, alors on redirige l’utilisateur vers le devis.
  • Lors de la création d’un devis, si la variante du devis est directement trouvée via les informations fournies par Application partenaire, dans ce cas on est redirigé vers la page affichant la variante trouvée, et une fois celle-ci sélectionnée par l’utilisateur, il sera envoyé vers le devis.
  • Lors de la création d’un devis, si la variante n’est pas trouvée, l’utilisateur sera redirigé vers la recherche de variante, puis une fois la variante sélectionnée, l’utilisateur sera redirigé vers la page du devis.

Ensuite il pourra compléter son devis en y ajoutant des pièces, des forfaits, etc.

Une fois le devis fini, il pourra le renvoyer à Application partenaire en cliquant sur le bouton.

9.2.1. Cas où le devis existe déjà et sans modification de véhicule

Si un devis existe déjà chez Catalogue E-T-A-I, l’utilisateur sera redirigé vers la page du devis.


9.2.2. Cas où le véhicule du devis n’est pas trouvé

Lorsqu’on ne peut pas identifier directement une variante à partir des informations fournies par Application partenaire, alors on va le rediriger vers la recherche d’Identification de Véhicule sur le site Catalogue E-T-A-I, où il devra sélectionner manuellement sa variante.

Les raisons pour laquelle on ne peut trouver une variante unique sont multiples :

  • Recherche de variante à partir d’une marque : alors dans ce cas l’utilisateur sera amené sur la page de choix du modèle.


Figure 4 – Recherche Variante – Sélection du modèle

  • Recherche avec plusieurs résultats : alors dans ce cas, l’utilisateur devra sélectionner la variante voulue parmi la liste de choix.


Figure 5 – Recherche Variante – Sélection d’une variante

  • Recherche sans paramètre ou sans résultat : alors dans ce cas l’utilisateur sera amené sur la page de choix de la marque de la variante.


Figure 6 – Recherche Variante – Liste des marques

Une fois que l’utilisateur aura sélectionné le véhicule de son choix, il sera redirigé vers le devis.

9.2.3. Cas où le véhicule du devis est trouvé mais différent de celui sur Catalogue E-T-A-I

Dans le cas où le véhicule est identifié par le code variante E-T-A-I, l’utilisateur arrive directement sur la page du devis avec le véhicule transmis sinon il est amené sur la page de sélection de variante.


Ensuite s’il sélectionne la variante, il sera alors redirigé vers la page de consultation du devis.


9.2.4. Cas où le devis n’existe pas mais son véhicule est trouvé par identifiant ETAI

Si le devis n’existe pas, mais qu’un identifiant E-T-A-I valide de véhicule est envoyé, alors le devis sera créé et l’utilisateur sera redirigé vers la page du devis avec le véhicule choisi.

9.3. Description des étapes XAT2V2

Le service est interactif, ci-dessous est décrit l’ensemble du processus pour l’utilisation du service.

Certaines étapes dépendent du type d’accès de Application partenaire, s’il est en accès direct ou en accès par redirection.

9.3.1. Requête XAT2V2 : Application partenaire -> Catalogue E-T-A-I

Verbe à utiliser : redirectEstimate (la casse est importante)

Tableau 30 – Requête du flux d’édition du devis

XML

Commentaires

<?xml
version=« 1.0 »
encoding=« utf-8 »
standalone=« no »?>

<xat2
xmlns=« http://xat2.etai.fr »
version=« 2.0 »>
 <uri-list>


<uri-service
action=« DMSaddress »


direct-access=« {directAccessValue} »>


<uri>{partnerUrl}</uri>


</uri-service>

</uri-list>

Url pour contacter Application partenaire.

{directAccessValue} a 2 valeurs possibles :

  • « true » : l’application est accessible en mode direct
  • « false » : l’application est accessible en mode redirection

{partnerUrl} est l’url de l’Application partenaire.

<session-context>

 


<application-id>{applicationId}</application-id>


<dms-login>{dmsLogin}</dms-login>


<user-shared-id>{userSharedId}</user-shared-id>


<garage-shared-id>{garageSharedId}</garage-shared-id>

</session-context>

Identifiants de session

Voir Chapitre 5.2 Gestion des identifiants XAT2V2

<shuttle> 
<transport>

 

<partner>

<name>{dmsName}</name>

<editor dictionary= »ETAI:editor » ref= »{editorRef}« >

<version-code>{dmsVersion}</version-code>

</partner>


<action-list>


<action>


<verb>redirectEstimate</verb>


<option-list>

<option>force</option>


<option
dictionary=« ETAI:identifier »


ref=« estimateId »

source=« partner »>

 

{estimateId}


</option>


</option-list>


</action>


</action-list>


</transport>

Déclaration du verbe

« redirectEstimate »

 

Option « force » : optionnel. Permet de forcer la connexion au service. Si un utilisateur utilise déjà les identifiants du session-context, il sera déconnecté.

Si l’option n’est pas mise alors si un utilisateur utilise déjà les identifiants du session-context, le serveur XAT2V2 accusera réception que le session-context est en cours d’utilisation (ack inWork).

Code Application partenaire du devis (obligatoire)

Si {estimateId} présent, mais inconnu, on créera un nouveau devis avec ce code devis, sinon on éditera le devis existant. (longueur maximale : 35 caractères)

partner : information sur Application partenaire communicant avec Catalogue E-T-A-I.

 


<default-shuttle-settings>

 


<currency
dictionary=« ETAI:unit »
ref=« euro »/>


<time-unit
dictionary=« ETAI:unit »
ref=« hour »/>


</default-shuttle-settings>

Paramètres par défaut

Déclaration de l’unité de temps (heure) et monétaire (euro) par défaut.


<settings>
 
<labor-list>

 


<labor-cost-rate>


<breakdown-list>


<classification
dictionary=« ETAI:sector »


ref=« {sectorRef} »/>


<classification
dictionary=« ETAI:level »



ref=« {level} »/>


</breakdown-list>


<value><amount>{amountValue}</amount></value>


</labor-cost-rate>


<!–Mettre les autres labor-cost-rate pour les autres secteurs et niveaux–>


</labor-list>

Déclaration des taux de main d’œuvre

Lister l’ensemble des taux de main d’œuvre (voir Chapitre 7.1.1)


<VAT-list>

 


<VAT-rate>


<value><amount>{amountValue}</amount></value>


</VAT-rate>


</VAT-list>

TVA

Le taux de TVA du devis

(voir Chapitre 7.1.2)


<discount-list>

 


<discount>


<breakdown-list>


<classification
dictionary=« ETAI:applicability »


ref=« {applicabilityRef} »/>


</breakdown-list>


<value
value-type=« percent »>


<amount>{amountValue}</amount>


</value>


</discount>


</discount-list>

Remises par défaut

Toutes les remises sont exprimées en pourcentage et leur applicabilité est définie via le dictionnaire « ETAI:applicability ». Les références possibles sont :

  • part : remise par défaut pour les pièces et ingrédients.
  • labor-rate: remise par défaut pour opérations de temps.
  • tire : remise par défaut pour les pneus.
  • total : remise sur le total du devis

(Voir Chapitre 7.1.3)


</settings>
 <person-list>

 


<person>


<breakdown-list>


<classification
dictionary=« ETAI:person »


ref=« client »/>


</breakdown-list>


<title
dictionary=« ETAI:personTitle »


ref=« {titleValue} »/>


<firstname>{firstname}</firstname>


<name>{name}</name>


<place>


<address
number=« 1 »>{addressLine1}</address>


<address
number=« 2 »>{addressLine2}</address>


<zip-code>{zipCode}</zip-code>


<city>{city}</city>


<country>


<classification
dictionary=« ETAI:country »


ref=« {countryRef} »>

{countryLabel}


</classification>


</country>


</place>


<contact-list>


<contact>


<contact-category
dictionary=« ETAI:contact »


ref=« {contactRef} »/>


<contact-value>{contactValue}</contact-value>


</contact>


</contact-list>


<agreement-list>


<agreement>


<classification
dictionary=« ETAI:agreement »



ref=« tvaIntra »>

{tvaIntraValue}

</classification>


</agreement>


</agreement-list>


<classification-list>


<classification
source=« partner » ref=« {idPartner} »/>


</classification-list>

</person>

</person-list>

Définition du client du devis

Voir Chapitre 7.3.1

 

{idPartner} correspond au code du client dans la base Application partenaire.

 

<vehicle-list>

 


<vehicle>


<alternative-ref-list>


<classification
dictionary=« ETAI:vehicle »


ref=« {refType} »>

{refValue}


</classification>


</alternative-ref-list>


<classification-list>


<classification
source=« partner » ref=« {idPartner} »/>


</classification-list>


</vehicle>

</vehicle-list>

Définition du véhicule

Informations sur l’identification du véhicule : Voir 7.2 Variante

 

{idPartner} est obligatoire

Il correspond au code de la variante dans la base Application partenaire

 

</shuttle> </xat2>

 

9.3.2. ACK avec url Catalogue E-T-A-I

Catalogue E-T-A-I va préparer l’environnement pour l’arrivée prochaine de l’utilisateur sur l’application.

Une fois cela fait, il va répondre au précédent message XAT2V2 de Application partenaire en lui envoyant un accusé de réception contenant l’url d’affichage et l’id de la session XAT2.

Tableau 31 – Envoi de l’id de session

XML

Commentaires

<?xml
version=« 1.0 »
encoding=« utf-8 »
standalone=« no »?>

<xat2
xmlns=« http://xat2.etai.fr » version=« 2.0 »>
 <date-list>


<explicit-date
source=« XAT2 »>


<breakdown-list>


<classification
dictionary=« ETAI:date »



ref=« receive »


source=« XAT2 »>


Receive date


</classification>


</breakdown-list>

<date
format=« dd.MM.yyyy HH:mm:ss:S Z »>


{dateValue}


</date>


</explicit-date>


<explicit-date
source=« XAT2 »>


<breakdown-list>


<classification
dictionary=« ETAI:date »


ref=« dispatch »


source=« XAT2 »>


Completion date


</classification>


</breakdown-list>


<date
format=« dd.MM.yyyy HH:mm:ss:S Z »>


{dateValue}


</date>


</explicit-date>

</date-list> 
<message-list>


<message>


<message-category>ack</message-category>


<technical-description>


redirectEstimate processing complete


</technical-description>


<classification-list>


<classification
dictionary=« Xat2:message »

ref=« complete »/>

</classification-list>


</message>

</message-list>

Accusé de réception

<message-list> contiendra un message indiquant le bon déroulement de l’échange via une <classification> spécifié par le dictionnaire « Xat2:message » et la ref « complete ».

<session-context>

 


<dms-login>{dmsLogin}</dms-login>


<user-shared-id>{userSharedId}</user-shared-id>


<garage-shared-id>{garageSharedId}</garage-shared-id>


<session-id>{sessionId}</session-id>


<last-accessed-time
format=« dd.MM.yyyy HH:mm:ss:S Z »>

{dateValue}


</last-accessed-time>


<max-session-duration>


{durationValue}


</max-session-duration>

</session-context>

Identifiants de session

Contient l’id de session

<uri-list>

 


<uri-service
action=« Display »
direct-access=« true »>


<uri>{displayUrl}</uri>


</uri-service>

</uri-list>

URL d’affichage

Dans <uri-list>, on retrouvera l’url à ouvrir dans le navigateur de l’utilisateur.

Elle devra être complétée de l’id de session :

  • {displayUrl}?sessionid={sessionId}

<shuttle/>

 

</xat2>

9.3.3. Redirection de l’utilisateur sur Catalogue E-T-A-I

Dans le xml XAT2 récupéré précédemment, il faut récupérer le numéro de session XAT2.

Ce numéro sera utilisé ensuite pour pouvoir lancer Catalogue E-T-A-I.

XML

Commentaires

<?xml
version=« 1.0 »
encoding=« utf-8 »
standalone=« no »?>

<xat2
xmlns=« http://xat2.etai.fr » version=« 2.0 »>
 <session-context>


<session-id>{sessionId}</session-id>

</session-context>

Le session-id contient le numéro de session XAT2.

Attention, cette chaîne peut aller jusqu’à 64 caractères.

<shuttle/>

 

</xat2>

L’url d’affichage est récupérable dans la réponse XAT2V2 du message précédent.

XML

Commentaires

<?xml
version=« 1.0 »
encoding=« utf-8 »
standalone=« no »?>

<xat2
xmlns=« http://xat2.etai.fr » version=« 2.0 »>
 <uri-list>


<uri-service
action=« Display »>


<uri>{displayUrl}</uri>


</uri-service>

</uri-list>

L’uri service ayant l’action « Display » contient l’url d’affichage Catalogue E-T-A-I.

<shuttle/>

 

</xat2>

 

 

Il faut compléter l’url avec l’id de session XAT2 renvoyée par Catalogue E-T-A-I.

Ouvrir un navigateur avec l’URL suivante :

http://{application_ETAI}/rest/xat2disp?sessionid={session-id}

URL

Commentaires

http://

Obligatoire et en minuscule

{application_ETAI}

Le nom de Catalogue E-T-A-I

(par exemple www.atelioam.com )

Faire attention aux minuscules et majuscules.

/

Séparateur

rest

REST est la technologie employée pour communiquer.

Présence obligatoire.

Écrire en minuscules.

/

Séparateur

xat2disp

Le service « display » de XAT2 qui indique que l’on souhaite entrer dans Catalogue E-T-A-I.

Écrire en minuscules

?

Caractère « point d’interrogation » obligatoire

Sessionid

Le nom du paramètre

Écrire en minuscules

=

Séparateur entre le paramètre et sa valeur

{session-id}

Indiquer le numéro de session XAT2 récupéré précédemment.

Les caractères doivent être rigoureusement identiques.

Exemple : http://www.atelioam.com/rest/xat2disp?sessionid=1324df4dd

Celui-ci pourra effectuer son devis dans Catalogue E-T-A-I .

On notera que l’utilisateur n’a pas besoin de saisir son login ou son password E-T-A-I.

Une fois l’utilisateur sur Catalogue E-T-A-I, il pourra effectuer son devis, et une fois qu’il aura cliqué sur le bouton « transférer le devis », cela enverra une notification XAT2V2 à Application partenaire.

9.3.4. Notification du client (seulement accès par redirection)

Si Application partenaire est en accès via le mode redirection, alors pour l’avertir que les données sont prêtes, on va effectuer une redirection vers l’url fournie lors de l’envoi du verbe « redirectEstimate ».

9.3.5. Envoi du verbe getData (seulement accès par redirection)

Si Application partenaire est en mode d’accès par redirection, alors il va devoir envoyer une requête avec le verbe getData afin de récupérer les données du devis.

Tableau 32 – Envoi du verbe getData

XML

Commentaires

<?xml
version=« 1.0 »
encoding=« utf-8 »
standalone=« no »?>

<xat2
xmlns=« http://xat2.etai.fr »
version=« 2.0 »>


<session-context>


<session-id>{sessionId}</session-id>


</session-context>


<shuttle>


<transport>


<action-list>


<action>


<verb>getData</verb>


</action>


</action-list>


</transport>


</shuttle>

</xat2>

Indiquer l’id de session, et envoi du verbe getData

 

9.3.6. Réponse XAT2V2 : Catalogue E-T-A-I -> Application partenaire

Description du contenu d’un devis dans le Chapitre 7.3 Devis.

Le flux renvoie un message XAT2V2 contenant le devis et toutes ses données.

Les données du devis seront renvoyées :

  • Soit suite à l’appel du verbe « getData » (accès par redirection), donc on renverra le devis dans un message de type ack en réponse.
  • Soit en tant que message XAT2V2 avec le verbe « postEstimate »

Tableau 33 – réponse du service Devis

XML

Commentaires

<?xml
version=« 1.0 »
encoding=« utf-8 »
standalone=« no »?>

<xat2
xmlns=« http://xat2.etai.fr » version=« 2.0 »>
 
<date-list>


<explicit-date
source=« XAT2 »>


<breakdown-list>


<classification
dictionary=« ETAI:date »



ref=« receive »


source=« XAT2 »>


Receive date


</classification>


</breakdown-list>

<date
format=« dd.MM.yyyy HH:mm:ss:S Z »>


{dateValue}


</date>


</explicit-date>


<explicit-date
source=« XAT2 »>


<breakdown-list>


<classification
dictionary=« ETAI:date »


ref=« dispatch »


source=« XAT2 »>


Completion date


</classification>


</breakdown-list>


<date
format=« dd.MM.yyyy HH:mm:ss:S Z »>


{dateValue}


</date>


</explicit-date>

</date-list>

Liste des dates concernant la requête XAT2V2

 

Cette donnée ne sera présente que si Application partenaire est en mode d’accès par redirection

 

<message-list>

 


<message>


<message-category>ack</message-category>


<technical-description>


getData processing complete


</technical-description>


<classification-list>


<classification
dictionary=« Xat2:message »



ref=« complete »/>

</classification-list>


</message>

</message-list>

Liste des messages

Cette donnée ne sera présente que si Application partenaire est en mode d’accès par redirection

 

Ci-contre, un message de type Accuse de réception pour indiquer que Catalogue E-T-A-I a bien reçu la requête « getData » et que tout s’est bien déroulé.

<message-list> contiendra un message indiquant le bon déroulement de l’échange via une <classification> spécifié par le dictionnaire « Xat2:message » et la ref « complete ».

 

<shuttle> 
<transport>

 


<action-list>

 


<action>


<verb>postEstimate</verb>

Verbe postEstimate

Cette donnée ne sera présente que si Application partenaire est en mode d’accès direct.


<option-list>

 


<option
dictionary=« ETAI:admin »


ref=« fileNumber »


source=« partner »>

{estimateId}


</option>


</option-list>

</action>

Code Application partenaire du devis


</action-list>

 


</transport>
 <settings>  <labor-list>


<labor-cost-rate
internal-id=« {idValue} »>


<breakdown-list>


<classification
dictionary=« ETAI:sector »


ref=« {sectorValue} »/>


<classification
dictionary=« ETAI:level »


ref=« {levelValue} »/>

</breakdown-list>


<value>


<amount>{amountValue}</amount>


</value>


</labor-cost-rate>

</labor-list>

Déclaration des taux de main d’œuvre

Liste des taux de main d’œuvre (voir Chapitre 7.1.1)

<VAT-list>

 


<VAT-rate
internal-id=« {idValue} »>


<value>


<amount>{amountValue}</amount>


</value>


</VAT-rate>

</VAT-list>

TVA

Lister les taux de TVA (voir Chapitre 7.1.2)


<discount-list>

 


<discount
internal-id=« {idValue} »>


<breakdown-list>


<classification
dictionary=« ETAI:applicability »


ref=« {applicabilityValue} »/>

</breakdown-list>


<value
value-type=« percent »>


<amount>{amountValue}</amount>


</value>


</discount>

</discount-list>

Remises

(Voir Chapitre 7.1.3)

</settings> <vehicle-list>

 


<vehicle internal-id=« {vehicleInternalId} »>


</vehicle>

</vehicle-list>

Véhicule

Véhicule du devis

Voir chapitre 7.2 Variante

<calculating-list>

 


<calculating
vehicle-internal-id=« {vehicleInternalId} »>

{vehicleInternalId} crée la liaison entre le devis et la variante.

<price-list>

 


<price/>


</price-list>

Prix totaux du devis

Contiendra une liste de prix avec le prix total du devis, le prix de l’ensemble des pièces, des temps, des retraitements des déchets, des consignes, des forfaits.

 

Voir Chapitre 7.3.2 Prix

 


<part-list>

 


<part/>


</part-list>

Pièces

Liste des pièces

 

Le contenu d’une pièce est décrit dans le chapitre 7.3.3 Pièce

 


<operation-list>

 


<operation/>


</operation-list>

Opérations

 

Liste des opérations

Le contenu des opérations (temps divers, forfait, consigne/déconsigne, retraitement des déchets) est décrit dans le chapitre 7.3.4 Opération

 

</calculating>

 

</calculating-list> </shuttle> </xat2>

9.4. Gestion des anomalies

Les erreurs techniques pouvant être renvoyées par le serveur XAT2V2 sont listés dans le Chapitre 5.4 Anomalies bloquantes XAT2V2

Liste des erreurs spécifiques au devis du dictionnaire « ETAI:message » :

Code d’erreur

Explication

noFileNumber

L’identifiant du dossier n’est pas renseigné dans les options du verbe.

noClientCode

Le client n’est pas défini dans la requête XAT2V2.

noVehicleCode

L’identifiant du véhicule n’est pas défini dans la requête XAT2V2

10. Service d’ouverture de la page d’accueil de Catalogue E-T-A-I

10.1. Description détaillée de l’interface

10.1.1. Description

Ce service a pour objectif de permettre à Application partenaire d’ouvrir le navigateur de l’utilisateur et de le rediriger sur la page d’accueil de Catalogue E-T-A-I

L’utilisateur pourra transférer un devis à Application partenaire.

Ce service utilise le mode interactif de XAT2V2, il y a donc une gestion de la session dans les échanges.

10.1.2. Liste des données

Application partenaire è Catalogue E-T-A-I

Donnée

Description / commentaire

applicationID

Identifiant de l’application.

dmslogin

Identifiant de l’interface.

garagesharedID

Identifiant du garage.

usersharedID

Identifiant de l’utilisateur.

 

Catalogue E-T-A-I è Application partenaire

Donnée

Description / commentaire

Cf. Données transférées par 9.1.2 Liste des données

Ce mode permet à Application partenaire de récupérer les mêmes informations que le service de gestion du devis mais aussi de ne rien récupérer.

10.1.3. Volumétrie et Fréquence – vision métier

Le tableau suivant est mis à titre indicatif. Libre au rédacteur d’ajouter ou supprimer des colonnes ou de donner la volumétrie sans tableau.

Nombre

moyen de

demandes / jour

Pic de

Demandes /
15 minutes

Taille moyenne
demande

Application partenaire

Taille maximale
demande

Application partenaire

Taille moyenne
réponse

Catalogue E-T-A-I

Taille maximale
réponse

Catalogue E-T-A-I

10.1.4. Étapes de l’appel au service interactif

  • Envoi de la requête d’ouverture de la page d’accueil avec les identifiants de connexion. (Application partenaire
    à Catalogue E-T-A-I)
  • Vérification des identifiants de connexion, préparation de l’environnement sur Catalogue E-T-A-I, création de la session, et renvoi à Application partenaire l’url vers laquelle il faut envoyer l’utilisateur, ainsi que l’id de session. Si la requête est incorrecte, on renvoie une erreur à l’application (Catalogue E-T-A-I à
    Application partenaire).
  • Si pas d’anomalie reçue, Application partenaire ouvre un navigateur et redirige l’utilisateur vers l’url reçue

10.1.5. Composer L’URL à laquelle envoyer les xml

L’URL à laquelle il faut envoyer les requêtes XAT2V2 est de la forme : http://<application_ETAI>/rest/xat2v2/.

URL

Commentaires

http://

Il s’agit du protocole http.

Présence obligatoire.

Écrire en minuscules.

<application_ETAI>

Il s’agit de l’application online E-T-A-I.

Présence obligatoire.

Faire attention aux minuscules/majuscules. Écrire le nom exactement.

/

Séparateur

rest

REST est la technologie employée pour communiquer.

Présence obligatoire.

Écrire en minuscules.

/

Séparateur

xat2v2

Il s’agit du protocole XAT2V2.

Présence obligatoire.

Écrire en minuscules.

/

Séparateur

10.1.6. Condition d’appel / contexte

Les données obligatoires dans l’appel à ce service :

  • les informations de connexion (usersharedID, dmslogin, …)
  • le verbe

10.1.7. Disponibilité de l’interface

L’interface sera disponible au même titre que les applications Catalogue E-T-A-I et Application partenaire.

E-T-A-I se réserve cependant le droit d’interrompre le service en cas de mise à jour de l’application ou des données. Ces interventions interviendront entre 12h30 et 13h30 en journée ou après 19h.

10.1.8. Performance

Le temps de traitement d’un message XAT2V2 par Catalogue E-T-A-I ne doit pas prendre plus de 5 secondes.

10.2. Description des étapes XAT2V2

Le service est interactif, ci-dessous est décrit l’ensemble du processus pour l’utilisation du service.

10.2.1. Requête XAT2V2 : Application partenaire -> Catalogue E-T-A-I

Verbe à utiliser : redirectHome (la casse est importante)

Tableau 34 – Ouverture de la page d’accueil – liste des différents paramètres d’identification

XML

Commentaires

<?xml
version=« 1.0 »
encoding=« UTF-8 »
standalone=« no »?>

<xat2
xmlns=« http://xat2.etai.fr »
version=« 2.0 »>
 <session-context>


<application-id>{applicationId}</application-id>


<dms-login>{dmsLogin}</dms-login>


<user-shared-id>{userSharedId}</user-shared-id>


<garage-shared-id>{garageSharedId}</garage-shared-id>

</session-context>

Identifiants de session

Voir Chapitre 5.2 Gestion des identifiants XAT2V2

<shuttle> 
<transport>

 

<partner>

<name>{dmsName}</name>

<editor dictionary= »ETAI:editor » ref= »{editorRef}« >

<version-code>{dmsVersion}</version-code>

</partner>


<action-list>


<action>


<verb>redirectHome</verb>


<option-list>

<option>force</option>

</option-list>


</action>


</action-list>


</transport>

Verbe XAT2V2

« redirectHome »

 

Option « force » : optionnel. Permet de forcer la connexion au service. Si un utilisateur utilise déjà les identifiants du session-context, il sera déconnecté.

Si l’option n’est pas mise alors si un utilisateur utilise déjà les identifiants du session-context, le serveur XAT2V2 accusera réception que le session-context est en cours d’utilisation (ack inWork).

partner : information sur Application partenaire communicant avec Catalogue E-T-A-I.

 

</shuttle>

 

</xat2>

10.2.2. ACK avec url Catalogue E-T-A-I

Catalogue E-T-A-I va préparer l’environnement pour l’arrivée prochaine de l’utilisateur sur l’application.

Une fois cela fait, il va répondre au précédent message XAT2V2 de Application partenaire en lui envoyant un accusé de réception contenant l’url de redirection, ainsi que l’id de session.

Tableau 35 – Envoi de l’id de session

XML

Commentaires

<?xml
version=« 1.0 »
encoding=« utf-8 »
standalone=« no »?>

<xat2
xmlns=« http://xat2.etai.fr » version=« 2.0 »>
 <date-list>


<explicit-date
source=« XAT2 »>


<breakdown-list>


<classification
dictionary=« ETAI:date »



ref=« receive »


source=« XAT2 »>


Receive date


</classification>


</breakdown-list>

<date
format=« dd.MM.yyyy HH:mm:ss:S Z »>


{dateValue}


</date>


</explicit-date>


<explicit-date
source=« XAT2 »>


<breakdown-list>


<classification
dictionary=« ETAI:date »


ref=« dispatch »


source=« XAT2 »>


Completion date


</classification>


</breakdown-list>


<date
format=« dd.MM.yyyy HH:mm:ss:S Z »>


{dateValue}


</date>


</explicit-date>

</date-list>

Le serveur XAT2 renvoie les dates liées au message.


<message-list>

 


<message>


<message-category>ack</message-category>


<technical-description>


redirectHome processing complete


</technical-description>


<classification-list>


<classification
dictionary=« Xat2:message »

ref=« complete »/>

</classification-list>


</message>

</message-list>

Accusé de réception

<message-list> contiendra un message indiquant le bon déroulement de l’échange via une <classification> spécifié par le dictionnaire « Xat2:message » et la ref « complete ».

<session-context>

 


<dms-login>{dmsLogin}</dms-login>


<user-shared-id>{userSharedId}</user-shared-id>


<garage-shared-id>{garageSharedId}</garage-shared-id>


<session-id>{sessionId}</session-id>


<last-accessed-time
format=« dd.MM.yyyy HH:mm:ss:S Z »>

{dateValue}


</last-accessed-time>


<max-session-duration>


{durationValue}


</max-session-duration>

</session-context>

Identifiants de session

Contient l’id de session

<uri-list>

 


<uri-service
action=« Display »
direct-access=« true »>


<uri>{displayUrl}</uri>


</uri-service>

</uri-list>

URL d’affichage

Dans <uri-list>, on retrouvera l’url à ouvrir dans le navigateur de l’utilisateur.

Elle devra être complétée de l’id de session :

  • {displayUrl}?sessionid={sessionId}

<shuttle/>

 

</xat2>

10.2.3. Redirection de l’utilisateur sur Catalogue E-T-A-I

Dans le xml XAT2 récupéré précédemment, il faut récupérer le numéro de session XAT2.

Ce numéro sera utilisé ensuite pour pouvoir lancer Catalogue E-T-A-I.

XML

Commentaires

<?xml
version=« 1.0 »
encoding=« utf-8 »
standalone=« no »?>

<xat2
xmlns=« http://xat2.etai.fr » version=« 2.0 »>
 <session-context>


<session-id>{sessionId}</session-id>

</session-context>

Le session-id contient le numéro de session XAT2.

Attention, cette chaîne peut aller jusqu’à 64 caractères.

<shuttle/>

 

</xat2>

L’url d’affichage est récupérable dans la réponse XAT2V2 du message précédent.

XML

Commentaires

<?xml
version=« 1.0 »
encoding=« utf-8 »
standalone=« no »?>

<xat2
xmlns=« http://xat2.etai.fr » version=« 2.0 »>
 <uri-list>


<uri-service
action=« Display »>


<uri>{displayUrl}</uri>


</uri-service>

</uri-list>

L’uri service ayant l’action « Display » contient l’url d’affichage Catalogue E-T-A-I.<shuttle/>

</xat2>

Il faut compléter l’url d’affichage par l’id de la session XAT2 renvoyée par Catalogue E-T-A-I. Juste après avoir envoyé le xml XAT2, lancer un navigateur web avec l’URL suivante :

http://{application_ETAI}/rest/xat2disp?sessionid={session-id}

URL

Commentaires

http://

Obligatoire et en minuscule

{application_ETAI}

Le nom de Catalogue E-T-A-I

(par exemple www.atelioam.com )

Faire attention aux minuscules et majuscules.

/

Séparateur

rest

REST est la technologie employée pour communiquer.

Présence obligatoire.

Écrire en minuscules.

/

Séparateur

xat2disp

Le service « display » de XAT2 qui indique que l’on souhaite entrer dans Catalogue E-T-A-I.

Écrire en minuscules

?

Caractère « point d’interrogation » obligatoire

sessionid

Le nom du paramètre

Écrire en minuscules

=

Séparateur entre le paramètre et sa valeur

{session-id}

Indiquer le numéro de session XAT2 récupéré précédemment.

Les caractères doivent être rigoureusement identiques.

Exemple : http://www.atelioam.com/rest/xat2disp?sessionid=1324df4dd

On notera que l’utilisateur n’a pas besoin de saisir son login ou son password E-T-A-I.

10.2.4. Réponse XAT2V2 : Catalogue E-T-A-I -> Application partenaire

Un utilisateur pourra transférer un devis à Application partenaire.

Le fonctionnement sera identique au transfert de devis décrit dans le chapitre 9.3

10.3. Gestion des anomalies

Les erreurs bloquantes pouvant être renvoyées par le serveur XAT2V2 sont listés dans le Chapitre 5.4 Anomalies bloquantes XAT2V2.

 

11. Demande des prix et stocks

11.1. Description détaillée de l’interface

Ce service va envoyer une liste de pièces à Application partenaire, et celui-ci devra renvoyer les prix et les stocks pour chaque pièce envoyée.

Catalogue E-T-A-I est donc le client, et il va faire appel au serveur XAT2V2 de Application partenaire.

11.1.1. Liste des données

Catalogue E-T-A-I è Application partenaire

Donnée

Description / commentaire

applicationID

Identifiant de l’application.

dmslogin

Identifiant de l’interface.

garagesharedID

Identifiant du garage.

liste des pièces

La liste des pièces dont on cherche le prix et le stock.

Chaque pièce envoyée contiendra les informations suivantes :

  • Un libellé
  • Données sur le fournisseur (libellé, code du fournisseur)
  • Une référence

 

Application partenaire è Catalogue E-T-A-I

Donnée

Description / commentaire

liste des pièces

La liste des pièces envoyées par Catalogue E-T-A-I

Chaque pièce contiendra les informations suivantes :

  • La référence de la pièce
  • Données sur le fournisseur (libellé, code du fournisseur)
  • Le statut de la pièce
  • Information sur le stock de la pièce
  • Les prix de la pièce (prix unitaire. Prix d’achat / de vente)
  • Le packaging (si information disponible)

11.1.2. Volumétrie et Fréquence – vision métier

Le tableau suivant est mis à titre indicatif. Libre au rédacteur d’ajouter ou supprimer des colonnes ou de donner la volumétrie sans tableau.

Nombre

moyen de

demandes / jour

Pic de

Demandes /
15 minutes

Taille moyenne
demande

Application partenaire

Taille maximale
demande

Application partenaire

Taille moyenne
réponse

Catalogue E-T-A-I

Taille maximale
réponse

Catalogue E-T-A-I

11.2. Requête XAT2V2 : Catalogue E-T-A-I -> Application partenaire

Verbe : getPriceAndStock

Tableau 36 – Requête flux Prix Et Stock

XML

Description

<?xml
version=« 1.0 »
encoding=« utf-8 »
standalone=« no »?>

<xat2
xmlns=« http://xat2.etai.fr » version=« 2.0 »>
 <session-context>


<application-id>{applicationId}</application-id>


<dms-login>{dmsLogin}</dms-login>


<garage-shared-id>{garageSharedId}</garage-shared-id>

</session-context>

Identification XAT2V2

<shuttle>  <transport>

 

<partner>

<name>Catalogue E-T-A-I</name>

<editor dictionary=« ETAI:editor »
ref=« etai »>

<version-code>{applicationVersion}</version-code>

</partner>

<action-list>

<action>

<verb>getPriceAndStock</verb>

</action>

</action-list>

</transport>

Partner et verbe XAT2V2

Déclaration du nom de l’application qui émet la requête dans le <partner>.

Déclaration du verbe.

<calculating-list>

 

<calculating>

<operation-list>

Liste des forfaits


<operation>

 

<breakdown-list>

<classification
dictionary=« ETAI:breakdown »
ref=« {packageDealRef} »/>


<classification
dictionary=« ETAI:packageDealType »



ref=« {packageDealSubType} »/>

 

</breakdown-list>

<reference-list>


<classification
source=« {sourceValue} »>

ref=« {referenceValue} » />

</reference-list>

</operation>

Déclaration d’un forfait

 

Valeurs possibles de {packageDealRef} :

  • « packageDeal » pour les forfaits

Pour un forfait MO (Main d’œuvre), {packageDealSubType} prendra la valeur « labor ». Dans les autres cas, le sous type ne sera pas défini.

Les références d’un forfait sont gérées de la même façon que les références d’une pièce (voir ci-dessous)

 

</operation-list>

 

</calculating>

</calculating-list> 
<part-list>


<part>
  <breakdown-list>

<classification
dictionary=« ETAI:breakdown »


ref=« {breakdownValue} »/>

<classification
dictionary=« ETAI:partIdentification »


ref=« {partIdentificationValue} »/>

</breakdown-list>

Identification du type de pièce.

Le type de la pièce est défini par la référence du dictionnaire « ETAI:breakdown ».

Valeurs possibles de {breakdownValue} :

  • « part » pour une pièce
  • « tire » pour un pneu
  • « ingredient » pour un ingrédient

 

Une précision est donnée sur les pièces par une référence au dictionnaire « ETAI:partIdentification ».

Valeurs possibles de {partIdentificationValue} :

  • « elementOE » pour les pièces constructeur
  • « elementAM » pour les pièces équipementier
  • « elementPRE » pour les pièces de réemploi
  • « elementGU » pour les pièces Gamme Universelle
  • « elementIU » pour les ingrédients universels

 

<reference-list>

 


<classification
source=« {sourceValue} »>

ref=« {referenceValue} »>

</classification>


</reference-list>

Référence de la pièce

Dans l’attribut source, indiquer la source (type) de la référence. Les valeurs possibles de sourceValue sont

  • « catalog » : référence catalogue sans traitement
  • « clean » : référence nettoyée (sans espace, ni caractères spéciaux)
  • « ean13 » : référence ean de la pièce (si applicable)

Pour chaque pièce, Catalogue E-T-A-I fournira ces 2 types de référence.

<supplier>

 

<abbreviation>{abbreviationValue}</abbreviation>


<label>


<long-label>{supplierLongLabel}</long-label>


</label>


<classification-list>


<classification
dictionary=« {supplierDictionary} »

ref= »{supplierRef} »/>


<classification
source=« etai »


ref= »{supplierIdETAI} »/>


</classification-list>


</supplier>

Équipementier de la pièce

L’élément abbreviation présente l’abréviation fournisseur pour les pièces AM (sur 3 ou 4 caractères).

L’élément long-label présente le libellé complet de l’équipementier.

 

Pour tous les types de pièces, un élément <classification> fournira une abréviation correspondant au <supplier>.

{supplierDictionary} peut prendre les valeurs suivantes :

  • « ETAI:supplier » pour les équipementiers
  • « ETAI:make » pour les constructeurs
  • « ETAI:manufacturer » pour les manufacturiers de pneus

{supplierRef} prendra les valeurs du dictionnaire {supplierDictionary}

Pour toutes les pièces, l’identifiant ETAI de l’équipementier est renseigné via le {supplierIdETAI}.

 


</part>

 


</part-list>
 </shuttle>

</xat2>

11.3. Notification de Application partenaire (seulement accès par redirection)

Si Application partenaire est en accès via le mode redirection, alors pour l’avertir que les données du « getPriceAndStock » sont disponibles, on va effectuer une redirection vers l’url fournie dans la configuration de Application partenaire.

11.4. Envoi du verbe getData (seulement accès par redirection)

Une fois que Application partenaire a reçu la redirection, il va envoyer une requête XAT2V2 avec le verbe « getData » afin de récupérer la requête « getPriceAndStock »

Tableau 37 – Envoi du verbe getData

XML

Commentaires

<?xml
version=« 1.0 »
encoding=« utf-8 »
standalone=« no »?>

<xat2
xmlns=« http://xat2.etai.fr »
version=« 2.0 »>


<session-context>


<session-id>{sessionId}</session-id>


</session-context>


<shuttle>


<transport>


<action-list>


<action>


<verb>getData</verb>


</action>


</action-list>


</transport>


</shuttle>

</xat2>

Indiquer l’id de session, et envoi du verbe getData

 

11.5. Réponse XAT2V2 : Application partenaire -> Catalogue E-T-A-I

Description du contenu d’une réponse à une demande de prix et stock.

Le flux renvoie un message XAT2V2 contenant les prix et stocks des pièces demandées.

Les données des prix et stocks seront renvoyées :

  • Soit en réponse directe au verbe « getPriceAndStock », message de type ack.
  • Soit suite à l’appel du verbe « getData » par un message XAT2V2 avec le verbe « postPriceAndStock »

Application partenaire enverra un message de ce type en guise de réponse :

Tableau 38 – Réponse flux Prix Et Stock

XML

Description

<?xml
version=« 1.0 »
encoding=« utf-8 »
standalone=« no »?>

<xat2
xmlns=« http://xat2.etai.fr »


<message>


<message-category>ack</message-category>


<technical-description>


getPriceAndStock processing complete


</technical-description>


<classification-list>


<classification
dictionary=« Xat2:message »

ref=« complete »>


</classification>


</classification-list>


</message>


</message-list>

Accusé de réception

Message de catégorie ack

Dans la technical-description, indiquer le verbe auquel on répond, suivi de : processing complete si tout s’est bien déroulé.

<message-list> contiendra un message indiquant le bon déroulement de l’échange via une <classification> spécifié par le dictionnaire « Xat2:message » et la ref « complete ».

 

Si Application partenaire est en accès par redirection, la <technical-description> sera :

« getData processing complete »

 

<session-context>

 


<session-id>{sessionId}</session-id>

</session-context>

 

Session XAT2V2

Seulement en mode accès par redirection avec le verb « postPriceAndStock ».

<shuttle> <transport>

 


<action-list>


<action>


<verb>postPriceAndStock</verb>


</action>


</action-list>


</transport>

Verbe postPriceAndStock

Cette donnée ne sera présente que si Application partenaire est en mode d’accès par redirection.


<person-list>

 


<person
internal-id=« {personInternalId} »>

<breakdown-list>

<classification
dictionary=« ETAI:breakdown »


ref=« storageLocation »/>

</breakdown-list>

<name>{nameOfStorageLocation}</name>


<place>


<address
number=« 1 »>{addressLine1}</address>


<address
number=« 2 »>{addressLine2}</address>


<zip-code>{zipCode}</zip-code>


<city>{city}</city>


<country>


<classification
dictionary=« ETAI:country »


ref=« {countryRef} »>

{countryLabel}


</classification>


</country>


</place>


</person>


</person-list>

Adresse du stock

Une adresse peut être sur plusieurs lignes, si c’est le cas on définit plusieurs <address> en incrémentant la valeur de « number ».

Le pays de l’adresse est défini selon le dictionnaire « ETAI:country »

 

On liera cette personne au stock via le {personInternalId}

 

<calculating-list>

 

<calculating>

<operation-list>

Liste des forfaits


<operation>

Déclaration d’un forfait

<reference-list>

 


<classification
source=« {sourceValue} »>

ref=« {referenceValue} » />

</reference-list>

Référence d’un forfait (obligatoire)

 

Remettre les mêmes informations que celles présentes dans la requête

 

<price-list> 
<price>

 


<breakdown-list>


<classification
dictionary=« ETAI:unit »
ref=« unit »/>


</breakdown-list>


<value-list>


<value
value-type=« exclTaxes »>


<amount>{amountValue}</amount>


</value>


</value-list>


<debtor>


<classification
dictionary=« ETAI:person »


ref=« repairer »/>



</debtor>


</price>

Prix unitaire à l’achat du forfait

 

On spécifie que le prix correspond à un prix d’achat via l’élément <debtor> et une classification du dictionnaire « ETAI:person » et la ref  « repairer ».

{amountValue} contient le prix hors taxes.

 


<price>

 


<breakdown-list>


<classification
dictionary=« ETAI:unit »
ref=« unit »/>


</breakdown-list>


<value-list>


<value
value-type=« exclTaxes »>


<amount>{amountValue}</amount>


<amount-of>


<classification
dictionary=« ETAI:unit »


ref=« unit »/>



</amount-of>


</value>


</value-list>


<debtor>


<classification
dictionary=« ETAI:person »


ref=« client »/>



</debtor>


<currency
dictionary=« ETAI:unit » ref=« euro »/>


</price>

Prix unitaire à la vente du forfait

 

On spécifie que le prix correspond à un prix de vente au client via l’élément <debtor> et une classification du dictionnaire « ETAI:person » et la ref  « client ».

{amountValue} contient le prix hors taxes.

 

</price-list>  </operation>  </operation-list>

 

</calculating>

</calculating-list> 
<part-list>


<part>
  <breakdown-list>

<classification
dictionary=« ETAI:breakdown »


ref=« {breakdownValue} »/>

<classification
dictionary=« ETAI:partIdentification »


ref=« {partIdentificationValue} »/>

</breakdown-list>

Identification du type de pièce.

Le type de la pièce est défini par la référence du dictionnaire « ETAI:breakdown ».

Valeurs possibles de breakdownValue :

  • « part » pour une pièce
  • « tire » pour un pneu
  • « ingredient » pour un ingrédient

 

Une précision est donnée sur les pièces par une référence au dictionnaire « ETAI:partIdentification ».

Valeurs possibles de partIdentificationValue :

  • « elementOE » pour les pièces constructeur
  • « elementAM » pour les pièces équipementier
  • « elementPRE » pour les pièces de réemploi
  • « elementGU » pour les pièces Gamme Universelle
  • « elementIU » pour les ingrédients universels

 

<reference-list>

 


<classification
source=« {sourceValue} »>

ref=« {referenceValue} »>

</classification>


</reference-list>

Référence de la pièce

Dans l’attribut source, indiquer la source (type) de la référence. Les valeurs possibles de sourceValue sont

  • « catalog » : référence catalogue sans traitement
  • « clean » : référence nettoyée (sans espace, ni caractères spéciaux)

Pour chaque pièce, Catalogue E-T-A-I fournira ces 2 types de référence.

<supplier>

 

<abbreviation>{abbreviationValue}</abbreviation>


<label>


<long-label>{supplierLongLabel}</long-label>


</label>


<classification-list>


<classification
dictionary=« {supplierDictionary} »


ref=« {supplierRef} »/>


<classification
source=« etai »


ref=« {supplierIdETAI} »/>


</classification-list>


</supplier>

Équipementier de la pièce

L’élément abbreviation présente l’abréviation fournisseur pour les pièces AM (sur 3 ou 4 caractères).

L’élément long-label présente le libellé complet de l’équipementier.

 

Pour tous les types de pièces, un élément <classification> fournira une abréviation correspondant au <supplier>.

{supplierDictionary} peut prendre les valeurs suivantes :

  • « ETAI:supplier » pour les équipementiers
  • « ETAI:make » pour les constructeurs
  • « ETAI:manufacturer » pour les manufacturiers de pneus

{supplierRef} prendra les valeurs du dictionnaire {supplierDictionary}

Pour toutes les pièces, l’identifiant ETAI de l’équipementier est renseigné via le {supplierIdETAI}. Cette donnée est obligatoire, elle doit être restituée à l’identique de la requête.

 


<packaging-list>

 


<packaging>


<value>


<amount>{amountValue}</amount>


</value>

<label>

     <long-label>{packagingLabel}</long-label>


</label>


</packaging>


</packaging-list>

Conditionnement de l’ingrédient

(exemple : une boite de bougies qui contient 4 bougies, alors il faudra mettre 4 dans la balise <amount>)

Déclaration du conditionnement : libellé et quantité du conditionnement


<stock-list>

 


<stock
person-internal-id=« {personInternalId} »>

Stock de la pièce

On lie le stock avec une adresse via le {personInternalId}


<value-list>

 


<value>


<amount>{stockAmount}</amount>


<amount-of>


<classification
dictionary=« ETAI:stock »



ref=« {stockRef} »/>


</amount-of>


</value>


</value-list>

Types et quantité du stock

Définition de l’ensemble des types de stock dans value-list.

Spécifier le type de stock dans la classification de l’élément amount-of en utilisant
le dictionnaire « ETAI:stock ».

{stockRef} peut prendre les valeurs :

  • « availableStock » (stock disponible) : donnée obligatoire
  • « reserved » (stock réservé)
  • « inOrder » (stock commandé)


<availability>

 


<delivery-list>


<delivery>


<label>


<short-label>{deliveryLabel}</short-label>


</label>


<date>


<date
format=« {datePattern} »>{dateValue}</date>


</date>


<carriage>


<breakdown-list>


<classification
dictionary=« ETAI:carriage »


ref=« {carriageValue} »/>

</breakdown-list>


<price>


<value-list>


<value
value-type=« exclTaxes »>

<amount>{carriagePriceAmount}</amount>


</value>


</value-list>


<currency
dictionary=« ETAI:unit » ref=« euro »/>


</price>


</carriage>


</delivery>


</delivery-list>


</availability>

Disponibilité du stock

La disponibilité du stock est spécifiée par l’élément <availability>.

Un stock peut être disponible de différentes façons, on décrit ces moyens via l’élément <delivery>.

Un stock peut par exemple être récupéré sur place, ou envoyé par colis postal.

Les différentes valeurs sont spécifiées par le dictionnaire « ETAI:carriage »

Les différentes valeurs sont :

  • « deliveryOnSite » (livré sur site)
  • « removalOnSite » (enlèvement sur site)
  • « deliveryOnTour » (livraison sur tournée)
  • « postalParcel » (colis postal)
  • « other »
  • « unknown »

L’élément <short-label> va décrire la disponibilité (exemple : livré demain à 10h)

L’élément <date> va décrire la date de disponibilité.

Le format de date est personnalisable, et il doit donc être respecté dans la valeur de la date.

Exemple :

pattern : yyyyMMdd

valeur : 20120413

Le prix de livraison est spécifié par l’élément <price> dans l’élément <carriage>.

 


</stock>

 


</stock-list>
  <price-list> 
<price>

<breakdown-list>


<classification
dictionary=« ETAI:unit »
ref=« unit »/>


</breakdown-list>


<value-list>


<value
value-type=« exclTaxes »>


<amount>{amountValue}</amount>


</value>


</value-list>


<debtor>


<classification
dictionary=« ETAI:person »


ref=« repairer »/>

</debtor>


<date-list>


<explicit-date>


<breakdown-list>


<classification
dictionary=« ETAI:date »


ref=« validity »/>

</breakdown-list>


<date
format=« {datePattern} »>{dateValue}</date>


<classification-list>


<classification
dictionary=« ETAI:availability »


ref=« {availabilityRef} »/>


</classification-list>


</explicit-date>


</date-list>


<currency
dictionary=« ETAI:unit » ref=« euro »/>


</price>

Prix unitaire à l’achat de la pièce

 

Le prix unitaire de la pièce est caractérisé par l’élément classification faisant référence à la valeur unit du dictionnaire ETAI:unit.

On spécifie dans la value le prix hors taxe de la pièce.

La monnaie est spécifiée par le dictionnaire « ETAI:unit » et la ref « euro ». Inutile si spécifié dans default-settings.

On spécifie que c’est un prix d’achat via l’élément <debtor>, le dictionnaire « ETAI:person » et la ref « repairer ». C’est le prix de la pièce pour le garagiste.

La date de validité du prix est spécifiée par <date-list>, le dictionnaire « ETAI:date » et la ref « validity ».

Le type de validité est spécifié par le dictionnaire « ETAI:availability »

Les valeurs pour {availabilityRef} sont :

  • « within24h » : sous 24h
  • « within48h » : sous 48h
  • « withinWeek » : sous une semaine
  • « forthnight » : sous une quinzaine
  • « other » : Autre
  • « unknown » : inconnu

On indique la date de validité en respectant le pattern de date choisi.

 

<price>

 

<breakdown-list>


<classification
dictionary=« ETAI:unit »


ref=« packet »/>


</breakdown-list>


<value-list>


<value
value-type=« exclTaxes »>


<amount>{priceAmount}</amount>


<amount-of>


<classification
dictionary=« ETAI:unit »


ref=« packet »>

{quantity}

</classification>


</amount-of>

</value>

</value-list>


<debtor>


<classification
dictionary=« ETAI:person »


ref=« repairer »/>


</debtor>


<date-list>


<explicit-date>


<breakdown-list>


<classification
dictionary=« ETAI:date »


ref=« validity »/>

</breakdown-list>

<date
format=« {datePattern} »>{dateValue}</date>


<classification-list>


<classification
dictionary=« ETAI:availability »


ref=« {availabilityRef} »/>

</classification-list>


</explicit-date>


</date-list>


<currency
dictionary=« ETAI:unit » ref=« euro »/>


</price>

Prix par lot de pièces

 

On peut proposer des prix différents en fonction de la quantité commandée. Par exemple pour 10 éléments achetés, on aura un prix total de 10€, mais si on en achète 100, on aura un prix total de 95€.

On peut définir plusieurs <value> en fonction du besoin, dans {priceAmount} on mettra le prix total pour la {quantity} commandée.

Se référer à la description du prix unitaire à l’achat pour une description complète de la structure du prix.

 


<price>

 


<breakdown-list>


<classification
dictionary=« ETAI:unit »
ref=« unit »/>


</breakdown-list>


<value-list>


<value
value-type=« exclTaxes »>


<amount>{amountValue}</amount>


<amount-of>


<classification
dictionary=« ETAI:unit »


ref=« unit »/>

</amount-of>


</value>


</value-list>


<debtor>


<classification
dictionary=« ETAI:person »


ref=« client »/>

</debtor>


<currency
dictionary=« ETAI:unit » ref=« euro »/>


</price>

Prix unitaire à la vente de la pièce

 

On spécifie que le prix correspond à un prix de vente au client via l’élément <debtor> et une classification du dictionnaire « ETAI:person » et la ref  « client ».

 


</price-list>
 
<status>

 


<classification
dictionary=« ETAI:status »



ref=« {statusRef} »/>


</status>

Statut de la pièce

Définition du statut de la pièce (voir le dictionnaire ETAI:status).

Les valeurs possibles de {statusRef} sont :

  • « finished » (n’est plus fourni)
  • « known » (connu)
  • « obsolete » (obsolète)
  • « replaced » (remplacé)
  • « transcoded » (référence transcodée)
  • « unknown » (inconnu)

Si Application partenaire ne connaît pas une pièce, alors il devra renvoyer une <part> avec un <status> de type unknown (mais sans prix, ni stock vu que la pièce est inconnue).


</part>

 


</part-list>

</shuttle> </xat2>

11.6. Gestion des anomalies

Application partenaire doit gérer certaines erreurs pour avertir Catalogue E-T-A-I que la requête ne pourra pas être satisfaite.

Les erreurs techniques qui doivent être gérées par Application partenaire sont listées dans le Chapitre 5.4 Anomalies bloquantes XAT2V2.

12. Service d’envoi d’un panier à Application partenaire

12.1. Description

Ce service a pour objectif l’envoi d’un panier à Application partenaire.

Catalogue E-T-A-I est donc le client, et il va faire appel au serveur XAT2V2 de Application partenaire.

12.1.1. Liste des données

Catalogue E-T-A-I è Application partenaire
Donnée

Description / commentaire

applicationID

Identifiant de l’application.

dmslogin

Identifiant de l’interface.

garagesharedID

Identifiant du garage.

pièces

Objet contenant les références et les quantités commandées

vehicule

Le véhicule du panier

garage

Objet contenant les informations du garage

 

Catalogue E-T-A-I è Application partenaire

Donnée

Description / commentaire

liste des pièces

La liste des pièces impliquées dans le panier. Pour chaque pièce, le partenaire indiquera le statut de la commande de la pièce dans la quantité voulue.

12.1.2. Volumétrie et Fréquence – vision métier

Le tableau suivant est mis à titre indicatif. Libre au rédacteur d’ajouter ou supprimer des colonnes ou de donner la volumétrie sans tableau.

Nombre

moyen de

demandes / jour

Pic de

Demandes /
15 minutes

Taille moyenne
demande

Application partenaire

Taille maximale
demande

Application partenaire

Taille moyenne
réponse

Catalogue E-T-A-I

Taille maximale
réponse

Catalogue E-T-A-I

12.2. Requête XAT2V2 : Catalogue E-T-A-I -> Application partenaire

Verbe : postBasket

Message XAT2V2 qui sera envoyé par Catalogue E-T-A-I à Application partenaire

Tableau 39 – Requête de flux d’envoi de panier

XML

Description

<?xml
version=« 1.0 »
encoding=« utf-8 »
standalone=«  »?>

<xat2
xmlns=« http://xat2.etai.fr » version=« 2.0 »>
 <session-context>


<application-id>{applicationId}</application-id>


<dms-login>{dmsLogin}</dms-login>


<garage-shared-id>{garageSharedId}</garage-shared-id>

</session-context>

Identification XAT2V2

<shuttle> 
<transport>

 

<partner>

<name>Catalogue E-T-A-I</name>

<editor dictionary=« ETAI:editor »
ref=« etai »>

<version-code>{applicationVersion}</version-code>

</partner>


<action-list>


<action>


<verb>postBasket</verb>


</action>


</action-list>


</transport>

Verbe XAT2V2

<person-list>

 


<person>
 
<breakdown-list>


<classification
dictionary=« ETAI:person »



ref=« repairer »/>


</breakdown-list>

Déclaration du garage


<name>{garageName}</name>

Nom du garage


<place>

 


<address
number=« 1 »>{addressLine1}</address>


<address
number=« 2 »>{addressLine2}</address>


<zip-code>{zipCode}</zip-code>


<city>{city}</city>


<country>


<classification
dictionary=« ETAI:country »


ref=« {countryRef} »>

{countryLabel}

</classification>


</country>


</place>

Adresse du garage

Une adresse peut être sur plusieurs lignes, si c’est le cas on définit plusieurs <address> en incrémentant la valeur de « number » (maximum : 5).

Le pays de l’adresse est défini selon le dictionnaire « ETAI:country ».


<contact-list>

 


<contact>


<contact-category
dictionary=« ETAI:contact »


ref=« {contactRef} »/>


<contact-value>{contactValue}</contact-value>


</contact>


</contact-list>

Moyens de contact du client

Un moyen de contact est défini selon le dictionnaire « ETAI:contact », les valeurs possibles de {contactRef} sont :

  • « phone »
  • « mobile »
  • « fax »
  • « email »


</person>

 

</person-list>  <vehicle-list>

<vehicle>

Variante

On envoie la variante à Application partenaire


<label>

 


<short-label>{shortLabel}</short-label>


<long-label>{longLabel}</long-label>


</label>

Libellés de la variante


<identification-list>

Liste des identifications du véhicule


<identification>

 


<breakdown-list>


<classification
dictionary=« ETAI:vehicle »



ref=« make »/>


</breakdown-list>

<label>

<short-label>{makeLabel}</short-label>

</label>


<classification-list>


<classification
dictionary=« ETAI:identifier »


ref=« makeId »


source=« etai »>

{makeId}


</classification>


</classification-list>


</identification>

Marque du véhicule

La marque du véhicule est caractérisée, au sein de l’élément identification, par l’élément classification faisant référence à la valeur « make » du dictionnaire ETAI:vehicle.

L’identifiant de la marque est renseigné selon la source « etai » : identifiant de la base véhicule d’E-T-A-I


<identification>

 


<breakdown-list>


<classification
dictionary=« ETAI:vehicle »



ref=« model »/>


</breakdown-list>

<label>

<short-label>{modelLabel}</short-label>

</label>


<classification-list>


<classification
dictionary=« ETAI:identifier »


ref=« modelId »


source=« etai »>

{modelId}


</classification>


</classification-list>


</identification>

Modèle du véhicule

Le modèle du véhicule est caractérisé, au sein de l’élément identification, par l’élément classification faisant référence à la valeur « model » du dictionnaire ETAI:vehicle.

Ce niveau d’identification est lié à une notion de carrosserie du véhicule (nombre de portes, forme de carrosserie, …).

L’identifiant du modèle est renseigné selon la source « etai » : identifiant de la base véhicule d’E-T-A-I.


<identification>

 


<breakdown-list>


<classification
dictionary=« ETAI:vehicle »



ref=« variation »/>


</breakdown-list>

<label>

<short-label>{variationLabel}</short-label>

</label>


<classification-list>


<classification
dictionary=« ETAI:identifier »


ref=« variationId »


source=« etai »>

{variationId}


</classification>


</classification-list>


</identification>

Identification de la variante

L’identification est caractérisée, au sein de l’élément identification, par l’élément classification faisant référence à la valeur « variation » du dictionnaire ETAI:vehicle.

Ce niveau d’identification est lié à une notion de mécanique du véhicule (cylindrée, type de carburant, …).

L’identifiant de la variante est renseigné selon la source « etai » : identifiant de la base véhicule d’E-T-A-I.


</identification-list>

 


<alternative-ref-list>


<classification
dictionary=« ETAI:vehicle »


ref=« {refType} »>

{refValue}


</classification>


</alternative-ref-list>

Identifiants administratifs du véhicule

Ces identifiants sont caractérisés par le dictionnaire « ETAI:vehicle ». Les valeurs des références possibles sont :

  • « engineType » (type moteur)
  • « vvt » (type mines / tvv)
  • « cnit »
  • « vin »
  • « registration » (numéro de plaque d’immatriculation)

<fuel>

 

<classification
dictionary=« ETAI:fuel »
ref=« diesel »/>

</fuel>

Carburant (facultatif)

Type de carburant du véhicule.

Les valeurs possibles correspondent aux références du dictionnaire « ETAI:fuel »

</vehicle>

 

</vehicle-list> <part-list>

<part>  <breakdown-list>

<classification
dictionary=« ETAI:breakdown »


ref=« {breakdownValue} »/>

<classification
dictionary=« ETAI:partIdentification »


ref=« {partIdentificationValue} »/>

</breakdown-list>

Identification du type de pièce.

Le type de la pièce est défini par la référence du dictionnaire « ETAI:breakdown ».

Valeurs possibles de {breakdownValue} :

  • « part » pour une pièce
  • « tire » pour un pneu
  • « ingredient » pour un ingrédient

 

Une précision est donnée sur les pièces par une référence au dictionnaire « ETAI:partIdentification ».

Valeurs possibles de {partIdentificationValue} :

  • « elementOE » pour les pièces constructeur
  • « elementAM » pour les pièces équipementier
  • « elementPRE » pour les pièces de réemploi
  • « elementGU » pour les pièces Gamme Universelle
  • « elementIU » pour les ingrédients universels

 

<reference-list>

 


<classification
source=« {sourceValue} »>

ref=« {referenceValue} »>

</classification>


</reference-list>

Référence de la pièce

Dans l’attribut source, indiquer la source (type) de la référence. Les valeurs possibles de sourceValue sont

  • « catalog » : référence catalogue sans traitement
  • « clean » : référence nettoyée (sans espace, ni caractères spéciaux)

Pour chaque pièce, Catalogue E-T-A-I fournira ces 2 types de référence.

<supplier>

 

<abbreviation>{abbreviationValue}</abbreviation>


<label>


<long-label>{supplierLongLabel}</long-label>


</label>


<classification-list>


<classification
dictionary=« {supplierDictionary} »


ref=« {supplierRef} »/>


<classification
source=« etai »


ref=« {supplierIdETAI} »/>


</classification-list>


</supplier>

Équipementier de la pièce

L’élément abbreviation présente l’abréviation fournisseur pour les pièces AM (sur 3 ou 4 caractères).

L’élément long-label présente le libellé complet de l’équipementier.

Pour tous les types de pièces, un élément <classification> fournira une abréviation correspondant au <supplier>.

{supplierDictionary} peut prendre les valeurs suivantes :

  • « ETAI:supplier » pour les équipementiers
  • « ETAI:make » pour les constructeurs
  • « ETAI:manufacturer » pour les manufacturiers de pneus

{supplierRef} prendra les valeurs du dictionnaire {supplierDictionary}

Pour toutes les pièces, l’identifiant ETAI de l’équipementier est renseigné via le {supplierIdETAI}.

<classification-list>

 

<classification
dictionary=« ETAI:part »


ref=« family »>


{family-code-value}


</classification>

<classification
dictionary=« ETAI:part »


ref=« subfamily »/>


{subfamily-code-value}

</classification>

</classification-list>

Code famille et sous famille de la piece (facultatif)

Le code famille est specifié via l’élément classification du dictionnaire « ETAI:person » et de la ref  « family ».

 

Le code sous- famille est specifié via l’élément classification du dictionnaire « ETAI:person » et la ref  « sub-family ».

 


<quantity
value-type=« amount »>

 


<amount>{quantityAmount}</amount>


</quantity>

Quantité de la pièce

Quantité commandée

  
</part>

 


</part-list>
 </shuttle>

</xat2>

12.3. Notification de Application partenaire (seulement accès par redirection)

Si Application partenaire est en accès via le mode redirection, alors pour l’avertir que les données du « postBasket » sont disponibles, on va effectuer une redirection vers l’url fournie dans la configuration de Application partenaire.

12.4. Envoi du verbe getData (seulement accès par redirection)

Une fois que Application partenaire a reçu la redirection, il va envoyer une requête XAT2V2 avec le verbe « getData » afin de récupérer la requête « postBasket »

Tableau 40 – Envoi du verbe getData

XML

Commentaires

<?xml
version=« 1.0 »
encoding=« utf-8 »
standalone=« no »?>

<xat2
xmlns=« http://xat2.etai.fr »
version=« 2.0 »>


<session-context>


<session-id>{sessionId}</session-id>


</session-context>


<shuttle>


<transport>


<action-list>


<action>


<verb>getData</verb>


</action>


</action-list>


</transport>


</shuttle>

</xat2>

Indiquer l’id de session, et envoi du verbe getData

 

12.5. Réponse XAT2V2 : Application partenaire -> Catalogue E-T-A-I

Description du contenu d’une réponse à une demande de panier de pièces.

Le flux renvoie un message XAT2V2 contenant le panier des pièces.

Les données panier de pièces seront renvoyées :

  • Soit en réponse directe au verbe « postBasket », message de type ack.
  • Soit suite à l’appel du verbe « getData » par un message XAT2V2 avec le verbe « ackBasket »

Application partenaire devra envoyer une réponse à la requête en spécifiant pour chaque pièce le statut de la commande, si la pièce a pu être commandée ou non.

Tableau 41 – Réponse au flux d’envoi de panier

XML

Description

<?xml
version=« 1.0 »
encoding=« utf-8 »
standalone=« no »?>

<xat2
xmlns= version=« 2.0 »>
 
<message-list>


<message>


<message-category>ack</message-category>


<technical-description>


postBasket processing complete


</technical-description>


<classification-list>


<classification
dictionary=« Xat2:message »

ref=« complete »>


</classification>


</classification-list>


</message>


</message-list>

Accusé de réception

Message de catégorie ack

Dans la technical-description, indiquer le verbe auquel on répond, suivi de : processing complete si tout s’est bien déroulé.

<message-list> contiendra un message indiquant le bon déroulement de l’échange via une <classification> spécifié par le dictionnaire « Xat2:message » et la ref « complete ».

 

Si Application partenaire est en accès par redirection, la <technical-description> sera :

« getData processing complete »

 

<session-context>

 


<session-id>{sessionId}</session-id>

</session-context>

Session XAT2V2

Seulement en mode accès par redirection avec le verb « ackBasket ».

<shuttle>

 

<transport> 
<action-list>


<action>


<verb>ackBasket</verb>


</action>


</action-list>

Verbe ackBasket

Cette donnée ne sera présente que si Application partenaire est en mode d’accès par redirection.


<admin-list>

 


<classification
dictionary=« ETA:admin »


ref=« deliveryNumber »>


{deliveryNumberValue}

</classification>


</admin-list>

Numéro de bon de livraison


<message-list>

 


<message>


<message-category>information</message-category>


<classification-list>


<classification
dictionary=« ETAI:status »


ref=« {statusRef} »/>


</classification-list>


</message>


</message-list>

Statut du panier

On l’indique via un message de catégorie « information » et une classification du dictionnaire « ETAI:status » et les ref suivantes :

  • « complete » (toutes les pièces du panier ont été correctement traitées
  • « partial » (certaines pièces du panier n’ont pu être traitées)
  • « rejected » (aucune pièce du panier n’a pu être traitée)



</transport>

 

<settings>  <VAT-list>


<VAT-rate
internal-id=« {idValue} »>


<value>


<amount>{amountValue}</amount>


</value>


</VAT-rate>

</VAT-list>

TVA

Indiquer le taux de TVA du panier

<discount-list>

 


<discount
internal-id=« {internalIdValue} »>


<breakdown-list>


<classification
dictionary=« ETAI:applicability »


ref=« part »/>


</breakdown-list>


<value
value-type=« percent »>


<amount>{amountValue}</amount>


</value>


</discount>


<discount
internal-id=« {internalIdValue} »>


<breakdown-list>


<classification
dictionary=« ETAI:applicability »


ref=« total »/>


</breakdown-list>


<value
value-type=« percent »>


<amount>{amountValue}</amount>


</value>


</discount>


</discount-list>

Remise sur le panier / pièces

Définition des remises qui peuvent s’appliquer à une pièce et/ou au total du panier

Toutes les remises sont exprimées en pourcentage.

Dans le cas d’une remise appliquée sur l’ensemble d’un type d’éléments (exemple), ou sur le total du devis, on devra spécifier leur applicabilité via le dictionnaire ETAI:applicability. Les références possibles sont :

  • « part » : remise par défaut pour les pièces et ingrédients.
  • « labor-rate » : remise par défaut pour opérations de temps.
  • « tire » : remise par défaut pour les pneus.
  • « total » : remise sur le total du panier.

Si la remise ne s’applique qu’à un élément, on ne déclarera pas d’applicabilité.


</settings>
 
<part-list>
 
<price-list>

 


<price VATinternal-id=« {vatInternalId} »

discountinternal-id=« {discountInternalId} »>


<breakdown-list>


<classification
dictionary=« ETAI:breakdown »


ref=« total »/>


</breakdown-list>


<value-list>


<value
value-type=« exclTaxes »>


<amount>{amountValue}</amount>


</value>


<value
value-type=« inclTaxes »>


<amount>{amountValue}</amount>


</value>


</value-list>


</price>


</price-list>

Prix total du panier

Prix total du panier.

On pourra lier le prix total à une remise via le {discountInternalId} et à la TVA si on transfert le TTC.


<part>

 

<breakdown-list>

<classification
dictionary=« ETAI:breakdown »


ref=« {breakdownValue} »/>

<classification
dictionary=« ETAI:partIdentification »


ref=« {partIdentificationValue} »/>

</breakdown-list>

Identification du type de pièce.

Le type de la pièce est défini par la référence du dictionnaire « ETAI:breakdown ».

Valeurs possibles de breakdownValue :

  • « part » pour une pièce
  • « tire » pour un pneu
  • « ingredient » pour un ingrédient

Une précision est donnée sur les pièces par une référence au dictionnaire « ETAI:partIdentification ».

Valeurs possibles de partIdentificationValue :

  • « elementOE » pour les pièces constructeur
  • « elementAM » pour les pièces équipementier
  • « elementPRE » pour les pièces de réemploi
  • « elementGU » pour les pièces Gamme Universelle
  • « elementIU » pour les ingrédients universels

<reference-list>

 


<classification
source=« {sourceValue} »>

ref=« {referenceValue} »>

</classification>


</reference-list>

Référence de la pièce

Dans l’attribut source, indiquer la source (type) de la référence. Les valeurs possibles de sourceValue sont

  • « catalog » : référence catalogue sans traitement
  • « clean » : référence nettoyée (sans espace, ni caractères spéciaux)

<supplier>

 

<abbreviation>{abbreviationValue}</abbreviation>


<label>


<long-label>{supplierLongLabel}</long-label>


</label>


<classification-list>


<classification
dictionary=« {supplierDictionary} »


ref= »{supplierRef} »/>


<classification
source=« etai »


ref=« {supplierIdETAI} »/>


</classification-list>


</supplier>

Équipementier de la pièce

L’élément abbreviation présente l’abréviation fournisseur pour les pièces AM (sur 3 ou 4 caractères).

L’élément long-label présente le libellé complet de l’équipementier.

Pour tous les types de pièces, un élément <classification> fournira une abréviation correspondant au <supplier>.

{supplierDictionary} peut prendre les valeurs suivantes :

  • « ETAI:supplier » pour les équipementiers
  • « ETAI:make » pour les constructeurs
  • « ETAI:manufacturer » pour les manufacturiers de pneus

{supplierRef} prendra les valeurs du dictionnaire {supplierDictionary}

Pour toutes les pièces, l’identifiant ETAI de l’équipementier est renseigné via le {supplierIdETAI}.


<status>

 


<classification
dictionary=« ETAI:status »


ref=« {statusValue} »>


</classification>


</status>

Statut de la pièce

Définition du statut de la pièce (voir le dictionnaire ETAI:status).

Les références possibles sont :

  • « complete » (la demande de cette pièce a été satisfaite totalement)
  • « partial » (la demande a pu être en partie satisfaite)
  • « rejected » (aucune pièce de ce type n’a pu être commandée)


<quantity
value-type=« amount »>

 


<amount>{quantityValue}</amount>


</quantity>

Quantité de la pièce validée

Définit le nombre de pièces ayant pu être commandé.


<price-list>

 


<price>


<breakdown-list>


<classification
dictionary=« ETAI:unit »


ref=« unit »/>

</breakdown-list>


<value-list>


<value
value-type=« exclTaxes »>


<amount>{amountUnit}</amount>


</value>


</value-list>


</price>


<price VATinternal-id=« {vatInternalId} »

discountinternal-id=« {discountInternalId} »>


<breakdown-list>


<classification
dictionary=« ETAI:unit »


ref=« packet »/>


</breakdown-list>


<value-list>


<value
value-type=« exclTaxes »>


<amount>{amountTotal}</amount>


<include-deduction>


<classification
dictionary=« ETAI:deductionType »


ref=« discount »/>

</include-deduction>


</value>


<value
value-type=« inclTaxes »>


<amount>{amountTotal}</amount>


<include-deduction>


<classification
dictionary=« ETAI:deductionType »


ref=« discount »/>

</include-deduction>


</value>


</value-list>


</price>


</price-list>

Prix de la pièce

Prix unitaire et prix pour l’ensemble des exemplaires de la pièce commandée.

 

Le prix total pour la pièce peut être lié à une remise et à une tva pour le prix TTC.

 


</part>

 


</part-list>
 
<comment-list>


<comment>{comment}</comment>


</comment-list>

Commentaire

Ce champ est disponible pour l’ajout de commentaires ou de mentions à propos du panier.

</shuttle>

 

</xat2>

12.6. Gestion des anomalies

Application partenaire doit gérer certaines erreurs pour avertir Catalogue E-T-A-I que la requête ne pourra pas être satisfaite.

Les erreurs techniques qui doivent être gérées par Application partenaire sont listées dans le Chapitre 5.4 Anomalies bloquantes XAT2V2.

Liste des erreurs du dictionnaire « ETAI:message » qui doivent être gérées par Application partenaire :

 

Code d’erreur

Explication

Comportement attendu

noGarage

Le garage n’est pas défini

Dans un envoi de panier, les données du garage doivent être présentes.

13. Service de suppression d’une session

13.1. Description

Ce service a pour objectif l’invalidation d’une session XAT2 active.

13.1.1 Liste des données

Application partenaire è Catalogue E-T-A-I

Donnée

Description / commentaire

sessionID

Identifiant de la session à invalider

13.1.2. Volumétrie et Fréquence – vision métier

Le tableau suivant est mis à titre indicatif. Libre au rédacteur d’ajouter ou supprimer des colonnes ou de donner la volumétrie sans tableau.

Nombre

moyen de

demandes / jour

Pic de

Demandes /
15 minutes

Taille moyenne
demande

Application partenaire

Taille maximale
demande

Application partenaire

Taille moyenne
réponse

Catalogue E-T-A-I

Taille maximale
réponse

Catalogue E-T-A-I

13.2. Requête XAT2V2 : Application partenaire -> Catalogue E-T-A-I

Verbe : deleteSession

Message XAT2V2 qui sera envoyé par Catalogue E-T-A-I à Application partenaire

Tableau 42 – Requête de suppression de session

XML

Description

<?xml
version=« 1.0 »
encoding=« utf-8 »
standalone=« no »?>

<xat2
xmlns=« http://xat2.etai.fr » version=« 2.0 »>
 <session-context>


<session-id>{sessionId}</session-id>

</session-context>

Identification de la session à invalider

<shuttle> 
<transport>

 


<action-list>


<action>


<verb>deleteSession</verb>


</action>


</action-list>


</transport>

Verbe XAT2V2

</shuttle>

 

</xat2>

13.3. Réponse XAT2V2 : Catalogue E-T-A-I -> Application partenaire

Un accusé réception acte de la bonne suppression de la session.

Tableau 43 – Réponse au flux d’envoi de panier

XML

Description

<?xml
version=« 1.0 »
encoding=« utf-8 »
standalone=« no »?>

<xat2
xmlns=« http://xat2.etai.fr » version=« 2.0 »>
 
<message-list>


<message>


<message-category>ack</message-category>


<technical-description>


deleteSession processing complete


</technical-description>


<classification-list>


<classification
dictionary=« Xat2:message »


ref=« complete »>


</classification>


</classification-list>


</message>


</message-list>

Accusé de réception

Message de catégorie ack

Dans la technical-description, indiquer le verbe auquel on répond, suivi de : processing complete si tout s’est bien déroulé.

<message-list> contiendra un message indiquant le bon déroulement de l’échange via une <classification> spécifié par le dictionnaire « Xat2:message » et la ref « complete ».

</xat2>

 

13.4. Gestion des anomalies

Si la réponse n’est pas « complete » alors c’est que la session n’a pu être invalidée.

 

14. Service d’ajout d’éléments sans devis Catalogue E-T-A-I

14.1. Description détaillée de l’interface

14.1.1 Description

Ce service a pour objectif de permettre à Application partenaire de transférer directement les pièces et temps disponibles sur Catalogue E-T-A-I sur Application partenaire via XAT2V2, sans passer par un devis Catalogue E-T-A-I.

Ce service utilise le mode interactif de XAT2V2, il y a donc une gestion de la session dans les échanges.

14.1.2. Liste des données

Application partenaire è Catalogue E-T-A-I
Donnée

Description / commentaire

applicationID

Identifiant de l’application.

dmslogin

Identifiant de l’interface.

garagesharedID

Identifiant du garage.

usersharedID

Identifiant de l’utilisateur.

Code du devis

Code du devis chez le partenaire

Taux de main d’œuvre

Liste des taux de main d’œuvre

TVA

Tva

Véhicule

Objet contenant les caractéristiques véhicule (marque, immatriculation, …)

 

Catalogue E-T-A-I è Application partenaire
Donnée

Description / commentaire

Taux de main d’œuvre

Liste des taux de main d’œuvre

Devis

Objet contenant les informations sur le devis :

Liste des pièces

La liste des pièces impliquées dans le devis.

Liste des opérations de temps

La liste des opérations de temps du devis.

Liste des forfaits

La liste des forfaits du devis.

Liste des ingrédients

La liste des ingrédients utilisés dans le devis.

Véhicule

Objet contenant les caractéristiques du véhicule (marque, immatriculation, nombre de portes, moteur, …)

14.1.3. Volumétrie et Fréquence – vision métier

Le tableau suivant est mis à titre indicatif. Libre au rédacteur d’ajouter ou supprimer des colonnes ou de donner la volumétrie sans tableau.

Nombre

moyen de

demandes / jour

Pic de

Demandes /
15 minutes

Taille moyenne
demande

Application partenaire

Taille maximale
demande

Application partenaire

Taille moyenne
réponse

Catalogue E-T-A-I

Taille maximale
réponse

Catalogue E-T-A-I

14.1.4. Étapes de l’appel au service interactif

  • Envoi de la requête d’édition de devis Application partenaire avec les données de connexion, le shuttle, etc. (Application partenaire à
    Catalogue E-T-A-I)
  • Vérification des identifiants de connexion, préparation de l’environnement sur Catalogue E-T-A-I, création de la session, et renvoi à Application partenaire l’url vers laquelle il faut envoyer l’utilisateur, ainsi que l’id de session. Si la requête est incorrecte, on renvoie une erreur à l’application (Catalogue E-T-A-I
    à Application partenaire).
  • Si pas d’anomalie reçue, Application partenaire ouvre un navigateur et redirige l’utilisateur vers l’url reçue
  • L’utilisateur pourra ajouter des pièces, temps, opérations depuis Catalogue E-T-A-I.


    Ces éléments seront envoyés dans un message XAT2V2. (Catalogue E-T-A-I
    à Application partenaire)

14.1.5. Composer L’URL à laquelle envoyer les xml

L’URL à laquelle il faut envoyer les requêtes XAT2V2 est de la forme : http://<application_ETAI>/rest/xat2v2/.

URL

Commentaires

http://

Il s’agit du protocole http.

Présence obligatoire.

Écrire en minuscules.

<application_ETAI>

Il s’agit de l’application online E-T-A-I.

Présence obligatoire.

Faire attention aux minuscules/majuscules. Écrire le nom exactement.

/

Séparateur

rest

REST est la technologie employée pour communiquer.

Présence obligatoire.

Écrire en minuscules.

/

Séparateur

xat2v2

Il s’agit du protocole XAT2V2.

Présence obligatoire.

Écrire en minuscules.

/

Séparateur

14.1.6. Schéma d’ensemble des traitements

14.1.7. Condition d’appel / contexte

Outre les informations de connexion (usersharedID, dmslogin, …), Application partenaire doit spécifier au minimum l’identifiant du véhicule. Ensuite selon les autres données renseignées, certains champs seront obligatoires.

14.1.8. Type d’exécution de l’interface

Les différents transferts de données entre les 2 logiciels sont à l’initiative de l’utilisateur.

Un bouton « Catalogue E-T-A-I  » sera présent dans Application partenaire. Lorsque l’utilisateur cliquera dessus, un nouveau navigateur web s’ouvrira pour afficher les pages de Catalogue E-T-A-I.

14.1.9. Disponibilité de l’interface

L’interface sera disponible au même titre que les applications Catalogue E-T-A-I et Application partenaire.

E-T-A-I se réserve cependant le droit d’interrompre le service en cas de mise à jour de l’application ou des données. Ces interventions interviendront entre 12h30 et 13h30 en journée ou après 19h.

14.1.10. Performance

Le temps de traitement d’un message XAT2V2 par Catalogue E-T-A-I ne doit pas prendre plus de 10 secondes.

Lorsqu’un utilisateur lance le transfert du devis vers Application partenaire, ce dernier doit renvoyer un acquittement de reception dans les 10 secondes qui suivent.

14.2. Cas d’utilisation

Les scénarios possibles lors de l’utilisation de ce service :

  • Si la variante du message est directement trouvée via les informations fournies par Application partenaire, dans ce cas on est redirigé vers la page affichant la variante trouvée, et une fois celle-ci sélectionnée par l’utilisateur, il sera envoyé vers l’atelier.
  • Lors de la création d’une session sans devis Catalogue E-T-A-I, si la variante n’est pas trouvée, l’utilisateur sera redirigé vers la recherche de variante, puis une fois la variante sélectionnée, l’utilisateur sera redirigé vers l’atelier.

Ensuite il pourra envoyer directement à Application partenaire des pièces, des forfaits, etc. à chaque clic sur le bouton :

.

14.2.1. Cas où le véhicule n’est pas trouvé

Lorsqu’on ne peut pas identifier directement une variante à partir des informations fournies par Application partenaire, alors on va le rediriger vers la recherche d’Identification de Véhicule sur le site Catalogue E-T-A-I, où il devra sélectionner manuellement sa variante.

Les raisons pour laquelle on ne peut trouver une variante unique sont multiples :

  • Recherche de variante à partir d’une marque : alors dans ce cas l’utilisateur sera amené sur la page de choix du modèle.


Figure 7 – Recherche Variante – Sélection du modèle

  • Recherche avec plusieurs résultats : alors dans ce cas, l’utilisateur devra sélectionner la variante voulue parmi la liste de choix.


Figure 8 – Recherche Variante – Sélection d’une variante

  • Recherche sans paramètre ou sans résultat : alors dans ce cas l’utilisateur sera amené sur la page de choix de la marque de la variante.


Figure 9 – Recherche Variante – Liste des marques

Une fois que l’utilisateur aura sélectionné le véhicule de son choix, il sera redirigé vers le devis.

14.2.2. Cas où le véhicule est trouvé mais différent de celui sur Catalogue E-T-A-I

Dans le cas où le véhicule est identifié par le code variante E-T-A-I, l’utilisateur arrive directement sur la page de l’atelier avec le véhicule transmis sinon il est amené sur la page de sélection de variante.


Ensuite s’il sélectionne la variante, il sera alors redirigé vers la page de consultation du devis.


14.3. Description des étapes XAT2V2

Le service est interactif, ci-dessous est décrit l’ensemble du processus pour l’utilisation du service.

Certaines étapes dépendent du type d’accès de Application partenaire, s’il est en accès direct ou en accès par redirection.

14.3.1. Requête XAT2V2 : Application partenaire -> Catalogue E-T-A-I

Verbe à utiliser : redirectEstimateDMS (la casse est importante)

Tableau 44 – Requête du flux d’édition du devis

XML

Commentaires