Plateforme catalogue – API HTTP XAT2€¦ · Plateforme catalogue ... MAJ « Exemple de session...

140
DATE : xx/xx/xx (validé le) ETAI 20 rue de la Saussière F-92641 Boulogne-Billancourt FRANCE Tél. +33.1.41.99.24.24 Fax. 02.31.46.92.31 DIVISION : XAT20710DTS079 1.0 - Ce document est propriété de ETAI Tous droits de reproduction et/ou communication réservés Plateforme catalogue – API HTTP XAT2 Spécification technique détaillée XA20710DTS079 Ed. 1 - Rév. 13 Rédigé par : MNI/HLE Vérifié par : PHB Approuvé par : Nom approbateur CP Interface DSI Ingénieur / Responsable Qualité Date & Visa : Date & Visa : Date & Visa : xx/xx/xx (validé le) Nombre total de pages : 140

Transcript of Plateforme catalogue – API HTTP XAT2€¦ · Plateforme catalogue ... MAJ « Exemple de session...

Page 1: Plateforme catalogue – API HTTP XAT2€¦ · Plateforme catalogue ... MAJ « Exemple de session de mise-à-jour de prix ». ... Lancement d’une session interactive sur l’ IO

DATE : xx/xx/xx (validé le) ETAI 20 rue de la Saussière

F-92641 Boulogne-Billancourt FRANCE

Tél. +33.1.41.99.24.24 Fax. 02.31.46.92.31

DIVISION :

XAT2

0710

DTS0

79 1.

0 - C

e doc

umen

t est

prop

riété

de E

TAI T

ous d

roits

de re

prod

uctio

n et/

ou co

mmun

icatio

n rés

ervé

s

Plateforme catalogue – API HTTP XAT2

Spécification technique détaillée XA20710DTS079 Ed. 1 - Rév. 13

Rédigé par :

MNI/HLE

Vérifié par :

PHB

Approuvé par :

Nom approbateur

CP Interface DSI Ingénieur / Responsable Qualité

Date & Visa : Date & Visa : Date & Visa : xx/xx/xx (validé le)

Nombre total de pages : 140

Page 2: Plateforme catalogue – API HTTP XAT2€¦ · Plateforme catalogue ... MAJ « Exemple de session de mise-à-jour de prix ». ... Lancement d’une session interactive sur l’ IO

Réf : XA20710DTS079 Ed 1. - Rév. 13 Spécification technique détaillée Date 4 septembre 2009

Page -S 1/7-

XAT2

0710

DTS0

79 -

Ce do

cume

nt es

t pro

priét

é de E

TAI.

Tous

droit

s de r

epro

ducti

on et

/ou co

mmun

icatio

n rés

ervé

s.

Diffusion

Liste des évolutions

Ed. Rév. Date Description

1 13 4 septembre 2009 Précisions sur le fonctionnement - paragraphes 2.3.6.2.6, 2.3.6.3.11, 2.3.7.1.3,

2.3.19, 2.3.21, 2.3.22

1 12 17 février 2009 Marian : MAJ pour Dialogys, TAAF,… (9.4.38 et +)

1 11 21 novembre 2008

Marian : corrections exemples d’opérations complexes, code-genre pour

équipementier, langues, pays et devises, paint-class pour les opérations

complexes, bilan technique, rajout de la langue slovène.

Code TAE pour l’expert et l’assurance.

1 10 24 juin 2008

Marian : précisions sur le type MIME de l’image ; remises pour le client, la société

d’assurance,….

Précisions sur la version protocole HTTP et le « User-Agent ».

Modification de la remise (v2) et des références administratives (v2).

1 9 21 mars 2008 Marian : précisions sur la longueur maxi de certains paramètres, sur les cookies

(voir page 30 - 31),…

1 8 10 mars 2008 Marian : précisions sur les actions du shuttle (GetFacture) et son type (Invoice,…)

et sur le fait que la version 2 est, pour le moment, une « release candidate » (p. 6)

Page 3: Plateforme catalogue – API HTTP XAT2€¦ · Plateforme catalogue ... MAJ « Exemple de session de mise-à-jour de prix ». ... Lancement d’une session interactive sur l’ IO

Réf : XA20710DTS079 Ed 1. - Rév. 13 Spécification technique détaillée Date 4 septembre 2009

Page -S 2/7-

XAT2

0710

DTS0

79 -

Ce do

cume

nt es

t pro

priét

é de E

TAI.

Tous

droit

s de r

epro

ducti

on et

/ou co

mmun

icatio

n rés

ervé

s.

1 7 8 février 2008 Marian : MAJ « Exemple de session de mise-à-jour de prix ».

Précisions sur le DMSswLoginIO – spécique au garage/site et pas au logiciel

1 6 21 décembre 2007

Marian : Infos sur l’acquittement d’un shuttle.

Les références ETAI ne sont plus obligatoires pour certaines opérations en V2.

Infos sur les numéros de téléphone (préfix IDD)

1 5 10 décembre 2007

Marian : correction erreur DELETE – les DMS ne reçoivent qu’un GET avec

action=delete ; rajout de nouveaux types de carburants ; serial = VIN

Précisions sur les acquittements ; <comment > pour un client et <app-spec>

Rajout de la balise <supplier-list> et élimination de <operations-digest>

1 4 12 novembre 2007 Marian : rajout de la signature, infos longuer maxi champs de l’acquittement,…

Codes de retour de la fonction CreateSession enrichis.

1 3 8 novembre 2007 Marian : réponse vide en POST => text/plain

Liens sur REST et le protocole HTTP.

1 2 31 octobre 2007

Hervé: multiples correctifs de syntaxe.

Description de la nouvelle syntaxe (M) pour indiquer un champ qui n'est pas

toujours obligatoire. La description du champ doit indiquer dans quel cas le champ

est obligatoire ou non.

Ajout de la colonne Version dans les tableaux de données pour indiquer la

version du protocole à partir de laquelle le champ est présent.

Errata 2.3.8.1.2: usersharedid ne doit pas être identique à dmsswloginio

Ajout de la notion de groupe en tant que nouveau type de données

Ajout de la description de l'objet site

Indication que la traduction de garage en anglais est reportée pour une version

ultérieure.

Ajout de l'annexe: "comment envoyer un xml"

1 1 23er octobre 2007 Marian : création du document sur la base du document AIO701DTS033

Page 4: Plateforme catalogue – API HTTP XAT2€¦ · Plateforme catalogue ... MAJ « Exemple de session de mise-à-jour de prix ». ... Lancement d’une session interactive sur l’ IO

Réf : XA20710DTS079 Ed 1. - Rév. 13 Spécification technique détaillée Date 4 septembre 2009

Page -S 3/7-

XAT2

0710

DTS0

79 -

Ce do

cume

nt es

t pro

priét

é de E

TAI.

Tous

droit

s de r

epro

ducti

on et

/ou co

mmun

icatio

n rés

ervé

s.

TABLE DES MATIERES

1. ....................................................................................................................... INTRODUCTION.......1

1.1. ............................................................................................................................ OBJECTIF .......1 1.2. .........................................................................................................DOMAINE D’APPLICATION .......1 1.3. ..............................................................................DOCUMENTS DE REFERENCE ET APPLICABLES .......2 1.4. ..................................................................................................................... TERMINOLOGIE .......2

2. .............................................................................................................................EXIGENCES.......4 2.1. .................................................................... PRESENTATION DE LA MISSION DU PRODUIT LOGICIEL .......4

2.1.1. .........................................................................................................................Mission.......4 2.1.2. ........................................................... Différentes conditions et configurations d’utilisation.......4 2.1.3. .................................................................................................Fonctionnalités requises.......5 2.1.4. ........................................................................................ Liste des fonctions et relations.......5

2.2. ............................................................................................................................VERSIONS .......5 2.3. ........................................................................................................ EXIGENCES TECHNIQUES .......6

2.3.1. ................................................................................Rappel sur les contraintes nouvelles.......6 2.3.2. ...................................................Architecture de déploiement des applications partenaires.......7

2.3.2.1. ...................................................................................................... L’application locale........ 7 2.3.2.2. ................................................................................................L’application centralisée........ 7 2.3.2.3. ................................................................................................... L’application extranet........ 8

2.3.3. .................................................................................... Principe technique de l’API XAT2.......8 2.3.3.1. .................................................................................................................. Transport........ 8 2.3.3.2. ................................................................................................... Codage des données........ 8 2.3.3.3. ................................................................................Protocole de requêtage des services........ 9 2.3.3.4. ................................................................................................ URL de communication........ 9 2.3.3.5. .............................................................................................Initialisation des échanges...... 10 2.3.3.6. .................................................................................................... Contexte de session...... 11 2.3.3.7. ....................................................................................................... Session restreinte...... 11 2.3.3.8. ................................................................................................... Accès direct au DMS...... 11

2.3.4. ....................................................................................................... Le DMS secondaire.....12 2.3.5. ..................................................................................................................Les services.....12

2.3.5.1. .................................................................................. Les services d’échanges DMS - IO...... 12 2.3.6. .......................................................................Exemple de session de mise-à-jour de prix.....15

2.3.6.1. ................................................................................................. Paramétrage préalable...... 15 2.3.6.2. .................................................................... Lancement d’une session interactive sur le IO...... 15 2.3.6.3. .......................................................................................................... Dialogue métier...... 17 2.3.6.4. .........................................................................................................Fin de la session...... 17

2.3.7. .....................................................................Exemple de session de recherche de pièces.....18 2.3.7.1. ..................................................................... Lancement d’une session interactive sur l’ IO...... 19

2.3.8. ..............................................................Exemple de session de mise-à-jour de référentiel.....19 2.3.8.1. .................................................................... Lancement d’une session interactive sur le IO...... 19

2.3.9. .............................................................Exemple de sélection d’une identification véhicule.....20 2.3.9.1. .................................................................... Lancement d’une session intéractive sur le IO...... 20 2.3.9.2. .......................................................................................................... Dialogue métier...... 20 2.3.9.3. .........................................................................................................Fin de la session...... 20

2.3.10............................................................................................ Exemple de session de test.....20 2.3.10.1......................................................................Lancement d’une session intéractive sur l’IO...... 20

2.3.11................................................................................. Exemple de session de la version 2.....21 2.3.11.1......................................................................Lancement d’une session intéractive sur l’IO...... 21

2.3.12................................................................... Exemple de session d’aquittement d’un envoi.....22 EXIGENCES FONCTIONNELLES ............................................................................................................ 23

2.3.13.................................................................................Généralités sur les liaisons DMS-IO.....23 2.3.13.1......................................................................................... Lancement du IO par le DMS...... 23 2.3.13.2.................................................................................................................Multi-DMS...... 24 2.3.13.3........................................................................................ Validation de documents XML...... 24

2.3.14................................................................................................Fonction GetServicesList.....25 2.3.15................................................................................................. Fonction CreateSession.....25 2.3.16................................................................................................ Fonction UpdateSession.....26

Page 5: Plateforme catalogue – API HTTP XAT2€¦ · Plateforme catalogue ... MAJ « Exemple de session de mise-à-jour de prix ». ... Lancement d’une session interactive sur l’ IO

Réf : XA20710DTS079 Ed 1. - Rév. 13 Spécification technique détaillée Date 4 septembre 2009

Page -S 4/7-

XAT2

0710

DTS0

79 -

Ce do

cume

nt es

t pro

priét

é de E

TAI.

Tous

droit

s de r

epro

ducti

on et

/ou co

mmun

icatio

n rés

ervé

s.

2.3.17......................................................................................................Fonction GetSession.....26 2.3.18..................................................................................................Fonction DeleteSession.....26 2.3.19....................................................................................... Fonction SetSessionInteractive.....27 2.3.20............................................................................................Fonction GetSessionShuttle.....27 2.3.21...................................................................................... Fonction UpdateSessionShuttle.....27 2.3.22................................................................................................. Fonction RequestAction.....28 2.3.23................................................................................................................ Fonction Test.....28 2.3.24..............................................................................................Fonction GetBulkData (v2).....29 2.3.25................................................................Fonctions qui doivent être assurées par le DMS.....29 2.3.26........................................................................... Fonction d’acquittement d’un envoi (v2).....30 2.3.27..............................................................................................................Environnement.....32

2.3.27.1................................................................................... Environnement matériel minimum...... 32 2.3.27.2................................................................................................. Environnement logiciel...... 32 2.3.27.3................................................................................................. Environnement réseau...... 32

2.3.28.............................................................................................................. Mise en œuvre.....32 2.4. ......................................................................................................................... INTERFACES .....33

2.4.1. ..........................................................................................Interfaces avec des matériels.....33 2.4.2. ......................................................................... Interfaces avec d’autres produits logiciels.....33 2.4.3. ...............................................................Interface avec des fichiers ou bases de données.....33 2.4.4. ............................................................................................ Interfaces Homme-machine.....33

2.5. ........................................................ EXIGENCES CONCERNANT LA CONCEPTION ET LA REALISATION .....33 2.5.1. .....................................................................Exigences d’adaptation vis à vis du système.....33

2.5.1.1. ......................................................................................... Paramétrage et configuration...... 33 2.5.1.2. ..................................................................................................Adaptation dynamique...... 33

2.5.2. .......................................................................... Exigences envers les facteurs de qualité.....34 2.5.3. ..........................................................................................Exigences de programmation.....35 2.5.4. ................................................................. Exigences envers les outils de développement.....35 2.5.5. ..................................................................................Exigences particulières de sécurité.....35

3. ................................................ EXIGENCES CONCERNANT LA QUALIFICATION DU LOGICIEL.....36 3.1. .......................................................................................... TESTS AUX NIVEAUX DES ELEMENTS .....36 3.2. ................................................TESTS D’INTEGRATION DES ELEMENTS AU NIVEAU PRODUIT LOGICIEL .....36 3.3. .............................................................................................................TESTS DE VALIDATION .....36

3.3.1. ....................................................................................................Moyens mis en œuvre.....36 3.3.2. ..........................................................................................................Tests fonctionnels.....36 3.3.3. .................................................................................................................. Autres tests.....36

4. ........................................................................................... PREPARATION DE LA LIVRAISON.....37 4.1. .............................................................................................................NATURE DU SUPPORT .....37 4.2. ....................................................................................................CONTRAINTES D’EMBALLAGE .....37 4.3. ........................................................................MARQUAGE ET PROTECTION POUR LE TRANSPORT .....37 4.4. ............................................................................................................................ LICENCES .....37

5. ............................................................................................................................LOGISTIQUE.....38 5.1. ............................................................................................UTILISATION DU PRODUIT LOGICIEL .....38 5.2. .....................................................FORMATION DU PERSONNEL ET LE MAINTIEN DE SA COMPETENCE .....38 5.3. ............................ APPROVISIONNEMENT ET REAPPROVISIONNEMENT DES MATERIELS INFORMATIQUES .....38 5.4. ...................................................................................... MAINTENANCE DES LOGICIELS DE BASE .....38

6. ..................................................................................ANNEXE: COMMENT ENVOYER UN XML.....39 6.1. .......................................................................................... FORMULAIRE POUR POSTER UN XML .....39

7. ......................................... ANNEXE: CONVENTIONS D'ORDRE GENERAL A PROPOS DU XML.....40

8. ..................................................................................................ANNEXE: LISTE DES OBJETS.....41 8.1. ...............................................................................................................OBJETS UTILITAIRES .....41 8.2. .....................................................................................................................OBJETS METIER .....41

8.2.1. ..................................................................................... Objet métier de plus haut niveau.....41 8.2.2. ..........................................................................................................Objets complexes.....41

Page 6: Plateforme catalogue – API HTTP XAT2€¦ · Plateforme catalogue ... MAJ « Exemple de session de mise-à-jour de prix ». ... Lancement d’une session interactive sur l’ IO

Réf : XA20710DTS079 Ed 1. - Rév. 13 Spécification technique détaillée Date 4 septembre 2009

Page -S 5/7-

XAT2

0710

DTS0

79 -

Ce do

cume

nt es

t pro

priét

é de E

TAI.

Tous

droit

s de r

epro

ducti

on et

/ou co

mmun

icatio

n rés

ervé

s.

8.2.3. .............................................................................................................. Objets simples.....42 8.2.4. .................................................................................................................. Référentiels.....42

9. ................................................................................................................................DONNEES.....43 9.1. ...............................................................................................CONVENTION DE PRESENTATION .....43 9.2. ...............................................................................................................OBJETS UTILITAIRES .....45

9.2.1. .......................................................................................................................Contexte.....45 9.2.2. ..............................................................................................................Liste des URLs.....46

9.3. ............................................................................................................................. SHUTTLE.....48 9.3.1. ...................................................................................................Les champs du Shuttle.....48 9.3.2. ........................................................................... Identifiant du DMS/de l’application ETAI.....53 9.3.3. ............................................................................................................... Liste d’actions.....54 9.3.4. ....................................................................................Valeurs par défaut dans le shuttle.....54 9.3.5. .................................................................................................................Paramétrage.....54 9.3.6. ........................................................................................................................... Client .....55 9.3.7. ....................................................................................................................... Véhicule.....57 9.3.8. ............................................................................................... Classification du véhicule.....59

9.3.8.1. ...................................................................................................element-classification...... 60 9.3.9. .............................................................................................................. Les opérations.....61

9.3.9.1. ..................................................................................................... operation-complexe...... 69 9.3.9.2. .................................................................................................. operation-elementaire...... 70 9.3.9.3. ............................................................................................................... Intervention...... 71

9.3.10........................................................................................................................... Pièce.....72 9.3.11..........................................................................................................................Temps.....76 9.3.12..............................................................................................Informations sur une pièce.....78

9.3.12.1...............................................................................................................Disponibilité...... 78 9.3.12.2.........................................................................................................Conditionnement...... 78

9.3.13.............................................................................................................................Liste.....79 9.3.14.................................................................................... Liste de pièces de remplacement.....79 9.3.15.............................................................................................................. Liste de pièces.....79 9.3.16......................................................................................................Liste des référentiels.....80 9.3.17.....................................................................................................................Le garage.....88 9.3.18.................................................................................................... L’accusé de réception.....88 9.3.19.................................................................................................... La police d’assurance.....88 9.3.20...............................................................................................Garantie et responsabilité.....89 9.3.21.................................................................................................................... L’acheteur .....89 9.3.22....................................................................................................................L’expertise.....90 9.3.23................................................................................................................ Le réparateur.....90 9.3.24......................................................................................................... Le bilan technique.....91 9.3.25.......................................................................................................... L’état du véhicule.....91

9.4. ............................................................................................................... ELEMENTS SIMPLES .....92 9.4.1. ................................................................................................... Taux de main d’œuvre.....92 9.4.2. .................................................................................................................Taux de TVA.....93 9.4.3. ..............................................................................................................................Prix.....93 9.4.4. .............................................................................................La référence administrative.....98 9.4.5. ..................................................................................................La référence alternative.....98 9.4.6. .........................................................................................................................La date.....99 9.4.7. .................................................................................................................... La mesure.....99 9.4.8. ................................................................................................... La quantité demandée.....99 9.4.9. ....................................................................................................................La quantité.....99 9.4.10...................................................................................................................... La valeur... 100 9.4.11.......................................................................................................... La liste de libellés ...102 9.4.12.................................................................................................................... La couleur ... 102 9.4.13............................................................................................................ Le commentaire... 103 9.4.14.....................................................................................................................La localité ... 103 9.4.15........................................................................................................................ Le choc...103 9.4.16..........................................................................................................L’usure d’un pneu...104 9.4.17..................................................................................................................... La remise...104 9.4.18............................................................................................... L’équipement du véhicule...104

Page 7: Plateforme catalogue – API HTTP XAT2€¦ · Plateforme catalogue ... MAJ « Exemple de session de mise-à-jour de prix ». ... Lancement d’une session interactive sur l’ IO

Réf : XA20710DTS079 Ed 1. - Rév. 13 Spécification technique détaillée Date 4 septembre 2009

Page -S 6/7-

XAT2

0710

DTS0

79 -

Ce do

cume

nt es

t pro

priét

é de E

TAI.

Tous

droit

s de r

epro

ducti

on et

/ou co

mmun

icatio

n rés

ervé

s.

9.4.19........................................................................................................................ L’image...104 9.4.20..................................................................................................................La signature...105 9.4.21.................................................................................................................... Le courtier... 105 9.4.22...............................................................................................La companie d’assurance...106 9.4.23............................................................................................................. Le gestionnaire...106 9.4.24.....................................................................................................................Le sinistre... 106 9.4.25..................................................................................................................La franchise...107 9.4.26...................................................................................................................... Le défaut ... 107 9.4.27............................................................................................... Le valeur simple d’un prix... 108 9.4.28.............................................................................................................. L’intermédiaire... 108 9.4.29......................................................................................................................... Le lésé...108 9.4.30........................................................................................................................ L’expert ... 108 9.4.31.......................................................................................................Le cabinet d’experts... 109 9.4.32................................................................................L’identifiant pour le service BulkData...109 9.4.33..............................................................................................................................Site...109 9.4.34................................................................................................ Identification d'une entité ... 109 9.4.35.............................................................................................................. Une entreprise...110 9.4.36.................................................................................................. propriétaire du véhicule...110 9.4.37................................................................................Les données d’identification de base...110 9.4.38............................................................................................................................L’état ... 110 9.4.39......................................................................... Le paramètre de recherche dans le DMS...111 9.4.40................................................................................................................... L’identifiant ... 111

9.5. ......................................................................................................................REFERENTIELS ... 111 9.5.1. .................................................................................................................. Fournisseur... 111 9.5.2. ........................................................................................................................... Tarifs... 112

10. ................................................................................................ ANNEXES – ENUMERATIONS...113 10.1. .................................................................................................. ENUMERATIONS UTILITAIRES ... 113

10.1.1...............................................................................................Liste des familles d’action...113 10.2. .................................................................................................................. TYPES DE LISTE ... 113 10.3. ............................................................................................. REFERENCES ADMINISTRATIVES ... 113 10.4. ...........................................................................................................TYPES DE DOCUMENT ... 114 10.5. .................................................................................................ENUMERATIONS REGIONALES ... 115

10.5.1...............................................................................................................Liste des Pays...115 10.5.2......................................................................................................... Liste des Langues...116 10.5.3.......................................................................................................... Unités de mesure...116 10.5.4........................................................................................................................ Devises...117

10.6. ............................................................................................ ENUMERATIONS LIEES AU CLIENT ... 118 10.6.1........................................................................................................................ Civilités ...118

10.7. ..............................................................................................ENUMERATIONS LIEES AUX PRIX ... 118 10.7.1............................................................................................................. Type de remise...118 10.7.2........................................................................................................ Le payeur d’un prix... 118 10.7.3.............................................................................................................Nature d’un prix... 119 10.7.4....................................................................................................................Tarification...119 10.7.5.........................................................................................................................Valeurs...119

10.8. .........................................................................................ENUMERATIONS LIEES AU VEHICULE ... 120 10.8.1........................................................................................................Types de carburant... 120 10.8.2......................................................................................................... Liste des marques...121 10.8.3................................................................ Organismes émetteur de classification véhicule...122 10.8.4...............................................Codes hiérarchiques d’élément de classification de véhicule...122 10.8.5..........................................................................................Genres de la boite de vitesse...122 10.8.6......................................................................................................... Usage du véhicule...123 10.8.7..........................................................................................................Types de véhicule...123

10.9. ...................................................................................ENUMERATIONS LIEES AUX OPERATIONS ... 123 10.9.1........................................................................................... Types d’opération complexe...123 10.9.2................................................................................................... Liste des Interventions...123 10.9.3.................................................................. Qualifiants d’intervention (protocole version ?)... 125 10.9.4....................................................................................................Référentiels alternatifs... 126 10.9.5........................................................................................................... Secteur d’activité... 126

Page 8: Plateforme catalogue – API HTTP XAT2€¦ · Plateforme catalogue ... MAJ « Exemple de session de mise-à-jour de prix ». ... Lancement d’une session interactive sur l’ IO

Réf : XA20710DTS079 Ed 1. - Rév. 13 Spécification technique détaillée Date 4 septembre 2009

Page -S 7/7-

XAT2

0710

DTS0

79 -

Ce do

cume

nt es

t pro

priét

é de E

TAI.

Tous

droit

s de r

epro

ducti

on et

/ou co

mmun

icatio

n rés

ervé

s.

10.9.6.......................................................................................................... Liste des activités...126 10.10.......................................................................................... ENUMERATIONS LIEES AUX PIECES ... 126

10.10.1.....................................................................................................Position d’une pièce...126 10.10.2...................................................................................................... Nature d’une pièce...126 10.10.3............................................................................................................Types de pièce...127 10.10.4............................................................................Code type de peinture d’un ingrédient ... 127 10.10.5..................................................................................... Code état du stock d’une pièce...127

10.11..........................................................................................ENUMERATIONS LIEES AU SHUTTLE ... 128 10.11.1..................................................................................................... Actions demandées...128

10.12................................................................................ ENUMERATIONS LIEES AUX REFERENTIELS ... 128 10.12.1.................................................................................................Genre d’un fournisseur... 128

10.13........................................................................ ENUMERATIONS LIEES AUX CODES DE GARANTIE ... 128 10.14....................................................................... ENUMERATIONS LIEES AUX TYPES D’EQUIPEMENT ... 129 10.15....................................................................................................... AUTRES ENUMERATIONS ... 129

10.15.1............................................................................................. Applicabilité d’une remise...129 11. ..................................................................................ANNEXE LISTE DES FOURNISSEURS...129

11.1.1.................................................................................................. Liste des types de date...130 12. .............................................. ANNEXE – ENUMERATIONS LIEES AUX OBJETS UTILITAIRES...131

12.1. .......................................................................................ENUMERATIONS LIEES AUX SERVICES ... 131 13. .........................................................................ANNEXE – CONFIGURATION PARTICULIERE...131

Page 9: Plateforme catalogue – API HTTP XAT2€¦ · Plateforme catalogue ... MAJ « Exemple de session de mise-à-jour de prix ». ... Lancement d’une session interactive sur l’ IO

Réf : XA20710DTS079 Ed 1. - Rév. 13 Spécification technique détaillée Date 4 septembre 2009

Page -1/140-

XAT2

0710

DTS0

79 -

Ce do

cume

nt es

t pro

priét

é de E

TAI.

Tous

droit

s de r

epro

ducti

on et

/ou co

mmun

icatio

n rés

ervé

s.

1. INTRODUCTION

Ce document remplace l’ancienne documentation AIO0701DTS033 (pour des raisons de conformité de la numérotation).

1.1. Objectif

Ce document spécifie en détail les exigences fonctionnelles, opérationnelles, d’interface, de conception, de réalisation et de qualification de l’API http XAT2 des produits catalogues sur plate-forme IO. Pour mémoire, le protocole XAT est le protocole XML de première génération, spécifié par ETAI pour la communication de sa première génération de logiciel, avec des partenaires locaux.

Cette API est une bibliothèque de fonctions et d’objets devant offrir un accès orienté métier, permettant l’échange de données avec les logiciels partenaires. Elle décrit donc les transactions entrantes et sortantes supportées par un produit catalogue/chiffrage IO.

Cette API est destinée à perpétuer et enrichir les dialogues existants avec les logiciels partenaires, notamment les DMS. Le document dépasse donc le cadre strict du protocole, pour donner les règles de comportements des logiciels partenaires, en fonction des messages échangés.

Ce document évolue jusqu’à la validation du logiciel.

NOTE IMPORTANTE : la partie syntaxique du protocole, qui est en annexe, est spécifiée de façon préliminaire dans cette version du document.

1.2. Domaine d’application

Sont concernées par ce document toutes les personnes devant implémenter l’interfaçage XAT2, dans les logiciels ETAI, comme chez les partenaires.

La version du protocole décrite dans la première version, est destinée à couvrir les échanges existants, sans enrichissement, mais dans des architectures plus élaborées.

La deuxième version (qui est aujourd’hui une « release candidate ») rajoute la possibilité de récupérer le référentiel ident, de faire de l’EAD ou d’avoir un acquittement pour les documents transmis.

Les versions ultérieures auront pour ambition d’enrichir le catalogue des fonctions proposées par les catalogues, et, éventuellement de proposer des versions techniques alternatives.

Tous les logiciels ETAI de type catalogue/chiffrage supporteront cette API à moyen terme.

La première cible est la plate-forme IO (catalogues dérivés d’ATELIO).

Page 10: Plateforme catalogue – API HTTP XAT2€¦ · Plateforme catalogue ... MAJ « Exemple de session de mise-à-jour de prix ». ... Lancement d’une session interactive sur l’ IO

Réf : XA20710DTS079 Ed 1. - Rév. 13 Spécification technique détaillée Date 4 septembre 2009

Page -2/140-

XAT2

0710

DTS0

79 -

Ce do

cume

nt es

t pro

priét

é de E

TAI.

Tous

droit

s de r

epro

ducti

on et

/ou co

mmun

icatio

n rés

ervé

s.

1.3. Documents de référence et applicables

Référence Titre Public Applicable AIO0607DAD002 Remote_DMS_Interface AIO0608DAD003 IOCentral_DMSCentral_Interface DSI0611DTS023E1R0 InterfacesProduitsETAI CRX0610DTS015 cromauto V2 X AIO0607MMO039E1R1 interface_tcp_atelioAM_login silent X Norme ITU-T ITU-T Recommendation E.123: Notation for national

and international telephone numbers, e-mail addresses and Web addresses

x x

AIO0701DTS035E4R1 Intégration de l’API XAT2 dans les produits ETAI

x

Architecture REST « Architectural Styles and the Design of Network-based Software Architectures » de Roy Thomas Fielding

x x

RFC 2616 « Hypertext Transfer Protocol » - la description du protocole http 1.1

x x

1.4. Terminologie

Abréviation Signification

DMS Dealer Management System ; par extension : application partenaire dialoguant avec l’IO

CSV « comma separated values » - valeurs tabulaires séparées par des virgules

URI « Uniform Resource Identifier» c’est le nom préféré aujourd’hui, l’URL étant un sous-ensemble de celui-ci. Le seul schéma géré aujourd’hui par le protocole étant le http, URI = URL

URN « Uniform Resource Name » - le nom d’une ressource (voir RFC 2141 URN Syntax publié en 1997 par l'Internet Engineering Task Force)

EAD Expertise à distance

IDD « International Direct Dial » le prefix rajouté dans un pays pour téléphoner à l’étranger (d’habitude 00).

Termes Définition

IO Application catalogue et/ou chiffrage

Local Architecture applicable à l’IO ou au DMS : l’application est sur le réseau local de l’utilisateur (en général le garage)

Extranet Applicable au IO ou au DMS : l’application est sur le réseau d’un acteur tiers, qui accueille de nombreux utilisateurs d’entités différentes (par exemple un distributeur pour les garages avec lesquels il travaille). Pour accéder à l’application les utilisateurs doivent passer par un WAN, et s’authentifier dans l’application, pour

Page 11: Plateforme catalogue – API HTTP XAT2€¦ · Plateforme catalogue ... MAJ « Exemple de session de mise-à-jour de prix ». ... Lancement d’une session interactive sur l’ IO

Réf : XA20710DTS079 Ed 1. - Rév. 13 Spécification technique détaillée Date 4 septembre 2009

Page -3/140-

XAT2

0710

DTS0

79 -

Ce do

cume

nt es

t pro

priét

é de E

TAI.

Tous

droit

s de r

epro

ducti

on et

/ou co

mmun

icatio

n rés

ervé

s.

disposer de leur espace privatif sur l’application extranet

Centralisé Applicable au IO ou au DMS : très similaire techniquement à l’architecture extranet, mais les utilisateurs sont tous sur une même application. Les fédérateurs (p. ex. distributeurs) disposent d’un espace d’administration pour l’ensemble des utilisateurs (garages généralement) avec lesquels ils travaillent.

DMSswLoginIO Login sur le IO pour le logiciel DMS (le nom représente : préfixe = utilisateur; suffixe = système cible). Généré par l’IO, il représente l’identifiant du DMS d’un garage (maximum 32 caractères).

UserSharedId Login sur le IO pour l’utilisateur du DMS, partagé entre l’IO et le DMS ; généré par le serveur ETAI (maximum 32 caractères).

GarageSharedId Identifiant d’un garage, partagé entre l’IO et le DMS (dans une configuration multi-DMS) ; généré par le serveur ETAI (maximum 32 caractères).

SessionID Identifiant de la session (contexte) de travail entre le DMS et l’IO ; il est généré sur le serveur ETAI (maximum 32 caractères)

MasterSessionId Donnée privative du IO permettant de gérer plusieures liaisons DMS corrélées ; généré par l’IO (maximum 64 caractères)

DMS principal Dans une configuration multi-DMS, il représente le DMS par lequel l’utilisateur est entré sur l’application IO ; les autres DMS, dans cette configuration multi-DMS, représentent les DMS secondaires

DMS secondaire Dans une configuration multi-DMS c’est un DMS qui ne faire que de répondre aux divers requêtes de type POST ; il doit avoir une adresse publique fixe.

Page 12: Plateforme catalogue – API HTTP XAT2€¦ · Plateforme catalogue ... MAJ « Exemple de session de mise-à-jour de prix ». ... Lancement d’une session interactive sur l’ IO

Réf : XA20710DTS079 Ed 1. - Rév. 13 Spécification technique détaillée Date 4 septembre 2009

Page -4/140-

XAT2

0710

DTS0

79 -

Ce do

cume

nt es

t pro

priét

é de E

TAI.

Tous

droit

s de r

epro

ducti

on et

/ou co

mmun

icatio

n rés

ervé

s.

2. EXIGENCES

2.1. Présentation de la mission du produit logiciel

2.1.1. Mission

La mission de l’API XAT2 est de permettre un dialogue entre des logiciels, généralement un logiciel généraliste et un logiciel expert, quelle que soit l’architecture de déploiement de l’un et de l’autre de ces logiciels.

La mission de la version 1 est de permettre aux acteurs dont l’architecture de déploiement migre vers le centralisé ou extranet, de continuer à dialoguer.

Les avancées fonctionnelles sont limitées à dessein. Le fait de spécifier les bases du dialogue réseau, et de définir la structure des objets échangés pose les fondements suffisants pour une extension progressive des fonctions dans les versions suivantes.

Le protocole cible est destiné à permettre aux développeurs des logiciels en interaction, de dissocier les mécanismes d’échange du cœur des applications.

Il est extensible, permettant aux systèmes communiquant une grande latitude d’évolution indépendante.

Il est conçu pour éviter l’exposition de données sensibles, et la gestion synchronisée d’annuaires.

Ces principes peuvent se résumer par un « couplage lâche ».

Enfin, il repose sur les protocoles standards, dans le but d’une acceptation maximale par les dispositifs réseau.

La mission de la version 2 est d’étendre le protocole afin de puvoir transférer des données EAD : images, rapports d’expertise,….

2.1.2. Différentes conditions et configurations d’utilisation

L’API XAT2 pourra être utilisée par des logiciels partenaires, déployés suivant les modes suivants :

- IO centralisé/extranet, DMS local/extranet

Page 13: Plateforme catalogue – API HTTP XAT2€¦ · Plateforme catalogue ... MAJ « Exemple de session de mise-à-jour de prix ». ... Lancement d’une session interactive sur l’ IO

Réf : XA20710DTS079 Ed 1. - Rév. 13 Spécification technique détaillée Date 4 septembre 2009

Page -5/140-

XAT2

0710

DTS0

79 -

Ce do

cume

nt es

t pro

priét

é de E

TAI.

Tous

droit

s de r

epro

ducti

on et

/ou co

mmun

icatio

n rés

ervé

s.

- IO centralisé, DMS centralisé

- IO local, DMS local, bien que cette configuration n’apporte dans un premier temps que peu d’avantage par rapport au protocole XAT.

La suite du document est focalisée sur la configuration IO centralisé, DMS local, qui présente les difficultés techniques les plus importantes.

2.1.3. Fonctionnalités requises

Les fonctionnalités requises pour la version v1 du protocole, sont celles supportées par le protocole XAT.

Elles sont de quatre types :

- ouverture d’une session interactive sur l’IO pour un utilisateur du DMS

- demande d’informations métier : sur les pièces (IO) ou sur un véhicule (DMS)

- transfert d’éléments de synthèse de l’IO vers les DMS (commande panier de pièces)

- échanges techniques destinés à permettre la communication : informations liées à la session et donc volatiles ou informations (synchronisation) liées au référentiel et donc persistantes.

2.1.4. Liste des fonctions et relations

Les quatre types de transaction sont nécessaires dans toutes les versions ; la version 2 rajoute des nouvelles transactions.

La liste exhaustive de la syntaxe est donnée en annexe : objets et verbes.

2.2. Versions

Le protocole gère 2 types d’objets : utilitaires et métier. Les objets utilitaires véhiculent des données techniques et utilisent une balise racine <xat2> ; les objets métier utilisent la balise racine <shuttle>. Chacun de ces objets possede son propre numéro de version qui peut évoluer d’une manière indépendente de l’autre.

Il y a aujourd’hui 2 versions du protocole, qui utilisent les objets dans les versions suivantes :

Version protocole Version xat2 Version shuttle

Page 14: Plateforme catalogue – API HTTP XAT2€¦ · Plateforme catalogue ... MAJ « Exemple de session de mise-à-jour de prix ». ... Lancement d’une session interactive sur l’ IO

Réf : XA20710DTS079 Ed 1. - Rév. 13 Spécification technique détaillée Date 4 septembre 2009

Page -6/140-

XAT2

0710

DTS0

79 -

Ce do

cume

nt es

t pro

priét

é de E

TAI.

Tous

droit

s de r

epro

ducti

on et

/ou co

mmun

icatio

n rés

ervé

s.

1 1 1

2 2 Inférieure ou égale à 2

La compatibilité descendente est assurée par les serveurs ETAI qui implémentent le protocole – c'est-à-dire qu’un DMS qui est en version 1 ne va recevoir que des shuttles en version 1 ; lorsqu’il tente de passer un xat2 en version 2 au serveur ETAI, il recevra une erreur HTTP 406 (« NOT_ACCEPTABLE ») et à partir de ce moment il saura que le serveur ETAI est en version 1 et qu’il n’accepte pas des shuttles en version 2.

A noter que :

Les DMS doivent assurer la compatibilité descendante avec les versions inférieures du protocole

La version 2 du protocole (surtout la partie shuttle) doit être considérée comme une « relase candidate » et donc susceptible d’évoluer. ETAI essaie de faire en sort que toutes ces évolutions (jusqu’à la version définitive) ne sont que des ajouts aux schémas de base, et que toutes ces modifications seront communiquées en temps utile aux éditeurs de logiciels DMS.

2.3. Exigences techniques

2.3.1. Rappel sur les contraintes nouvelles

Les applications partenaires doivent échanger à travers des réseaux WAN.

En conséquence, les échanges physiques de données (partage de fichiers) ou les protocoles non standards ne sont plus acceptables.

Par ailleurs, les échanges doivent être « temps réel » et ne peuvent se baser sur l’activation périodique d’une fonction de part et d’autre.

Les applications centralisées nécessitent la spécification d’un contexte « utilisateur » pour chaque session (ce que ne nécessitait pas l’échange local) et éventuellement une authentification.

Enfin dans certaines configurations, les partenaires peuvent ne pas disposer d’une adresse fixe qui permette de les adresser directement.

Page 15: Plateforme catalogue – API HTTP XAT2€¦ · Plateforme catalogue ... MAJ « Exemple de session de mise-à-jour de prix ». ... Lancement d’une session interactive sur l’ IO

Réf : XA20710DTS079 Ed 1. - Rév. 13 Spécification technique détaillée Date 4 septembre 2009

Page -7/140-

XAT2

0710

DTS0

79 -

Ce do

cume

nt es

t pro

priét

é de E

TAI.

Tous

droit

s de r

epro

ducti

on et

/ou co

mmun

icatio

n rés

ervé

s.

2.3.2. Architecture de déploiement des applications partenaires

Les applications partenaires peuvent être déployées suivant trois modes différents.

Les trois modes explicités ci-dessous sont applicables aux deux partenaires. Tous ne sont pas adressés par la version v1 du protocole.

La matrice ci-dessous montre les architectures auxquelles s’adresse le protocole XAT2 dans sa version 1.

Il s’agit d’une matrice d’applicabilité technique. Les particularités métiers, notamment sur les architectures extranet, peuvent amender ce schéma.

Appli ETAI locale Appli ETAI extranet Appli ETAI centralisée

DMS local XAT, TCP valide ++ ++

DMS centralisé N/A + +

DMS extranet N/A + +

La configuration avec un DMS et une application ETAI tournant en local bien qu’en principe possible, n’a pas été testée (il faut savoir gérer le conflit de ports, par exemple).

2.3.2.1. L’application locale

Cette architecture est caractérisée par les éléments suivants :

- le poste de l’utilisateur et l’application qu’il utilise sont sur le même réseau local.

- il n’y a aucun dispositif réseau filtrant qui limite les capacités de communication à l’intérieur du LAN

- les adresses TCP-IP à l’intérieur du LAN ne sont pas réputées fixes (DHCP). En revanche, on suppose qu’elles sont figées pendant la durée d’une session d’échange

- les adresses TCP-IP internes des machines du réseau ne sont pas accessibles depuis l’extérieur. Elles ne sont ni routables ni fixes (sur Internet).

2.3.2.2. L’application centralisée

L’utilisateur accède à l’application à travers un WAN.

Page 16: Plateforme catalogue – API HTTP XAT2€¦ · Plateforme catalogue ... MAJ « Exemple de session de mise-à-jour de prix ». ... Lancement d’une session interactive sur l’ IO

Réf : XA20710DTS079 Ed 1. - Rév. 13 Spécification technique détaillée Date 4 septembre 2009

Page -8/140-

XAT2

0710

DTS0

79 -

Ce do

cume

nt es

t pro

priét

é de E

TAI.

Tous

droit

s de r

epro

ducti

on et

/ou co

mmun

icatio

n rés

ervé

s.

L’application ETAI est donc accessible par une adresse Internet fixe. Elle est supposée disponible en permanence, et peut-être considérée comme un partenaire de confiance. Elle peut notamment supporter des méthodes de sécurisation des échanges.

Le mode de connexion en déport d’écran (TSE, CITRIX) n’est pas supporté explicitement par le protocole. Ceci ne signifie pas qu’il ne fonctionne pas, mais il n’est pas qualifié, devra être étudié au cas par cas, et ne sera pas garanti par la simple conformité d’une application au protocole.

2.3.2.3. L’application extranet

L’application extranet se rapproche techniquement de l’application centralisée. Elle ne sera pas dissociée dans la suite du document.

2.3.3. Principe technique de l’API XAT2

Ce paragraphe expose les techniques de base retenues pour la communication.

Ces choix sont motivés par les contraintes exprimées plus haut, et la nécessité de supporter des configurations matérielles variées, avec un minimum de paramétrage et d’intervention sur site.

2.3.3.1. Transport

Le transport s’appuie sur le protocole http (voire https), standard incontournable des échanges sur internet.

HTTP fournit par ailleurs les composantes de bases qui permettent d’assurer le transactionnel (question-réponse) temps réel, la sécurisation (https), le dispatching transparent des requêtes (redirection).

La version obligatoire du protocole http à utiliser est 1.1 (RFC 2616) ; quand le serveur ETAI se connecte au DMS (secondaire), il utilise pour « User-Agent » une valeur qui commence par « ETAI/Xat2 » (suivi d’un numéro de version/release).

2.3.3.2. Codage des données

Les données échangées sont représentées exclusivement en XML. Le modèle des objets est présenté en annexe.

Les schémas de définitions ainsi que les URL où se trouvent sont à titre d’exemple.

Page 17: Plateforme catalogue – API HTTP XAT2€¦ · Plateforme catalogue ... MAJ « Exemple de session de mise-à-jour de prix ». ... Lancement d’une session interactive sur l’ IO

Réf : XA20710DTS079 Ed 1. - Rév. 13 Spécification technique détaillée Date 4 septembre 2009

Page -9/140-

XAT2

0710

DTS0

79 -

Ce do

cume

nt es

t pro

priét

é de E

TAI.

Tous

droit

s de r

epro

ducti

on et

/ou co

mmun

icatio

n rés

ervé

s.

2.3.3.3. Protocole de requêtage des services

Le protocole REST a été choisi pour des raisons de légèreté de mise en œuvre, et facilité de mise au point.

Les paramètres des méthodes GET même s’ils sont illustrés dans ce document en majuscules/minuscules (pour plus de clarté), sont toujours envoyés en minuscules.

2.3.3.4. URL de communication

On rappelle que le dialogue doit supporter en priorité la configuration IO Central – DMS Local. Le DMS ne peut donc être adressé directement par l’IO. Par ailleurs dans toutes les configurations cibles de ce protocole, le IO est en mode centralisé (ou extranet).

En revanche, le navigateur de l’utilisateur, sait adresser le DMS et l’IO. Il sert donc de relais local à l’IO pour requêter le DMS, lorsque nécessaire (DMS local).

Le schéma retenu est donc le suivant : les partenaires de l’IO s’adressent directement au serveur IO, en gardant son adresse WAN en paramètre.

L’adresse du DMS est envoyée dans des paramètres de session à l’IO lors d’un dialogue préliminaire.

Lorsque le IO, en session avec un navigateur, a besoin d’interroger le DMS pour une demande d’information (par exemple des prix de pièces), il envoie au navigateur une réponse avec redirection vers l’adresse du DMS.

Le schéma suivant expose de façon simplifiée ce type de transaction pour une demande de prix :

Page 18: Plateforme catalogue – API HTTP XAT2€¦ · Plateforme catalogue ... MAJ « Exemple de session de mise-à-jour de prix ». ... Lancement d’une session interactive sur l’ IO

Réf : XA20710DTS079 Ed 1. - Rév. 13 Spécification technique détaillée Date 4 septembre 2009

Page -10/140-

XAT2

0710

DTS0

79 -

Ce do

cume

nt es

t pro

priét

é de E

TAI.

Tous

droit

s de r

epro

ducti

on et

/ou co

mmun

icatio

n rés

ervé

s.

fig. 1 Mécanisme de redirection : le serveur IO retourne un code 302 (redirection temporaire) et le DMS, une fois les valeurs transmises, retourne aussi un code 302 au navigateur qui l’oblige à revenir sur l’IO qui peut renvoyer une page complète au

navigateur

Dès lors, en fonction des configurations de déploiement du DMS et de l’IO les modes d’adressage suivants seront utilisés :

IO local extranet centralisé

DMS Local XAT, TCP redirection redirection Extranet N/A direct/redirection direct/redirection Centralisé direct/redirection redirection direct/redirection

2.3.3.5. Initialisation des échanges

Dans les configurations envisagées, le dialogue n’est jamais initié par le IO, qui se retrouve serveur, même quand il doit transmettre des données (par exemple le panier de pièces).

L’initialisation d’une session est donc toujours à l’initiative du DMS.

Page 19: Plateforme catalogue – API HTTP XAT2€¦ · Plateforme catalogue ... MAJ « Exemple de session de mise-à-jour de prix ». ... Lancement d’une session interactive sur l’ IO

Réf : XA20710DTS079 Ed 1. - Rév. 13 Spécification technique détaillée Date 4 septembre 2009

Page -11/140-

XAT2

0710

DTS0

79 -

Ce do

cume

nt es

t pro

priét

é de E

TAI.

Tous

droit

s de r

epro

ducti

on et

/ou co

mmun

icatio

n rés

ervé

s.

Chaque DMS devra donc être identifié auprès de l’IO par un DMSswLoginIO. Ce DMSswLoginIO identifie le logiciel DMS d’un garage (chacun ayant maximum 32 caractères).

Dans le cas d’une configuration multi-DMS, on doit spécifier pour chaque utilisateur d’un garage quelle est le login DMS qu’il doit utiliser. Les garages sont identifiés sur le DMS par un GarageSharedId, crée dans l’application IO. Toujours dans cette configuration multi-DMS, il est sous-entendu que tous les DMS utilisent le même protocole de dialogue avec IO.

Dans tous les cas, le DMSswLoginIO pour chaque garage sera renseigné dans l’administration garage, et l’UserSharedId de chaque utilisateur dans l’adminitration utilisateur.

2.3.3.6. Contexte de session

Les échanges prennent place à l’intérieur d’une session.

Ce contexte contient notamment l’id partagé entre le IO et le DMS de l’utilisateur, les adresses de redirection du côté DMS (l’adresse IP que l’IO doit spécifier dans sa requête redirigée, pour que le navigateur la fasse cheminer vers le DMS), etc. Cette session est identifiée par une sessionID qui se traduit par un objet persistant, du côté IO notamment. Cet objet ne peut être stocké dans la session http, du fait que cette dernière est dépendante de l’action de l’utilisateur sur son navigateur. Les partenaires doivent donc gérer eux-mêmes ce contexte de session, le créer, et le détruire en fin de session.

Un utilisateur ne peut avoir qu’une seule session initiée avec un DMS. Du fait qu’une session interactive est ouverte, l’utilisateur ne peut pas se connecter à l’IO en dehors du DMS.

2.3.3.7. Session restreinte

Une session est considérée restreinte si le shuttle utilisé est de type "liste". Dans ce cas il s'agit toujours pour le DMS de télécharger un référentiel d'un garage ETAI.

Les limitations de ce type de session sont :

Droits limités uniquement à la consultation de référentiels ETAI,

Timeout réduit

Pas d’interaction graphique avec l’application ETAI

2.3.3.8. Accès direct au DMS

Un DMS peut être accédé directement s’il précise à l’initialisation de contexte l’attribut direct-access = true. Les DMS secondaires (voir ci-dessous) doivent être de ce type.

Pour un DMS à accès direct les envois depuis IO se font en POST (par exemple la liste de pièces pour récupérer les prix) et le DMS envoie le shuttle de réponse dans le retour à ce

Page 20: Plateforme catalogue – API HTTP XAT2€¦ · Plateforme catalogue ... MAJ « Exemple de session de mise-à-jour de prix ». ... Lancement d’une session interactive sur l’ IO

Réf : XA20710DTS079 Ed 1. - Rév. 13 Spécification technique détaillée Date 4 septembre 2009

Page -12/140-

XAT2

0710

DTS0

79 -

Ce do

cume

nt es

t pro

priét

é de E

TAI.

Tous

droit

s de r

epro

ducti

on et

/ou co

mmun

icatio

n rés

ervé

s.

POST ; l’avantage de ce mode est que l’échange de données est plus rapide – par contre, elle exige qu’il n’y a pas d’obstacles dans la communication (pare-feu, …)

2.3.4. Le DMS secondaire

Un DMS secondaire est activé lors de l’initialisation du DMS principal (celui par lequel est entré l’utilisateur). Il est obligatoire que ce DMS ait une adresse publique, donc qu’il soit accessible directement (l’attribut « direct-access » doit être mis obligatoirement à « true » lors de l’appel à la fonction de mise-à-jour de la session). Par contre, lors de l’initialisation, après avoir obtenu son identifiant de contexte, il n’a pas besoin d’initialiser un shuttle (car celui-là a été déjà initialisé pour le DMS principal).

Le DMS secondaire ne peut pas non plus aller à l’URL d’affichage car son contexte n’est pas interactif.

2.3.5. Les services

2.3.5.1. Les services d’échanges DMS - IO

Ce paragraphe présente les différents services exposés par chacun des partenaires et qui constituent donc le protocole.

Paramètre serveur Remarque

Ouverture de session interactive

(SetSessionInteractive)

SessionID ETAI L’IO reçoit un « Shuttle » du DMS dans lequel prendront place tous les échanges métiers

shuttle Positionnement sur la page des marques pour sélection d’un véhicule ou ouverture de la page d’atelier

Shuttle ETAI préexistent

Ouverture du Shuttle (v3)

Fourniture d’objet métier

ETAI ou

DMS

Un des partenaires demande des éléments métier à l ‘autre

Prix, conditionnement, disponibilité

sessionID + action

DMS Le IO est toujours serveur, la requête est donc renversée : le DMS demande

Page 21: Plateforme catalogue – API HTTP XAT2€¦ · Plateforme catalogue ... MAJ « Exemple de session de mise-à-jour de prix ». ... Lancement d’une session interactive sur l’ IO

Réf : XA20710DTS079 Ed 1. - Rév. 13 Spécification technique détaillée Date 4 septembre 2009

Page -13/140-

XAT2

0710

DTS0

79 -

Ce do

cume

nt es

t pro

priét

é de E

TAI.

Tous

droit

s de r

epro

ducti

on et

/ou co

mmun

icatio

n rés

ervé

s.

(RequestAction) (update) au IO une liste de pièces pour lesquelles il renseignera les données demandées et poste sa réponse

Liste de pièces

(GetSessionShuttle)

sessionID

ETAI Le DMS interroge l’IO pour obtenir le shuttle

Demande de mise-à-jour du référentiel

(UpdateSessionShuttle)

sessionID

ETAI Le DMS fait un POST en spécifiant les données demandées (liste de fournisseurs,…) (v2)

Transfert de prix

(UpdateSessionShuttle)

ETAI Le DMS fait un POST avec les pièces + les prix, conditionnements, disponibilités calculés

Transfert des données de synthèse

(RequestAction)

sessionID + action (retrieve)

DMS L’IO demande au DMS de prendre en compte les éléments de synthèse de la session : identification véhicule, commande de pièces, Shuttle pour facturation.

Dans le cas multi-DMS, la facture et le panier de pièces sont envoyés à 2 DMS différents.

(GetSessionShuttle) sessionID

ETAI Le IO est toujours serveur, la requête est donc renversée : le DMS demande au IO les éléments de synthèse qu’il va enregistrer

Echange d’éléments techniques

ETAI ou

DMS

Il s’agit des éléments nécessaires au dialogue : éléments de contexte, liste de codes, etc.

URL des services (GetServicesList)

DMSswLoginIO ETAI Demande des URL des différents services. L’IO renvoie la liste des URL valides pour le DMS qui l’interroge

Création de session (CreateSession)

DMSswLoginIO

UserSharedID

MasterSessionID

ETAI Demande de création d’un contexte de session. Le DMS demande à l’IO un identifiant de session, sessionID, pour la suite des échanges.

Demande de création d’une session

(RequestAction)

MasterSessionID

GarageSharedID

DMS IO demande au DMS d’initialiser son contexte ; celui-ci vérifie s’il connaît le GarageSharedID et l’utilise comme équivalent de UserSharedID

Page 22: Plateforme catalogue – API HTTP XAT2€¦ · Plateforme catalogue ... MAJ « Exemple de session de mise-à-jour de prix ». ... Lancement d’une session interactive sur l’ IO

Réf : XA20710DTS079 Ed 1. - Rév. 13 Spécification technique détaillée Date 4 septembre 2009

Page -14/140-

XAT2

0710

DTS0

79 -

Ce do

cume

nt es

t pro

priét

é de E

TAI.

Tous

droit

s de r

epro

ducti

on et

/ou co

mmun

icatio

n rés

ervé

s.

action (trigger)

Renseignement du contexte de session

(UpdateSession)

sessionID + Données propriétaires DMS + URL de redirection

ETAI Le DMS spécifie au IO les données propriétaires et les données de redirection nécessaires à la suite. L’IO les stocke dans l’objet de contexte de session, identifié par le sessionID

Consultation du contexte

(GetSession)

sessionID Le DMS récupère les informations du contexte de la session ; dans le cas multi-DMS ces informations contiennent aussi l’ID du garage de l’utilisateur.

Destruction de la session

(DeleteSession)

sessionID ETAI Le DMS indique à l’IO que la session est terminée. Les données nécessaires ont été récupérées et le contexte de session peut être détruit (par exemple, si le DMS a ouvert un navigateur, il doit le fermer).

Demande de destruction d’une session

(RequestAction)

sessionID

action (delete)

DMS Cas multi-DMS : l’IO a reçu l’ordre de destruction de la session de la part du premier DMS et il informe le 2-ème de cette situation.

Demande d’identifiant partagé (V2)

(GetUserSharedID)

sessionID ETAI DMS

Le DMS (respectivement le serveur ETAI) demande au logiciel partenaire un identifiant unique et persistant qu’il affectera à un nouvel utilisateur commun. Il passe en paramètre le login dans le logiciel destinataire, mais ne le stocke pas (celui-ci étant la propriété du partenaire, peut changer ultérieurement) Pas applicable en v1

Demande de test de redirection

(Test)

DMSswLoginIO DMS

ETAI

Transaction utilitaire permettant de vérifier les paramètres de redirection

Demande de transfert de données binaires

(GetBulkData)

sessionID

objectID

ETAI Le logiciel DMS veut récupérer des données binaires de grande taille ; l’identifiant de ces données a été obtenu au préalable dans un shuttle.

Service de gestion d’erreurs

ETAI Service réservé.

Page 23: Plateforme catalogue – API HTTP XAT2€¦ · Plateforme catalogue ... MAJ « Exemple de session de mise-à-jour de prix ». ... Lancement d’une session interactive sur l’ IO

Réf : XA20710DTS079 Ed 1. - Rév. 13 Spécification technique détaillée Date 4 septembre 2009

Page -15/140-

XAT2

0710

DTS0

79 -

Ce do

cume

nt es

t pro

priét

é de E

TAI.

Tous

droit

s de r

epro

ducti

on et

/ou co

mmun

icatio

n rés

ervé

s.

(BugReport)

Demande d’acquittement shuttle DMS A partir de la version 2, en fonction du paramétrage du DMS dans l’application ETAI

Le tableau montre que les requêtes qui naturellement seraient postées par le serveur ETAI à destination du DMS sont en fait renversées, par le fait que le DMS n’étant pas forcément centralisé, il est impossible de l’adresser directement.

Les paragraphes suivants exposent des exemples de sessions typiques.

2.3.6. Exemple de session de mise-à-jour de prix Les services sont indiqués en gras et les paramètres en gras + italique.

2.3.6.1. Paramétrage préalable L’administrateur IO se connecte dans la configuration du garage – il y configure les informations concernant le DMS :

o le « DMSswLoginIO » (login sous lequel le DMS est déclaré dans l’IO pour ce garage/site) o l’adresse du DMS, si l’IO peut accéder directement au DMS, sans utiliser le mécanisme de

redirection o cas multi-DMS : l’adresse du DMS extranet utilisé pour le calcul de prix et l’envoi du panier de

pièces Des timeouts de session (normale et restreinte) sont définis dans le paramétrage du serveur IO ; pour la session normale les valeurs sont d’ordre de 3 h et pour la session restreinte le timeout est de l’ordre de minutes. L’administrateur IO renseigne également manuellement les UserSharedID, qui correspondent à l’identifiant partagé entre le DMS et le IO pour le même utilisateur. Du côté IO, il y aura autant de DMSSharedID que de DMS déclarés en interface pour un même utilisateur. Le UserSharedID est évidemment entré à l’identique par le DMS pour associer cet identifiant partagé à l’utilisateur. Dans le cas multi-DMS, où un 2-ème DMS connaît les prix spécifiques à chaque garage, il faut créer une liste commune d’ID de garage entre l’IO et le DMS : les GarageSharedID. L’IO associe chaque utilisateur à un GarageSharedID. Dans le paramétrage du DMS il faut préciser l’URL où se trouve le service GetServicesList (ci-dessous on suppose une adresse fictive http://www.etai.io/xat2sl).

2.3.6.2. Lancement d’une session interactive sur le IO On suppose un utilisateur du DMS habilité à utiliser le produit IO. 1. L’utilisateur lance son DMS, crée un dossier pour son client puis demande l’ouverture d’une session IO

interactive dans l’interface du DMS 2. Le DMS appelle le service GetServicesList de l’IO en passant son DMSswLoginIO (par exemple

http://www.etai.io/xat2sl?dmsswloginio=xyzw)). L’IO authentifie le DMS et lui retourne la liste des URL valides, dont l’URL de gestion de session :

<?xml version="1.0" encoding="UTF-8" ?> <xat2 version="1" xmlns="http://etai22.ecritel.net/xsd/xat2/1/xat2.xsd"

xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <date-creation format="yyyy-MM-dd HH:mm:ss">2007-02-11 17:59:01</date-creation>

<uri-service-list>

Page 24: Plateforme catalogue – API HTTP XAT2€¦ · Plateforme catalogue ... MAJ « Exemple de session de mise-à-jour de prix ». ... Lancement d’une session interactive sur l’ IO

Réf : XA20710DTS079 Ed 1. - Rév. 13 Spécification technique détaillée Date 4 septembre 2009

Page -16/140-

XAT2

0710

DTS0

79 -

Ce do

cume

nt es

t pro

priét

é de E

TAI.

Tous

droit

s de r

epro

ducti

on et

/ou co

mmun

icatio

n rés

ervé

s.

<uri-service action="ManageSession">http://www.etai.io/xat2sess </uri-service> <uri-service action="SessionShuttle">http://www.etai.io/xat2shtl</uri-service> <uri-service action="Display">http://www.etai.io/xat2aff</uri-service> <uri-service action="TestSessionFlow">http://www.etai.io/xat2test</uri-service> </uri-service-list>

</xat2>

3. Le DMS appelle la fonction de création de session(CreateSession) : il fait un GET à l’URL de ManageSession en passant comme paramètre l’UserSharedID de l’utilisateur et le login du DMS : (http://www.etai.io/xat2sess?dmsswloginio=xyzw&usersharedid=112233), il récupère un document XML de la forme suivante :

4. Le IO crée une session de travail et retourne au DMS un document XML de la forma suivante : <xat2 version="1" xmlns="http://etai22.ecritel.net/xsd/xat2/1" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">

<date-envoi format="yyyy-MM-dd HH:mm:ss">2007-02-14 17:59:01</date-envoi> <session-context>

<date-creation format="yyyy-MM-dd HH:mm:ss">2007-02-11 17:59:01 </date-creation>

<sessionid>123a4</sessionid> <dmsswloginio>xyzw</dmsswloginio> </session-context> </xat2>

Dans cet exemple, l’ID de la session a la valeur 123a4, bien qu’elle n’a que 5 caractères…; dans le cas multi-DMS, l’IO fait un GET à http://192.168.200.32/dms2/io avec les paramètres action=trigger&mastersessionid=123a4&garagesharedid=gar123&usersharedid=112233; ce DMS vérifie l’ID du garage puis il appelle aussi (une fois obtenue la liste de services) la fonction de création de session(CreateSession) : il fait un GET à l’URL de ManageSession en passant comme paramètres le MasterSessionID de l’utilisateur, son login de DMS et le login de l’utilisateur qu’il a reçu : http://www.etai.io/xat2sess?dmsswloginio=rstuv2& usersharedid =112233&mastersessionid=123a4), 5. Le DMS appelle la fonction de mise-à-jour de la session : il fait un POST à l’URL de ManageSession

(http://www.etai.io/xat2sess/123a4) en passant comme paramètres son URL de redirection et ses données propriétaires (qui doivent avoir un autre espace de nommage) :

<?xml version="1.0" encoding="UTF-8" ?>

<xat2 version="1" xmlns=" http://etai22.ecritel.net/xsd/xat2/1/xat2.xsd " xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">

<date-creation format="yyyy-MM-dd HH:mm:ss">2007-02-11 17:59:01 </date-creation>

<session-context> <sessionid>123a4</sessionid > <usersharedid>112233</usersharedid> <dmsswloginio>xyzw</dmsswloginio> <dmsid> <name>DMS de test</name> <code-langue>fr</code-langue> <version>version</version> </dmsid>

<uri-service-list> <uri-service action="DMSaddress">

http://192.168.200.32/dms/redir </uri-service>

Page 25: Plateforme catalogue – API HTTP XAT2€¦ · Plateforme catalogue ... MAJ « Exemple de session de mise-à-jour de prix ». ... Lancement d’une session interactive sur l’ IO

Réf : XA20710DTS079 Ed 1. - Rév. 13 Spécification technique détaillée Date 4 septembre 2009

Page -17/140-

XAT2

0710

DTS0

79 -

Ce do

cume

nt es

t pro

priét

é de E

TAI.

Tous

droit

s de r

epro

ducti

on et

/ou co

mmun

icatio

n rés

ervé

s.

</uri-service-list> <private-dms>

<xyz xmlns="http://dms1/dsm-x.y.xsd"> <text1>zorglub</text1> <text2>toto</text2> <text3>toto</text3> </xyz> </private-dms> </session-context>

</xat2> La balise <dmsid> (qui n’est pas obligatoire) indique le type du DMS et sa préférence linguistique. A noter que l’adresse de redirection donnée ici c’est juste un exemple, le DMS peut préciser évidemment une autre adresse, sur un autre port, en utilisant la technologie qui lui convient (PHP, Java, ASP, Python,…)

6. Le DMS crée un « Shuttle » qui est un container de transit entre les deux partenaires, et appelle l’URL de

SessionShuttle (récupéré à 2 : http://www.etai.io/xat2shtl/123a4) où il fait une requête POST avec le shuttle qu’il vient de créer et d’initialiser dans le paramètre xml (un exemple de shuttle assez complet vous trouvez ici). Avec un Shuttle et un contexte de session renseigné, la session interactive est lancée par l’IO dès que le DMS appelle l’URL du service d’affichage (dans notre cas http://www.etai.io/xat2aff?sessionid=123a4). On suppose qu’aucun paramètre supplémentaire n’a été passé, ce qui signifie que la session s’ouvrira avec un contexte minimum : page des marques.

2.3.6.3. Dialogue métier 7. L’utilisateur est maintenant dans l’application IO – il complète son devis avec les pièces nécessaires.

L’affichage des pièces nécessite que l’IO connaisse les prix issus du DMS. Le IO vérifie d’abord l’adresse fournie par le DMS à 5, et si l’attribut direct-access n’est pas définit alors l’IO regarde la configuration du garage ; si ici non plus un accès direct n’est pas précisé, alors on va utiliser la redirection. L’IO, avant son affichage fait un appel au DMS pour fourniture d’objets métier (les prix en l’occurrence). Comme expliqué plus haut, il ne peut interroger directement le DMS et il effectue une redirection (à l’URL récupéré à 5) que le navigateur va transmettre au DMS. Le DMS reçoit donc un GET à http://192.168.200.32/dms/redir avec les paramètres action=update&sessionid=123a4

8. le DMS fait une demande de fourniture d’objets métier (la liste de pièces) par un GET à http://www.etai.io/xat2shtl/123a4 (l’URL est récupérée à 2) et récupère la liste de pièces dans le shuttle.

9. il renseigne les prix dans le shuttle et il les renvoie à l’IO par un POST à http://www.etai.io/xat2shtl/123a4 10. l’IO constitue sa page complète (en fait une deuxième requête peut être nécessaire pour les

disponibilités, de même qu’une requête préliminaire a été nécessaire pour les conditionnements) et acquitte ensuite le POST précédent du DMS

11. le DMS renvoie ensuite un 302 au navigateur qui sera enfin redirigé à l’URL de display (récupérée à 2) http://www.etai.io/xat2aff?sessionid=123a4 , puis on passe à 12

12. le serveur IO affiche la page de pièces correctement renseignée.

2.3.6.4. Fin de la session 13. L’utilisateur de l’IO déclenche le « transfert » de son devis. En fait comme on le verra ultérieurement le

transfert du devis se scinde maintenant en transfert du devis (à des fins comptables) et en transfert du panier (à des fins de commande), sachant que les 2 sont hébergés par un shuttle. C’est le service de transfert des données de synthèse.

14. le clic sur ce bouton retourne un code 302 au navigateur, qui sera redirigé à l’URL de redirection du DMS (récupérée à 5) avec les paramètres action=retrieve&sessionid=123a4

15. le DMS fait un GET à http://www.etai.io/xat2shtl/123a4 (l’URL est récupérée à 2), récupère les données de synthèse puis il clôt la session

16. le DMS fait un DELETE à l’URL http://www.etai.io/xat2sess/123a4 (l’URL de gestion de contexte est récupérée à 2 et le sessionID à 4) – l’IO efface le contexte de session et il rend la main au DMS. Si le DMS a ouvert un navigateur, il doit le fermer pour détruire ainsi la session HTTP.

Page 26: Plateforme catalogue – API HTTP XAT2€¦ · Plateforme catalogue ... MAJ « Exemple de session de mise-à-jour de prix ». ... Lancement d’une session interactive sur l’ IO

Réf : XA20710DTS079 Ed 1. - Rév. 13 Spécification technique détaillée Date 4 septembre 2009

Page -18/140-

XAT2

0710

DTS0

79 -

Ce do

cume

nt es

t pro

priét

é de E

TAI.

Tous

droit

s de r

epro

ducti

on et

/ou co

mmun

icatio

n rés

ervé

s.

Le schéma ci-dessous explique les échanges dans la phase : Dialogue métier

fig. 2 Dialogue métier : renseignement de prix dans une page de l’IO

A noter que pour le navigateur il n’y a que 2 redirections – une venue de l’application ETAI et l’autre venue du DMS (qui le renvoie sur le service d’affichage) ce qui est marqué dans le dessin par la ligne pointillée ; la récupération du shuttle et le POST de prix s’exécutent dans un fil d’exécution à part.

2.3.7. Exemple de session de recherche de pièces Les services sont indiqués en gras et les paramètres en gras + italique.

Page 27: Plateforme catalogue – API HTTP XAT2€¦ · Plateforme catalogue ... MAJ « Exemple de session de mise-à-jour de prix ». ... Lancement d’une session interactive sur l’ IO

Réf : XA20710DTS079 Ed 1. - Rév. 13 Spécification technique détaillée Date 4 septembre 2009

Page -19/140-

XAT2

0710

DTS0

79 -

Ce do

cume

nt es

t pro

priét

é de E

TAI.

Tous

droit

s de r

epro

ducti

on et

/ou co

mmun

icatio

n rés

ervé

s.

Le but de cet exemple est de montrer le comportement du dialogue DMS - IO après une interruption de la session http.

2.3.7.1. Lancement d’une session interactive sur l’ IO On suppose un utilisateur du DMS habilité à utiliser le produit IO. Il connaît une partie de la référence et il veut avoir toutes les pièces qui satisfont ces critères. 1. L’utilisateur a déjà lancé son DMS qui a le SessionID (par exemple 123a4) ainsi que la liste complète

d’URL qu’il peut utiliser; il a visualisé certaines pages de l’application IO où il a sélectionné ses pièces. Puis le DMS a arrêté le navigateur, donc la session http est perdue !

2. L’utilisateur du DMS veut faire une recherche, il crée un shuttle avec les informations nécessaires qu’il transfère à l’IO en faisant appel à la fonction de mise-à-jour du shuttle de session : il fait un POST à http://www.etai.io/xat2shtl/123a4

3. Le DMS appelle l’adresse d’affichage fournie par l’IO (GET à http://www.etai.io/xat2aff?sessionid=123a4) 4. L’IO, basé sur les informations du shuttle, le positionne sur la page d’affichage de pièces.

2.3.8. Exemple de session de mise-à-jour de référentiel Les services sont indiqués en gras et les paramètres en gras + italique. Le « paramétrage préalable » est identique.

2.3.8.1. Lancement d’une session interactive sur le IO On suppose un utilisateur du DMS habilité à utiliser le produit IO.

1. Le DMS appelle le service GetServicesList de l’IO avec son DMSswLoginIO en paramètre (par exemple http://www.etai.io/xat2sl?dmsswloginio=xyzw)). L’IO authentifie le DMS et lui retourne la liste des URL valides, dont l’URL de gestion de session (comme à 2.2.5.2 - 2).

2. Le DMS appelle la fonction de création de session, c’est-à-dire il fait un GET à l’URL de ManageSession en passant le DMSswLoginIO etle paramètre UserSharedID qui correspond à un utilisateur du garage pour lequel on demande le référentiel.

(http://www.etai.io/xat2sess?dmsswloginio=xyzw&usersharedid=112233), NB: le référentiel est différent selon le garage de l'utilisateur. Chaque garage est susceptible d'avoir un référentiel différent de celui d'un autre garage. 3. Suite à cet appel, l’IO crée une session de travail restreinte – le « sessionID» (dans cet exemple il a la

valeur bb222… on passe sur le fait qu’il n’a que 5 caractères !) : <xat2 version="1" xmlns=" http://etai22.ecritel.net/xsd/xat2/1" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">

<date-envoi format="yyyy-MM-dd HH:mm:ss">2007-02-14 17:59:01</date-envoi> <session-context restricted="true">

<date-creation format="yyyy-MM-dd HH:mm:ss">2007-02-11 17:59:01 </date-creation>

<sessionid>bb222</sessionid> <dmsswloginio>xyzw</dmsswloginio> </session-context> </xat2>

4. Le DMS crée un « Shuttle » qui est un container de transit entre les deux partenaires et appelle l’URL de

shuttle (récupéré à 1) où il fait une requête POST en passant comme paramètre le « sessionID» et un shuttle vide. Avec un shuttle et un contexte de session renseigné, la session non-interactive (restreinte) est lancée par l’IO ; le fait que la session soit restreinte est donné par le type du shuttle.

5. Le DMS récupère le shuttle, où l’IO n’a fait que de mettre à jour les champs qui indiquent la date de validité de référentiels utilisés (car le shuttle est vide).

6. Le DMS compare la version de référentiels avec ses propres valeurs et il décide qu’il doit mettre à jour sa liste de fournisseurs (sinon il passe directement à 9)

7. Il appelle la fonction UpdateSessionShuttle (il fait un POST à l’URL de SessionShuttle) où il indique qu’il veut récupérer la nouvelle liste de fournisseurs.

8. Il appelle la fonction GetSessionShuttle (GET à l’URL de SessionShuttle) d’où il la lit effectivement.

Page 28: Plateforme catalogue – API HTTP XAT2€¦ · Plateforme catalogue ... MAJ « Exemple de session de mise-à-jour de prix ». ... Lancement d’une session interactive sur l’ IO

Réf : XA20710DTS079 Ed 1. - Rév. 13 Spécification technique détaillée Date 4 septembre 2009

Page -20/140-

XAT2

0710

DTS0

79 -

Ce do

cume

nt es

t pro

priét

é de E

TAI.

Tous

droit

s de r

epro

ducti

on et

/ou co

mmun

icatio

n rés

ervé

s.

9. Il fait un DELETE à l’URL http://www.etai.io/xat2sess/bb222 pour effacer ce contexte. 10. A noter que la récupération de référentiels tarifs est presque identique ; la différence est qu’en réponse au

POST (7) on peut avoir un code d’état 303 (« See other » ; dans ce cas le DMS doit utiliser la location indiquée dans la redirection (qui pointe sur un serveur dédié) pour récuperer le référentiel ; dans ce cas il n’y a pas d’envoi de données privées du DMS.

2.3.9. Exemple de sélection d’une identification véhicule Un exemple de session typique est illustré ci-dessous. Les services sont indiqués en gras et les paramètres en gras + italique.

2.3.9.1. Lancement d’une session intéractive sur le IO On suppose un utilisateur du DMS habilité à utiliser le produit IO.

1. Le DMS n’a pas forcément déjà utilisé l’IO, donc la partie d’authentification n’est pas nécessairement faite. Si elle n’est pas déjà faite, effectuer la partie authentification comme défini précédemment.

2. Le cheminement pour lancer de la session interactive est identique à celui décrit ci-dessus dans l’exemple de « session de mise à jour de prix », jusqu’au point précédant «initialisation de la session »

3. l’API appelle la fonction d’initialisation de la session avec l’identification véhicule extrait du « shuttle », l’URL de redirection et l’ID de la session de travail et récupère l’URL de début de la session interactive.

4. l’API fait un « forward » de la requête du DMS à cet URL

2.3.9.2. Dialogue métier

5. L’utilisateur est maintenant dans l’application IO. Il sélectionne son identification véhicule dans les pages arborescentes de IO.

2.3.9.3. Fin de la session 6. L’utilisateur de l’IO déclenche le « transfert » du véhicule sélectionné; le clic sur ce bouton fait que l’IO

appelle la fonction de transfert d’identifiant véhicule de l’API, puis l’IO retourne un code 302 au navigateur, qui sera redirigé à l’URL de redirection du DMS (récupéré à 5) avec les paramètres action=retrieve&sessionID =123a4.

7. le DMS récupère les données de synthèse puis il clôt la session. L’API appelle la fonction de fermeture de session

2.3.10. Exemple de session de test Les services sont indiqués en gras et les paramètres en gras + italique.

2.3.10.1. Lancement d’une session intéractive sur l’IO

1. L’utilisateur se positionne sur une page de l’IO (testform.jsp) où se trouve un formulaire, 2. dans ce formulaire, il remplit son DMSswLoginIO et l’adresse locale de redirection de son DMS, 3. il fait un clic sur le bouton d’envoi du formulaire 4. l’IO vérifie le DMSswLoginIO puis il fait une redirection à l’adresse de redirection indiquée ci-dessus (à

2), 5. le DMS reçoit donc un GET à cet URL (service RequestAction avec le paramètre

action=test&sessionid=000123456abf) – l’ID de la session étant crée automatiquement par le serveur IO

6. Le DMS appelle le service GetServicesList de l’IO en passant son DMSswLoginIO (par exemple http://www.etai.io/xat2sl?dmsswloginio=xyzw)). L’IO authentifie le DMS et lui retourne la liste des URL valides, dont l’URL de TestSessionFlow (par exemple l’URL http://www.etai.io/xat2tsf)

Page 29: Plateforme catalogue – API HTTP XAT2€¦ · Plateforme catalogue ... MAJ « Exemple de session de mise-à-jour de prix ». ... Lancement d’une session interactive sur l’ IO

Réf : XA20710DTS079 Ed 1. - Rév. 13 Spécification technique détaillée Date 4 septembre 2009

Page -21/140-

XAT2

0710

DTS0

79 -

Ce do

cume

nt es

t pro

priét

é de E

TAI.

Tous

droit

s de r

epro

ducti

on et

/ou co

mmun

icatio

n rés

ervé

s.

7. le DMS fait un POST à l’URL http://www.etai.io/xat2tsf/000123456abf (l’ID de la session est celui envoyé dans la redirection) avec le document suivant, où le DMS doit remplir son adresse :

<?xml version="1.0" encoding="UTF-8" ?>

<xat2 version="1" xmlns="http://etai22.ecritel.net/xsd/xat2/1/xat2.xsd" xsi:schemaLocation="http://etai22.ecritel.net/xsd/xat2/1/xat2.xsd" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">

<date-envoi format="yyyy-MM-dd HH:mm:ss">2007-03-05 17:59:01</date-envoi> <test>L'adresse de votre DMS est 192.168.200.32</test> </xat2>

8. une fois le POST acquitté, le DMS fait un GET à l’URL http://www.etai.io/xat2tsf/000123456abf, où il récupère le document suivant :

<?xml version="1.0" encoding="UTF-8" standalone="yes" ?> <xat2 version="1" xmlns="http://etai22.ecritel.net/xsd/xat2/">

<date-envoi format="yyyy-MM-dd HH:mm:ss">2007-03-06 10:58:06</date-envoi> <test>L'adresse de votre DMS est 192.168.200.32</test> </xat2>

2.3.11. Exemple de session de la version 2 Les services sont indiqués en gras et les paramètres en gras + italique. Le serveur ETAI assure une compatibilité descendante vis-à-vis du protocole, c’est-à-dire que si le DMS est dans la version n et le serveur est à la version n+1, alors tous les transferts seront effectués avec des documents en version n. Pour tous les documents échangés, l’espace de nommage est toujours http://etai22.ecritel.net/xsd/xat2/1 C’est toujours le DMS qui indique dans quelle version du protocole il est et avec quelle version de shuttle il préfère dialoguer ; si le DMS ne le précise pas, alors tous les envois seront effectués dans la version 1 du protocole et tout ce qui est rajouté dans la version 2 ne sera pas accessible (car inexistant dans les schémas).

2.3.11.1. Lancement d’une session intéractive sur l’IO

1. La récupération de la liste de services ainsi que la création d’un contexte de session sont identiques aux exemples précédents

2. Lorsque le DMS, qui sait discuter en version 2 du protocole, passe ses paramètres au service de ManageSession (son URL, ses données privées) il le fait avec un envoi en version 2, en précisant aussi que la version du shuttle qu’il préfère utiliser est aussi 2 : <xat2 version="2" xmlns="http://etai22.ecritel.net/xsd/xat2/1">

<date-envoi format="yyyy-MM-dd HH:mm:ss">2007-07-31 15:31:58</date-envoi> <session-context> <date-creation format="yyyy-MM-dd HH:mm:ss">2007-07-31 15:31:57

</date-creation> <sessionid>271abcb1adea459cae4d15933201e047</sessionid> <dmsswloginio>123a4</dmsswloginio> <usersharedid>xyzw</usersharedid>

<uri-service-list> <uri-service action="DMSaddress">http://localhost/DMS/redir.php</uri-service> </uri-service-list>

<private-dms> <dms-ns:dms-ns xmlns:dms-ns="text1" /> <dms-ns:dms-ns xmlns:dms-ns="text2" /> <dms-ns:dms-ns xmlns:dms-ns="text3" />

Page 30: Plateforme catalogue – API HTTP XAT2€¦ · Plateforme catalogue ... MAJ « Exemple de session de mise-à-jour de prix ». ... Lancement d’une session interactive sur l’ IO

Réf : XA20710DTS079 Ed 1. - Rév. 13 Spécification technique détaillée Date 4 septembre 2009

Page -22/140-

XAT2

0710

DTS0

79 -

Ce do

cume

nt es

t pro

priét

é de E

TAI.

Tous

droit

s de r

epro

ducti

on et

/ou co

mmun

icatio

n rés

ervé

s.

</private-dms> <shuttle-version>2</shuttle-version> </session-context> </xat2>

Si le DMS est en version 2 mais le serveur ne l’est pas, alors le POST précedent va donner naissance à une erreur HTTP (soit 400 – « Bad request » soit 406 – « Not acceptable ») et le DMS ne va envoyer que des shuttles en version 1.

3. A partir de ce moment le serveur ETAI sait que le DMS est capable de dialoguer en version 2, et répond

au DMS avec le document XML suivant, dans lequel il précise aussi les services spécifiques de la version 2 mis à la disposition du DMS : <?xml version="1.0" encoding="UTF-8" standalone="yes" ?>

<xat2 version="2" xmlns="http://etai22.ecritel.net/xsd/xat2/1"> <date-envoi format="yyyy-MM-dd HH:mm:ss">2007-07-31 15:31:58</date-envoi>

<session-context> <date-creation format="yyyy-MM-dd HH:mm:ss">2007-07-31 15:31:57

</date-creation> <sessionid>271abcb1adea459cae4d15933201e047</sessionid> <dmsswloginio>123a4</dmsswloginio> <usersharedid>xyzw</usersharedid>

<private-dms> <dms-ns:dms-ns xmlns:dms-ns="text1" /> <dms-ns:dms-ns xmlns:dms-ns="text2" /> <dms-ns:dms-ns xmlns:dms-ns="text3" /> </private-dms>

<shuttle-version>2</shuttle-version> <uri-extra-service-list>

<uri-service action="BugReport">http://www.etai.appio/IO_XAT2/xat2sess/xat2bugs

</uri-service> <uri-service

action="BulkData">http://www.etai.appio/IO_XAT2/xat2sess/xat2bd </uri-service>

</uri-extra-service-list> </session-context> </xat2>

A noter que le service « BugReport » est réservé - à ne pas utiliser par les DMS. 4. Le reste du dialogue se déroule pareil que dans les exemples ci-dessus ; à noter que l’envoi d’un devis

ou d’une facture sont marqués par la même action GetFacture. 5. Si le DMS a été configuré comme étant capable d’envoyer un acquittement, alors il va aussi recevoir une

action SendAcknowledge auquelle il est obligé de répondre par un shuttle de type DocAck (à définir).

2.3.12. Exemple de session d’aquittement d’un envoi

Cette session n’existe qu’à partir de la version 2 du protocole. Elle consiste dans l’envoi d’un shuttle de type « DocAck » au service de gestion shuttles lors de la réception d’un shuttle de type Estimate/Invoice/Caddie qui contient l’action SendAcknowledge. La présence de cette action est une conséquence à la configuration du DMS dans le serveur ETAI :

<shuttle code-document="Caddie" referentiel-supplier="version 123"

Page 31: Plateforme catalogue – API HTTP XAT2€¦ · Plateforme catalogue ... MAJ « Exemple de session de mise-à-jour de prix ». ... Lancement d’une session interactive sur l’ IO

Réf : XA20710DTS079 Ed 1. - Rév. 13 Spécification technique détaillée Date 4 septembre 2009

Page -23/140-

XAT2

0710

DTS0

79 -

Ce do

cume

nt es

t pro

priét

é de E

TAI.

Tous

droit

s de r

epro

ducti

on et

/ou co

mmun

icatio

n rés

ervé

s.

referentiel-ident="12_0_0_a" version="2" xmlns="http://etai22.ecritel.net/xsd/xat2/1">

<date-envoi format="yyyy-MM-dd HH:mm:ss">2007-12-10 15:03:51</date-envoi> <date-creation format="yyyy-MM-dd HH:mm:ss">2007-12-10 15:03:51</date-creation> <sessionid>0dbfdc5932c343559610c7925976a00e</sessionid> <action-list> <action>GetPanier</action> <action>SendAcknowledge</action>

</action-list> <client> <nom>Dupont</nom> <code-civilite>M</code-civilite> ….

En réponse à l’envoi de ce document, le DMS va envoyer au service fonction UpdateSessionShuttle (il fait un POST à l’URL de SessionShuttle, dans notre cas http://www.etai.io/xat2shtl/0dbfdc5932c343559610c7925976a00e) un shuttle avec le contenu suivant :

<shuttle version="2" code-document="DocAck" xmlns="http://etai22.ecritel.net/xsd/xat2/1"> <date-envoi format="yyyy-MM-dd HH:mm:ss">2007-12-10 15:04:03</date-envoi> <date-creation format="yyyy-MM-dd HH:mm:ss">2007-12-10 15:04:03</date-creation>

<ack> <id>12345</id> <reason>Caddie</reason> <status>pris en compte</status> <consigne>LOCK</consigne>

</ack> </shuttle>

La présence de la balise <reason> indique le type de document auquel le shuttle fait référence.

Exigences fonctionnelles

2.3.13. Généralités sur les liaisons DMS-IO

2.3.13.1.Lancement du IO par le DMS

Dans tout le document, on considère que la session interactive dans l’IO est lancée par le DMS (qui est appelé « DMS principal »). Ceci est un pré requis en v1, pour que les informations de session puissent être échangées, et le dialogue prendre place. Dans des configurations de DMS extranet ou centralisées, il pourra en être autrement en v2 (l’adresse du DMS pourra être spécifiée de façon permanente dans le IO, ce qui simplifiera éventuellement les échanges par la possibilité pour le IO de poster directement ses requêtes, et notamment de demander un shuttle au DMS pour son utilisateur et de renvoyer le shuttle renseigné à la fin de la session.

Page 32: Plateforme catalogue – API HTTP XAT2€¦ · Plateforme catalogue ... MAJ « Exemple de session de mise-à-jour de prix ». ... Lancement d’une session interactive sur l’ IO

Réf : XA20710DTS079 Ed 1. - Rév. 13 Spécification technique détaillée Date 4 septembre 2009

Page -24/140-

XAT2

0710

DTS0

79 -

Ce do

cume

nt es

t pro

priét

é de E

TAI.

Tous

droit

s de r

epro

ducti

on et

/ou co

mmun

icatio

n rés

ervé

s.

2.3.13.2.Multi-DMS

Le protocole XAT2 introduit pour l’IO la notion multi-DMS.

Pour l’IO, les DMS sont des fournisseurs de données et les destinataires ultimes du résultat de la session de travail dans le catalogue.

Aussi pour préparer les configurations multi-DMS, l’IO devra proposer la configuration de différents interlocuteurs pour chacun des services métier :

- fourniture de packaging/conditionnement

- fourniture de prix

- fourniture de disponibilité

- envoi de Shuttle

- envoi de panier

On aura donc un tableau de déclaration des DMS interlocuteurs déclarés du type suivant :

Services

Type Archi packg price avail estim order

IO - - X X X

DMS1 DMSBrand1 LOC X X

DMS2 DMSBrand2 EXT X X

DMS3 DMSBrand3 EXT x x

Les services de fourniture sont mutuellement exclusifs.

2.3.13.3.Validation de documents XML

Tous les documents XML reçus/envoyés par le serveur ETAI sont validés par rapport aux schémas XSD qui décrivent le protocole ; tout document invalide sera rejeté avec un message d’erreur qui décrit brièvement la cause de l’erreur (message généré par le parseur JAXB de Sun).

Si un numéro de version est indiqué, il signifie la version minimale du protocole où le service est disponible.

Page 33: Plateforme catalogue – API HTTP XAT2€¦ · Plateforme catalogue ... MAJ « Exemple de session de mise-à-jour de prix ». ... Lancement d’une session interactive sur l’ IO

Réf : XA20710DTS079 Ed 1. - Rév. 13 Spécification technique détaillée Date 4 septembre 2009

Page -25/140-

XAT2

0710

DTS0

79 -

Ce do

cume

nt es

t pro

priét

é de E

TAI.

Tous

droit

s de r

epro

ducti

on et

/ou co

mmun

icatio

n rés

ervé

s.

2.3.14. Fonction GetServicesList

Cette fonction a pour but de récupérer la liste des URL des services possibles pour un DMS (authentifié par son DMSswLoginIO)

Quand : en mode IO extranet/centralisé, lorsque le DMS a besoin des services du IO Direction : DMS -> ETAI (IO) Objectif :

o Côté DMS – récupérer la liste d’URL à utiliser. o Côté IO - authentifier le DMS

Action : appel de l’URL de l’IO Exemple : GET @ http://www.io/xat2sl?dmsswloginio=xyzw Paramètres :

o Mode extranet/centralisé : DMSswLoginIO = identifiant DMS dans le IO Retour :

o la liste d’URL que le DMS pourra utiliser – voir l’annèxe. Erreur :

o «Bad request » (400) si DMSswLoginIO n’est pas précisé o serveur inaccessible,… : erreur http 5xx o «Unauthorized » (401) si l’ID de la session XAT2 est inconnu.

2.3.15. Fonction CreateSession

Quand : une fois le contact établi, et la liste des services récupérée. Un utilisateur n’a qu’une session à chaque instant.

Direction : DMS -> IO Objectif :

o DMS : obtenir l’identifiant de la session de travail (le «SessionID»), o IO : création d’un identifiant unique par session utilisateur pour un même DMS

Action : GET @ URL ManageSession Exemple : GET @ http://www.etai.io/managesession?dmsswloginio=xyzw&usersharedid=112233 Paramètres :

le « DMSswLoginIO» renseigné lors du paramétrage du DMS (obligatoire), l’ID partagé de l’utilisateur (« UserSharedID») renseigné lors du paramétrage de l’IO et

du DMS (obligatoire) MasterSessionID – l’ID du DMS principal, envoyé par l’application IO lors de

l’initialisation du contexte (fonction RequestAction), Retour :

o Une valeur unique (obtenue avec la classe Java java.rmi.server.UID) – le « sessionID» (exemple utilisé dans ce document : 123a4)

Erreurs : o «Bad request » (400) si DMSswLoginIO ou UserSharedID ne sont pas précisés o «Unauthorized » (401) si, pour un DMS secondaire, le MasterSessionId est inconnu, le

paramètre UserSharedID est différent de celui du DMS principal ou l’application ETAI n’a pas authentifié le couple DMSswLoginIO + UserSharedID

o « Forbidden » (403) si dans le cas d’un DMS secondaire son DMSswLoginIO est identique à celui du DMS principal

o « Service unavailable » (503) si l’application ETAI ne répond pas

Page 34: Plateforme catalogue – API HTTP XAT2€¦ · Plateforme catalogue ... MAJ « Exemple de session de mise-à-jour de prix ». ... Lancement d’une session interactive sur l’ IO

Réf : XA20710DTS079 Ed 1. - Rév. 13 Spécification technique détaillée Date 4 septembre 2009

Page -26/140-

XAT2

0710

DTS0

79 -

Ce do

cume

nt es

t pro

priét

é de E

TAI.

Tous

droit

s de r

epro

ducti

on et

/ou co

mmun

icatio

n rés

ervé

s.

2.3.16. Fonction UpdateSession

Quand : après la création de la session Direction : DMS -> ETAI Objectif : passer les paramètres du DMS à l’application ETAI et vérifier si celle-ci est capable de dialoguer

en version 2 du protocole Action : POST @ URL ManageSession Exemple : POST @ http://www.etai.io/managesession/123a4 Paramètres :

o le « sessionID» o les données privées o l’URL de redirection/accès direct (où le DMS honore les requêtes de l’IO). C’est au DMS de

s’assurer qu’avec un navigateur (par exemple) on peut avoir une réponse à cette URL. Retour :

o Code HTTP OK (200) o dans la version 2, on récupère la liste de services supplémentaires ; dans la version 1, il n’y a que

le code de retour HTTP et comme il n’y a pas de réponse, le ContentType est text/plain. Erreur :

o «Bad request » (400) si sessionID n’est pas renseigné o «Forbidden » (403) si problème de lecture/parsing du XML o « Unauthorized » (401) si sessionID est inconnu o « Precondition failed » (412) si l’URI du DMS n’est pas bon o « Not acceptable » (406) si l’application ETAI ne supporte pas la version du protocole

2.3.17. Fonction GetSession

Quand : à n’importe quel moment, après la création de la session Direction : DMS -> IO Objectif : retrouver le contexte de l’utilisateur courant Action : GET @ URL de contexte Exemple : GET @ http://www.etai.io/managesession/123a4?dmsswloginion=xyzw Paramètres : le « sessionID» Retour (voir la description complète de l’objet dans l’annexe):

o UserSharedID o DMSswLoginIO o MasterSessionID (s’il existe) o GarageSharedID (s’il existe) o La dernière requête du DMS o Les données privées du DMS

Erreurs : o «Bad request » (400) si sessionID n’est pas renseigné, o «Unauthorized » (401) si l’ID de la session XAT2 est inconnu.

2.3.18. Fonction DeleteSession

Quand : Toute situation pour laquelle le DMS estime que la session avec l’IO doit se terminer. Exemple : o L’utilisateur quitte sa session DMS, o La session de l’utilisateur sur le DMS expire

Direction : DMS -> IO Objectif :

o DMS : informer l’IO que tout autre accès avec ce sessionID est illégitime ; si le DMS a ouvert un navigateur, il doit le fermer (pour détruire ainsi la session HTTP).

o IO : libération de ressources allouées Action : DELETE @ URL de contexte

Page 35: Plateforme catalogue – API HTTP XAT2€¦ · Plateforme catalogue ... MAJ « Exemple de session de mise-à-jour de prix ». ... Lancement d’une session interactive sur l’ IO

Réf : XA20710DTS079 Ed 1. - Rév. 13 Spécification technique détaillée Date 4 septembre 2009

Page -27/140-

XAT2

0710

DTS0

79 -

Ce do

cume

nt es

t pro

priét

é de E

TAI.

Tous

droit

s de r

epro

ducti

on et

/ou co

mmun

icatio

n rés

ervé

s.

Exemple : DELETE @ http://www.etai.io/managesession/123a4 Paramètres :

o sessionID Retour : OK (200) Erreurs :

o «Bad request » (400) si sessionID n’est pas renseigné, o «Unauthorized » (401) si sessionID est inconnu.

2.3.19. Fonction SetSessionInteractive

Quand : après la création d’une session « full » (envoi d’un shuttle de type Open/Estimate/VehicleIdentification/PartSearch) ou après le retour d’une redirection

Direction : DMS -> IO Objectif : entrer dans la partie interactive de l’application ETAI Action : GET @ URL d’affichage (http://www.etai.io/xat2aff?sessionid=123a4) Paramètres :

o « sessionID» Retour : l’IO constitue une URL qui permet au navigateur de se positionner sur la page pertinente

o Classification ETAI valide et complète => page de sélection de pièces o Sinon : page de sélection d’un véhicule

S’il n’y a pas de réponse, le ContentType est text/plain (pour ne pas donner l’occasion aux navigateurs d’afficher une erreur).

Erreurs : o «Bad request » (400) si sessionID n’est pas renseigné, o «Unauthorized » (401) si sessionID est inconnu, o «Forbidden » (403) s’il n’y a pas de shuttle envoyé auparavant, o «Conflict » (409) si le shuttle envoyé auparavant n’est pas de type

Open/Estimate/VehicleIdentification/Parts

2.3.20. Fonction GetSessionShuttle

Quand : après la création de la session ou dans la mise à jour du référentiel Direction : DMS -> IO Objectif : récupération d’un objet de transit métier Action : GET @ URL shuttle Exemple : GET @ http://www.etai.io/shuttle/123a4 Paramètres :

o « sessionID» Retour :

o Le shuttle Erreurs :

o «Bad request » (400) si sessionID n’est pas renseigné, o «Unauthorized » (401) si sessionID est inconnu, o «Not found » (404) pas de shuttle à lire, o «Conflict » (409) problème de sérialisation du shuttle

2.3.21. Fonction UpdateSessionShuttle

Quand : o préparatifs de lancement de la session interactive (shuttle initial)

Page 36: Plateforme catalogue – API HTTP XAT2€¦ · Plateforme catalogue ... MAJ « Exemple de session de mise-à-jour de prix ». ... Lancement d’une session interactive sur l’ IO

Réf : XA20710DTS079 Ed 1. - Rév. 13 Spécification technique détaillée Date 4 septembre 2009

Page -28/140-

XAT2

0710

DTS0

79 -

Ce do

cume

nt es

t pro

priét

é de E

TAI.

Tous

droit

s de r

epro

ducti

on et

/ou co

mmun

icatio

n rés

ervé

s.

o mise à jour des prix/stocks/… d’une liste de pièces reçue au préalable Direction : DMS -> IO Objectif : transmettre des informations métier (encapsulées dans un shuttle) au serveur IO Action : POST @ URL shuttle Exemple : POST @ http://www.etai.io/shuttle/bb222 Paramètres :

o « sessionID» (sous forme de chemin dans l’URL de type REST – ici bb222) o Le shuttle

Retour : o OK (200)

Erreurs : o «Bad request » (400) si sessionID n’est pas renseigné, ou pas de shuttle o «Unauthorized » (401) si sessionID est inconnu o «Conflict » (409) problème de désérialisation du shuttle

2.3.22. Fonction RequestAction

Quand : o lorsque l’utilisateur veut passer à l’affichage d’une page à l’autre, o l’utilisateur il veut transférer des données de synthèse au DMS, o cas multi-DMS, lorsque le premier DMS initialise/détruit son contexte

Direction : IO -> DMS Action : GET @ URL redirection DMS ; suite à la réception du GET, le DMS appelle le service

GetSessionShuttle puis il rend la main à l’IO Exemple : GET @ http://192.168.200.32/dms/redir?sessionid=123a4&action=update Paramètres :

o sessionID o action - le type d’action demandée :

update : mise à jour de données du shuttle retrieve : demande de récupération du panier test : demande de test de redirection trigger : demande d’initialiser le contexte delete : demande de déclencher la fonction DeleteSession

Retour du DMS : o Pour une action de type « update » : redirection vers la page d’affichage de l’IO

(http://www.etai.io/xat2aff?sessionid=123a4) o Pour une action de type « retrieve » : le DMS appelle la fonction DeleteSession

2.3.23. Fonction Test

Quand : à chaque fois quand on veut vérifier que le DMS et l’IO discutent en utilisant la redirection Direction : ETAI -> DMS -> ETAI Objectif :

o vérifier que la redirection fonctionne, l’IO peut récupérer des données depuis le DMS o vérifier que le transfert depuis le DMS n’est pas empêché par un « proxy »

Action : o 1) l’utilisateur se positionne sur une page de l’IO où il y a un formulaire o 2) il remplit le formulaire et l’envoie o 3) le DMS reçoit un GET (suite à la redirection) et il fait son POST, attend l’acquittement de l’IO

puis il fait la redirection vers l’adresse d’affichage o 4) l’IO affiche les données fournies à 3)

Paramètres : o DMSswLoginIO

Page 37: Plateforme catalogue – API HTTP XAT2€¦ · Plateforme catalogue ... MAJ « Exemple de session de mise-à-jour de prix ». ... Lancement d’une session interactive sur l’ IO

Réf : XA20710DTS079 Ed 1. - Rév. 13 Spécification technique détaillée Date 4 septembre 2009

Page -29/140-

XAT2

0710

DTS0

79 -

Ce do

cume

nt es

t pro

priét

é de E

TAI.

Tous

droit

s de r

epro

ducti

on et

/ou co

mmun

icatio

n rés

ervé

s.

o URL de redirection du DMS o Des données quelconques (dans le POST du DMS)

Retour : o Une page où sont affichées les données envoyées par le DMS

Erreurs : o «Bad request » (400) si sessionID n’est pas renseigné, ou pas de données envoyées o «Unauthorized » (401) si sessionID est inconnu

2.3.24. Fonction GetBulkData (v2)

Ce service n’est accessible qu’à partir de la version 2 du protocole.

Quand : le DMS veut lire des données binaires depuis l’application ETAI Direction : application ETAI -> DMS Objectif : transférer un fichier (image, gros référentiels compressés auparavant,..)

Action : lecture du flux de données binaires depuis une URL du genre http://www.cattronic.com/xat2bd/9cd976a152654bbdb8d8b26ec208759a/56b38f866ecf3471daff7e1632e42ebe433dab98 où le premier paramètre représente l’ID de la session XAT2 et le deuxième l’ID de l’objet, récupéré du shuttle

Paramètres :

o sessionID o objectID – l’ID de l’objet binaire

Retour : o ContentType contient le type de données (image/jpg, image/png pour les images,

application/x-text+csv+gzip, application/x-text+plain+gzip, application/x-text+xml+gzip,… pour les données binaires),

o ContentLength contient la taille du fichier (image, binaire,…) à lire depuis l’URL o Dans le flux de données se trouvent les données

Erreur : o «Unauthorized » (401) si l’ID de la session XAT2 est inconnu, o « Bad Request» (400) si l’ID de l’objet est inconnu, si le protocole XAT2 est inférieur à 2 o « Not Found» (404) s’il n’y a pas de donnée binaire disponible

2.3.25. Fonctions qui doivent être assurées par le DMS

La demande fondamentale faite au DMS est qu’il doit répondre aux requêtes HTTP ; lors du démarrage du processus de création d’un contexte (session) de travail, c’est lui qui fournit l’URL auquel il veut recevoir les requêtes.

Une autre demande est que tous les documents XML soient validés par les schémas XSD publiés.

Le DMS secondaire doit avoir une URL à laquelle il va recevoir la demande d’activation de l’IO (action=trigger) – adresse qui est paramétrée dans IO. Il n’y a aucune contrainte côté IO pour que ces 2 URL soient différentes ou identiques, par contre il faut que leur longueur ne dépasse pas 255 caractères.

En tant que serveur Web, le DMS doit répondre aux requêtes suivantes :

Page 38: Plateforme catalogue – API HTTP XAT2€¦ · Plateforme catalogue ... MAJ « Exemple de session de mise-à-jour de prix ». ... Lancement d’une session interactive sur l’ IO

Réf : XA20710DTS079 Ed 1. - Rév. 13 Spécification technique détaillée Date 4 septembre 2009

Page -30/140-

XAT2

0710

DTS0

79 -

Ce do

cume

nt es

t pro

priét

é de E

TAI.

Tous

droit

s de r

epro

ducti

on et

/ou co

mmun

icatio

n rés

ervé

s.

HEAD – requête de l’application ETAI pour vérifier (si le DMS est secondaire) que celui-ci est joignable. Cette requête est faite lorsque le DMS principal veut créer son contexte ; il reçoit un message d’erreur si le DMS secondaire ne répond pas.

GET

o Les requêtes de redirection (action=retrieve/update/test) pour le DMS primaire,

o La requête d’initialisation (action=trigger) pour le DMS secondaire,

o La requête de fin de session (action=delete). Pour le DMS principal à accès direct ça arrive à l’expiration de la session HTTP de l’utilisateur; pour le DMS secondaire ça arrive lorsque la session du DMS principal prend fin (timeout ou action explicite du DMS).

POST – requête reçue par le DMS secondaire ou par un DMS primaire à accès direct et qui peut contenir (cf. la balise <action> et dans le type de shuttle) soit un shuttle de type List (la liste de pièces), soit de type Estimate (le devis final, avec ou sans le panier de pièces) soit de type VehicleIdentification (voir l’annexe) ; dans la version 2, le DMS secondaire peut recevoir un shuttle de type Caddie ou Invoice au lieu d’Estimate, ou un shuttle de type DocStatusRequest. Dans cette version 2, le DMS peut répondre à un document de type Caddie avec un acquittement.

Le rôle du DMS n’étant pas connu à l’avance, il faut implémenter toutes ces 4 fonctionnalités.

Dans le dialogue avec le serveur ETAI, le DMS utilise les méthodes d’accès suivantes :

GET – lecture de services, du shuttle,

POST – envoi du shuttle ; à noter que pour la lecture de référentiel de tarifs cette méthode peut retourner un état 303 (redirection – « See Other ») et le DMS doit suivre l’URI qui s’y trouve pour récupérer la vraie réponse,

DELETE – pour notifier le serveur ETAI de son désir de finir le dialogue.

En tant que client d’une application Web, le DMS doit accepter les cookies qui viennent du serveur ETAI (et les transférer dans ses requêtes) – ceci est très important pour les sessions intéractives (du DMS principal).

2.3.26. Fonction d’acquittement d’un envoi (v2)

Ce service n’est accessible qu’à partir de la version 2 du protocole.

Quand : l’application ETAI demande un accusé de réception lors de l’envoi d’un devis final/panier/facture Direction : application ETAI -> DMS Objectif : valider la réception du document par le DMS Action : dans le shuttle la balise d’actions contient l’action Paramètres :

o Shuttle – shuttle à confirmer la réception par le DMS

Page 39: Plateforme catalogue – API HTTP XAT2€¦ · Plateforme catalogue ... MAJ « Exemple de session de mise-à-jour de prix ». ... Lancement d’une session interactive sur l’ IO

Réf : XA20710DTS079 Ed 1. - Rév. 13 Spécification technique détaillée Date 4 septembre 2009

Page -31/140-

XAT2

0710

DTS0

79 -

Ce do

cume

nt es

t pro

priét

é de E

TAI.

Tous

droit

s de r

epro

ducti

on et

/ou co

mmun

icatio

n rés

ervé

s.

Retour : le DMS envoie au service UpdateSessionShuttle un shuttle de type DocAck Erreur :

Page 40: Plateforme catalogue – API HTTP XAT2€¦ · Plateforme catalogue ... MAJ « Exemple de session de mise-à-jour de prix ». ... Lancement d’une session interactive sur l’ IO

Réf : XA20710DTS079 Ed 1. - Rév. 13 Spécification technique détaillée Date 4 septembre 2009

Page -32/140-

XAT2

0710

DTS0

79 -

Ce do

cume

nt es

t pro

priét

é de E

TAI.

Tous

droit

s de r

epro

ducti

on et

/ou co

mmun

icatio

n rés

ervé

s.

Exigences opérationnelles

2.3.27. Environnement

2.3.27.1.Environnement matériel minimum

TBD

2.3.27.2.Environnement logiciel

Les schémas XSD peuvent générer des classes dans divers langages en utilisant par exemple les outils suivants :

Langage Outil URL License

Java JAXB https://jaxb.dev.java.net/ CDDL

Python pyXSD http://pyxsd.org/ BSD

.Net Xsd.exe http://www.microsoft.com/downloads/ Propriétaire

C++ CodeSynthesis XSD

http://www.codesynthesis.com/products/xsd/ GPL v2

C++ Liquid XML Data Binding

http://www.liquid-technologies.com/Product_XmlDataBinding__XsdToCpp.aspx

Propriétaire

2.3.27.3.Environnement réseau

TBD

2.3.28. Mise en œuvre

L’API XAT2 n’est pas une application autonome.

Page 41: Plateforme catalogue – API HTTP XAT2€¦ · Plateforme catalogue ... MAJ « Exemple de session de mise-à-jour de prix ». ... Lancement d’une session interactive sur l’ IO

Réf : XA20710DTS079 Ed 1. - Rév. 13 Spécification technique détaillée Date 4 septembre 2009

Page -33/140-

XAT2

0710

DTS0

79 -

Ce do

cume

nt es

t pro

priét

é de E

TAI.

Tous

droit

s de r

epro

ducti

on et

/ou co

mmun

icatio

n rés

ervé

s.

2.4. Interfaces

2.4.1. Interfaces avec des matériels

Sans objet.

2.4.2. Interfaces avec d’autres produits logiciels

TBD

2.4.3. Interface avec des fichiers ou bases de données

TBD

2.4.4. Interfaces Homme-machine

Sans objet

2.5. Exigences concernant la conception et la réalisation

2.5.1. Exigences d’adaptation vis à vis du système

TBD

2.5.1.1. Paramétrage et configuration

TBD

2.5.1.2. Adaptation dynamique

TBD

Page 42: Plateforme catalogue – API HTTP XAT2€¦ · Plateforme catalogue ... MAJ « Exemple de session de mise-à-jour de prix ». ... Lancement d’une session interactive sur l’ IO

Réf : XA20710DTS079 Ed 1. - Rév. 13 Spécification technique détaillée Date 4 septembre 2009

Page -34/140-

XAT2

0710

DTS0

79 -

Ce do

cume

nt es

t pro

priét

é de E

TAI.

Tous

droit

s de r

epro

ducti

on et

/ou co

mmun

icatio

n rés

ervé

s.

2.5.2. Exigences envers les facteurs de qualité

]

Facteur qualité Moyen mis en œuvre Méthode de mesure ou de contrôle

Exploitabilité (faculté qu’à un logiciel de faciliter son exploitation et l’apprentissage des opérateurs sans nécessiter une assistance ou des interprétations complémentaires)

Portabilité (aptitude d’un logiciel à être transféré d’un environnement matériel et / ou logiciel dans un autre)

.

Robustesse (faculté qu’à un logiciel à la tolérance aux fautes, à la modularité, à la simplicité)

Flexibilité (aptitude d’un logiciel à supporter des évolutions sans remise en cause fondamentale de la structure existante)

Maintenabilité (faculté qu’à un logiciel de faciliter la détection, la localisation et la correction des anomalies ou l’introduction d’évolutions mineures et d’accomplir ensuite les fonctions requises avec les ressources prévues)

Intégrité (faculté qu’à un logiciel de se protéger contre les altérations de son code et de ses données contre leur accès par les personnes non autorisées)

Banalité d’emploi (aptitude d’un logiciel à pouvoir être utilisé dans plusieurs applications faisant appel à la même fonction simple)

Testabilité (faculté qu’à un logiciel de pouvoir s’assurer par lui même ou de permettre la vérification de l’accomplissement des fonctions prévues)

Sécurité (faculté qu’à un logiciel de pouvoir assurer la confidentialité, l’historique des accès, la protection contre la vulnérabilité)

Criticité (aptitude d’un logiciel à éviter qu’une défaillance de celui-ci empêche la poursuite de la mission du système ou ne permettre plus d’assurer la sécurité des personnes et des biens)

Page 43: Plateforme catalogue – API HTTP XAT2€¦ · Plateforme catalogue ... MAJ « Exemple de session de mise-à-jour de prix ». ... Lancement d’une session interactive sur l’ IO

Réf : XA20710DTS079 Ed 1. - Rév. 13 Spécification technique détaillée Date 4 septembre 2009

Page -35/140-

XAT2

0710

DTS0

79 -

Ce do

cume

nt es

t pro

priét

é de E

TAI.

Tous

droit

s de r

epro

ducti

on et

/ou co

mmun

icatio

n rés

ervé

s.

2.5.3. Exigences de programmation

Langage de programmation

Règles ou standards de programmation Données XML validées par des schémas XSD Architecture de type REST.

Traitement des erreurs Erreurs http standard (4xx, 5xx)

Taille mémoire Minimum 512M de RAM

Composants utilisés (nom + version)

2.5.4. Exigences envers les outils de développement

Outil (Nom + version) Fonction Achat / développement

Open Source…

2.5.5. Exigences particulières de sécurité

TBD

Page 44: Plateforme catalogue – API HTTP XAT2€¦ · Plateforme catalogue ... MAJ « Exemple de session de mise-à-jour de prix ». ... Lancement d’une session interactive sur l’ IO

Réf : XA20710DTS079 Ed 1. - Rév. 13 Spécification technique détaillée Date 4 septembre 2009

Page -36/140-

XAT2

0710

DTS0

79 -

Ce do

cume

nt es

t pro

priét

é de E

TAI.

Tous

droit

s de r

epro

ducti

on et

/ou co

mmun

icatio

n rés

ervé

s.

3. EXIGENCES CONCERNANT LA QUALIFICATION DU LOGICIEL

3.1. Tests aux niveaux des éléments

Eléments Tests effectués Preuves

3.2. Tests d’intégration des éléments au niveau produit logiciel

Eléments Tests effectués Preuves

3.3. Tests de validation

3.3.1. Moyens mis en œuvre

3.3.2. Tests fonctionnels

Tests

Ces tests sont intégrés dans la procédure de test de validation.

3.3.3. Autres tests

Tests

Tests de performances

Page 45: Plateforme catalogue – API HTTP XAT2€¦ · Plateforme catalogue ... MAJ « Exemple de session de mise-à-jour de prix ». ... Lancement d’une session interactive sur l’ IO

Réf : XA20710DTS079 Ed 1. - Rév. 13 Spécification technique détaillée Date 4 septembre 2009

Page -37/140-

XAT2

0710

DTS0

79 -

Ce do

cume

nt es

t pro

priét

é de E

TAI.

Tous

droit

s de r

epro

ducti

on et

/ou co

mmun

icatio

n rés

ervé

s.

4. PREPARATION DE LA LIVRAISON

4.1. Nature du support

NA

4.2. Contraintes d’emballage

NA

4.3. Marquage et protection pour le transport

NA

4.4. Licences

TBD

Page 46: Plateforme catalogue – API HTTP XAT2€¦ · Plateforme catalogue ... MAJ « Exemple de session de mise-à-jour de prix ». ... Lancement d’une session interactive sur l’ IO

Réf : XA20710DTS079 Ed 1. - Rév. 13 Spécification technique détaillée Date 4 septembre 2009

Page -38/140-

XAT2

0710

DTS0

79 -

Ce do

cume

nt es

t pro

priét

é de E

TAI.

Tous

droit

s de r

epro

ducti

on et

/ou co

mmun

icatio

n rés

ervé

s.

5. LOGISTIQUE

5.1. Utilisation du produit logiciel

Les anomalies, demandes de développements, et autres bugs suivent le circuit normal mis en place par le service qualité ETAI.

5.2. Formation du personnel et le maintien de sa compétence

Formations :

Formation Développeur/intégrateur

Nombre de sessions et nb. de jours / session

Moyens logiciels

Documentation

Nombre de formateurs et niveau de compétence

5.3. Approvisionnement et réapprovisionnement des matériels informatiques

Sans objet.

5.4. Maintenance des logiciels de base

TBD

Page 47: Plateforme catalogue – API HTTP XAT2€¦ · Plateforme catalogue ... MAJ « Exemple de session de mise-à-jour de prix ». ... Lancement d’une session interactive sur l’ IO

Réf : XA20710DTS079 Ed 1. - Rév. 13 Spécification technique détaillée Date 4 septembre 2009

39 / 140

XAT2

0710

DTS0

79 -

Ce do

cume

nt es

t pro

priét

é de E

TAI.

Tous

droit

s de r

epro

ducti

on et

/ou co

mmun

icatio

n rés

ervé

s.

6. ANNEXE: COMMENT ENVOYER UN XML

L'objectif est d'envoyer soit un document xml utilitaire dont la racine est "xat2" soit un document xml de données dont la racine est "shuttle" du DMS vers l'application ETAI.

6.1. Formulaire pour poster un xml

Les documents au format xml sont envoyés grace à un formulaire en méthode POST. Un seul document xml peut être envoyé à la fois. Les envois en POST se font comme si c’était envoyé depuis un formulaire web, à savoir avec : Content-Type: application/x-www-form-urlencoded Le document xml se trouve dans la variable nommée xml. L'url d'envoi du formulaire est nécessairement une de celles indiquées dans la liste des services, complétée par l'identifiant correpondant pour se conformer à l'architecture REST.

Page 48: Plateforme catalogue – API HTTP XAT2€¦ · Plateforme catalogue ... MAJ « Exemple de session de mise-à-jour de prix ». ... Lancement d’une session interactive sur l’ IO

Réf : XA20710DTS079 Ed 1. - Rév. 13 Spécification technique détaillée Date 4 septembre 2009

40 / 140

XAT2

0710

DTS0

79 -

Ce do

cume

nt es

t pro

priét

é de E

TAI.

Tous

droit

s de r

epro

ducti

on et

/ou co

mmun

icatio

n rés

ervé

s.

7. ANNEXE: CONVENTIONS D'ORDRE GENERAL A PROPOS DU XML

La balise racine du document XML contient toujours un attribut « version » (un entier positif) qui indique la version du schéma XSD utilisé (à présent : 1). Le contenu du document XML est toujours encodé en UTF-8. L’espace de nommage utilisé dans toutes les versions est toujours, par souci de compatibilité descendante, http://etai22.ecritel.net/xsd/xat2/1. Par contre, les schémas se trouvent à une URL de forme http://etai22.ecritel.net/xsd/xat2/<nr. de version>. Pour la version 1 les noms de ces schémas sont shuttle.xsd pour les objets métier, xat2.xsd pour les objets utilitaires et common.xsd pour la partie commune entre les deux ; pour la version 2 et supérieure les noms sont de type shuttle_v<nr. de version>.xsd etc. Ceci est équivalent à la présence dans la balise racine d’un attribut de type (pour la v2) xsi:schemaLocation="http://etai22.ecritel.net/xsd/xat2/1 http://etai22.ecritel.net/xsd/xat2/2/shuttle_v2.xsd" Dans la version 2 il y a une partie de balises de la v1 qui sont traduites en anglais ; de toute manière, la référence de balises est toujours le schéma XSD et non ce document. Tous les objets décrits font partie d’un document XML qui contient la balise obligatoire <date-envoi> (même si elle n’est pas écrite explicitement) ; elle sert à pouvoir déterminer le décalage temporel entre les 2 ordinateurs. Cette balise hérite de la balise date, sans l’attribut « code-type ». Il faut que la précision de ce champ soit au plus la seconde.

Page 49: Plateforme catalogue – API HTTP XAT2€¦ · Plateforme catalogue ... MAJ « Exemple de session de mise-à-jour de prix ». ... Lancement d’une session interactive sur l’ IO

Réf : XA20710DTS079 Ed 1. - Rév. 13 Spécification technique détaillée Date 4 septembre 2009

41 / 140

XAT2

0710

DTS0

79 -

Ce do

cume

nt es

t pro

priét

é de E

TAI.

Tous

droit

s de r

epro

ducti

on et

/ou co

mmun

icatio

n rés

ervé

s.

8. ANNEXE: LISTE DES OBJETS

8.1. Objets utilitaires Les objets utilitaires sont les objets qui permettent la communication. Ils ne contiennent pas de donnée métier. Objet Description Contexte Données de contexte du DMS Liste d’URL liste des URL que le DMS doit utiliser. date Une date formatée; cet objet est utilisé aussi dans un

shuttle test Une chaîne de test

8.2. Objets métier

8.2.1. Objet métier de plus haut niveau

Données de plus haut niveau Shuttle Le shuttle est le conteneur dans lequel se trouvent toutes les données

8.2.2. Objets complexes

Ces objets se trouvent à la racine d’un shuttle.

Objets complexes Observations default-shuttle-settings Valeurs par défaut utilisées dans ce shuttle element-classification Une classification de véhicules d’une source

donnée

parametrage Le paramétrage du garage (taux,…) client Les données du client vehicule Les données administratives du véhicule classification-vehicule La classification ETAI du véhicule dmsid Identifiant du DMS libellé Un libellé qui fait partie d’une liste de libellés etai-application-id Identifiant de l’application ETAI A partir de la version

2 ack Accusé de réception d’un shuttle de type

«Invoice» A partir de la version 2

date-list Liste de dates (de création, de modification,…) action-list Liste d’actions à faire par le DMS lors de la

réception du shuttle

operations Les opérations éfféctués sur le vehicule list Diverses listes (pièces, fournisseurs, prix,…)

Page 50: Plateforme catalogue – API HTTP XAT2€¦ · Plateforme catalogue ... MAJ « Exemple de session de mise-à-jour de prix ». ... Lancement d’une session interactive sur l’ IO

Réf : XA20710DTS079 Ed 1. - Rév. 13 Spécification technique détaillée Date 4 septembre 2009

42 / 140

XAT2

0710

DTS0

79 -

Ce do

cume

nt es

t pro

priét

é de E

TAI.

Tous

droit

s de r

epro

ducti

on et

/ou co

mmun

icatio

n rés

ervé

s.

private-dms Les données privées du DMS private-etai Les données privées ETAI deposit Garantie et responsabilité A partir de la version 2 buyer Acheteur du véhicule (épaviste) A partir de la version 2 ack Accusé de réception A partir de la version 2 evaluation Expertise A partir de la version 2 comment Un commentaire A partir de la version 2 repairer Le réparateur A partir de la version 2 technical-assessment Le bilan technique A partir de la version 2 vehicle-state L’état du véhicule A partir de la version 2 insurance La police d’assurance A partir de la version 2

8.2.3. Objets simples

Ces objets (dont la liste n’est pas exhaustive) se trouvent à l’intérieur des objets complexes.

Objets simples Observations prix Un prix (toujours prix d’achat) mesure Pour indiquer une mesure (quantité +

unité)

element-classification Une classification de véhicules d’une source donnée

taux-mo Un taux de la main d’oeuvre taux-tva Un taux de la TVA deduction Un pourcentage de remise A partir de la version 2 reference-administrative Une référence administrative du véhicule reference-alternative Une référence alternative quantite-demandee Une quantité demandée au DMS quantite Une quantité valeur Une valeur (de prix) libellé Un libellé qui fait partie d’une liste de

libellés

painting La couleur d’un véhicule A partir de la version 2 owner Le propriétaire du véhicule A partir de la version 2 impact Le choc A partir de la version 2 wear L’usure d’un pneu A partir de la version 2 equipment Un équipement du véhicule A partir de la version 2 image Une image A partir de la version 2 digest La signature d’un objet A partir de la version 2 broker Le courtier en assurance A partir de la version 2 bulkdata Identifiant d’une donnée binaire pour

le service « BulkData » A partir de la version 2

8.2.4. Référentiels

Description des référentiels supplier Description d’un fournisseur piece Une pièce avec ses prix list Liste de type « Supplier » : description de tous les fournisseurs

Liste de type « OnePart » : les tarifs

Page 51: Plateforme catalogue – API HTTP XAT2€¦ · Plateforme catalogue ... MAJ « Exemple de session de mise-à-jour de prix ». ... Lancement d’une session interactive sur l’ IO

Réf : XA20710DTS079 Ed 1. - Rév. 13 Spécification technique détaillée Date 4 septembre 2009

43 / 140

XAT2

0710

DTS0

79 -

Ce do

cume

nt es

t pro

priét

é de E

TAI.

Tous

droit

s de r

epro

ducti

on et

/ou co

mmun

icatio

n rés

ervé

s.

9. DONNEES

9.1. Convention de présentation Dans l’en-tête des tableaux, nous trouverons les colonnes suivantes : nom du

tag

Champ A T M E D Description V Description des colonnes des tableaux : Abréviation Colonne Description champ Champ Nom de la donnée A ou Att Attribut ‘x’ pour indiquer que la donnée est un attribut T ou Type Type Type de la donnée (voir ci-après) M Mandatory ‘M’ pour indiquer l’obligation. Non obligatoire par défaut

'(M)' indique le champ n'est pas toujours obligatoire. La description du champ doit expliquer pourquoi.

E ou Enum Enumération ‘E’ pour indiquer que la valeur du champ doit correspondre à un élément d’une énumération

D Défaut Valeur par défaut Lorsque qu’une valeur par défaut est indiquée, il faut comprendre que si le tag n’est pas renseigné ou si le tag n’est pas présent, la valeur par défaut sera appliquée pour ce tag.

Description Description Description de la donnée V Version Version du protocole à partir de laquelle la balise apparaît Répétition des données : *n : Dans le nom du champ, indique qu’il s’agit d’une liste de données Exemple : « long-label *n » indique que plusieurs type de moteurs pourront être écrits à la suite Nous obtiendrons <long-label>libellé 1</long-label><long-label>libellé 2</long-label> Note (x) indiqué dans la description où ‘x‘est un nombre, indique qu’il faut se reporter à la note N° x présente en dessous du tableau.

Page 52: Plateforme catalogue – API HTTP XAT2€¦ · Plateforme catalogue ... MAJ « Exemple de session de mise-à-jour de prix ». ... Lancement d’une session interactive sur l’ IO

Réf : XA20710DTS079 Ed 1. - Rév. 13 Spécification technique détaillée Date 4 septembre 2009

44 / 140

XAT2

0710

DTS0

79 -

Ce do

cume

nt es

t pro

priét

é de E

TAI.

Tous

droit

s de r

epro

ducti

on et

/ou co

mmun

icatio

n rés

ervé

s.

Types de données Abréviation Type de donnée Description A Ascii Chaîne de caractères C Caractère Caractère alphanumérique B Booléen les valeurs possibles sont true ou false H Héritage La donnée est de type objet et hérite d’un autre objet.

Ils auront donc exactement la même structure mais portent uniquement un nom différent. Le nom de l’objet parent est indiqué entre parenthèses après le nom.

I Entier Exprime tout nombre qui ne comporte pas de partie décimale Seuls les chiffres sont autorisés.

L Liste Une liste est un objet qui contient plusieurs fois le même objet. Le nom d’une liste est constitué de 2 parties séparées par le caractère "–". Le nom de l’objet contenu dans la liste est indiqué dans la première partie du nom. Dans la 2ème partie on indique list. Exemple : date-list est une liste qui contient un ensemble d’objets date. En XML on obtient : <date-list> <date>…</date> <date>…</date> … </date-list> Note 1 : les listes ne seront pas décrites dans un tableau. Note 2 : les listes peuvent contenir 0 ou n objets

N Numérique Exprime tout nombre qui peut comporter une décimale. Le symbole décimal est le point. Seuls les caractères chiffres et le caractère point sont autorisés.

O Objet Le type « Objet » indique que le champ est lui-même un objet et qu’il faut se reporter à sa description dans ce document.

% Pourcentage Le pourcentage est un numérique exprimé de la sorte : « 98.20 » pour indiquer un pourcentage de 98.20% Le symbole décimal est le point. Seuls les caractères chiffres et le caractère point sont autorisés.

U URL Adresse Internet valide syntaxiquement V ? Valeur Indique que le champ est la valeur de la balise décrite par le

tableau. Ce champ n’est donc pas une balise. Ceci sert à décrire le format de la valeur comme dans cet exemple : <mesure>valeur</mesure> A la place du ? on indique le type de donnée de la valeur

@ E-mail un email doit être au format [email protected] D Date formatée Une date formatée G Groupe Il s'agit du groupe au sens xsd du terme (xsd:group)

Cela siginifie que l'ensemble des balises du groupe est insérée à l'endroit indiqué, au même niveau de la hiérarchie xml. Le mot désignant le groupe n'apparait pas dans le xml

Pour les champs numériques (I, N, P), les espaces ne sont pas tolérés à l’intérieur (il faut que la chaîne puisse être convertie directement en nombre). Conventions : - Une durée est exprimée numériquement. Quand on lit 1.5 heures, il faut comprendre 1 heure et demi. - Les minutes n’ont pas de décimale - Les secondes n’ont pas de décimale

Page 53: Plateforme catalogue – API HTTP XAT2€¦ · Plateforme catalogue ... MAJ « Exemple de session de mise-à-jour de prix ». ... Lancement d’une session interactive sur l’ IO

Réf : XA20710DTS079 Ed 1. - Rév. 13 Spécification technique détaillée Date 4 septembre 2009

45 / 140

XAT2

0710

DTS0

79 -

Ce do

cume

nt es

t pro

priét

é de E

TAI.

Tous

droit

s de r

epro

ducti

on et

/ou co

mmun

icatio

n rés

ervé

s.

- Les prix et les quantités négatifs ne sont pas gérés (en v1) - Les références internes sont des références internes dans un même shuttle. Elles permettent de faire référence à un objet du shuttle dans un autre endroit du shuttle. La numérotation commence au chiffre ‘1’ et est incrémentée de 1 pour chaque nouvelle référence interne. Chaque type d’objet possède sa propre numérotation. Recommandations : - Les taux de main d’œuvre, les taux de TVA, les taux d’ingrédients sont exprimés sur 2 décimales. Si les taux ont plus de 2 décimales, IO les arrondis à 2 décimales, au plus proche. - Les prix sont exprimés sur 2 décimales. Si les prix ont plus de 2 décimales, IO les arrondis à 2 décimales, au plus proche.

9.2. Objets utilitaires

9.2.1. Contexte Données de contexte du DMS. Exemple :

Contexte reçu par le DMS :

<session-context> <sessionid>1234567890abcdef1234567890abcdef</sessionid> <date-creation format="yyyy-MM-dd HH:mm:ss">2007-02-11 17:59:01

</date-creation> <usersharedid>azertyy12345</usersharedid> <dmsswloginio>zfazefareg</dmsswloginio> <garagesharedid>12345</garagesharedid> <mastersessionid>bcdef1234567890abcdef1234567890a</mastersessionid>

<dmsid>…</dmsid> <action>…</action> <last-url> /PRECISIO/Mra?cli=&mar=7&mod=13601&ver=101922&add=false&page=mra

</last-url> <uri-service-list>

<uri-service action="ManageSession"> http://www.etai.io/xat2sess</uri-service>

<uri-service action="SessionShuttle"> http://www.etai.io/xat2shtl</uri-service>

<uri-service action="BugReport" "> http://www.etai.io/xat2/xat2br</uri-service>

<uri-service action="Display"> http://www.etai.io/xat2/xat2aff</uri-service>

<uri-service action="TestSessionFlow"> http://www.etai.io/xat2tsf</uri-service>

<uri-service action="DMSaddress" direct-access="true"> http://192.168.200.32/dms/redir</uri-service>

</uri-service-list> <private-dms>

<xyz xmlns="http://dms1/dsm-x.y.xsd"> </private-dms> </session-context>

Contexte envoyé par le DMS lors de l’appel de la fonction UpdateSession :

Page 54: Plateforme catalogue – API HTTP XAT2€¦ · Plateforme catalogue ... MAJ « Exemple de session de mise-à-jour de prix ». ... Lancement d’une session interactive sur l’ IO

Réf : XA20710DTS079 Ed 1. - Rév. 13 Spécification technique détaillée Date 4 septembre 2009

46 / 140

XAT2

0710

DTS0

79 -

Ce do

cume

nt es

t pro

priét

é de E

TAI.

Tous

droit

s de r

epro

ducti

on et

/ou co

mmun

icatio

n rés

ervé

s.

<session-context> <sessionid>1234567890abcdef1234567890abcdef</sessionid > <usersharedid>azertyy12345</usersharedid> <dmsswloginio>zfazefareg</dmsswloginio> <garagesharedid>12349078</garagesharedid> <dmsid> <name>DMS de test</name> <code-langue>fr</code-langue> <version>version</version> </dmsid>

<uri-service-list> <uri-service action="DMSaddress" direct-access="true">

http://192.168.200.32/dms/redir</uri-service> </uri-service-list>

<private-dms> <xyz xmlns="http://dms1/dsm-x.y.xsd">

</private-dms> </session-context>

session-contexte O 1 Champ A T M E D Description V sessionid A M Identifiant de contexte 1 usersharedid A identifiant de l’utilisateur concerné par les échanges 1

dmsswloginio A M Identifiant du DMS concerné par les échanges 1

garagesharedid A Identifiant du garage pour le DMS 1

mastersharedid A Identifiant du DMS principal (celui associé à un utilisateur physique)

1

date-creation (date)

H M La date de création du contexte ; elle est générée par le serveur IO ; le code type de la date sera lu comme étant « date de création »

1

action-list O La liste d’actions dans le shuttle 1 dmsid O Données qui identifient le DMS du point de vue de

l’application ETAI 1

uri-service-list L (M) La balise est obligatoire uniquement pour le DMS lorsqu’il fait un POST avec ses données

1

private-dms O Le contenu de cette balise est géré par le DMS 1 shuttle-version I La version du shuttle à utiliser 2 extra-uri-service-list

L Les services supplémentaires de la version v2 2

last-accessed-time

D La date de la dernière requête HTTP au serveur. Cette date est exprimée en format HH:mm:ss dd-MM-yyyy (précision de milisecondes)

2

max-inactiv-sec I Le timeout de la session HTTP; une valeur négative indique que la session n’expire jamais.

2

last-err-msg A Le dernier message d’erreur de l’utilisateur 2

9.2.2. Liste des URLs La liste des URL contient les adresses complètes des services exposés par l’IO.

Page 55: Plateforme catalogue – API HTTP XAT2€¦ · Plateforme catalogue ... MAJ « Exemple de session de mise-à-jour de prix ». ... Lancement d’une session interactive sur l’ IO

Réf : XA20710DTS079 Ed 1. - Rév. 13 Spécification technique détaillée Date 4 septembre 2009

47 / 140

XAT2

0710

DTS0

79 -

Ce do

cume

nt es

t pro

priét

é de E

TAI.

Tous

droit

s de r

epro

ducti

on et

/ou co

mmun

icatio

n rés

ervé

s.

Exemple : <uri-service-list> <uri-service action="ManageSession">

http://www.etai.io/managesession</uri-service> <uri-service action="SessionShuttle">

http://www.etai.io/shuttle</uri-service> <uri-service action="Display">http://www.etai.io/affichage</uri-service> <uri-service action="TestSessionFlow">

http://www.etai.io/test</uri-service> <uri-service action="DMSaddress" direct-access="true">

http://192.168.200.32/dms/redir</uri-service> </uri-service-list>

uri-service O Une URI de service 1 Champ A T M E D Description V action x A M E action associée à l’URL (le service) – voir l’annexe 1 direct-acces x B Si « true », l’IO s’adresse directement au DMS, sans faire des

redirections. « true » est obligatoire pour les DMS secondaires. 1

valeur VU M URL 1 Pour les URLs supplémentaires de la version 2, l’attribut « direct-acces » n’existe pas.

Page 56: Plateforme catalogue – API HTTP XAT2€¦ · Plateforme catalogue ... MAJ « Exemple de session de mise-à-jour de prix ». ... Lancement d’une session interactive sur l’ IO

Réf : XA20710DTS079 Ed 1. - Rév. 13 Spécification technique détaillée Date 4 septembre 2009

48 / 140

XAT2

0710

DTS0

79 -

Ce do

cume

nt es

t pro

priét

é de E

TAI.

Tous

droit

s de r

epro

ducti

on et

/ou co

mmun

icatio

n rés

ervé

s.

9.3. Shuttle Le shuttle est la structure de plus haut niveau dans laquelle vont être placées toutes les données métier échangées entre le DMS et l’application ETAI. Un shuttle contiendra les données d’un seul document. Un document pourra être un devis, une facture, une liste de fournisseurs,…

9.3.1. Les champs du Shuttle Exemple :

<?xml version="1.0" encoding="UTF-8" ?> <shuttle xmlns="http://etai22.ecritel.net/xsd/xat2/"

xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" referentiel-supplier="ref1" code-document="Estimate" version="1">

<date-envoi format="yyyy-MM-dd HH:mm:ss">2007-02-13 11:29:01</date-envoi> <date-creation format="yyyy-MM-dd HH:mm:ss">

2007-02-11 17:59:01</date-creation> <date-list>

<date code-type="DerniereModification" format="yyyy-MM-dd HH:mm:ss"> 2006-09-22 14:53:02</date>

<date code-type="Validation" format="yyyy-MM-dd HH:mm:ss"> 2006-09-22 14:53:00</date>

<date code-type="DerniereModificationFournisseur" format="yyyy-MM-dd HH:mm:ss">2006-08-24 14:00:02</date>

</date-list> <locked>false</locked> <default-shuttle-settings> <code-devise>EUR</code-devise> <code-unite-temps>h</code-unite-temps> <code-expression-remises>P</code-expression-remises> <code-langue>fr</code-langue> </default-shuttle-settings>

<dmsid> <name>DMS de test</name> <code-langue>fr</code-langue> <version>version</version> </dmsid> <ref-alternative-list>

<ref-alternative reference="devis-0002"> <code-referentiel>DMS</code-referentiel> </ref-alternative> </ref-alternative-list>

<mentions> <mention-legale>Une mention</mention-legale> <obs-list> <obs>Une observation</obs> </obs-list> </mentions>

<parametrage> <taux-mo-list>

<taux-mo ref-interne-taux-mo="1"> <zone>M</zone> <technicite>1</technicite>

Page 57: Plateforme catalogue – API HTTP XAT2€¦ · Plateforme catalogue ... MAJ « Exemple de session de mise-à-jour de prix ». ... Lancement d’une session interactive sur l’ IO

Réf : XA20710DTS079 Ed 1. - Rév. 13 Spécification technique détaillée Date 4 septembre 2009

49 / 140

XAT2

0710

DTS0

79 -

Ce do

cume

nt es

t pro

priét

é de E

TAI.

Tous

droit

s de r

epro

ducti

on et

/ou co

mmun

icatio

n rés

ervé

s.

<label>Mécanique 1</label> <taux>12.5</taux> </taux-mo>

<taux-mo ref-interne-taux-mo="2"> <zone>M</zone> <technicite>2</technicite> <taux>22.5</taux> <label>Mécanique 2</label> </taux-mo>

<taux-mo ref-interne-taux-mo="3"> <zone>M</zone> <technicite>3</technicite> <taux>32.5</taux> </taux-mo>

<taux-mo ref-interne-taux-mo="4"> <zone>T</zone> <technicite>1</technicite> <taux>13.5</taux> </taux-mo> </taux-mo-list>

<taux-tva-list> <taux-tva ref-interne-taux-tva="1">

<taux>19.60</taux> <label>Taux usuel</label> </taux-tva> </taux-tva-list> </parametrage>

<client ref-dms="dms-cli0011"> <code-civilite>M</code-civilite> <nom>Dupont</nom> <prenom>Théodore</prenom> <adresse>1 rue de l'estampe</adresse> <code-postal>75000</code-postal> <ville>Paris</ville> <code-pays>FR</code-pays> <telephone>0033112548567</telephone> <fax>0033244658779</fax> <mobile>0033623587634</mobile> <email>[email protected]</email> </client>

<vehicule ref-dms="dms-125"> <label>Twingo 2,5l</label> <code-usage>Normal</code-usage> <kilometrage code-unite="km">150000</kilometrage> <horometrage code-unite="h">20000</horometrage> <cylindree code-unite="cm3">150</cylindree>

<date-list> <date code-type="PremiereMEC" format="yyyy-MM-dd">

2003-02-12</date> <date code-type="AnneeModele" format="yyyy">1998</date> <date code-type="ControleTehnique" format="yyyy-MM-dd">

2005-01-12</date> </date-list>

<admin-ref-list>

Page 58: Plateforme catalogue – API HTTP XAT2€¦ · Plateforme catalogue ... MAJ « Exemple de session de mise-à-jour de prix ». ... Lancement d’une session interactive sur l’ IO

Réf : XA20710DTS079 Ed 1. - Rév. 13 Spécification technique détaillée Date 4 septembre 2009

50 / 140

XAT2

0710

DTS0

79 -

Ce do

cume

nt es

t pro

priét

é de E

TAI.

Tous

droit

s de r

epro

ducti

on et

/ou co

mmun

icatio

n rés

ervé

s.

<admin-ref code-type="Immatriculation">1024ZT14</admin-ref> <admin-ref code-type="VIN">456789</admin-ref> <admin-ref code-type="CNIT">cnit2</admin-ref> <admin-ref code-type="TypeMines">T4567</admin-ref> <admin-ref code-type="Chassis">1289vju4545</admin-ref> </admin-ref-list>

<code-genre-boite>Automatique</code-genre-boite> <nombre-rapport>5</nombre-rapport> <nombre-porte>5</nombre-porte> <puissance-fiscale>6</puissance-fiscale> <code-type-carburant>Essence</code-type-carburant>

</vehicule> <classification-vehicule code-origine="ETAI">

<list code-type="ClassificationElement"> <element-classification code="Marque">

<valeur>133</valeur> <short-label>RENAULT</short-label> <long-label>RENAULT</long-label> </element-classification>

<element-classification code="Modele"> <valeur>359</valeur> <short-label>Clio 1</short-label> <long-label>RENAULT CLIO I.</long-label> </element-classification>

<element-classification code="Variante"> <valeur>7239</valeur> <short-label>Clio 3P 1.4l</short-label> <long-label>CLIO 3P 03.94 1.4i (57kW) -E7J_601- A3 à partir

de 1993-07 jusqu`à 1994-03</long-label> </element-classification> </list>

<code-genre-boite>Automatique</code-genre-boite> <nombre-rapport>5</nombre-rapport> <nombre-porte>5</nombre-porte> <cylindree code-unite="cm3">150</cylindree>

<puissance-fiscale-list> <puissance-fiscale>7</puissance-fiscale> </puissance-fiscale-list>

<code-type-carburant-list> <code-type-carburant>Essence</code-type-carburant> </code-type-carburant-list>

<admin-ref-list> <admin-ref code-type="TypeMines">C57205</admin-ref> <admin-ref code-type="TypeMines">C57205A</admin-ref> <admin-ref code-type="CNIT">cnit3</admin-ref> <admin-ref code-type="VIN">456789</admin-ref> <admin-ref code-type="VIN">556789</admin-ref> <admin-ref code-type="TypeMoteur">E7J_7</admin-ref> </admin-ref-list>

<code-langue>fr</code-langue> </classification-vehicule> </shuttle>

Page 59: Plateforme catalogue – API HTTP XAT2€¦ · Plateforme catalogue ... MAJ « Exemple de session de mise-à-jour de prix ». ... Lancement d’une session interactive sur l’ IO

Réf : XA20710DTS079 Ed 1. - Rév. 13 Spécification technique détaillée Date 4 septembre 2009

51 / 140

XAT2

0710

DTS0

79 -

Ce do

cume

nt es

t pro

priét

é de E

TAI.

Tous

droit

s de r

epro

ducti

on et

/ou co

mmun

icatio

n rés

ervé

s.

Un autre exemple de shuttle, envoyé par l’IO au DMS et qui contient une liste de fournisseurs : <shuttle xmlns=http://etai22.ecritel.net/xsd/…/ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" document="List">

<list code-type="Supplier" version="ETAI_FOUR_1.0" start-index="10" nombre="3">

<supplier code="1015"> <short-label>BEN</short-label> <long-label>BENDIX</long-label> <code-genre>Equipementier</code-genre> <actif>true</actif> </supplier>

<supplier code="1023"> <short-label>BOS</short-label> <long-label>BOSCH</long-label> < code-genre> Equipementier </code-genre> <actif>true</actif> </supplier>

<supplier code="1153"> <short-label>VAL</short-label> <long-label>VALEO</long-label> < code-genre>Equipementier</ code-genre> <actif>true</actif> </supplier> </list> </shuttle>

shuttle O 1 Champ A T M E D Description V ref-etai x A identifiant du Shuttle dans la base ETAI 1 code-document x A M E type de document que contient le shuttle

voir « type de document » en annexe

1

referentiel-operations

x A ETAI_1.0 ‘ETAI_1.0‘ par défaut pour la version 1 du protocole

1

referentiel-supplier

x A M(1) version du référentiel fournisseurs ; elle est récupérée par le DMS lors de la mises à jour du référentiel

1

date-creation (date)

H M date de création du shuttle (à renseigner par le DMS) ; le code-type n’est pas obligatoire

1

date-list L Objet qui contient des objets date - date de dernière modification du Shuttle par le DMS ou le IO (obligatoire) - date de validation du shuttle : dernière date à laquelle le IO a vérifié la cohérence du contenu - date de dernière modification du référentiel fournisseur (obligatoire)

1

sessionid A L’ID de la session (contexte) de travail entre DMS et IO ; valeur envoyée lors de l’accès direct (l’IO fait un POST de données au shuttle, ce champ sert à pouvoir identifier l’origine de l’envoi)

1

locked B false statut qui interdit toute modification ultérieure du contenu du devis. Utilisé lorsque le devis devient une archive (par exemple après

1

Page 60: Plateforme catalogue – API HTTP XAT2€¦ · Plateforme catalogue ... MAJ « Exemple de session de mise-à-jour de prix ». ... Lancement d’une session interactive sur l’ IO

Réf : XA20710DTS079 Ed 1. - Rév. 13 Spécification technique détaillée Date 4 septembre 2009

52 / 140

XAT2

0710

DTS0

79 -

Ce do

cume

nt es

t pro

priét

é de E

TAI.

Tous

droit

s de r

epro

ducti

on et

/ou co

mmun

icatio

n rés

ervé

s.

facturation)

default-shuttle-settings

O données par défaut 1

dmsid O Données qui identifient le DMS du point de vue de l’application ETAI

1

ref-alternative-list L(2) Liste de références alternatives du shuttle dans un autre référentiel (référence du shuttle dans le DMS)

1

mentions O Liste des mentions du devis/facture/… voir ci-dessous

1

action-list O Action(s) demandée(s) au DMS par IO 1

parametrage O données de paramétrage du DMS tels que les taux de main d’œuvre ou de TVA,..

1

client O Caractéristiques administratives du client dans le devis (v1)

1

vehicule O Caractéristiques administratives du véhicule dans le devis

1

classification-vehicule

O identification du véhicule permettant d’effectuer le chiffrage.

1

operations O Liste des opérations 1 list O Une seule liste est possible :

- Liste de fournisseurs - Liste de pièces,….

1

private-dms O Dans cet objet le DMS pourra y indiquer toute donnée utile. Ces données seront retransmises telles quelles par IO dans toute transaction entre IO et le DMS concernant ce shuttle.

1

private-etai O Dans cet objet, IO pourra y indiquer toute donnée utile. Le DMS ne doit pas modifier cette donnée. Ces données seront retransmises telles quelles par le DMS dans toute transaction entre IO et le DMS concernant ce shuttle.

1

garage O Informations concernant le garage 1 prix-list L Liste de prix. On pourra indiquer ici les prix

totaux du devis ou de la facture. 1

etai-application-id

O Données qui identifient le DMS du point de vue de l’application ETAI

2

insurance O La police d’assurance (à partir de la version 2)

2

deposit O Garantie et responsabilité (v2) 2 comment-list L Liste de balises de commentaires (v2) 2 buyer O Acheteur (v2) 2 impact-list L Liste de chocs (v2) 2 evaluation O L’expertise (v2) 2 repairer O Le réparateur (v2) 2 technical-assessment

O Le bilan technique (v2) 2

image-list L Une liste d’images (v2). 2 status-list L Une liste d’états de documents antérieurs 2 search-list L Une liste d’informations à rechercher du

côté du DMS 2

vehicle-state O L’état du véhicule (v2) 2 broker O Le courtier en assurance (v2) 2 ack O L’accusé de réception (v2) 2

Page 61: Plateforme catalogue – API HTTP XAT2€¦ · Plateforme catalogue ... MAJ « Exemple de session de mise-à-jour de prix ». ... Lancement d’une session interactive sur l’ IO

Réf : XA20710DTS079 Ed 1. - Rév. 13 Spécification technique détaillée Date 4 septembre 2009

53 / 140

XAT2

0710

DTS0

79 -

Ce do

cume

nt es

t pro

priét

é de E

TAI.

Tous

droit

s de r

epro

ducti

on et

/ou co

mmun

icatio

n rés

ervé

s.

company O La société (v2) 2 app-spec L Données spécifiques et privées aux

applications ETAI, dans un espace de nommage particulier

2

supplier-list L La liste de fournisseurs de pièces d’un devis/facture ; s’il n’y a aucune pièce, cette balise ne peut pas y figurer

2

subcontracting I Décrit si la réparation a été sous-contractée ; les valeurs sont celles de la table d’ArvA 9054

2

Notes :

1. donnée envoyée par l’application ETAI et présente dans les shuttles de type Estimate et Invoice (v2)

2. dans un shuttle de type « Estimate », si la balise <code-referentiel> a la valeur DMS, alors la référence représente le code du devis dans le référentiel du DMS, et l’application ETAI va essayer de reprendre le même dossier et ne pas en créer un nouveau.

3. A partir de la version 2 on peut signer le document XML envoyé – voir les spécifications W3C. Contraintes : - il ne peut exister au plus qu’une seule date d’un même type, - La date de création une fois créée ne peut plus être modifiée. Comportement attendu : - seul le créateur du shuttle peut modifier la propriété « locked ». Tous les partenaires avec lequel l’échange s’effectue n’ont plus le droit de modifier le shuttle une fois verrouillé (« locked » = true). mentions O mentions du shuttle 1 Champ A T M E D Description V mention-legale A Mention légale du devis 1 observation A observation sur le devis 1 obs-list LA Une liste d’observations 2

9.3.2. Identifiant du DMS/de l’application ETAI La balise <dmsid> représente l’identifiant du DMS et contient certaines valeurs par défaut ; la

liste de tags est susceptible d’évoluer. Exemple :

<dmsid> <name>DMS de test</name> <version>version</version> <code-langue>fr</code-langue>

</dmsid> dmsid O Identification du DMS 1 Champ A T M E D Description V name A (M) Le nom du DMS

(M) Cette balise est obligatoire à partir de la version 2 du protocole.

1

code-langue A E Langue (cf. annexe) Pour l’instant ce champ n’est pas utilisé.

1

version A (M) La version du DMS (M) Cette balise est obligatoire à partir de la version 2 du protocole.

1

Page 62: Plateforme catalogue – API HTTP XAT2€¦ · Plateforme catalogue ... MAJ « Exemple de session de mise-à-jour de prix ». ... Lancement d’une session interactive sur l’ IO

Réf : XA20710DTS079 Ed 1. - Rév. 13 Spécification technique détaillée Date 4 septembre 2009

54 / 140

XAT2

0710

DTS0

79 -

Ce do

cume

nt es

t pro

priét

é de E

TAI.

Tous

droit

s de r

epro

ducti

on et

/ou co

mmun

icatio

n rés

ervé

s.

interface-id I <dmsid> dans v2 : représente l’attribut « id » de la balise <chiffrage> dans le protocole XAT.

2

release I La release du DMS 2

La balise <etai-application-id> est utilisée (à partir de la version 2) pour identifier l’application EATI avec laquelle le DMS communique ; elle diffère de la balise <dmsid> du shuttle par le manque de l’élément « interface-id »

Bien que la balise <dmsid> ne soit pas obligatoire, ETAI se reserve le droit d’imposer son obligativité dans une version ultérieure (avec l’obligation d’avoir certains paramètres renseignés) afin d’honorer d’une manière personalisée les requêtes du DMS.

9.3.3. Liste d’actions Cette balise représente la liste de dernières actions demandées au DMS par le shuttle – elle est renvoyée dans le contexte pour un but informatif. Exemple : <action-list>

<action>GetPrix</action> <action>GetConditionnement</action> <action>GetStock</action> </action-list>

action O 1 Champ A T M E D Description V action A M E identifiant de l’action (cf. liste des actions en annexe) 1

9.3.4. Valeurs par défaut dans le shuttle default-shuttle-settings O Valeurs par défaut dans le shuttle 1 Champ A T M E D Description V code-devise A E EUR Devise par défaut (voir l’annexe).

Si omis, la devise par défaut sera l’euro 1

code-unite-temps A E h Unité de temps par défaut du shuttle Voir en annexe les unités de mesure

1

code-expression-remises A E P Expression des remises par défaut ‘A’ absolu ‘P’ pourcentage

1

code-langue A E fr code langue par défaut – sur 2 lettres, cf. ISO 639-1

1

9.3.5. Paramétrage

Données du Shuttle.

Page 63: Plateforme catalogue – API HTTP XAT2€¦ · Plateforme catalogue ... MAJ « Exemple de session de mise-à-jour de prix ». ... Lancement d’une session interactive sur l’ IO

Réf : XA20710DTS079 Ed 1. - Rév. 13 Spécification technique détaillée Date 4 septembre 2009

55 / 140

XAT2

0710

DTS0

79 -

Ce do

cume

nt es

t pro

priét

é de E

TAI.

Tous

droit

s de r

epro

ducti

on et

/ou co

mmun

icatio

n rés

ervé

s.

Exemple :

<parametrage> <taux-mo-list>

<taux-mo ref-interne-taux-mo="1"> <taux>12.5</taux> </taux-mo> <taux-mo ref-interne-taux-mo="2"> <taux>22.5</taux> </taux-mo> …

</taux-mo-list> <taux-tva-list>

<taux-tva ref-interne-taux-mo ="1">19.60</taux-tva> </taux-tva-list>

</parametrage> parametrage 1 Champ A T M E D Description V taux-mo-list L Liste des taux de main d’œuvre 1 taux-tva-list L Liste des taux de TVA 1 deduction-list L Liste de remises 2 payment-delay O Le délai de payement 2 Initialisation du devis par le DMS :

Comportement attendu du DMS : Le DMS doit fournir la liste de tous les taux utilisables par IO.

Comportement attendu de IO : IO doit proposer à l’utilisateur uniquement ces taux, lors de la constitution du devis.

9.3.6. Client

Les données administratives du client du devis (note : ce n’est pas forcément le propriétaire du véhicule).

Exemple :

<client ref-dms="dms-cli0011"> <ref-alternative-list> <code-civilite>M.</code-civilite> <nom>Dupont</nom> <prenom>Théodore</prenom> <adresse>1 rue de l'estampe</adresse> <code-postal>75000</code-postal> <ville>Paris</ville> <code-pays>FR</code-pays> <telephone>0033112548567</telephone> <fax>0033244658779</fax> <mobile>0033623587634</mobile>

Page 64: Plateforme catalogue – API HTTP XAT2€¦ · Plateforme catalogue ... MAJ « Exemple de session de mise-à-jour de prix ». ... Lancement d’une session interactive sur l’ IO

Réf : XA20710DTS079 Ed 1. - Rév. 13 Spécification technique détaillée Date 4 septembre 2009

56 / 140

XAT2

0710

DTS0

79 -

Ce do

cume

nt es

t pro

priét

é de E

TAI.

Tous

droit

s de r

epro

ducti

on et

/ou co

mmun

icatio

n rés

ervé

s.

<email>[email protected]</email> <admin-ref-list> <admin-ref code-type="TVAIntraCommunautaire">12456</admin-ref>

</admin-ref-list> <tva-recuperable>false</tva-recuperable> <taux-mo-list> <taux-mo ref-interne-taux-mo ="1"> <zone>M</zone> <technicite>1</technicite> <taux>12.5</taux>

</taux-mo> </taux-mo-list> </client>

client O Client du shuttle (devis,facture,…) 1 Champ A T M E D Description V ref-dms x A Référence du client dans la base du DMS avec

lequel on effectue l’échange de shuttle actuel. 1

ref-alternative-list

L Identifiant client dans d’autres référentiels. 1

code-civilite A E cf. Code civilités en annexe 1 nom A M Nom 1 prenom A Prénom 1 adresse A 1 code-postal A 1 ville A 1 code-pays A E Voir « liste des pays » 1 telephone A Numéro de téléphone en format international

(préfixé par l’IDD) 1

fax A Numéro de fax en format international (préfixé par l’IDD)

1

mobile A Numéro de mobile en format international (préfixé par l’IDD)

1

email @ 1 admin-ref-list L Liste de références administratives

Voir liste des références administratives code TVA intracommunautaire

1

tva-recuperable B false indique si le client récupère la TVA. 1 taux-mo-list L Liste de taux de main d’œuvre préférentiels pour ce

client Taux Tôlerie T1, T2, T3 Taux Mécanique M1, M2, M3 Taux Peinture P1,… Taux Ingrédient

1

recoverable-VAT-reason

A Motif de récupérabilité de la TVA 2

business-phone A Le téléphone professionnel en format international (préfixé par l’IDD)

2

company O La société pour laquelle travaille le client 2 POBox A La boîte postale 2 comment A Un commentaire 2 deduction-list L La liste de remises 2 payment-delay O Le délai de payement 2 Propriétaire :

Page 65: Plateforme catalogue – API HTTP XAT2€¦ · Plateforme catalogue ... MAJ « Exemple de session de mise-à-jour de prix ». ... Lancement d’une session interactive sur l’ IO

Réf : XA20710DTS079 Ed 1. - Rév. 13 Spécification technique détaillée Date 4 septembre 2009

57 / 140

XAT2

0710

DTS0

79 -

Ce do

cume

nt es

t pro

priét

é de E

TAI.

Tous

droit

s de r

epro

ducti

on et

/ou co

mmun

icatio

n rés

ervé

s.

Le DMS est propriétaire de ref-dms Comportement attendu du DMS - Toute la structure client est fournie par le DMS. Comportement attendu de IO - Le client sera affiché dans le devis pour permettre à l’utilisateur de ne pas perdre le fil conducteur. - Si la référence DMS est indiquée, le client n’est pas modifiable dans l’application IO. - Si la référence DMS n’est pas indiquée, le client peut être modifié en retour (lors de l’envoi du shuttle vers le DMS). - Aucun historique ne sera conservé pour ce client dans IO

9.3.7. Véhicule Il contient toutes les données administratives du véhicule du devis ou de la facture. C’est le véhicule d’un particulier, c’est pourquoi cet objet contiendra le kilométrage, l’usure,… Exemple :

<vehicule ref-dms="125" > <ref-alternative-list> <ref-alternative reference="vehii001"> <code-referentiel>ETAI</code-referentiel> </ref-alternative> </ref-alternative-list>

<label>Twingo 2,5l</label> <kilometrage code-unite="km">150000</kilometrage > <cylindree code-unite="cm3">150</cylindree > <date-list> <date code-type="PremiereMEC" format="yyyy-MM-dd">

2003-02-12</date> <date code-type="AnneeModele" format="yyyy">1998</date> <date code-type="ControleTehnique" format="yyyy-MM-dd">

2005-01-12</date> </date-list>

<admin-ref-list> <admin-ref type="Immatriculation">1024ZT14</admin-ref> <admin-ref type="VIN">456789</admin-ref> <admin-ref type="CNIT">cnit2</admin-ref> <admin-ref type="TypeMines">T4567</admin-ref> <admin-ref type="Chassis">1289vju4545</admin-ref> </admin-ref-list>

<code-genre-boite /> <nombre-rapport /> <nombre-porte /> <puissance-fiscale /> <code-type-carburant />

</vehicule>

vehicule O Véhicule réel du shuttle (pour lequel on effectue

le devis ou la facture, ou le document) 1

Page 66: Plateforme catalogue – API HTTP XAT2€¦ · Plateforme catalogue ... MAJ « Exemple de session de mise-à-jour de prix ». ... Lancement d’une session interactive sur l’ IO

Réf : XA20710DTS079 Ed 1. - Rév. 13 Spécification technique détaillée Date 4 septembre 2009

58 / 140

XAT2

0710

DTS0

79 -

Ce do

cume

nt es

t pro

priét

é de E

TAI.

Tous

droit

s de r

epro

ducti

on et

/ou co

mmun

icatio

n rés

ervé

s.

Champ A T M E D Description V

ref-dms x A Identifiant véhicule dans la base du DMS 1 ref-alternative-list L Liste d’Identifiants de ce véhicule dans d’autres

référentiels. 1

label A Libellé du véhicule 1 code-usage A E Usage du véhicule

cf. « usage d’un véhicule » en annexe 1

usure A usure du véhicule 1 kilometrage H kilométrage du véhicule

un objet kilometrage est un objet mesure 1

horometrage H horométrage du véhicule un objet horometrage est un objet mesure

1

cylindree H cylindrée du véhicule un objet cylindree est un objet mesure

1

date-list L dates qui concernent le véhicule telles que : - 1ère date de mise en circulation - année-modèle - contrôle technique effectué Voir liste des types de date en annexe

1

admin-ref-list L VIN, CNIT, Type mines, châssis, immatriculation, Type moteur

1

code-genre-boite A E Genre de la boite cf. annexe 1 nombre-rapport I Nombre de rapport à la boite, 4, 5, 6,… 1 nombre-porte I Nombre de portes 1 puissance-fiscale I Puissance fiscale 1 code-type-carburant A E voir « Type de carburant » en annexe 1 colour O La couleur du véhicule 2 owner O Le propriétaire, si pas présent, alors le

propriétaire est le client 2

price O Le prix du véhicule 2 carossery A La carosserie – cf. table d’ArvA 9031 2 equipment-list L Une liste d’équipements du véhicule 2 delivery-kilometrage (Mesure)

H Kilométrage à la livraison

2

carrying-capacity O Charge utile 2 full-load O Charge maximale 2 alarm-code A Le code d’alarme 2 radio-code A Le code radio 2 dammages-desc A Descriptions des dommages 2 previous-dammages A Dommages antérieurs 2 nbp I Le nombre de places (assises, y compris le

conducteur) 2

nbpd I Le nombre de places debout 2

Contraintes : - Chaque type de référence administrative ne peut exister qu’une seule fois - 1ère date de mise en circulation ne peut exister qu’une fois - La date d’année modèle ne peut exister qu’une fois - Plusieurs dates de contrôle technique effectué peuvent exister - Chaque mesure ne peut exister qu’une seule fois

Page 67: Plateforme catalogue – API HTTP XAT2€¦ · Plateforme catalogue ... MAJ « Exemple de session de mise-à-jour de prix ». ... Lancement d’une session interactive sur l’ IO

Réf : XA20710DTS079 Ed 1. - Rév. 13 Spécification technique détaillée Date 4 septembre 2009

59 / 140

XAT2

0710

DTS0

79 -

Ce do

cume

nt es

t pro

priét

é de E

TAI.

Tous

droit

s de r

epro

ducti

on et

/ou co

mmun

icatio

n rés

ervé

s.

9.3.8. Classification du véhicule Identification du véhicule pour pouvoir effectuer le chiffrage. Exemple :

<classification-vehicule code-origine="ETAI"> <list code-type="ClassificationElement"> <element-classification code="marque"> <valeur>133</valeur> <short-label>RENAULT</short-label> <long-label>RENAULT</long-label>

</element-classification> <element-classification code="modele"> <valeur>359</valeur> <short-label>Clio 1</short-label> <long-label>RENAULT CLIO I.</long-label>

</element-classification > <element-classification code="variante"> <valeur>7239</valeur> <short-label>Clio 3P 1.4l</short-label> <long-label>CLIO 3P 03.94 1.4i (57kW) -E7J_601- A3 à partir

de 1993-07 jusqu`à 1994-03 </long-label> </element-classification > </list >

<code-genre-boite>A</code-genre-boite> <nombre-rapport>5</nombre-rapport> <nombre-porte>5</nombre-porte> <cylindree code-unite="cm3">150</cylindree> <puissance-fiscale-list> <puissance-fiscale>7</puissance-fiscale>

</puissance-fiscale-list > <code-type-carburant-list> <code-type-carburant>Essence</code-type-carburant>

</code-type-carburant-list > <admin-ref-list> <admin-ref code-type="TypeMines">C57205</admin-ref> <admin-ref code-type ="TypeMines">C57205A</admin-ref> <admin-ref code-type ="CNIT">cnit3</admin-ref> <admin-ref code-type ="VIN">456789</admin-ref> <admin-ref code-type ="VIN">556789</admin-ref> <admin-ref code-type ="TypeMoteur">E7J_7</admin-ref>

</admin-ref-list > <code-langue>fr</code-langue> </classification-vehicule>

classification-vehicule

O Identification du véhicule qui permet d'effectuer le chiffrage

1

Champ A T M E D Description V code-origine x A M E organisme émetteur de la classification véhicule 1 list L Liste d’éléments de classification

liste de type « ClassificationElement » 1

code-genre-boite A E Genre de la boite cf. annexe 1

nombre-rapport I Nombre de rapport à la boite, 4, 5, 6,… 1

nombre-porte I Nombre de portes 1

Page 68: Plateforme catalogue – API HTTP XAT2€¦ · Plateforme catalogue ... MAJ « Exemple de session de mise-à-jour de prix ». ... Lancement d’une session interactive sur l’ IO

Réf : XA20710DTS079 Ed 1. - Rév. 13 Spécification technique détaillée Date 4 septembre 2009

60 / 140

XAT2

0710

DTS0

79 -

Ce do

cume

nt es

t pro

priét

é de E

TAI.

Tous

droit

s de r

epro

ducti

on et

/ou co

mmun

icatio

n rés

ervé

s.

cylindree (mesure) H cylindrée du véhicule un objet cylindree est un objet mesure

1

puissance-fiscale-list L Plusieurs puissances fiscales voir définition de puissance-fiscale dans vehicule

1

code-type-carburant-list

L Plusieurs types de carburants voir « Type de carburant » en annexe voir définition de code-type-carburant dans vehicule

1

admin-ref-list L Plusieurs VIN, CNIT, Types mines, type moteur 1 code-langue A E langue dans laquelle ont été écrits les libellés

Si omis, c’est le code-langue du shuttle qui s’applique

1

carossery A La carosserie 2 nbp I Le nombre de places 2 genre A Le genre du véhicule (correspond à la table 9027 de

d’Arva) 2

Il y a unicité des éléments de classification, jusqu’au niveau le plus bas renseigné. En pratique, une classification peut donc contenir plusieurs versions dans une même variantes, ou plusieurs variantes dans un même modèle. Dans le cas où un élément est représenté plusieurs fois (p.ex. plusieurs variantes), les éléments de niveau inférieur (versions) ne doivent pas être présents, et seront de toutes façons ignorés. Pour représenter un ensemble de versions appartenant à plusieurs variantes (appartenant éventuellement à plusieurs modèles), il faut cumuler plusieurs classifications de véhicules. Flux demande d’une identification véhicule : Lorsque le DMS demande une identification auprès de IO, il crée un shuttle de type IdentificationVehicule. L’objet classification-vehicule peut déjà être renseigné avec des éléments de classification ETAI pour permettre à IO de positionner l’utilisateur dans un niveau de l’arborescence de sélection d’un véhicule. IO retourne une seule classification de véhicule jusqu’au plus bas niveau accepté par IO. Le véhicule sélectionné par l’utilisateur peut être différent de celui initial.

Comportement attendu du DMS : - fournir ou non un début de classification véhicule (un seul objet classification-vehicule) et un seul élément de classification par type. - prendre en compte la classification véhicule retournée par IO qui peut être totalement différente de celle fournie au départ.

Comportement attendu du IO : - prendre en compte au mieux la classification donnée par le DMS. - En retour, fournir une seule classification véhicule complète jusqu’au plus bas niveau accepté par IO et un seul élément de classification par type.

9.3.8.1. element-classification

Un élément de classification du véhicule. element-classification O Un élément de classification 1 Champ A T M E D Description V code x A M E pour une classification ETAI voir les codes

hiérarchiques en annexe 1

valeur A M valeur de l’élément au niveau spécifié 1

Page 69: Plateforme catalogue – API HTTP XAT2€¦ · Plateforme catalogue ... MAJ « Exemple de session de mise-à-jour de prix ». ... Lancement d’une session interactive sur l’ IO

Réf : XA20710DTS079 Ed 1. - Rév. 13 Spécification technique détaillée Date 4 septembre 2009

61 / 140

XAT2

0710

DTS0

79 -

Ce do

cume

nt es

t pro

priét

é de E

TAI.

Tous

droit

s de r

epro

ducti

on et

/ou co

mmun

icatio

n rés

ervé

s.

short-label A Maximum 64 caractères. 1 long-label A Le libellé 1 classification-list L Liste de classifications de véhicule

Ces classifications sont immédiatement inférieures à cet élément de classification.

2

9.3.9. Les opérations L’opération est l’objet élémentaire qui constitue le devis. On distingue les opérations complexes et les opérations élémentaires. Ce paragraphe est applicable aux deux types. Une opération est unique à son niveau : dans une opération complexe (resp. un devis), les opérations de niveau immédiatement inférieur ont des références différentes. L’opération n’a pas d’identifiant absolu dans le domaine, mais la règle précédente permet d’identifier une opération dans un devis pas la hiérarchie des références des opérations la contenant. Les opérations sont toujours créées et modifiées par le IO : il est illicite de modifier la liste des opérations d’un devis dans le DMS. En version 2 du protocole, le DMS pourra demander au IO la suppression d’une opération de plus haut niveau (complexe ou élémentaire) de façon quantique (tout ou rien). Exemple : <operations>

<prix-list /> <temps-list />

<operation-complexe-list />

</operations>

Une opération complexe est, elle-même, constituée d’une liste d’opérations complexes et d’opérations élémentaires. L’opération élémentaire est le plus petit grain auquel est associé un temps. Elle n’a pas d’identifiant unique propre dans le domaine. Une opération élémentaire est caractérisée par une référence qui est toujours fournie par le IO. L’opération élémentaire est constituée d’une ou plusieurs pièces, d’une liste d’intervention et d’une action. A une opération élémentaire est obligatoirement attachée un libellé. Pour décrire un travail, on créera une opération complexe de type « Standard ». Pour décrire une opération sur une pièce, on créera une opération simple dans cette opération complexe. Cette opération simple contiendra une ou plusieurs descriptions de pièces et la liste des temps appliqués à ces pièces. Pour décrire une vente de pièces auxquelles ne sont appliquées aucun temps, ces pièces ne seront pas décrites dans la structure opérations mais dans la liste de type « Pièces » Pour décrire un forfait, on créera une opération complexe de type « Forfait »

Page 70: Plateforme catalogue – API HTTP XAT2€¦ · Plateforme catalogue ... MAJ « Exemple de session de mise-à-jour de prix ». ... Lancement d’une session interactive sur l’ IO

Réf : XA20710DTS079 Ed 1. - Rév. 13 Spécification technique détaillée Date 4 septembre 2009

62 / 140

XAT2

0710

DTS0

79 -

Ce do

cume

nt es

t pro

priét

é de E

TAI.

Tous

droit

s de r

epro

ducti

on et

/ou co

mmun

icatio

n rés

ervé

s.

Pour décrire une consigne/déconsigne, on créera une opération complexe de type « Consigne/Déconsigne » Pour décrire un retraitement de déchets, on créera une opération complexe de type « Retraitement » Un temps divers ou un temps local au garage ont comme particularité de ne pas être appliqués à une pièce. On créera une opération complexe de type « standard ». L’opération simple décrira ce temps de main d’oeuvre. Opération sans pièce (temps local au garage ou temps divers):

Pour décrire une opération élémentaire qui ne possède qu’un temps, par exemple « essai routier ». La pièce présente aura l’attribut applicable= « false»

Exemple :

<operation-complexe ref-etai ="ETAI-op1235" code-type="Standard"> <ref-alternative-list /> <short-label>essai routier</ short-label> <temps-list/> <prix-list/> <operation-elementaire-list> <operation-elementaire ref-etai ="ETAI-O1"> <intervention-list> <intervention code="2" /> </intervention-list>

<ref-alternative-list/> <short-label >Essai routier</ short-label> <temps-list> <temps ref-interne-taux-mo ="1" code-unite="h"> < ref-interne-taux-tva >1</ ref-interne-taux-tva > <intervention code="1"/> <duree>0.5</duree> </temps> </temps-list>

<prix-list/> <list code-type="Pieces"> <piece ref-interne-piece =" " applicable="false"/> </list> </operation-elementaire> </operation-elementaire-list> </operation-complexe>

Opération sur une pièce qui ne nécessite pas l’achat de la pièce : Beaucoup d’opérations ne nécessitent pas l’achat d’une pièce (exemple : redressage du capot). Une pièce non vendue peut être décrite par un objet piece dans lequel on précise la référence ref-interne-piece qui indiquera la pièce concernée dans la liste de pièces. La quantité de la pièce ne doit pas être indiquée dans cette pièce de l’opération simple. Forfaits:

Description d’un forfait sans pièce et sans temps: o Le forfait est une opération complexe. o Le type de l’opération complexe est « Forfait »

Page 71: Plateforme catalogue – API HTTP XAT2€¦ · Plateforme catalogue ... MAJ « Exemple de session de mise-à-jour de prix ». ... Lancement d’une session interactive sur l’ IO

Réf : XA20710DTS079 Ed 1. - Rév. 13 Spécification technique détaillée Date 4 septembre 2009

63 / 140

XAT2

0710

DTS0

79 -

Ce do

cume

nt es

t pro

priét

é de E

TAI.

Tous

droit

s de r

epro

ducti

on et

/ou co

mmun

icatio

n rés

ervé

s.

o Il n’a pas d’opération complexe ni élémentaire o Il n’a pas de temps, pas de pièce (applicable=false) o Les prix de nature « forfait », « forfait mo » « forfait pièces » et « forfait pièces et mo »

sont décrits dans l’objet opération complexe

Description d’un forfait sans pièce mais avec un ou plusieurs temps : o Le forfait est une opération complexe. o Le type de l’opération complexe est « Forfait » o Il ne possède pas d’opération complexe o Il possède une opération élémentaire o Il a un temps ou plusieurs temps, mais pas de pièce (applicable=false) o Les prix de nature « forfait », « forfait MO » « forfait pièces » et « forfait pièces et

MO » sont décrits dans l’objet opération complexe

Description d’un forfait dans lequel est décrit une pièce : o Le forfait est une opération complexe. o Le type de l’opération complexe est « Forfait » o Il ne possède pas d’opération complexe o Il possède une opération élémentaire o Il a un temps ou plusieurs temps, et une pièce o Les prix de nature « forfait », « forfait MO » « forfait pièces » et « forfait pièces et

MO » sont décrits dans l’objet opération complexe

Description d’un forfait dans lequel sont décrites plusieurs pièces :

o Le forfait est une opération complexe. o Le type de l’opération complexe est « Forfait » o Il ne possède pas d’opération complexe o Il possède une opération élémentaire pour chaque pièce

Chacune peut posséder un ou plusieurs temps o Il peut posséder une opération élémentaire qui a un ou plusieurs temps sans pièce

(applicable=false) o Les prix de nature « forfait », « forfait MO » « forfait pièces » et « forfait pièces et

MO » sont décrits dans l’objet opération complexe

Exemples de forfait :

<!-- Un forfait sans description de pièce ni main d'oeuvre--> <operation-complexe ref-etai="etai_F1" code-type="Forfait"> <prix-list> <prix code-payeur="Public" total="false"> <code-nature>Forfait</code-nature> <valeur code-type="HT">100</valeur> </prix> </prix-list> <operation-elementaire-list>

<operation-elementaire ref="etai_f1_e1"> <prix-list> <prix code-payeur="Public"> <code-nature>FP</code-nature> <valeur-list> <valeur code-type="HT">20</valeur> </valeur-list> </prix>

<prix code-payeur="Public"> <code-nature>FMO</code-nature> <valeur-list> <valeur code-type="HT">30</valeur>

Page 72: Plateforme catalogue – API HTTP XAT2€¦ · Plateforme catalogue ... MAJ « Exemple de session de mise-à-jour de prix ». ... Lancement d’une session interactive sur l’ IO

Réf : XA20710DTS079 Ed 1. - Rév. 13 Spécification technique détaillée Date 4 septembre 2009

64 / 140

XAT2

0710

DTS0

79 -

Ce do

cume

nt es

t pro

priét

é de E

TAI.

Tous

droit

s de r

epro

ducti

on et

/ou co

mmun

icatio

n rés

ervé

s.

</valeur-list> </prix>

<prix code-payeur="Public"> <code-nature>FPMO</code-nature> <valeur-list> <valeur code-type="HT">50</valeur> </valeur-list> </prix> </prix-list> </operation-elementaire> </operation-elementaire-list> </operation-complexe>

<!-- Un forfait avec une description de pièce -->

<operation-complexe ref-etai="etai_F2" code-type="Forfait"> <prix-list> <prix code-payeur="Public" total="false" > <code-nature>Forfait</code-nature> <valeur code-type="HT">85.2</valeur> </prix> </prix-list>

<operation-elementaire ref-etai="etai_f2_e1"> <list code-type="Pieces"> <piece ref-interne-shuttle ="1" > <quantite-demandee>3</ quantite-demandee> </piece> </list> <prix-list>

<prix code-payeur="Public"> <code-nature>FP</code-nature> <valeur-list> <valeur code-type="HT">30.2</valeur> </valeur-list> </prix>

<prix code-payeur="Public" total="false" > <code-nature>FMO</code-nature> <valeur-list> <valeur code-type="HT">25</valeur> </valeur-list> </prix>

<prix code-payeur="Public" total="false"> <code-nature>FPMO</code-nature> <valeur-list> <valeur code-type="HT">30</valeur> </valeur-list> </prix> </prix-list> </operation-elementaire> </operation-complexe> <!-- Un forfait avec une main d'oeuvre -->

<operation-complexe ref-etai="etai_F3" code-type="Forfait"> <prix-list>

<prix code-payeur="Public" total="false">

Page 73: Plateforme catalogue – API HTTP XAT2€¦ · Plateforme catalogue ... MAJ « Exemple de session de mise-à-jour de prix ». ... Lancement d’une session interactive sur l’ IO

Réf : XA20710DTS079 Ed 1. - Rév. 13 Spécification technique détaillée Date 4 septembre 2009

65 / 140

XAT2

0710

DTS0

79 -

Ce do

cume

nt es

t pro

priét

é de E

TAI.

Tous

droit

s de r

epro

ducti

on et

/ou co

mmun

icatio

n rés

ervé

s.

<code-nature>Forfait</code-nature> <valeur-list>

<valeur code-type="HT">42</valeur> </valeur-list> </prix> </prix-list> </operation-complexe>

Retraitements de déchets:

Plusieurs retraitements de déchets peuvent exister dans le Shuttle. Pour décrire un retraitement des déchets :

o C’est une opération complexe o Le type de l’opération complexe est « Retraitement » o Il n’a pas d’opération o Il n’a pas de temps ni de pièce o Le prix est celui de l’opération complexe o Il peut être associé à une ou plusieurs références de pièces. Chaque opération

élémentaire ne contiendra que l’élément « piece » qui ne sera constitué que d’une référence et d’un libellé.

Consigne/Déconsigne:

Plusieurs consigne/ déconsigne peuvent exister dans le Shuttle.

Pour décrire une consigne/ déconsigne o C’est une opération complexe o Le type de l’opération complexe est « Consigne/Déconsigne » o Il n’a pas de temps o Il peut être associé à une ou plusieurs références de pièces. Une opération

élémentaire ne contiendra que l’objet piece. L’objet piece ne sera constitué que d’une référence interne et d’une quantité.

o Le prix de la consigne est décrit dans l’opération complexe mais ce prix n’est pas à ajouter au total du shuttle

o La TVA indiquée dans l’objet prix de l’opération complexe sera ajoutée au total TVA du shuttle

Exemple de consigne/déconsigne :

<!-- Consigne - déconsigne --> <operation-complexe ref-etai="etai-c2" code-type="Consigne"> <ref-alternative/> < short-label>Une consigne</ short-label> <temps-list/> <prix code-payeur="Public"> <code-nature>Consigne</ code-nature > <prix-list> <valeur-list> <valeur code-type="HT">100</valeur> <valeur code-type="TTC">150.00</valeur> <valeur code-type="TTC ">5.00</valeur> </valeur-list> < ref-interne-taux-tva >1</ ref-interne-taux-tva > </prix-list> </prix>

Page 74: Plateforme catalogue – API HTTP XAT2€¦ · Plateforme catalogue ... MAJ « Exemple de session de mise-à-jour de prix ». ... Lancement d’une session interactive sur l’ IO

Réf : XA20710DTS079 Ed 1. - Rév. 13 Spécification technique détaillée Date 4 septembre 2009

66 / 140

XAT2

0710

DTS0

79 -

Ce do

cume

nt es

t pro

priét

é de E

TAI.

Tous

droit

s de r

epro

ducti

on et

/ou co

mmun

icatio

n rés

ervé

s.

<operation-elementaire ref-etai ="etai-e2"> <list code-type="Pieces"> <piece ref-interne-shuttle ="1" /> <piece ref-interne-shuttle ="2" /> </list code-type> </operation-elementaire> </operation-complexe>

Peinture:

Pour décrire une peinture sur une pièce o Les temps de peinture de l’opération élémentaire sont appliqués à la pièce de cette

opération élémentaire. Main d’œuvre sur plusieurs pièces

Pour décrire un temps de main d’oeuvre appliqué à plusieurs pièces. o Le type de l’opération complexe est « Standard » o Le temps est indiqué dans l’opération simple. o Ce temps représente un temps supplémentaire (total=false) o Il suffit de décrire chaque pièce dans l’opération simple avec uniquement sa référence

interne au shuttle et la quantité nécessaire.

Pour décrire un temps de peinture appliqué à plusieurs pièces. o Le type de l’opération complexe est « Standard » o Le temps est indiqué dans l’opération simple. o Ce temps représente un temps supplémentaire (total=false) o La peinture est appliquée à toute pièce de carrosserie de l’opération simple. o Il suffit de décrire chaque pièce dans l’opération simple avec uniquement sa référence

interne au shuttle et la quantité nécessaire. .

Petite fourniture : Une petite fourniture est une pièce locale au garage. Elle ne sera associée à aucun temps. La référence et le code fournisseur ne sont pas nécessairement renseignés. <list code-type="Pieces">

<!-- Une petite fourniture --> <piece ref-interne-shuttle ="1" ref-etai="pf0011" ref-supplier-etai =""

code-type="PF"> <label>un bidon d'huile</label> <quantite-demandee>2</ quantite-demandee > <prix code-payeur="P"> <valeur code-type="HT-Unitaire">20.0</valeur> <valeur code-type="HT">40.0</valeur> </prix> </piece> </ list>

Décrire une opération pour laquelle existent des opérations supplémentaires. Prenons une opération « remplacer le moteur » qui prend 15h. Si un climatiseur est présent, l’opération « démonter un climatiseur » qui prend 1h doit être ajoutée à l’opération « remplacer le moteur». Il s’agit d’une opération dite ‘opération supplémentaire’ lié à la première opération dite ‘opération principale’. L’opération supplémentaire est réalisée dans le contexte de l’opération principale et prend moins de temps que lorsqu’elle est réalisée seule.

Page 75: Plateforme catalogue – API HTTP XAT2€¦ · Plateforme catalogue ... MAJ « Exemple de session de mise-à-jour de prix ». ... Lancement d’une session interactive sur l’ IO

Réf : XA20710DTS079 Ed 1. - Rév. 13 Spécification technique détaillée Date 4 septembre 2009

67 / 140

XAT2

0710

DTS0

79 -

Ce do

cume

nt es

t pro

priét

é de E

TAI.

Tous

droit

s de r

epro

ducti

on et

/ou co

mmun

icatio

n rés

ervé

s.

L’opération principale est une opération complexe. Elle contiendra une ou plusieurs opérations élémentaires. Les opérations supplémentaires seront décrites dans une ou plusieurs opérations complexes contenues dans l’opération principale. Exemple :

<!-- operation qui comporte des operations supplementaires --> <list code-type="Pieces">

<piece ref-interne-shuttle ="1" ref-etai="moteur" ref-supplier-etai ="120" /> <piece ref-interne-shuttle ="2" ref-etai="clim" ref-supplier-etai ="100" /> </list>

<operation-complexe ref-etai="ETAI-0213" code-type="Standard"> <ref-alternative/> <short-label>Remplacement moteur</short-label> <temps-list/> <prix-list/> <operation-elementaire-list> <operation-elementaire ref-etai="ETAI-E1"> <intervention-list> <intervention code="2" /> </intervention-list>

<short-label>Depose du moteur</short-label> <temps-list> <temps ref-interne-taux-mo ="1" code-unite="h"> < ref-interne-taux-tva >1</ ref-interne-taux-tva > <intervention code="23"/> <duree>0.5</duree>

</temps> </temps-list>

<prix-list/> <piece-list> <piece ref-interne-shuttle ="1" />

</piece-list> </operation-elementaire> </operation-elementaire-list> <operation-complexe-list>

<operation-complexe ref-etai="ETAI-C2" code-type="Standard"> <ref-alternative/> <short-label>operations supplementaires</short-label> <long-label/> <temps-list/> <prix-list/> <operation-elementaire-list> <operation-elementaire ref-etai="ETAI-E2"> <intervention-list> <intervention code="Depose" /> </intervention-list>

Page 76: Plateforme catalogue – API HTTP XAT2€¦ · Plateforme catalogue ... MAJ « Exemple de session de mise-à-jour de prix ». ... Lancement d’une session interactive sur l’ IO

Réf : XA20710DTS079 Ed 1. - Rév. 13 Spécification technique détaillée Date 4 septembre 2009

68 / 140

XAT2

0710

DTS0

79 -

Ce do

cume

nt es

t pro

priét

é de E

TAI.

Tous

droit

s de r

epro

ducti

on et

/ou co

mmun

icatio

n rés

ervé

s.

<short-label>Demonter climatiseur</short-label> <temps-list> <temps ref-interne-taux-mo="1" code-unite="h"> <ref-interne-taux-tva>1</ref-interne-taux-tva> <intervention-list> <intervention code="Depose"/> </ intervention-list > <duree>0.5</duree> </temps> </temps-list>

<prix-list /> <list code-type="Pieces">

<piece ref-interne-shuttle ="2" /> </list> </operation-elementaire> </operation-elementaire-list> </operation-complexe> </operation-complexe-list> </operation-complexe>

Décrire un éclatement de temps : On parle d’éclatement de temps dès qu’une opération est associée à plusieurs temps. Chaque temps d’une opération de niveau inférieur est dit «éclatement de temps » L’opération de niveau supérieur est une opération complexe. Chaque éclatement de temps sera décrit dans une opération élémentaire de l’opération complexe ou dans la même opération élémentaire. On pourra indiquer un libellé pour chaque opération élémentaire. Une opération complexe représente un éclatement de temps dès qu’elle comporte plusieurs opérations élémentaires ou si plusieurs temps sont décrits dans une même opération élémentaire. Si un éclatement de temps possède des sous temps, L’éclatement de temps sera cette fois décrit dans l’opération simple d’une opération complexe au lieu d’être décrit directement dans une opération simple. Le sous-temps sera décrit dans une opération complexe au même niveau que cette opération simple. Si un sous temps doit être décrit par des éclatements de temps, le sous temps devra être décrit dans une opération élémentaire contenue dans une nouvelle opération complexe au lieu d’être décrit directement dans une opération élémentaire.

Ordre des opérations: L’ordre des opérations élémentaires est celui dans l’ordre d’apparition dans le XML. Dans le cas où le DMS modifie l’ordre des opérations, celui-ci engage sa responsabilité. Exemple :

<operations> <operation-complexe-list /> <operation-complexe ref-etai="ETAI_001" type="Standard"> <prix-list /> <ref-alternative /> <short-label>Remplacement d'un clignotant</short-label> <long-label />

Page 77: Plateforme catalogue – API HTTP XAT2€¦ · Plateforme catalogue ... MAJ « Exemple de session de mise-à-jour de prix ». ... Lancement d’une session interactive sur l’ IO

Réf : XA20710DTS079 Ed 1. - Rév. 13 Spécification technique détaillée Date 4 septembre 2009

69 / 140

XAT2

0710

DTS0

79 -

Ce do

cume

nt es

t pro

priét

é de E

TAI.

Tous

droit

s de r

epro

ducti

on et

/ou co

mmun

icatio

n rés

ervé

s.

<temps-list /> <operation-elementaire-list > <operation-elementaire ref-etai="ETAI_0002"> … </operation-elementaire>

</operation-elementaire-list >

<operation-complexe-list /> </operation-complexe> </operation-complexe-list> <prix-list >

<prix total="true"> … </prix>

</prix-list> <temps-list >

<temps code-unite="min">

… </temps>

</temps-list > </operations> operations O L'ensemble des opérations 1 Champ A T M E D Description V operation-complexe-list L Liste d’opérations complexes 1 prix-list L M totaux de synthèse concernant les prix de main

d’œuvre. 1

temps-list L ventilation des temps 1

9.3.9.1. operation-complexe

Exemple :

<operation-complexe ref-etai="ETAI_001" code-type="Standard"> <prix-list /> <ref-alternative-list /> <short-label>Remplacement d'un clignotant</short-label> <long-label /> <temps-list /> <operation-elementaire-list />

<operation-elementaire ref-etai="ETAI_0002"> … </operation-elementaire>

</operation-elementaire-list>

<operation-complexe-list /> </operation-complexe>

Page 78: Plateforme catalogue – API HTTP XAT2€¦ · Plateforme catalogue ... MAJ « Exemple de session de mise-à-jour de prix ». ... Lancement d’une session interactive sur l’ IO

Réf : XA20710DTS079 Ed 1. - Rév. 13 Spécification technique détaillée Date 4 septembre 2009

70 / 140

XAT2

0710

DTS0

79 -

Ce do

cume

nt es

t pro

priét

é de E

TAI.

Tous

droit

s de r

epro

ducti

on et

/ou co

mmun

icatio

n rés

ervé

s.

operation-complexe O Une opération complexe 1 Champ A T M E D Description V ref-etai x A Référence ETAI ; obligatoire dans la version 1 1 code-type x A M E Standard opération cf. « types d’opération complexe » 1 impact-id I L’id du choc, si présent, la balise <impact-

list> du shuttle est obligatoire et cet id s’applique à toutes les opérations incluses dans cette opération complexe

2

prix-list L M totaux de synthèse de cette opération complexe 1 ref-alternative-list L liste de références correspondant à l’opération

complexe dans un référentiel alternatif 1

short-label A M Descriptif court de l’opération 64 caractères

1

long-label A Descriptif long 1 temps-list L Temps qui contiennent la somme des temps de

niveau inférieur Ces temps ont is-total à true

1

list O Liste de type « Pieces » Les pièces utilisées pour cette opération élémentaire cf. objet piece ; ici on peut utiliser juste l’ID, et mettre la pièce complète dans la liste du shuttle

1

label-list O Liste de libellés 1 operation-complexe-list L Liste d’opérations complexes 1 operation-elementaire-list

L Liste d’opérations simples 1

franchise-id I L’ID de la franchise applicable ; si présent, la balise <franchise-list> du shuttle est obligatoire

2

paint-class I La classe de la peinture (1 = peinture neuve, …, 5 = revoilage)

2

La référence ETAI n’est plus obligatoire à partir de la version 2 du protocole car certaines opérations (consigne, retraitement de déchets,…) ne l’ont pas.

9.3.9.2. operation-elementaire

Exemple :

<operation-elementaire ref-etai="ETAI_0002"> <intervention-list>

<intervention code="2" /> <intervention code="3" />

</intervention-list> <ref-alternative-list /> <list code-type="Pieces">

<piece ref-interne-shuttle ="1" > … <piece /> </list> <temps-list> <temps ref-interne-taux-mo="1" code-unite="min">

… </temps>

Page 79: Plateforme catalogue – API HTTP XAT2€¦ · Plateforme catalogue ... MAJ « Exemple de session de mise-à-jour de prix ». ... Lancement d’une session interactive sur l’ IO

Réf : XA20710DTS079 Ed 1. - Rév. 13 Spécification technique détaillée Date 4 septembre 2009

71 / 140

XAT2

0710

DTS0

79 -

Ce do

cume

nt es

t pro

priét

é de E

TAI.

Tous

droit

s de r

epro

ducti

on et

/ou co

mmun

icatio

n rés

ervé

s.

<temps ref-interne-taux-mo ="1" code-unite="h"> … </temps> </temps-list>

</operation-elementaire>

operation-elementaire

O Une opération élémentaire 1

Champ A T M E D Description V ref-etai x A Référence ETAI; obligatoire dans la version 1 1 intervention-list L M liste des codes d’interventions contenus dans l’opération.

(Pose, dépose,..) cf. «Liste des Interventions »

1

prix-list L Plusieurs prix indiquent les totaux de cette opération élémentaire.

1

ref-alternative-list

L liste de références correspondant à l’opération élémentaire dans un référentiel alternatif

1

short-label A M Descriptif court de l’opération, destiné aux affichages synthétiques (maximum 64 caractères)

1

long-label A Descriptif long ou précisions sur l’opération (opérations implicitement contenues, précisions d’applicabilité, exclusion, etc.)

1

temps-list L Liste des temps de l’opération élémentaire appliqués à toutes les pièces de cette opération élémentaire

1

label-list O Liste de libellés 1 list O Liste de type « Pieces »

Les pièces utilisées pour cette opération élémentaire cf. objet piece ; ici on peut utiliser juste l’ID, et mettre la pièce complète dans la liste du shuttle

1

franchise-id I L’ID de la franchise applicable ; si présent, la balise <franchise-list> du shuttle est obligatoire C'est la franchise appliquée à la main d'œuvre de cette opération. (les pièces peuvent être associées à une autre franchise)

2

La référence ETAI n’est plus obligatoire à partir de la version 2 du protocole car certaines opérations (consigne, retraitement de déchets,…) ne l’ont pas.

9.3.9.3. Intervention

intervention O Une intervention 1 Champ A T M E D Description V code x A M E code de l’intervention (Pose, dépose,..)

cf. «Liste des Interventions » 1

code-contexte-list

L Code du contexte de l’intervention (n’est pas inclus dans la version 1 du protocole) cf. liste des contextes d’intervention

?

short-label A Libellé de l’intervention en toute lettre (maximum 64 caractères)

1

long-label Description de l'intervention 1

Page 80: Plateforme catalogue – API HTTP XAT2€¦ · Plateforme catalogue ... MAJ « Exemple de session de mise-à-jour de prix ». ... Lancement d’une session interactive sur l’ IO

Réf : XA20710DTS079 Ed 1. - Rév. 13 Spécification technique détaillée Date 4 septembre 2009

72 / 140

XAT2

0710

DTS0

79 -

Ce do

cume

nt es

t pro

priét

é de E

TAI.

Tous

droit

s de r

epro

ducti

on et

/ou co

mmun

icatio

n rés

ervé

s.

9.3.10. Pièce Une pièce peut être une petite fourniture, une pièce de mécanique ou de carrosserie ou un ingrédient. A l’aide l’objet « piece », on pourra également effectuer une recherche de pièce auprès de IO. Exemple :

<piece ref-interne-shuttle="1" ref-etai="1256,8abc:1" ref-supplier-etai="1000"> <reference-simplifiee>12568ABC1</reference-simplifiee> < label-alternative-list > <label code-origine="ETAI" >Clignotant</label> </label-alternative-list > <code-position>Right</code-position> <matiere>plastique</matiere> <mesure-list> <mesure code-unite="m2">0.1</mesure> </mesure-list> <quantite-demandee>4</quantite-demandee> <conditionnement multiple="2" /> <disponibilite-list> … </disponibilite-list>

<prix-list> … </prix-list>

<list code-type="PiecesRemplacement"> <piece /> </list> <code-element-etai>etai0507655</code-element-etai> </piece>

piece O une piece, une petite fourniture, un ingrédient

ou une pièce recherchée 1

Champ A T M E D Description V code-type x A E Piece Type de la pièce :

- Pièce - Petite Fourniture - Ingrédient - … cf. « types d’une pièce » en annexe

1

applicable x B true indique si l’objet « piece » est applicable ou non. true par défaut

1

ref-supplier-etai x A E voir « liste des fournisseurs » (1) Ce champ correspond à ref-etai dans l’objet Supplier.

1

short-label-supplier A Le libellé court du fournisseur 1 long-label-supplier A Libellé qui décrit le fournisseur

Ce champ est utile uniquement si le libellé de l’équipementier est plus précis que celui de la liste. Il ne doit pas être en contradiction avec la référence du fournisseur. (ref-supplier-etai).

1

Page 81: Plateforme catalogue – API HTTP XAT2€¦ · Plateforme catalogue ... MAJ « Exemple de session de mise-à-jour de prix ». ... Lancement d’une session interactive sur l’ IO

Réf : XA20710DTS079 Ed 1. - Rév. 13 Spécification technique détaillée Date 4 septembre 2009

73 / 140

XAT2

0710

DTS0

79 -

Ce do

cume

nt es

t pro

priét

é de E

TAI.

Tous

droit

s de r

epro

ducti

on et

/ou co

mmun

icatio

n rés

ervé

s.

Le DMS est censé connaître chaque libellé pour chaque ref-supplier-etai. La liste des fournisseurs doit être connue.

ref-etai x A (2) pour les type Pièce et Petites Fournitures : Référence complète. Contient les caractères spéciaux sauf guillemet

1

ref-interne-piece x I (2) Il s’agit de la référence interne au document xml. La référence interne est nécessaire si l’on souhaite faire référence à cette pièce ailleurs dans le shuttle

1

ref-simplifiee-etai A Référence ETAI (ref-etai) transformée en majuscule. Les caractères spéciaux sont enlevés. Il ne reste que les caractères 0-9A-Z

1

ref-alternative-list L liste de références correspondant à la pièce dans un référentiel alternatif

1

label-alternative-list

A Liste de libellés de la pièce 1

code-nature A E nature de la pièce ‘M’ mécanique ‘C’ carrosserie cf. Nature de la pièce en annexe

1

code-position A E voir « liste des positions » en annexe 1 ref-interne-taux-mo I Index dans ce shuttle du taux de MO associé à cet

ingrédient Uniquement renseigné si la pièce est de nature ingrédient

1

ref-interne-taux-tva I Indice dans ce shuttle du taux de la TVA associé à la pièce

1

code-type-peinture A E type de peinture de l’ingrédient voir type de peinture en annexe Uniquement renseigné si la pièce est de nature ingrédient

1

ingredient-vernis B indique si le vernis est appliqué Uniquement renseigné si la pièce est de nature ingrédient

1

ingredient-nombre-couches

I Nombre de couches nécessaires pour l’ingrédient Uniquement renseigné si la pièce est de nature ingrédient Habituellement le nombre de couches est 1, 2 ou 3.

1

ingredient-abattement-deduit

B true true si l’abattement est pris en compte avant de calculer la quantité d’ingrédient

1

ingredient-pec-deduite

B true true si la prise en charge est déduite du temps peinture avant de calculer la quantité d’ingrédient

1

ingredient-supplement-compris

B true true si le supplément peinture est ajouté au temps peinture avant de calculer la quantité d’ingrédient

1

matiere A matière de la pièce (plastique / métal /…) 1 vetuste % Pourcentage de vétusté de la pièce 1 securite B Indique s’il s’agit d’une pièce de sécurité ou non

Non par défaut. 1

mesure-list L mesure pour indiquer la surface de la pièce, le poids de la pièce, le volume de la pièce

1

quantite-demandee

O quantité demandée 1

conditionnement O Le conditionnement indique si la pièce est vendue à l’unité ou en lots Si le conditionnement n’est pas indiqué, la pièce peut être vendue à l’unité

1

Page 82: Plateforme catalogue – API HTTP XAT2€¦ · Plateforme catalogue ... MAJ « Exemple de session de mise-à-jour de prix ». ... Lancement d’une session interactive sur l’ IO

Réf : XA20710DTS079 Ed 1. - Rév. 13 Spécification technique détaillée Date 4 septembre 2009

74 / 140

XAT2

0710

DTS0

79 -

Ce do

cume

nt es

t pro

priét

é de E

TAI.

Tous

droit

s de r

epro

ducti

on et

/ou co

mmun

icatio

n rés

ervé

s.

disponibilite-list L Disponibilité (l'application ETAI ne gère qu’une seule disponibilité pour l'instant)

1

prix-list L liste de prix tels que les prix unitaires 1 list O liste de pièces de remplacement

Liste de type « PiecesRemplacement »

1

valeur-list L Valeurs pour décrire un ingrédient : valeur-list contient des objets valeur de type suivant : - % supplément peinture - % abattement peinture - abattement en heure ou surface si cet abattement est fixe - supplément en heure ou surface si ce supplément est fixe - prise en charge

1

code-element-etai A Code ETAI pour préciser la pièce. Utilisé pour l’instant uniquement par les applications IO

1

impact-id I L’id du choc ; si présente, la balise impose l’existence de la balise <impact-list> où se trouve le choc avec cet id.

2

code-arcauto A Le code Arcauto 2 batch-nr A Le numéro/série du lot 2 franchise-id I L’ID de la franchise applicable 2 Si le code fournisseur ETAI n’est pas indiqué ou si la référence ETAI n’est pas indiquée, on considère que la pièce est une pièce locale au garage.

1) – l’attribut ref-supplier-etai n’est obligatoire que si code-type = Piece. 2) – il faut avoir soit l’attribut ref-interne-piece soit l’attribut ref-etai.

Définir les pièces dans la liste de pièces du shuttle Chaque pièce est définie complètement une seule fois dans la liste des pièces (dans l’objet liste de type « pieces ») de l’objet shuttle. Pour chaque pièce est indiquée une référence interne au document XML. A chaque fois que dans le document XML, il est nécessaire d’indiquer un lien vers une pièce, on crée un objet piece avec la référence interne désirée. Pièce non vendue : Une pièce non vendue est une pièce sur laquelle on effectue une opération qui ne nécessite pas d’acheter cette pièce (exemple : redressage du capot). Les pièces qui ont une quantité à zéro ne sont pas vendues. Elles n’ont donc pas de structure prix. Les pièces d’un forfait ne sont pas vendues au client mais le garagiste peut acheter des pièces à son fournisseur. Ces pièces auront un prix d’achat garage mais pas de prix d’achat public. Pour définir un ingrédient, on utilise un objet piece. Une pièce de nature ingrédient doit apparaître pour chaque ingrédient différent. Pour chaque ingrédient :

On indique que la pièce est de type ingrédient (code-type=Ingredient) Un ingrédient n’a pas de fournisseur ni de ref-etai. (ref-supplier-etai non indiqué) on indique le taux de main d’oeuvre associé dans ref-interne-taux-mo. on indique son type de peinture (code-type-peinture), le nombre de couches appliquées

(ingredient-nombre-couches) et si le vernis est ajouté (ingredient-vernis).

Page 83: Plateforme catalogue – API HTTP XAT2€¦ · Plateforme catalogue ... MAJ « Exemple de session de mise-à-jour de prix ». ... Lancement d’une session interactive sur l’ IO

Réf : XA20710DTS079 Ed 1. - Rév. 13 Spécification technique détaillée Date 4 septembre 2009

75 / 140

XAT2

0710

DTS0

79 -

Ce do

cume

nt es

t pro

priét

é de E

TAI.

Tous

droit

s de r

epro

ducti

on et

/ou co

mmun

icatio

n rés

ervé

s.

Le taux de main d’œuvre associé doit exister dans la liste des taux de main d‘œuvre. Sa valeur de zone doit être « Ingredient ».

Les objets valeur permettent d’indiquer les pourcentages ou quantités fixes de prise en charge, supplément et abattement. Ces valeurs indiquent la méthode de calcul et des sommes à ajouter ou à retrancher une seule fois par ingrédient.

quantite-demandee indique la quantité d’ingrédient nécessaire au total en surface ou en temps ou en volume ou en poids. ingredient-abattement-deduit indique si l’abattement est appliqué avant de calculer la quantité d’ingrédient (note : cette information est importante pour un assureur). ingredient-pec-deduite indique si la prise en charge est déduite du temps peinture avant de calculer la quantité d’ingrédient. ingredient-supplement-compris indique si le supplément peinture est ajouté au temps peinture avant de calculer la quantité d’ingrédient

Pour associer un temps de peinture à un ingrédient particulier, on renseigne ref-interne-ingredient dans l’objet temps de type peinture. Il correspond à ref-interne-piece de l’ingrédient. Cohérence : Si les zones d’activité du tarif sont renseignées dans la structure taux-mo, l’ensemble doit être cohérent. Le taux de main d’œuvre doit être un taux d’ingrédient. Exemple de définition d’ingrédient :

<!--définition des ingrédients --> <list code-type="Pieces" >

<piece ref-interne-piece="1" ref-etai="3456" ref-supplier-etai ="123" code-type="Ingredient">

<applicable>true</applicable> <label-supplier></label-supplier> <label> Ingredient 1</label> <ref-simplifiee-etai>1244CZ3</ref-simplifiee-etai>

<ref-alternative-list /> <code-nature /> <code-position>Right</code-position> <code-type-peinture>Opaque</code-type-peinture> <ingredient-vernis>true</ingredient-vernis> <ingredient-nombre-couches>2</ingredient-nombre-couches> <ingredient-abattement-deduit>true</ingredient-abattement-deduit> <ingredient-pec-deduite>true</ingredient-pec-deduite> <ingredient-supplement-compris>true</ingredient-supplement-compris> <quantite code-unite="m2">10.5</quantite> <conditionnement multiple="1" />

<disponibilite />

<mesure-list > <mesure code-unite="m2">0.1</mesure> </mesure-list> <quantite code-unite="l">1.5</quantite> <code-type-peinture>1</code-type-peinture> <prix-list />

<valeur-list> <valeur code-type="HT" name="SupplementPeinture">37.1</valeur> <valeur code-type="HT" name ="SupplementPeinture"

expression ="Pourcentage">10.1</valeur> <valeur code-type="HT" name ="AbattementPeinture"

expression ="Pourcentage">7.2</valeur> <valeur code-type="HT" name ="AbattementPeinture">10.2</valeur>

Page 84: Plateforme catalogue – API HTTP XAT2€¦ · Plateforme catalogue ... MAJ « Exemple de session de mise-à-jour de prix ». ... Lancement d’une session interactive sur l’ IO

Réf : XA20710DTS079 Ed 1. - Rév. 13 Spécification technique détaillée Date 4 septembre 2009

76 / 140

XAT2

0710

DTS0

79 -

Ce do

cume

nt es

t pro

priét

é de E

TAI.

Tous

droit

s de r

epro

ducti

on et

/ou co

mmun

icatio

n rés

ervé

s.

<valeur code-type="HT" name ="PriseEnCharge">1225.23</valeur> </valeur-list> <code-element-etai>11321</ code-element-etai > </piece> </list>

Petite fourniture : Une petite fourniture est une pièce locale au garage. Le DMS n’a pas forcément connaissance de cette pièce. Une petite fourniture peut ne pas avoir de référence (ref-etai) ni de référence fournisseur (ref-supplier-etai). Exemple de Petite fourniture :

<list code-type="Pieces" > <piece ref-interne-piece ="1" ref-etai="pf0011" ref-supplier-etai =""

code-type="PF"> <label>un bidon d’huile</label> <quantite >2</quantite> <prix-list> <prix code-payeur="P"> <valeur-list> <valeur code-type="HT ">20.0</valeur> </valeur-list> </prix> </prix-list> </piece> </list>

Exemple de recherche de pièce :

<list code-type="Pieces" > <piece ref-interne-piece="1" ref-etai="3456" ref-supplier-etai ="" code-

type="RecherchePiece" </piece> </list>

Pour effectuer une recherche de pièce, il faut créer une liste de pièces dans laquelle ne se trouve qu’un seul objet piece. Le type de cet objet piece sera "RecherchePiece". Dans ref-etai, on indique la référence à rechercher. Elle peut être complète ou partielle. Pour initier la recherche, il faut créer un shuttle spécifique de recherche de pièce. Voir les type documents pour connaître le code-document à utiliser pour le shuttle.

9.3.11. Temps Temps de main d’œuvre. Exemple :

<temps ref-interne-taux-mo="1" code-unite="min"> <ref-interne-taux-tva>1</ref-interne-taux-tva> <code-secteur-activite >Mecanique</code-secteur-activite > <code-activite-list>

Page 85: Plateforme catalogue – API HTTP XAT2€¦ · Plateforme catalogue ... MAJ « Exemple de session de mise-à-jour de prix ». ... Lancement d’une session interactive sur l’ IO

Réf : XA20710DTS079 Ed 1. - Rév. 13 Spécification technique détaillée Date 4 septembre 2009

77 / 140

XAT2

0710

DTS0

79 -

Ce do

cume

nt es

t pro

priét

é de E

TAI.

Tous

droit

s de r

epro

ducti

on et

/ou co

mmun

icatio

n rés

ervé

s.

<code-activite>Electricite</code-activite> </code-activite-list> <intervention-list > <intervention code="1" /> <intervention-list/> <duree>1.0</duree> <code-constructeur>12386</code-constructeur > </temps>

temps O Un temps de Main d'oeuvre 1 Champ A T M E D Description V ref-interne-taux-mo x I M indice du Taux MO associé 1 code-unite x A E Unité de la durée

Voir en annexe « unités de mesure » Si omis, l’unité appliquée sera celle du shuttle (code-unite-temps)

1

ref-interne-taux-tva I 1 indice du Taux TVA associé Si omis, l’indice appliqué sera l’indice 1

1

ref-interne-ingredient I référence de l’ingrédient associé si le secteur d’activité est « Peinture » Il est obligatoire si plusieurs ingrédients sont décrits dans le document Elle correspond à ref-interne-piece de l’objet piece de type ingrédient

1

total B false ‘true’ si ce temps représente le total des temps des structures inférieures.

1

duree N M durée du temps 1 code-secteur-activite A E Carrosserie, Mécanique ou peinture

Voir liste des secteurs en annexe 1

code-activite-list L Liste de code-activite qui contient une valeur de l’énumération suivante : liste des activités en annexe (Electricité/Mécanique,…)

1

intervention-list L liste des codes d’interventions pour ce temps. (Pose, dépose,..) cf. «Liste des Interventions »

1

code-constructeur A Code constructeur du temps (1) Ce code n’est pas renseigné pour un temps total (total=true)

1

code-element-etai A Code de ce temps dans l’application IO. Utilisé uniquement par IO

1

pourc-abattement % Pourcentage d’abattement peinture appliqué à ce temps. peut être uniquement renseigné s’il s’agit d’un temps peinture (le secteur d’activité est peinture)

1

(1)Si le code constructeur est renseigné, cela signifie que la durée indiquée et l’unité de la durée sont celles données par le constructeur. Le temps est un temps dit « barémé ». Calcul des temps : Les temps qui ne sont pas des totaux (total = false) représentent des temps supplémentaires. Les temps totaux (total=true) représentent la somme des temps des niveaux inférieurs dans la hiérarchie du XML. On peut faire la somme de plusieurs temps uniquement s’ils ont le même taux de main d’œuvre et le même taux de TVA. Si le secteur d’activité est précisé, le temps représente le total dans ce secteur. Si l’ingrédient est précisé, le temps représente le total pour cet ingrédient.

Page 86: Plateforme catalogue – API HTTP XAT2€¦ · Plateforme catalogue ... MAJ « Exemple de session de mise-à-jour de prix ». ... Lancement d’une session interactive sur l’ IO

Réf : XA20710DTS079 Ed 1. - Rév. 13 Spécification technique détaillée Date 4 septembre 2009

78 / 140

XAT2

0710

DTS0

79 -

Ce do

cume

nt es

t pro

priét

é de E

TAI.

Tous

droit

s de r

epro

ducti

on et

/ou co

mmun

icatio

n rés

ervé

s.

9.3.12. Informations sur une pièce

9.3.12.1.Disponibilité

La disponibilité d’une pièce. Exemple : <disponibilite> <code-etat>Actif</code-etat>

<lieu-de-stock>Casier 1</lieu-de-stock> <quantite-list> <quantite code-type="Stock">2</quantite> <quantite code-type ="Reservee">1</quantite> <quantite code-type ="Commande">2</quantite> </quantite-list> <date code-type="Disponibilite" format="yyyy-MM-dd" /> <label>Cet article est disponible</label>

</disponibilite> disponibilite O La disponibilité d'une pièce 1 Champ A T M E D Description V code-origine A E Indique quel DMS a fourni cette disponibilité.

Les données possibles actuellement sont « DMS » et « ETAI »

1

code-etat A M E Actif cf. ‘liste des codes état’ en annexe Si la référence de la pièce est transcodée ou remplacée, le stock des pièces de transcodage ou de remplacement sont indiquées dans la structure pieces-remplacement de l’objet piece.

1

lieu-de-stock A lieu de stock 1 quantite-list L Les types de quantités possibles peuvent être :

- quantité réservée - quantité commandée - quantité en stock Il ne peut exister qu’une seule quantité d’un même type. Le type de quantité est obligatoire

1

long-label A description de la disponibilité 1 date O Date à partir de laquelle la pièce sera disponible 1

Il faut avoir au moins la balise <long-label> ou <quantite-list> (ou les deux).

9.3.12.2.Conditionnement

Le conditionnement est utilisé quand on ne peut pas vendre une pièce à l’unité. Par exemple les amortisseurs devront être vendus 2 par 2. La référence de la pièce qui contient ce conditionnement est bien celle d’un amortisseur et non pas celle du lot qui contient 2 amortisseurs. Exemple :

<conditionnement multiple="2"> <prix /> </ conditionnement >

Page 87: Plateforme catalogue – API HTTP XAT2€¦ · Plateforme catalogue ... MAJ « Exemple de session de mise-à-jour de prix ». ... Lancement d’une session interactive sur l’ IO

Réf : XA20710DTS079 Ed 1. - Rév. 13 Spécification technique détaillée Date 4 septembre 2009

79 / 140

XAT2

0710

DTS0

79 -

Ce do

cume

nt es

t pro

priét

é de E

TAI.

Tous

droit

s de r

epro

ducti

on et

/ou co

mmun

icatio

n rés

ervé

s.

conditionnement O Le conditionnement d'une pièce 1 Champ A T M E D Description V multiple x N Le nombre de pièces dans le conditionnement. 1

prix O Le prix de la pièce pour le conditionnement minimum (2 dans l’exemple de l’amortisseur)

1

9.3.13. Liste

L’objet list contient un ensemble d’autres objets selon le type indiqué.

Exemple :

<list code-type="TauxTVA"> <taux-tva id="1">19.60</taux-tva> </list>

liste 1 Champ A T M E D Description V code-type x A M E Le type d’objets contenus dans la liste

Voir « les types de liste » en annexe 1

9.3.14. Liste de pièces de remplacement Les pièces de remplacement pour une pièce donnée. Exemple :

<list code-type=" PiecesRemplacement "> <piece /> <piece /> </list>

Champ A T M E D Description piece *n O Contient la liste des pièces de remplacement

9.3.15. Liste de pièces Exemple :

<list code-type="Pieces"> <piece /> <piece /> </list>

Champ A T M E D Description piece *n O Plusieurs pièces

Page 88: Plateforme catalogue – API HTTP XAT2€¦ · Plateforme catalogue ... MAJ « Exemple de session de mise-à-jour de prix ». ... Lancement d’une session interactive sur l’ IO

Réf : XA20710DTS079 Ed 1. - Rév. 13 Spécification technique détaillée Date 4 septembre 2009

80 / 140

XAT2

0710

DTS0

79 -

Ce do

cume

nt es

t pro

priét

é de E

TAI.

Tous

droit

s de r

epro

ducti

on et

/ou co

mmun

icatio

n rés

ervé

s.

9.3.16. Liste des référentiels liste O Une liste contenant un référentiel Fournisseurs ou

un référentiel Tarifs 1

Champ A T M E D Description V code-type x A M E Le type d’objets contenus dans la liste (cf. annexe).

Ici il s’agit de la liste des fournisseurs ou de tarifs et donc code-type=«Suppliers» ou « PartPrices »

1

version x A M(1) La version de cette liste Cette version correspond à la liste des fournisseurs/tarifs

1

compressed x B Si true, le référentiel de prix est compressé (3) 1 start-index x N M

(2) indice du 1er élément demandé ou retourné (à partir de

0) 1

nombre x N M (1)

nombre d’éléments demandés ou retournés ou le nombre total de fournisseurs/tarifs

1

date O Date de dernière modification de la liste Cette date correspond à la dernière modification des libellés courts dans l’application IO, c'est-à-dire cette date correspond au dernier paramétrage manuel des abréviations fournisseurs. Pour les tarifs ce paramètre n’y figure pas, il faut utiliser la valeur de l’attribut « version »

1

supplier *n O plusieurs fournisseurs (si code-type est « Suppliers ») 1 piece*n O Plusieures pièces, avec leurs tarifs (si code-type est

« PartPrices » 1

light x B true V2 : on retourne un ident qui ne contient que les marques/modèles/variantes (pas de numéro VIN, CNIT,…) (4)

2

xml x B true V2 : on retourne un ident en en format XML (si true) ou texte (false)

2

use-bd-service

x B true V2 : si true, on utilise le service BulkData, sinon on envoye les données encapsulées dans le shuttle (5)

2

compress-algo

x A gzip L’algorithme de compression (gzip ou zip).

bulkdata*1 O Identifiant du service BulkData 2

(1) le nombre est obligatoire lorsque le DMS demande une liste de fournisseurs et lorsque IO retourne une liste de fournisseurs ; c’est une valeur toujours positive. Lors d’une requête du DMS, cette valeur peut être inférieure à la valeur fournie par l’IO – ce que veut dire que le DMS ne veut qu’une partie de la liste de fournisseurs.

(2) start-index commence à 0 et il peut être présent seulement lors de requêtes du DMS ; si pas précisé, l’IO utilise la valeur par défaut 0.

(3) Cet attribut ne s’applique que pour les référentiels de prix de pièces (4) ETAI se reserve le droit d’ignorer ce paramètre pour certains DMS, en fonction de valeurs de

la balise <dmsid> ; cette modification sera communiqué en temps util aux éditeurs de logiciels DMS

(5) Valable uniquement pour les réferentiels ident et tarifs ; ident est toujours envoyé par le service BulKData, tandis que les tarifs peuvent être envoyés soit par ce service (« use-bd-service »=true) soit encapsulés dans le XML (mode V1). ETAI se reserve le droit d’imposer à partir d’une certaine version/date (qui sera communiqué aux éditeurs de DMS en temps util) l’envoi de tarifs par le même service BulkData

Page 89: Plateforme catalogue – API HTTP XAT2€¦ · Plateforme catalogue ... MAJ « Exemple de session de mise-à-jour de prix ». ... Lancement d’une session interactive sur l’ IO

Réf : XA20710DTS079 Ed 1. - Rév. 13 Spécification technique détaillée Date 4 septembre 2009

81 / 140

XAT2

0710

DTS0

79 -

Ce do

cume

nt es

t pro

priét

é de E

TAI.

Tous

droit

s de r

epro

ducti

on et

/ou co

mmun

icatio

n rés

ervé

s.

Remarque : Les objets list de type Supplier, PartPrices et VehicleIdentification ne doivent être utilisés que dans un shuttle de type «List ». Exemple 1 : le DMS demande la version de la liste des fournisseurs Le DMS envoi un shuttle de type « List ». La liste des fournisseurs doit être vide.

<list code-type="Suppliers" />

En réponse : IO retourne la version de la liste des fournisseurs IO renvoie un shuttle de type « List » Les informations sont retournées dans les attributs de l’objet list de type "Supplier" L’attribut version contient la version de la liste des fournisseurs. L’attribut nombre indique le nombre total de fournisseurs. L’objet date contient la date de dernière modification des abréviations fournisseur dans le module d’administration de l’application ETAI.

<list code-type="Suppliers" version="ETAI_FOUR_1.0" nombre="4245" > <date code-type="DerniereModificationFournisseur" format="yyyy-MM-dd hh:mm:ss" >

2007-01-16 08:05:07 </date >

</list> Le DMS doit maintenant déterminer s’il a besoin de demander à nouveau la liste des fournisseurs.

Cela dépend si le DMS n’utilise que les références fournisseur ETAI (ref-etai)ou s’il a besoin de connaître les abréviations fournisseurs paramétrées manuellement dans l’application IO. (short-label) Les codes fournisseurs (ref-etai) ne changent pas avec le temps, tandis que les abréviations fournisseurs (short-label) sont susceptibles de changer. Elles changent à chaque fois que les codes sont modifiés dans le module d’administration de IO par un administrateur abilité. Si le DMS n’utilise que les codes fournisseur (ref-etai), il compare la version de la liste avec celle qu’il a précédemment téléchargé. Si le DMS utilise les abréviations fournisseur (short-label) qui sont paramétrées manuellement dans l’application IO, il doit comparer la date de dernière modification des fournisseurs avec celle qu’il a précédemment téléchargé. Le DMS peut demander les fournisseurs de 1 à 4245. Le 1er fournisseur de la liste a l’indice 0. Maintenant le DMS peut demander la liste en plusieurs fois. Il n’est pas obligé de réceptionner la liste complète en une seule transaction. Exemple 2 : le DMS demande les fournisseurs de 101 à 300 L’attribut version contient la version de la liste des fournisseurs. L’attribut nombre indique le nombre de fournisseurs demandés. L’attribut start-index indique l’indice du 1er fournisseur. Le DMS envoie un shuttle de type « List ». La liste des fournisseurs doit être vide.

<list code-type="Suppliers" version=" ETAI_FOUR_1.0" start-index ="100" nombre="200" />

En réponse : IO retourne la liste de fournisseurs demandées (de 101 à 300) L’attribut version contient la version de la liste des fournisseurs. L’attribut nombre indique le nombre de fournisseurs demandés. L’attribut start-index indique l’indice du 1er fournisseur (valeur positive ou nulle).

Page 90: Plateforme catalogue – API HTTP XAT2€¦ · Plateforme catalogue ... MAJ « Exemple de session de mise-à-jour de prix ». ... Lancement d’une session interactive sur l’ IO

Réf : XA20710DTS079 Ed 1. - Rév. 13 Spécification technique détaillée Date 4 septembre 2009

82 / 140

XAT2

0710

DTS0

79 -

Ce do

cume

nt es

t pro

priét

é de E

TAI.

Tous

droit

s de r

epro

ducti

on et

/ou co

mmun

icatio

n rés

ervé

s.

<list code-type="Suppliers" version=" ETAI_FOUR_1.0" start-index ="100" nombre="200"> <supplier> … </supplier> <supplier> … </supplier> …

</list> Exemple 3 : le DMS demande tous les fournisseurs Le DMS envoi un shuttle de type « List ». La liste des fournisseurs doit être vide.

<list code-type="Suppliers" version=" ETAI_FOUR_1.0" start-index ="0" nombre="4245" />

Si, par souci d’optimiser le trafic réseau, le DMS ne veut récupérer que certaines parties des informations concernant un fournisseur, alors il est possible d’envoyer une requête qui contient une XQuery qui limite les tags de réponse (pas disponible avant la v3) : <shuttle xmlns:xsi=http://www.w3.org/2001/XMLSchema-instance

code-document="List"> <date-envoi format="yyyy-MM-dd HH:mm:ss">2007-02-13 11:29:01</date-envoi> <date-creation format="yyyy-MM-dd HH:mm:ss">2007-02-11 17:59:01

</date-creation> <list code-type="Suppliers" version="ETAI_FOUR_1.0" nombre="4245"> <xquery>

for $f in /liste/supplier where fn:normalize-space($f/actif/text()) = "true" return &lt ;supplier&gt ; {$f/genre} {$f/short-label} &lt ;/supplier&gt ;

</xquery> </list> </shuttle>

En réponse : IO retourne la liste de fournisseurs demandées (de 1 à 4245) L’attribut version contient la version de la liste des fournisseurs. L’attribut nombre indique le nombre de fournisseurs demandés. L’attribut start-index indique l’indice du 1er fournisseur. (start-index commence à zéro)

<list code-type="Suppliers" version=" ETAI_FOUR_1.0" start-index ="0" nombre="4245">

<supplier> … </supplier> <supplier> … </supplier> …

</list> Exemple complet d’une réponse du DMS :

<?xml version="1.0" encoding="UTF-8" standalone="yes" ?> <shuttle version="1" code-document="List" xmlns="http://etai22.ecritel.net/xsd/xat2/1">

<date-envoi format="yyyy-MM-dd HH:mm:ss">2007-03-27 18:04:08</date-envoi> <date-creation format="yyyy-MM-dd HH:mm:ss">2007-03-27 18:04:08

</date-creation> <list start-index="0" nombre="3" code-type="Suppliers"> <supplier ref-etai="1001"> <long-label>AC DELCO</long-label> <short-label>AC</short-label> <reference-simplifiee>false</reference-simplifiee>

</supplier> <supplier ref-etai="1002"> <long-label>AIRTEX</long-label>

Page 91: Plateforme catalogue – API HTTP XAT2€¦ · Plateforme catalogue ... MAJ « Exemple de session de mise-à-jour de prix ». ... Lancement d’une session interactive sur l’ IO

Réf : XA20710DTS079 Ed 1. - Rév. 13 Spécification technique détaillée Date 4 septembre 2009

83 / 140

XAT2

0710

DTS0

79 -

Ce do

cume

nt es

t pro

priét

é de E

TAI.

Tous

droit

s de r

epro

ducti

on et

/ou co

mmun

icatio

n rés

ervé

s.

<short-label>AIR</short-label> <reference-simplifiee>false</reference-simplifiee>

</supplier> <supplier ref-etai="1004"> <long-label>ALCO</long-label> <short-label>ALC</short-label> <reference-simplifiee>false</reference-simplifiee>

</supplier> </list>

<private-dms> …

</private-dms> </shuttle>

Exemple 4: le DMS demande les tarifs Le mode de fonctionnement est identique à celui de récupération de référentiels fournisseurs, sauf que le type de la liste est désormais « PartPrices » et les données sont dans le format CSV dans lequel les distributeurs nous les envoient). Par exemple, la demande initiale, pour connaître la taille et la version est :

<?xml version="1.0" encoding="UTF-8" ?> <shuttle xmlns="http://etai22.ecritel.net/xsd/xat2/1" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" referentiel-supplier="ref1" code-document="List" version="1">

<date-envoi format="yyyy-MM-dd HH:mm:ss">2007-02-13 11:29:01 </date-envoi>

<date-creation format="yyyy-MM-dd HH:mm:ss">2007-02-11 17:59:01 </date-creation>

<list code-type="PartPrices" /> </shuttle>

Le DMS reçoit en réponse le shuttle suivant : <?xml version="1.0" encoding="UTF-8" ?> <shuttle code-document="List" version="1" xmlns="http://etai22.ecritel.net/xsd/xat2/1">

<date-envoi format="yyyy-MM-dd HH:mm:ss">2007-11-21 15:38:11</date-envoi> <date-creation format="yyyy-MM-dd HH:mm:ss">2007-11-21 15:38:11</date-creation> <list nombre="1777" version="3" code-type="PartPrices" />

</shuttle>

Le numéro de version retourné par l’application ETAI est toujours supérieur à 0 ; si c’est numéro est à 0, alors soit le DMS est à jour, soit il n’y a pas eu d’import de tarifs dans l’application ETAI. Si le DMS, qui est à la version 2, veut récupérer maintenant 10 valeurs à partir de la ligne numéro 4 (la première ligne ayant toujours l’index 0) alors il renseigne les attributs « version », « start-index » et « nombre » ; si le DMS n’a pas encore fait d’import alors la valeur de l’attribut renseigné sera initialisée à 0. Dans notre cas le DMS va envoyer le shuttle suivant : <?xml version="1.0" encoding="UTF-8" ?>

<shuttle code-document="List" version="1" xmlns="http://etai22.ecritel.net/xsd/xat2/1"> <date-envoi format="yyyy-MM-dd HH:mm:ss">2007-11-21 15:38:16</date-envoi> <date-creation format="yyyy-MM-dd HH:mm:ss">2007-11-21 15:38:16</date-creation> <list nombre="10" start-index="4" version="2" code-type="PartPrices" />

</shuttle> Le DMS va recevoir en réponse le shuttle suivant :

<?xml version="1.0" encoding="UTF-8" ?>

Page 92: Plateforme catalogue – API HTTP XAT2€¦ · Plateforme catalogue ... MAJ « Exemple de session de mise-à-jour de prix ». ... Lancement d’une session interactive sur l’ IO

Réf : XA20710DTS079 Ed 1. - Rév. 13 Spécification technique détaillée Date 4 septembre 2009

84 / 140

XAT2

0710

DTS0

79 -

Ce do

cume

nt es

t pro

priét

é de E

TAI.

Tous

droit

s de r

epro

ducti

on et

/ou co

mmun

icatio

n rés

ervé

s.

<shuttle version="1" code-document="List" xmlns="http://etai22.ecritel.net/xsd/xat2/1"> <date-envoi format="yyyy-MM-dd HH:mm:ss">2007-11-21 15:38:16</date-envoi> <date-creation format="yyyy-MM-dd HH:mm:ss">2007-11-21 15:38:16</date-creation>

<list version="3" start-index="4" nombre="10" compressed="false" code-type="PartPrices">

<a>;LAU;ELE3569;FILTRE ESS PEUGEOT,VW;9,89;11,81;</a> <a>;LAU;ELE3570;FILTRE ESS. AUDI,FORD,V;14,2;16,6;</a> <a>;LAU;ELE3571;FILTRE GASOIL BMW, PORSCH;13,2;15,36;</a> <a>;LAU;ELE3574;FILTRE ESSENCE MERCEDES;18,5;21,95;</a> <a>1114;;A1127;;0;18,34;</a> <a>1114;;EP155;;0;16,82;</a> <a>1114;;C493E;;0;13,86;</a> <a>1009;;010003x;;0;187,5;</a> <a>1009;;10004;;0;120;</a> <a>1009;;10005;;0;120;</a>

</list> <private-dms>

<dms-ns:dms-ns xmlns:dms-ns="text1" /> <dms-ns:dms-ns xmlns:dms-ns="text2" /> <dms-ns:dms-ns xmlns:dms-ns="text3" />

</private-dms> </shuttle>

Chaque ligne contient un « article » et elle a 6 champs, avec ; (point-virgule) comme séparateur ; si ce caractère se trouve dans un champ, il est préfixé par \. Les champs de type «String » (chaîne de caractères) sont entourés par des guillemets ; si ce caractère apparaît aussi dans la référence, il est préfixé par \. Les 6 champs représentent :

le code ETAI du fournisseur (le même que celui fournit au DMS lors de la récupération du référentiel fournisseurs; un int) la référence ETAI simplifiée (une chaîne de caractères),

le libellé court (l'abréviation) du fournisseur, la référence de la pièce fournie par le distributeur, le libellé fournisseur de la pièce le prix achat unitaire garage HT (un double), le prix achat unitaire public HT (un double) - c'est à dire le prix de vente public.

Compte tenu de volume énorme de données, le DMS peut les demander en format compressé en utilisant l’attribut « compressed ». Dans ce cas, la réponse ci-dessus devient :

<?xml version="1.0" encoding="UTF-8" ?> <shuttle version="1" code-document="List" xmlns="http://etai22.ecritel.net/xsd/xat2/">

<date-envoi format="yyyy-MM-dd HH:mm:ss">2007-11-21 15:38:16</date-envoi> <date-creation format="yyyy-MM-dd HH:mm:ss">2007-11-21 15:38:16</date-creation>

<list version="3" start-index="4" nombre="10" compressed="true" code-type="PartPrices">

<a>H4sIAAAAAAAAAFXO3Q6CMAwF4FfZAzRm3R9bzhVCURIUwgRfxccXEA1eNfvW0xZdOUE6sT4kNG33GEVJzmqQ6SL9g+YnEsUEZooM/LoLfeg+KaXKqW6p6ceaZrAjAw4UjgH+Bi5l7ttOnW9PUkM/5uoKtmvAk/1LuMMKuVeibjJWUksGR/IwTMkvh7EDSmZTAHr9sW5HGdj7DQNFs2PlkpUNLcUA1jotr6Vo+/oMKJbZH17VbWj0gfyX3kZWW1M9AQAA</a>

</list> <private-dms>

… </private-dms> </shuttle>

Page 93: Plateforme catalogue – API HTTP XAT2€¦ · Plateforme catalogue ... MAJ « Exemple de session de mise-à-jour de prix ». ... Lancement d’une session interactive sur l’ IO

Réf : XA20710DTS079 Ed 1. - Rév. 13 Spécification technique détaillée Date 4 septembre 2009

85 / 140

XAT2

0710

DTS0

79 -

Ce do

cume

nt es

t pro

priét

é de E

TAI.

Tous

droit

s de r

epro

ducti

on et

/ou co

mmun

icatio

n rés

ervé

s.

Dans ce cas, la balise <a> contient toutes les données demandées, compressées d’abord avec l’algorithme GZIP (http://www.gzip.org/algorithm.txt) puis transformées en chaîne ASCII avec l’algorithme Base64 (voir RFC 2045 à http://www.ietf.org/rfc/rfc2045.txt). Il faut noter que pour optimiser l’utilisation de la bande passante, un serveur dédié de téléchargements du référentiel de tarifs peut être utilisé ; ceci implique que le POST du shuttle va retourner une réponse de redirection de type 303 (« See Other ») et le DMS devrait récupérer la location où se trouve l’URI de ce serveur et rediriger la requête ensuite ; le code d’état 303 signifie qu’il a aussi un changement de protocole (POST -> GET). Dans ce cas, l’envoi de données privées du DMS n’est pas assuré. Dans la version 2 du shuttle (qui impose la version 2 de l’objet métier XAT2), on peut récupérer toute la liste de tarifs à travers le service de « BulkData » - cela est la manière préférée de le faire et à l’avenir ETAI pourrait imposer uniquement ce mode de fonctionnement. Jusque-là, la manière dont le DMS peut demander le référentiel de tarifs à travers le service de « BulkData » est la suivante :

à la réception de la version actuelle du référentiel, le DMS va envoyer un shuttle où il précise sa version du référentiel ainsi que l’attribut « use-bd-service » à true :

<shuttle code-document="List" version="2" xmlns="http://etai22.ecritel.net/xsd/xat2/1"> <date-envoi format="yyyy-MM-dd HH:mm:ss">2007-09-12 15:42:30</date-envoi> <date-creation format="yyyy-MM-dd HH:mm:ss">2007-09-12 15:42:27

</date-creation> <list use-bd-service="true" version="23" code-type="PartPrices" />

</shuttle> la présence de ces 2 attributs (« version » et « use-bd-service ») déclenche le retour

d’un shuttle de type suivant <shuttle code-document="List" version="2" xmlns="http://etai22.ecritel.net/xsd/xat2/1">

<date-envoi format="yyyy-MM-dd HH:mm:ss">2007-09-12 15:42:33</date-envoi> <date-creation format="yyyy-MM-dd HH:mm:ss">2007-09-12 15:42:33</date-creation>

<list compress-algo="gzip" use-bd-service="true" compressed="true" version="32" code-type="PartPrices"> <bulkdata>

<id>ca9f6ce1977d405c832b07adda2388bd</id> <size>8570181</size> <digest algorithm="SHA-1">

56b38f866ecf3471daff7e1632e42ebe433dab98</digest> </bulkdata> </list> </shuttle>

Ci-dessus la balise <size>réprésente la taille de données « à plat », avant la compression. Le DMS doit maintenant appeler le service BulkData, avec son id de session XAT2 (par exemple 9cd976a152654bbdb8d8b26ec208759a) et l’ID de la ressource (dans ce cas, 48761c095c1d438fb73c7920bc414f93) : http://www.cattronic.com/xat2bd/9cd976a152654bbdb8d8b26ec208759a/56b38f866ecf3471daff7e1632e42ebe433dab98 Le DMS retrouve dans le flux de sortie :

la taille de données reçues (dans ContentLength) – donc la taille de données compressées

le type de données (dans ContentType) – pour les tarifs application/text+csv+gzip

les données binaires compressées en GZIP Le fichier de tarifs est un fichier de type CSV, dont la première ligne contient le

nombre de tarifs et la version, le reste du fichier contenant les prix (voir ci-dessus). Exemple 5: le DMS demande le référentiel ident

Page 94: Plateforme catalogue – API HTTP XAT2€¦ · Plateforme catalogue ... MAJ « Exemple de session de mise-à-jour de prix ». ... Lancement d’une session interactive sur l’ IO

Réf : XA20710DTS079 Ed 1. - Rév. 13 Spécification technique détaillée Date 4 septembre 2009

86 / 140

XAT2

0710

DTS0

79 -

Ce do

cume

nt es

t pro

priét

é de E

TAI.

Tous

droit

s de r

epro

ducti

on et

/ou co

mmun

icatio

n rés

ervé

s.

Cette fonctionnalité n’est disponible qu’à partir de la version 2 du protocole. Le fonctionnement commence par demander la version de l’ident disponible (cette information se trouve aussi dans le shuttle de réponse de type Invoice) : <shuttle code-document="List" version="2" xmlns="http://etai22.ecritel.net/xsd/xat2/1">

<date-envoi format="yyyy-MM-dd HH:mm:ss">2007-09-10 14:56:51</date-envoi> <date-creation format="yyyy-MM-dd HH:mm:ss">2007-09-10 14:56:51

</date-creation> <list code-type="VehicleIdent" />

</shuttle> En réponse le serveur indique la version courante : <shuttle code-document="List" version="2" xmlns="http://etai22.ecritel.net/xsd/xat2/1">

<date-envoi format="yyyy-MM-dd HH:mm:ss">2007-09-10 14:56:55</date-envoi> <date-creation format="yyyy-MM-dd HH:mm:ss">2007-09-10 14:56:55

</date-creation> <list version="12_0_0_a" code-type="VehicleIdent" />

</shuttle> Si le DMS décide que sa version est différente, il envoye un shuttle identique avec le précedent (avec la date d’envoi évidemment mise à jour) où il peut préciser l’algorithme de compression à utiliser, s’il veut une version légère de l’ident ou (si version « light ») s’il veut une réponse de type XML ou de type texte : <shuttle code-document="List" version="2" xmlns="http://etai22.ecritel.net/xsd/xat2/1">

<date-envoi format="yyyy-MM-dd HH:mm:ss">2007-09-10 16:04:32</date-envoi> <date-creation format="yyyy-MM-dd HH:mm:ss">2007-09-10 16:04:32

</date-creation> <list xml="false" light="true" code-type="VehicleIdent"

compress-algo="gzip" version="12_0_0_a" /> </shuttle>

La présence de l’attribut version signifie au serveur ETAI que le DMS désire récupérer cette version. Si elle existe, le serveur lui envoie en réponse le shuttle suivant :

<shuttle code-document="List" version="2" xmlns="http://etai22.ecritel.net/xsd/xat2/1"> <date-envoi format="yyyy-MM-dd HH:mm:ss">2007-09-11 11:23:07</date-envoi> <date-creation format="yyyy-MM-dd HH:mm:ss">2007-09-11 11:23:07</date-creation>

<list compress-algo="gzip" use-bd-service="true" xml="false" light="true" compressed="true" code-type="VehicleIdent">

<bulkdata> <id>48761c095c1d438fb73c7920bc414f93</id> <size>1782603</size> <digest algorithm="SHA-1">

c3b2c2e2dfd37ef049a96886689a65733c113fb</digest> </bulkdata> </list> </shuttle>

Le DMS doit maintenant appeler le service BulkData, avec son id de session XAT2 (par exemple 9cd976a152654bbdb8d8b26ec208759a) et l’ID de la ressource (dans ce cas, 48761c095c1d438fb73c7920bc414f93) : http://www.cattronic.com/xat2bd/9cd976a152654bbdb8d8b26ec208759a/48761c095c1d438fb73c7920bc414f93 Le DMS retrouve dans le flux de sortie :

la taille de données (dans ContentLength),

Page 95: Plateforme catalogue – API HTTP XAT2€¦ · Plateforme catalogue ... MAJ « Exemple de session de mise-à-jour de prix ». ... Lancement d’une session interactive sur l’ IO

Réf : XA20710DTS079 Ed 1. - Rév. 13 Spécification technique détaillée Date 4 septembre 2009

87 / 140

XAT2

0710

DTS0

79 -

Ce do

cume

nt es

t pro

priét

é de E

TAI.

Tous

droit

s de r

epro

ducti

on et

/ou co

mmun

icatio

n rés

ervé

s.

le type de données (dans ContentType), les données binaires compressées en GZIP

La valeur duContentType est définie dans le tableau suivant (différente de valeurs MIME standard dans le but de fournir un maximum d’informations au DMS) : Type fichier Compression

XML Texte CSV

GZIP application/text+xml+gzip application/text+plain+gzip application/text+csv+gzip ZIP application/text+xml+zip application/text+plain+gzip application/text+csv+gzip Le flux de sortie peut être sauvé dans un fichier ; après décompression on obtient soit l’équivalent d’un ident.txt soit l’équivalent d’un ident.xml :

Ident.txt

|ALFA-ROMEO|,|ALFETTA COUPE|,|2.5i (116kW) -01646- M5| |ALFA-ROMEO|,|ALFASUD 3P|,|1.3 (58kW) -AS30164- M5| |ALFA-ROMEO|,|ALFASUD 3P|,|1.3 (63kW) -AS30168- M5| |ALFA-ROMEO|,|ALFASUD 3P|,|1.5 (70kW) -AS30128- M5| |ALFA-ROMEO|,|ALFASUD 3P|,|1.5 (77kW) -30146- M5| |ALFA-ROMEO|,|ALFASUD 5P|,|1.3 (58kW) -AS30164- M5| |ALFA-ROMEO|,|ALFASUD 5P|,|1.5 (70kW) -AS30128- M5| |ALFA-ROMEO|,|SPRINT CPE 07.82>06.90|,|1.3 (63kW) -30168- M5|

Ident.xml

<?xml version="1.0" encoding="ISO-8859-15" ?> <marques version="12_0_0_a"> <marque> <id>133</id> <libelle>RENAULT</libelle> <modeles> <modele> <id>7246</id> <libelle>CLIO II 3P >06.2001</libelle> <variantes> <variante> <id>75755</id> <appellation>1.4i (55kW) -E7J_757- A3</appellation> <genreboite>A</genreboite> <typemoteur>E7J_7</typemoteur> <puissancefiscale>6</puissancefiscale> <nombrerapport>3</nombrerapport> <cnit>MRE000AEK803</cnit> <cnit>MRE3101EQ032</cnit> <vin>VF1C57J01</vin> <typemines>C57J01</typemines> <cylindree>1390</cylindree> <typecarburant>E</typecarburant> <typecarrosserie>Berline</typecarrosserie> <nombreporte>3</nombreporte>

</variante> </variantes> </modele> </modeles> </marque> </marques>

Page 96: Plateforme catalogue – API HTTP XAT2€¦ · Plateforme catalogue ... MAJ « Exemple de session de mise-à-jour de prix ». ... Lancement d’une session interactive sur l’ IO

Réf : XA20710DTS079 Ed 1. - Rév. 13 Spécification technique détaillée Date 4 septembre 2009

88 / 140

XAT2

0710

DTS0

79 -

Ce do

cume

nt es

t pro

priét

é de E

TAI.

Tous

droit

s de r

epro

ducti

on et

/ou co

mmun

icatio

n rés

ervé

s.

9.3.17. Le garage

Le garage est une donnée initialisée par le serveur IO.

garage O 1 Champ A T M E D Description V name A M Le nom du garage 1 adresse A 1 code-postal A M Le code postal 1 ville A 1 code-pays A E Voir « liste des pays » 1 telephone A M Numéro de téléphone en format internationa (préfixé par l’IDD)l 1 fax A Numéro de fax en format international (préfixé par l’IDD) 1 mobile A Numéro de mobile en format international (préfixé par l’IDD) 1 email @ L’adresse de courrier éléctronique 1

Dans la version ?, les balises sont en anglais, et représentent pour autres balises (client, acheteur,…) la partie d’identification de base : (garage) O ? Champ A T M E D Description V name A M Le nom de l’entité ? address A ? code-postal A M Le code postal ? city A ? country-code A E Voir « liste des pays » ? phone A M Numéro de téléphone en format international (préfixé

par l’IDD) ?

fax A Numéro de fax en format international (préfixé par l’IDD) ? mobile A Numéro de mobile en format international (préfixé par

l’IDD) ?

email @ L’adresse de courrier éléctronique ? title A E La civilité (voir annexe). ?

9.3.18. L’accusé de réception

Cette balise n’est présente que dans un document de type DocAck, qui n’est disponible qu’à partir de la version 2 du protocole. Ce document signifie la bonne réception par le DMS de l’envoi fait par le serveur ETAI (une commande de pièces).

ack O Accusé de réception 2 Champ A T M E D Description V id-list A M Liste d’identifiants de l’aquittement 2 reason M E Le type document auquel il fait référence (Caddie, …) 2 status A L’état du devis final 2 consigne A E La consigne donné à l’application ETAI 2 comment O Une ligne de commentaire 2 Cette balise est susceptible d’évoluer.

9.3.19. La police d’assurance

Cette balise apparaît dans la version 2 du protocole ; elle représente la police d’assurance.

insurance O Une assurance 2

Page 97: Plateforme catalogue – API HTTP XAT2€¦ · Plateforme catalogue ... MAJ « Exemple de session de mise-à-jour de prix ». ... Lancement d’une session interactive sur l’ IO

Réf : XA20710DTS079 Ed 1. - Rév. 13 Spécification technique détaillée Date 4 septembre 2009

89 / 140

XAT2

0710

DTS0

79 -

Ce do

cume

nt es

t pro

priét

é de E

TAI.

Tous

droit

s de r

epro

ducti

on et

/ou co

mmun

icatio

n rés

ervé

s.

Champ A T M E Description V ins-company O M Identification de la companie d’assurance 2 insurance-policy-id A M Numéro de police 2 manager O Le gestionaire 2 accident O Le sinistre 2 injured-party O Le lésé 2 intermediary O L’intermediaire (mandant) 2 insurance-specialist-mission O Missionnement d’expertise 2 agreement-type I Nature de l’accord (agrée) – cf. table d’ArvA 9019 2 franchise-list L Application des élements de calcul – une liste de

franchises 2

broker O Le courtier 2 date-insurance-policy D Date d’effet de la police 2 Pour la signification de chaque élémént, à voir les schémas XSD.

9.3.20. Garantie et responsabilité

Cette balise apparaît dans la version 2 du protocole.

deposit O Une garantie 2 Champ A T M E Description V deposit-code C Code garantie mise en jeu (voir annexe et la table

9043 de d’ArvA) 2

contract-type C Nature du contrat (cf. table d’ArvA 9013) 2 upper-limit C Plafond de garantie (cf. table d’ArvA 9048) 2 upper-limit-amount N Montant du plafond de garantie ; obligatoire si <upper-

limit> est présent 2

inter-insurance-applied-ccode

C Code convention applique inter-assurance (cf. table d’ArvA 9014)

2

scale-code A Code barême de responsailité (cf. table d’ArvA 9036) 2 responsability-percentage

% Pourcentage de responsabilité 2

insurance-agreed-payment

C Libellé règlement direct consenti par l’assurance (cf. table 9011 de d’ArvA)

2

nb-days-leased-veh I Nombre de jours de prêt de vehicule (en demi-journées)

2

9.3.21. L’acheteur

Cette balise apparaît dans la version 2 du protocole.

L'acheteur est l'acheteur du véhicule en tant qu'épaviste.

buyer O Un épaviste 2 Champ A T M E Description V basic-ident O M Données de base d’identification 2 dest-convention B Convention de destination 2 wreck-car-code A Code de l’épaviste dans le DMS 2 recovery-name A Nom du récupérateur 2 status A Statut de l’acheteur 2 removal-date (date) H Date de l’ordre de l’enlèvement 2 buyer-file-id A Référence interne du dossier chez l’acheteur 2 buyer-ins-code A Code de l’acheteur chez l’assurance 2 dest-class A Classe de destination 2

Page 98: Plateforme catalogue – API HTTP XAT2€¦ · Plateforme catalogue ... MAJ « Exemple de session de mise-à-jour de prix ». ... Lancement d’une session interactive sur l’ IO

Réf : XA20710DTS079 Ed 1. - Rév. 13 Spécification technique détaillée Date 4 septembre 2009

90 / 140

XAT2

0710

DTS0

79 -

Ce do

cume

nt es

t pro

priét

é de E

TAI.

Tous

droit

s de r

epro

ducti

on et

/ou co

mmun

icatio

n rés

ervé

s.

tow-insured-payed B Rémorquage réglé par l’assuré 2 transport-insured-payed B Transport réglé par l’assuré 2 company O La société pour laquelle travaille l’acheteur 2

9.3.22. L’expertise Cette balise apparaît à partir de la version 2 du protocole. evaluation O Une expertise 2 Champ A T M E D Description V site O M Le lieu de l’expertise 2 date-list L Liste de dates associées à l’expertise 2 seriously-damaged-vehicle

B Véhicle gravement accidenté 2

techn-reparable-vehicle B Véhicle techniquement réparable 2 econ-reparable-vehicle B Véhicle économiquement réparable 2 event-nature C La nature de l’événement (cf. table d’ArvA 9007) 2 repairer-agreement B Accord du réparateur 2 injured-agreement B Accord du lésé 2 vehicle-state I Etat général du véhicule (cf. table d’ArvA 9017) 2 tire-wear-list L Liste d’usure de pneus 2 insured-recover-VAT B TVA récupérable par l’assuré 2 insured-recover-VAT-reason

C Motif de la récupérabilité de la TVA ; codification cf. table d’ArvA 9030

2

immobilisation I Nb. de jours d’immobilisation théorique 2 estimation B 2 residual-value N Valeur résiduelle 2 demolition-convention B Convention pour la démolition 2 RE-Darva-equipped B Le réparateur est-il équippé EAD via d’ArvA ? 2 persons-list L La liste de personnes présentes 2 insurance-evaluator O L’expert 2 La référence du dossier dans Ariane est donnée par l’attribut « ref-etai » de la balise shuttle.

9.3.23. Le réparateur Cette balise apparaît à partir de la version 2 du protocole. repairer O Un réparateur 2 Champ A T M E D Description V basic-ident O x Les données d’identification de base. 2 code-repairer x A Code unique du réparateur dans le logiciel de gestion 2 agreement-type I Nature de l’accord (agrée) – cf. table d’ArvA 9019 2 network I Le réseau cf. table d’ArvA 9035 2 interlocutor A Interlocuteur habituel 2 interloc-quality A Qualité de l’interlocuteur 2 tariff-date D La date de tarifs horaires ci-dessous 2 parameters O Les tarifs et les remises pour ce dossier 2 invoice-ref A Numéro de facture du réparateur 2 arva-code A Code d’abonné ArvA du réparateur 2 repair-code-insc A Codification du réparateur chez l’assureur 2 direct-payment B Règlement direct accordé 2 prices-list LO La liste de divers prix (montant total de la facture, 2

Page 99: Plateforme catalogue – API HTTP XAT2€¦ · Plateforme catalogue ... MAJ « Exemple de session de mise-à-jour de prix ». ... Lancement d’une session interactive sur l’ IO

Réf : XA20710DTS079 Ed 1. - Rév. 13 Spécification technique détaillée Date 4 septembre 2009

91 / 140

XAT2

0710

DTS0

79 -

Ce do

cume

nt es

t pro

priét

é de E

TAI.

Tous

droit

s de r

epro

ducti

on et

/ou co

mmun

icatio

n rés

ervé

s.

montant net payé au réparateur,…). subcontracted B Sous-traitance 2 invoice-date D Date de la facture 2 company O La société pour laquelle travaille le réparateur 2 taux-mo-list L La liste de taux de main d’oeuvre 2 deduction-list L La liste de remises 2

9.3.24. Le bilan technique Cette balise apparaît à partir de la version 2 du protocole. Exemple : <technical-assessment> <kilometrage code-unite="km">85000.0</kilometrage> <date-list> <date code-type="PremiereMEC"

format="yyyy-MM-dd">2005-06-16</date> </date-list> <replacement-value code-devise="EUR" code-exprime="Devise" name="Montant" code-type="HT">4056.76</replacement-value> <km-adjustment>0.026</km-adjustment> <market-adjustment>0.0</market-adjustment> <time-depr-coef>0.5</time-depr-coef> </technical-assessment> technical-assessment O Un bilan technique 2 Champ A T M E D Description V kilometrage O M Kilométrage date-list L M Divers dates associées au blian technique, dont la date

de la première mise en circulation est obligatoire 2

theoretic-deprec-coef N Coefficient de dépréciation théorique 2 replacement-value O Valeur de remplacement du véhicule 2 total-options-value O Montant total des options du véhicule 2 total-increase-value O Montant total de plus values du véhicule ; si la valeur

est négative, il s’agit d’une moins value 2

time-deprec-categ I Catégorie de dépréciation temporelle 2 mileage-deprec-categ I Catégorie de dépréciation kilométrique 2 fuel-type-code A E Le type de carburant utilisé cf. annexe 2 catalog-price O La valeur du prix du véhicule neuf 2 starting-price O La valeur du prix de base du véhicule 2 updated-price O La valeur du prix actualisé 2 km-adjustment N Correction au kilomètre 2 market-adjustment % Correctif marché 2 after-time-depr-val O La valeur après la dépréciation temporelle 2 time-depr-coef N Coefficient de dépréciation temporelle 2 equipment-list L Une liste d’équipements du véhicule 2 common-law-value-list L Une liste de diverses valeurs 2

9.3.25. L’état du véhicule Cette balise apparaît à partir de la version 2 du protocole. Exemple :

Page 100: Plateforme catalogue – API HTTP XAT2€¦ · Plateforme catalogue ... MAJ « Exemple de session de mise-à-jour de prix ». ... Lancement d’une session interactive sur l’ IO

Réf : XA20710DTS079 Ed 1. - Rév. 13 Spécification technique détaillée Date 4 septembre 2009

92 / 140

XAT2

0710

DTS0

79 -

Ce do

cume

nt es

t pro

priét

é de E

TAI.

Tous

droit

s de r

epro

ducti

on et

/ou co

mmun

icatio

n rés

ervé

s.

<vehicle-state> <state>1</state> <accident-type>Panne</accident-type> <symptom>Le véhicule ne démarre pas</symptom>

<tire-wear-list> <tire-wear position="AVG">90.0</tire-wear> <tire-wear position="AVR">90.0</tire-wear> </tire-wear-list>

<default-list> <default>

<name>Fêlure</name> <position>1</position> </default> </default-list> </vehicle-state>

vehicle-state O L'état du véhicule 2 Champ A T M E D Description V accident-type A Panne, sinistre 2 symptom A Le symptôme 2 tire-wear-list L La liste d’usure de pneumatiques 2 state I M Etat général du véhicule (cf. table d’ArvA 9017) 2 default-list L La liste de défauts 2

9.4. Eléments simples Ces éléments sont considérés simples car ils ne peuvent pas exister à la racine du Shuttle – ils sont des feuilles des éléments complexes.

9.4.1. Taux de main d’œuvre Chaque taux de Main d’œuvre est référencé par son identifiant. Exemple :

<taux-mo ref-interne-taux-mo="1"> <zone>M</zone> <technicite>1</technicite> <taux>12.5</taux> </taux-mo>

taux-mo O Un taux de main d'oeuvre 1 Champ A T M E D Description V ref-interne-taux-mo x I M identifiant ‘1’ … ‘9’,… 1 zone A E zone de technicité du tarif

cf. Taux de main doeuvre 1

technicite I E Indice de technicité du tarif cf. Taux de main doeuvre

1

label A Description du taux 1 taux N M taux 1 code-unite A E unité du taux (heure / surface/…)

Par défaut l’unité de temps du shuttle est appliquée 1

currency-code A E A partir de la version 2. voir annexe « codes devises »

2

Page 101: Plateforme catalogue – API HTTP XAT2€¦ · Plateforme catalogue ... MAJ « Exemple de session de mise-à-jour de prix ». ... Lancement d’une session interactive sur l’ IO

Réf : XA20710DTS079 Ed 1. - Rév. 13 Spécification technique détaillée Date 4 septembre 2009

93 / 140

XAT2

0710

DTS0

79 -

Ce do

cume

nt es

t pro

priét

é de E

TAI.

Tous

droit

s de r

epro

ducti

on et

/ou co

mmun

icatio

n rés

ervé

s.

Si la devise n’est pas indiquée, ce sera celle du shuttle

vehicle-type A E Le type de véhicule (à partir de la version 2) cf. annexe.

2

Les mains d’œuvre dans le Shuttle feront toujours référence au champ ref-interne-taux-mo. Les champs zone et technicite permettent à l’application destinataire du shuttle de créer une liste restreinte de taux applicable à chaque temps selon son type (mécanique/carrosserie/…).

9.4.2. Taux de TVA Taux de TVA du document. Chaque taux de TVA est référencé par son indice. Exemple :

<taux-tva ref-interne-taux-tva="1"> <label>Taux usuel</label> <taux>19.6</taux> </taux-tva>

taux-tva O Un taux de TVA 1 Champ A T M E D Description V ref-interne-taux-tva x I M indice du taux 1 label A Description 1 taux N M Valeur du taux 1

9.4.3. Prix

Le prix est toujours un prix d’achat pour un payeur donné. La nature du prix indique s’il s’agit d’un prix de pièce, de main d’œuvre,… ou du prix total du document.

Exemple :

<prix code-payeur="Public" total="false"> <applicable>true</applicable> <valeur-list> <valeur code-type="TVA">50.00</valeur> <valeur code-type="HT">100</valeur> <valeur code-type="TTC">345.00</valeur> <valeur code-type="HT" remise-deduite="false" >195</valeur> <valeur code-type="TTC" remise-deduite="false">350.00</valeur> <valeur code-type="TTC" remise-deduite="true">5.00</valeur> </valeur-list> < ref-interne-taux-tva >1</ ref-interne-taux-tva > <code-devise>EUR</code-devise> </prix> prix O Description d'un prix 1 Champ A T M E D Description V

Page 102: Plateforme catalogue – API HTTP XAT2€¦ · Plateforme catalogue ... MAJ « Exemple de session de mise-à-jour de prix ». ... Lancement d’une session interactive sur l’ IO

Réf : XA20710DTS079 Ed 1. - Rév. 13 Spécification technique détaillée Date 4 septembre 2009

94 / 140

XAT2

0710

DTS0

79 -

Ce do

cume

nt es

t pro

priét

é de E

TAI.

Tous

droit

s de r

epro

ducti

on et

/ou co

mmun

icatio

n rés

ervé

s.

code-payeur x A E Public voir annexe « Payeur » il s’agit à chaque fois d’un prix d’achat (Public = achat pour le public = vente garage, Garage = achat garage = vente distributeur

1

applicable B true Indique si le prix est applicable ou non (1) Le prix peut ne pas être applicable si une quantité demandée pour une pièce est de 1 alors que le conditionnement est 2.

1

total x B true Si ce champ est à ‘true, cela indique que ce prix est un total des prix de niveau inférieur. Cette structure prix contient donc soit des prix finaux du devis ou facture, soit représente un calcul intermédiaire. Si ce champ est à ‘false, cela signifie que ce prix représente un coût supplémentaire

1

code-origine A E Indique quel DMS a fourni ce prix Les données possibles actuellement sont « DMS » et « ETAI »

1

valeur-list L M Ensemble des valeurs du prix 1 ref-interne-taux-tva

I 1 Indice du taux de TVA correspondant dans la liste des taux de TVA décrits dans la structure parametre Si omis, il s’agit du taux de TVA d’indice 1

1

ref-interne-taux-mo

I Indice du taux de main d’oeuvre correspondant dans la liste des taux de main d’oeuvre décrits dans la structure parametre Cette donnée n’est renseignée que si la nature d’un prix est « main d’œuvre » ou « forfait main d’œuvre » ou « ingrédient »

1

ref-interne-ingredient

I Référence de l’ingrédient concerné Renseigné uniquement si la nature du prix est ingrédient. Correspond à la référence de la pièce (ref-interne-piece) de type ingrédient.

1

code-nature A E Si omis, ce prix est appliqué à l’objet qui lui est supérieur. Nature du prix (pièce, main d’œuvre,…, total) voir annexe « nature d’un prix »

1

code-secteur-activite

A E ‘C’ Carrosserie ‘M’ Mécanique ‘P’ peinture voir annexe « secteur d’activité»

1

code-devise A E voir annexe « codes devises » Si la devise n’est pas indiquée, ce sera celle du shuttle

1

Fonctionnement des prix : Le montant du prix est écrit dans la devise applicable. Il n’y a pas de précision de calcul imposée pour le montant mais seulement des recommandations. La cohérence des prix n’est pas vérifiée. Cette cohérence est à la charge du DMS si le DMS crée les objets prix. De même si IO crée les objets prix, la cohérence est à la charge de IO.

Page 103: Plateforme catalogue – API HTTP XAT2€¦ · Plateforme catalogue ... MAJ « Exemple de session de mise-à-jour de prix ». ... Lancement d’une session interactive sur l’ IO

Réf : XA20710DTS079 Ed 1. - Rév. 13 Spécification technique détaillée Date 4 septembre 2009

95 / 140

XAT2

0710

DTS0

79 -

Ce do

cume

nt es

t pro

priét

é de E

TAI.

Tous

droit

s de r

epro

ducti

on et

/ou co

mmun

icatio

n rés

ervé

s.

La méthode de calcul du devis n’est pas indiquée car la méthode de calcul diffère selon l’applicatif. Les différents applicatifs n’ont pas à connaître les méthodes de calcul des autres applicatifs. Selon la méthode de calcul, les totaux seront différents, en particulier si des remises sont appliquées. Les arrondis ne se font pas aux mêmes étapes. C’est pourquoi les prix qui représentent des totaux ou des totaux intermédiaires sont à lire à titre indicatif. L’application qui reçoit le shuttle devra soit recalculer tous les totaux, soit les reprendre tels quels sans modification. Les prix peuvent être créés à de nombreux niveau de l’arborescence. Un prix créé à un niveau donné représente la prise en compte de tous les prix de niveau inférieur. Un prix total HT à un niveau donné représente la prise en compte de tous les prix totaux HT remisés de niveau inférieur. Les prix unitaires, les prix récapitulatifs, les totaux représentent une information de ventilation et ne représentent pas une dépense supplémentaire. Un prix représente soit un total ou un sous total et dans ce cas, la donnée total est à « true », soit il représente une dépense supplémentaire et dans ce cas la donnée total est à « false ». Le prix unitaire ne représente pas un total et la donnée total sera "false". Prix avec remise Le montant de la remise à un niveau donné ne représente pas la somme des remises de niveau inférieur mais au contraire indique la remise appliquée à ce niveau. A un même niveau on peut définir un prix total HT remisé, un prix total HT non remisé et une remise. Le prix remisé sera égal au prix non remisé auquel on applique la remise. Prix dans l’opération complexe La liste des prix est obligatoire dans l’opération complexe. Les valeurs obligatoires pour ces prix sont les suivantes : - le montant total HT non remisé est obligatoire. Si une remise est appliquée à l’opération complexe, les 2 montants suivants sont obligatoires : - le montant total HT remisé. - le montant de la remise appliquée au total HT. Ainsi cela permet au DMS, s’il le souhaite, de ne pas prendre en compte les prix dans les opérations élémentaires. Si le type de l’opération complexe est forfait, le prix de type « forfait » est obligatoire. Ce prix représente le total forfait. Comme pour tout prix dans une opération complexe, il suit les principes définis ci-dessus pour une opération complexe. Prix dans l’objet operations La liste des prix est obligatoire dans l’objet operations. Les valeurs obligatoires pour ces prix sont les suivantes : - le montant total HT non remisé est obligatoire. Si une remise est appliquée à l’ensemble des opérations, les 2 montants suivants sont obligatoires : - le montant total HT remisé est obligatoire. - le montant de la remise appliquée au total HT. Tous les types de prix présents dans les opérations complexes sont nécessairement présents dans l’objet operations. Par exemple, si un prix de type « forfait » est indiqué dans une opération complexe, il faudra que ce type de prix apparaisse dans l’objet operations. Prix des pièces Un objet prix peut se trouver dans un objet piece uniquement si la pièce se trouve dans la liste de pièces.

Page 104: Plateforme catalogue – API HTTP XAT2€¦ · Plateforme catalogue ... MAJ « Exemple de session de mise-à-jour de prix ». ... Lancement d’une session interactive sur l’ IO

Réf : XA20710DTS079 Ed 1. - Rév. 13 Spécification technique détaillée Date 4 septembre 2009

96 / 140

XAT2

0710

DTS0

79 -

Ce do

cume

nt es

t pro

priét

é de E

TAI.

Tous

droit

s de r

epro

ducti

on et

/ou co

mmun

icatio

n rés

ervé

s.

L’objet prix dans l’objet piece indique le prix unitaire de la pièce. On peut aussi indiquer les montants HT et TTC qui tiennent compte de la quantité de pièces demandées. Les valeurs doivent être cohérentes entre elles. Si la pièce possède un conditionnement, le montant HT peut être différent de la quantité de pièce multipliée par le prix unitaire HT. Le prix unitaire HT est alors donné à titre indicatif. La donnée total est à « false » car ces prix correspondent à un coût supplémentaire. Un objet prix de nature pièce peut être créé au dessus de la liste qui contient les pièces (c'est-à-dire directement sous la balise shuttle) pour chaque secteur d’activité (mécanique ou carrosserie). Dans ce cas, le prix représente le total des pièces pour ce secteur et pour leurs quantités demandées. La donnée total est cette fois à « true ». Si le secteur d’activité n’est pas indiqué, le cumul s’effectue sur l’ensemble des prix des pièces de niveau inférieur et tout secteur d’activité confondu. Prix des mains-d’œuvre Pour définir un prix de main d’œuvre, la nature du prix doit être « main d’œuvre » ou «forfait main d’œuvre ». Le secteur d’activité permet d’indiquer si le prix concerne une main d’œuvre en mécanique, en tôlerie ou en peinture. Si le prix n’intègre que de la main d’œuvre d’un taux particulier, ref-interne-taux-mo indiquera ce taux. Le prix de la peinture devra tenir compte de l’abattement de peinture indiqué dans le temps. Prix d’un ingrédient Pour décrire un prix concernant un ingrédient, ref-interne-taux-mo désigne le taux de main d’œuvre de l’ingrédient, le prix a pour nature « ingrédient » et le secteur d’activité est « Peinture ». ref-interne-ingredient indique la référence de la pièce (ref-interne-piece) de type ingrédient décrit dans une structure piece de type ‘ingrédient’. Les valeurs de type « MontantAbattementPeinture » « MontantSupplémentPeinture » et «MontantPriseEnChargeIngredient » peuvent être décrits. Ces montants n’ont pas de sens dans un prix d’une autre nature. Le prix de l’ingrédient sera calculé en tenant compte ou pas de l’abattement de peinture indiqué dans l’objet temps. Cela dépend de la méthode de calcul du garage. Prix des forfaits Les natures de prix pour décrire les forfaits sont : - forfait - forfaitMO - forfaitPieces - forfaitPiecesEtMO

Le prix « forfaitMO » permet d’indiquer un total main d’œuvre sans décrire nécessairement la main d’œuvre dans l’opération.

Le prix « forfaitPieces » permet de donner le coût en pièce sans décrire nécessairement les pièces dans l’opération.

Le prix « forfaitPiecesEtMO » permet de donner le coût en pièce et main d’oeuvre sans les décrire nécessairement dans l’opération.

Si le prix « forfait » est présent il permet d’indiquer le total forfait. Il représente le cumul des 3 précédents prix.

Le prix «forfait » peut exister seul. (sans les prix « ForfaitMO », « ForfaitPieces » et « ForfaitPiecesEtMO »)

Au moins un prix d’un des types de forfait doit exister dans l’opération de type Forfait. Les prix « ForfaitMO », « ForfaitPieces » et « ForfaitPiecesEtMO » peuvent exister sans le

prix « forfait ». Cela permet aux niveaux supérieurs de ventiler les forfaits dans d’autres prix. o Le prix « ForfaitPieces » peut être ajouté à un prix total de type « Pieces ». o Le prix « ForfaitMO » peut être ajouté à un prix total de type « Main d’oeuvre ». o Le prix « ForfaitPiecesEtMO » peut être ajouté à un prix total de type «forfait».

Page 105: Plateforme catalogue – API HTTP XAT2€¦ · Plateforme catalogue ... MAJ « Exemple de session de mise-à-jour de prix ». ... Lancement d’une session interactive sur l’ IO

Réf : XA20710DTS079 Ed 1. - Rév. 13 Spécification technique détaillée Date 4 septembre 2009

97 / 140

XAT2

0710

DTS0

79 -

Ce do

cume

nt es

t pro

priét

é de E

TAI.

Tous

droit

s de r

epro

ducti

on et

/ou co

mmun

icatio

n rés

ervé

s.

Prix des conditionnements Le conditionnement d’une pièce indique le nombre multiple que l’on doit commander cette pièce. Pour une pièce de conditionnement 2, on peut commander 2,4,6,.. pièces mais pas 1,3,… L’objet prix dans l’objet conditionnement indiquera le prix d’un lot de pièces. (total est à « false »). en tant que prix « UnitaireHT ». L’objet prix qui se trouve dans l’objet piece comporte le prix unitaire de la pièce. (total est à « false »). Les montants de la pièce ne sont pas nécessairement multiples du prix unitaire du conditionnement. Si la quantité n’est pas un multiple du conditionnement le champ applicabilite de prix est à « false ». Ce prix n’a pas de signification et ne peut pas être calculé. Prix non applicable et incidence sur les autres prix. Dès qu’un prix n’est pas applicable, les totaux du shuttle (devis/facture,…) ne peuvent pas être calculés. Dès qu’un prix a le champ applicabilite à « false », les prix de niveau supérieur qui incluent ce prix doivent aussi avoir ce champ applicabilite à « false ». Totaux intermédiaires et remises. Représenter un total intermédiaire dans l’arborescence du XML donne la possibilité d’appliquer une remise supplémentaire à ce moment du calcul. Différents prix selon le payeur. Plusieurs prix peuvent se trouver juxtaposés selon le payeur. Tous les prix d’un même payeur doivent être cohérents entre eux. Les totaux de prix d’un payeur donné doivent être calculés à partir de tous les prix de ce même payeur. Il n’est pas possible d’ajouter des prix de plusieurs payeurs différents. Cela n’aurait pas de sens. Totaux de synthèse du document (devis, facture,…) concernant les forfaits Ces prix seront indiqués dans la balise prix-list du shuttle. Totaux de synthèse du document (devis, facture,…) concernant les pièces Ces prix seront indiqués dans la balise prix-list du shuttle. Totaux de synthèse du document (devis, facture,…) concernant la main d’œuvre : Ces prix seront indiqués dans la balise prix-list de operations. Totaux finaux du document (devis, facture,…) La nature du prix est « Total », « total part client », « total part assureur », « Retraitement » ou « Consigne » Les prix totaux du shuttle (« Total », «Total part Assureur » et «Total part client ») sont directement sous la balise prix-list du shuttle et ne peuvent exister qu’à cet emplacement. Les prix « Retraitement » ou « Consigne » doivent exister sous la balise prix-list du shuttle si des retraitements ou consignes apparaissent dans le devis. Ces prix sont dans ce cas obligatoires. La donnée total est chaque fois à « true ». Les informations dans le prix «Total » vérifient les lois suivantes : - le montant HT ne contient pas le montant HT du retraitement. - le montant de la TVA ne contient pas le montant de TVA sur la consigne. - le montant de la TVA est calculé à partir du HT du retraitement et du montant HT remisé - la remise appliquée au montant HT ne porte pas sur le montant HT du retraitement.

Page 106: Plateforme catalogue – API HTTP XAT2€¦ · Plateforme catalogue ... MAJ « Exemple de session de mise-à-jour de prix ». ... Lancement d’une session interactive sur l’ IO

Réf : XA20710DTS079 Ed 1. - Rév. 13 Spécification technique détaillée Date 4 septembre 2009

98 / 140

XAT2

0710

DTS0

79 -

Ce do

cume

nt es

t pro

priét

é de E

TAI.

Tous

droit

s de r

epro

ducti

on et

/ou co

mmun

icatio

n rés

ervé

s.

- le total TTC inclus la TVA sur la consigne et le HT du retraitement. - en résumé, la formule suivante est appliquée : TTC = TVA + TVA consigne +HT Retraitement + (HT – remise sur HT) Exemple :

Valeurs MONTANT EUROS H.T. : 45.00 REMISE (%) : 25.0 % H.T. Retraitement : 100.00 T.V.A : 4.72 T.V.A. consigne : 0.63 T.T.C. : 139.10

Limitations : - A un même niveau de hiérarchie dans le XML, il n’est pas possible d’indiquer plusieurs structures prix qui ont la même signification.

9.4.4. La référence administrative

Exemple :

<admin-ref code-type="chassis">1289vju4545</admin-ref>

admin-ref O Une référence administrative 1 Champ A T M E D Description V code-type x A M E Voir les « types de références » en annexe

1

reference VA M référence administrative 1

Contrainte :

- la référence administrative ne contient que la référence elle-même, au format indiqué par l’organisme qui distribue et gère ces références.

9.4.5. La référence alternative

Référence alternative dans un autre référentiel.

Exemple :

<ref-alternative reference="123"> <code-referentiel>Renault</ code-referentiel > </ref-alternative>

ref-alternative O Une référence alternative 1 Champ A T M E D Description V reference x A M La référence dans le référentiel indiqué ; minimum 3 et

maximum 20 caractères 1

code-referentiel A E voir la liste des « référentiels alternatifs » en annexe 1

Page 107: Plateforme catalogue – API HTTP XAT2€¦ · Plateforme catalogue ... MAJ « Exemple de session de mise-à-jour de prix ». ... Lancement d’une session interactive sur l’ IO

Réf : XA20710DTS079 Ed 1. - Rév. 13 Spécification technique détaillée Date 4 septembre 2009

99 / 140

XAT2

0710

DTS0

79 -

Ce do

cume

nt es

t pro

priét

é de E

TAI.

Tous

droit

s de r

epro

ducti

on et

/ou co

mmun

icatio

n rés

ervé

s.

9.4.6. La date Le format de la date est celui utilisé par la classe Java java.text.SimpleDateFormat et par défaut il est «yyyy-MM-dd». Exemple :

<date code-type="Creation" format="yyyy-MM-dd" > 2007-01-16</date > date O Une date 1 Champ A T M E D Description V code-type x A x x Voir l’annexe pour le type de dates

1

format x A «yyyy-MM-dd» Doit être dans le format définit par la classe java.text.SimpleDateFormat

1

9.4.7. La mesure Cet objet sert à indiquer tout type de mesure. La quantité représente le nombre d’unités de la mesure. Exemple :

<mesure code-unite="m"> 2.4 </mesure>

mesure O Une mesure 1 Champ A T M E Description V code-unite x A x x Voir l’annexe pour les unités de mesure

1

valeur VN x Quantité de la mesure dans l’unité indiquée. 1 measure-date x A La date à laquelle a été effectuée la mesure (v2) 2 date-format x A Le format de l’attribut « measure-date » (v2); il doit être

le format utilisé par la classe java.text.SimpleDateFormat

2

A partir de la version 2 on peut aussi indiquer la date à laquelle a été effectuée la mesure.

9.4.8. La quantité demandée Exemple :

<quantite-demandee > 3 </ quantite-demandee >

quantite-demandee O Une quantité demandée 1 Champ A T M E D Description V code-unite x A E Voir annexe pour les unités de mesure

Par défaut la quantité n’a pas d’unité 1

valeur VN M Quantité dans l’unité indiquée. Dans la v1 cette quantité ne peut pas être négative.

1

9.4.9. La quantité Cet objet hérite de l’objet « quantité demandée ».

Page 108: Plateforme catalogue – API HTTP XAT2€¦ · Plateforme catalogue ... MAJ « Exemple de session de mise-à-jour de prix ». ... Lancement d’une session interactive sur l’ IO

Réf : XA20710DTS079 Ed 1. - Rév. 13 Spécification technique détaillée Date 4 septembre 2009

100 / 140

XAT2

0710

DTS0

79 -

Ce do

cume

nt es

t pro

priét

é de E

TAI.

Tous

droit

s de r

epro

ducti

on et

/ou co

mmun

icatio

n rés

ervé

s.

La quantité n’a pas nécessairement d’unité ou de type. Exemple :

<quantite code-unite="l"> 2.4 </quantite> <quantite code-type="stock"> 2 </quantite>

quantite O Une quantité 1 Champ A T M E D Description V code-unite x H E 1 code-type x A M E « stock » : quantité en stock

« reservee » : quantité réservée « commande » : quantité en commande « demandee » : quantité demandée Par défaut la quantité n’a pas de type. Les quantités de « stock », « reservee » et « commande » ne sont connues que par le DMS.

1

valeur H M 1

9.4.10. La valeur valeur O Une valeur 1 Champ A T M E D Description V code-type x M E HT, TTC, Quantite

voir en annexe les types de valeur taux-mo et taux-tva si présents doivent être cohérents avec ref-interne-taux-mo et ref-interne-taux-tva du prix

1

name x A M E Montant Le nom de la valeur : voir en annexe les noms de valeur - Montant - Unitaire (prix unitaire HT) - PriseEnChargeIngredient - AbattementPeinture - SupplementPeinture - Vetuste - Remise - MO (main d’œuvre) -TVA (% de TVA)

1

code-exprime

x A E Devise Indique si la valeur est exprimée en devise, en pourcentage, en taux ou en unité (de temps ou de surface). voir en annexe les expressions de valeur (Devise, Pourcentage, Taux, Unité,…)

1

code-devise x A E Si code-type est HT, TTC ou TVA on peut renseigner code-devise. Si code-devise est omis, la devise appliquée sera celle définie par défaut dans le shuttle.

1

code-unite x A E Le code-unite n’a de sens que si code-exprime est égal à « Unite » Voir en annexe « unités de mesure »

1

remise-deduite

x B false true si la remise est déduite du montant 1

Page 109: Plateforme catalogue – API HTTP XAT2€¦ · Plateforme catalogue ... MAJ « Exemple de session de mise-à-jour de prix ». ... Lancement d’une session interactive sur l’ IO

Réf : XA20710DTS079 Ed 1. - Rév. 13 Spécification technique détaillée Date 4 septembre 2009

101 / 140

XAT2

0710

DTS0

79 -

Ce do

cume

nt es

t pro

priét

é de E

TAI.

Tous

droit

s de r

epro

ducti

on et

/ou co

mmun

icatio

n rés

ervé

s.

vetuste-deduite

x B false true si la vétusté est déduite du montant 1

valeur VN M le montant de cette valeur Si code-type est « unite » le montant est une quantité dans l’unité précisée

1

Limitations : code-devise et code-unite ne peuvent être tous les 2 renseignés. Exemples de valeur : Exemples montant unitaire hors taxe <valeur code-type="HT" name="Unitaire"

exprime="Devise">40</valeur> HT Remise déduite <valeur code-type="HT" remise-deduite

="true">40</valeur> TTC Remise déduite <valeur code-type="TTC" remise-

deduite="true">40</valeur> HT Remise non déduite <valeur code-type="HT" >40</valeur> TTC Remise non déduite <valeur code-type="TTC" >40</valeur> le montant de la TVA <valeur code-type="HT"

name="TVA">50.00</valeur> Taux TVA en pourcentage Si indiqué, il doit être cohérent avec ref-interne-taux-tva

de l’objet dans lequel cet objet valeur se trouve. <valeur code-type="HT" name="TVA" code-exprime ="Pourcentage" >50.00</valeur>

montant du rabais de la remise ou de la ristourne sur le TTC

<valeur code-type="TTC" name="Remise" >40</valeur>

montant du rabais de la remise ou de la ristourne sur le HT

<valeur code-type="HT" name="Remise" >40</valeur>

rabais, remise ou ristourne en pourcentage sur le TTC

<valeur code-type="TTC" name="Remise" code-exprime="Pourcentage">40</valeur>

rabais, remise ou ristourne en pourcentage sur le HT

<valeur code-type="HT" name="Remise" code-exprime ="Pourcentage">40</valeur>

Taux de Main d’œuvre taux de main d’œuvre Si indiqué, il doit être cohérent avec ref-interne-taux-mo de l’objet dans lequel cet objet valeur se trouve. <valeur code-type="HT" name="MO" code-exprime ="Taux">40</valeur>

Montant HT Vetusté et Remise Deduites <valeur code-type="HT" vetuste-deduite="true" remise-deduite ="true">40</valeur>

Montant TTC Vetusté et Remise Deduites <valeur code-type="TTC" vetuste-deduite="true" remise-deduite="true">40</valeur>

Pourcentage de Vétusté appliqué au HT <valeur code-type="HT" name="Vetuste" code-exprime ="Pourcentage">40</valeur>

Pourcentage de Vétusté appliqué au TTC <valeur code-type="TTC" name="Vetuste" code-exprime ="Pourcentage">40</valeur>

montant de la vétusté appliquée au HT <valeur code-type="HT" name="Vetuste" code-exprime ="Devise">40</valeur>

montant de la vétusté appliquée au TTC <valeur code-type="TTC" name="Vetuste" code-exprime ="Devise">40</valeur>

Pourcentage d’Abattement Peinture appliqué au HT

<valeur code-type="HT" name="AbattementPeinture" code-exprime ="Pourcentage">40</valeur>

Abattement de Peinture exprimé en nombre d’heures

<valeur code-type="Quantite" name="AbattementPeinture" code-exprime="Unite"

Page 110: Plateforme catalogue – API HTTP XAT2€¦ · Plateforme catalogue ... MAJ « Exemple de session de mise-à-jour de prix ». ... Lancement d’une session interactive sur l’ IO

Réf : XA20710DTS079 Ed 1. - Rév. 13 Spécification technique détaillée Date 4 septembre 2009

102 / 140

XAT2

0710

DTS0

79 -

Ce do

cume

nt es

t pro

priét

é de E

TAI.

Tous

droit

s de r

epro

ducti

on et

/ou co

mmun

icatio

n rés

ervé

s.

code-unite="h" >1.5</valeur> Montant Abattement Peinture appliqué au Hors Taxe

<valeur code-type="HT" name="AbattementPeinture" >30</valeur>

Montant Abattement Peinture sur le TTC <valeur code-type="TTC" name="AbattementPeinture" >45</valeur>

Prise en charge de l’ingrédient exprimé en nombre d’heures

<valeur code-type="Quantite" name="PriseEnChargeIngredient" code-exprime ="Unite" code-unite="h" >1.5</valeur>

montant de prise en charge de l’ingrédient appliqué au HT

<valeur code-type="HT" name="PriseEnChargeIngredient" >20</valeur>

montant de prise en charge de l’ingrédient appliqué au TTC

<valeur code-type="TTC" name="PriseEnChargeIngredient" >20</valeur>

Pourcentage Supplément Peinture appliqué au HT

<valeur code-type="HT" name="SupplementPeinture" exprime="Pourcentage" >15</valeur>

Supplément Peinture en temps ou en surface

<valeur code-type="Quantite" name="SupplementPeinture" code-exprime ="Unite" code-unite="h" >1.5</valeur>

Montant Supplément Peinture appliqué au HT

<valeur code-type="HT" name="SupplementPeinture" >30</valeur>

Montant Supplément Peinture appliqué au TTC

<valeur code-type="TTC" name="SupplementPeinture" >35</valeur>

9.4.11. La liste de libellés

La liste de libellés contient un nombre nédéfinit de libellés.

label-list O Une liste de libellés 1 Champ A T M E D Description V long-label (*n) A M Un libellé 1

9.4.12. La couleur

Cet objet représente la peinture du véhicule et il est inspiré par la codification d’ArvA. Il n’est présent qu’à partir de la version 2 du protocole.

painting O La peinture du véhicule 2 Champ A T M E D Description V long-label A M Le libellé de la couleur 2 colour-code A La codification d’ArvA de la couleur (table 9075) 2 hue-code A La codification d’ArvA de la teinte (table 9012) 2 referentiel-colour-code

A Le référentiel du code couleur ; obligatoire si le colour-code est renseigné

2

referentiel-hue-code

A Le référentiel du code teinte ; obligatoire si le hue-code est renseigné

2

painting-type O E Nature de la peinture (codification d’ArvA) 2

Page 111: Plateforme catalogue – API HTTP XAT2€¦ · Plateforme catalogue ... MAJ « Exemple de session de mise-à-jour de prix ». ... Lancement d’une session interactive sur l’ IO

Réf : XA20710DTS079 Ed 1. - Rév. 13 Spécification technique détaillée Date 4 septembre 2009

103 / 140

XAT2

0710

DTS0

79 -

Ce do

cume

nt es

t pro

priét

é de E

TAI.

Tous

droit

s de r

epro

ducti

on et

/ou co

mmun

icatio

n rés

ervé

s.

9.4.13. Le commentaire

Cet objet n’est présent qu’à partir de la version 2 du protocole.

Exemple :

<comment-list> <comment type="2" line-nr="0">Commentaire numéro 1</comment> <comment type="2" line-nr="3"> Commentaire numéro 2</comment> </comment-list>

comment O Un commentaire 2 Champ A T M E D Description V type A C Le type de commentaire (voir la table 9000 de d’ArvA) 2 line-nr I Numéro de ligne de commentaire 2

9.4.14. La localité Cette balise caractérise une localité ; elle apparaît à partir de la version 2 du protocole. 'LocaliteGroup' est un groupe au sens xsd: (xsd:group) LocaliteGroup G Caractérisation d'une localité 2 Champ A T M E D Description V name A Le nom du lieu 2 postal-code A M Le code postal 2 city A M La localité 2 address A L’adresse 2 country-code A E FR L’abréviation du pays 2

9.4.15. Le choc Cette balise caractérise un choc ; elle apparaît à partir version 2 du protocole.

Exemple :

<impact ref-interne-impact="1"> <angle>1</angle>

<zone-list> <zone>1</zone> <zone>8</zone> </zone-list>

<initial-impact-point>1</impact-point> <intensity>B</intensity> <long-label>Un choc en 2 points</long-label> <immobilisation>4</immobilisation> </impact>

impact O Description d'un choc 2

Page 112: Plateforme catalogue – API HTTP XAT2€¦ · Plateforme catalogue ... MAJ « Exemple de session de mise-à-jour de prix ». ... Lancement d’une session interactive sur l’ IO

Réf : XA20710DTS079 Ed 1. - Rév. 13 Spécification technique détaillée Date 4 septembre 2009

104 / 140

XAT2

0710

DTS0

79 -

Ce do

cume

nt es

t pro

priét

é de E

TAI.

Tous

droit

s de r

epro

ducti

on et

/ou co

mmun

icatio

n rés

ervé

s.

Champ A T M E D Description V angle I M L’angle du choc (cf. table d’ArvA 9024) 2 initial-impact-point C Le point d’impact du choc (cf. table d’ArvA 9018) 2 intensity C L’intensité (cf. table d’ArvA 9020) 2 zone-list L M Les zones du choc; représente une liste dont

chaque zone est un caractère (cf. table d’ArvA 9023)

2

long-label A Le libellé du choc 2 ref-interne-impact x I M L’id interne (du document) du choc 2 immobilisation I Nombre de jours d’immobilisation théorique 2 id-franchise-list LI Liste des ID de franchises applicables 2

9.4.16. L’usure d’un pneu Cette balise caractérise le pourcentage d’usure d’un pneu ; elle apparaît à partir de la version 2.

Exemple :

<tire-wear position="ARD">12.0</tire-wear> tire-wear O Usure d'un pneu 2 Champ A T M E D Description V V x Le pourcentage d’usure 2 position x A M Le pneu affecté (roue de secours, AVG, AVD, ARD,…) 2

9.4.17. La remise Cette balise apparaît à partir de la version 2 du protocole. deduction O Une remise 2 Champ A T M E D Description V rate % M Le pourcentage de remise 2 appl M x zone d’applicabilité de la remise 2 deduction-intern-ref x I M L’index interne de la remise 2 label A Le libellé de la remise

9.4.18. L’équipement du véhicule Cette balise apparaît à partir de la version 2 du protocole. equipment O Un équipement du véhicule 2 Champ A T M E D Description V long-label A M Le libellé de l’équipement 2 price O Le prix 2 type x A E S Le type d’équipement, cf. annexe. 2

9.4.19. L’image Cette balise apparaît à partir de la version 2 du protocole. image O Une image 2

Page 113: Plateforme catalogue – API HTTP XAT2€¦ · Plateforme catalogue ... MAJ « Exemple de session de mise-à-jour de prix ». ... Lancement d’une session interactive sur l’ IO

Réf : XA20710DTS079 Ed 1. - Rév. 13 Spécification technique détaillée Date 4 septembre 2009

105 / 140

XAT2

0710

DTS0

79 -

Ce do

cume

nt es

t pro

priét

é de E

TAI.

Tous

droit

s de r

epro

ducti

on et

/ou co

mmun

icatio

n rés

ervé

s.

Champ A T M E D Description V name A M Le nom de l’image 2 size A M La taille de l’image. 2 id A M Un ID qui permet la lecture de l’image ; il est unique 2 date-creation H M La date de création de l’image. 2 idorig A L’ID de l’image d’origine (pour une image transformée) 2 category A Le type d’image 2 MIMEtype A Le type MIME de l’image 2 comment A Un commentaire 2 digest A Une valeur de hash associé aux valeurs de pixels, pour

vérifier l’intégrité de l’image. 2

pixels A Les pixels de l’image, encodés en Base 64 2 La lecture d’une image peut se faire en 2 manières :

Soit dans un shuttle, avec les pixels encodés en Base64 Soit en utilisant le service « BulkData », en faisant un GET de l’image à ce service avec une

URL du genre http://..../xat2bd/12345678/abcde ou 12345678 représente l’ID de la session et abcde la valeur de l’ID de l’image.

Dans la balise image on peut donc avoir pixels uniquement pour des images de petite taille. Le type MIME de l’image peut être le suivant :

image/gif image/jpeg image/png image/tiff

9.4.20. La signature Cette balise apparaît à partir de la version 2 du protocole ; elle représente un «digest » (une valeur de hachage) d’un objet.

Exemple :

<digest algorithm="SHA-1">c3b2c2e2dfd37ef049a96886689a65733c113fb</digest> digest O Une signature (valeur de hachage) 2 Champ A T M E D Description V algorithm x A SHA-1 L’algorithme utilisé (1) 2 V(2) M La signature calculé avec l’algorithme ci-dessus 2

(1) Les algorithmes utilisés sont : a. MD2 : l’algorithme définit dans RFC 1319, b. MD5 : l’algorithme définit dans RFC 1321, c. SHA-1: l’algorithme définit dans Secure Hash Standard, NIST FIPS 180-1 (sur 160

bits), d. SHA-256, SHA-384, et SHA-512: algorithms définis dans draft Federal Information

Processing Standard 180-2, Secure Hash Standard (SHS). (2) La valeur est un tableau d’octets, encodés en hexadécimal.

9.4.21. Le courtier Cette balise apparaît à partir de la version 2 du protocole. broker O Un courtier 2

Page 114: Plateforme catalogue – API HTTP XAT2€¦ · Plateforme catalogue ... MAJ « Exemple de session de mise-à-jour de prix ». ... Lancement d’une session interactive sur l’ IO

Réf : XA20710DTS079 Ed 1. - Rév. 13 Spécification technique détaillée Date 4 septembre 2009

106 / 140

XAT2

0710

DTS0

79 -

Ce do

cume

nt es

t pro

priét

é de E

TAI.

Tous

droit

s de r

epro

ducti

on et

/ou co

mmun

icatio

n rés

ervé

s.

Champ A T M E D Description V basic-ident O Les données de base d’identification 2 company O La société pour laquelle travaille le courtier 2

9.4.22. La companie d’assurance

Cette balise apparaît dans la version 2 du protocole.

Exemple :

<ins-company> <basic-ident> <name>AVIVA ASSURANCES</name> <postal-code>76137</postal-code> </basic-ident> <codeGTA>001</codeGTA> <arva-code>A75000011822</arva-code>

</ins-company>

ins-company O Une compagnie d'assurance 2 Champ A T M E D Description V basic-ident O M Données de base d’identification 2 agreement-type I Nature de l’accord (agrée) – cf. table d’ArvA 9019 2 codeGTA A Code GTA de l’assurance 2 accident-id A Référence du sinistre 2 mission-id A Numéro d’ordre de la mission 2 arva-code A Le numéro d’ArvA 2 taux-mo-list L La liste de taux de main d’œuvre 2 deduction-list L La liste de remises 2 tae-code A Code TAE de l’assurance 2

Les listes de taux de main d’œuvre et de remises représentent (si présentes) les valeurs appliquées dans un garage pour cette société d’assurance.

9.4.23. Le gestionnaire

Cette balise apparaît dans la version 2 du protocole.

manager O Un gestionnaire 2 Champ A T M E D Description V basic-ident O M Données de base d’identification 2 manager-code A M Code gestionnaire 2 extension-number I Numéro de poste du gestionnaire 2 company O La société pour laquelle travaille le gestionnaire 2

9.4.24. Le sinistre

Cette balise apparaît dans la version 2 du protocole.

Page 115: Plateforme catalogue – API HTTP XAT2€¦ · Plateforme catalogue ... MAJ « Exemple de session de mise-à-jour de prix ». ... Lancement d’une session interactive sur l’ IO

Réf : XA20710DTS079 Ed 1. - Rév. 13 Spécification technique détaillée Date 4 septembre 2009

107 / 140

XAT2

0710

DTS0

79 -

Ce do

cume

nt es

t pro

priét

é de E

TAI.

Tous

droit

s de r

epro

ducti

on et

/ou co

mmun

icatio

n rés

ervé

s.

accident O Un sinistre 2 Champ A T M E D Description V place O M Le lieu du sinistre (voir ci-dessous). 2 id A M La référence du sinistre date H La date du sinistre 2 initial-impact-id I L’id de la zone de choc initiale 2 impact-nr I Le nombre de chocs 2 event-nature C La nature de l’événement (cf. table d’ArvA 9007) 2 obstacle-nature La nature du véhicule adverse ou de l’obstacle (cf. table

d’ArvA 9015) 2

third-party-identified

B Le tiers identifié 2

impact-label A Libellé du choc déclaré 2

9.4.25. La franchise

Cette balise apparaît dans la version 2 du protocole ; elle décrit une franchise.

franchise O Une franchise 2 Champ A T M E D Description V application-domain C x Voir la table 9041 de d’ArvA 2 long-label A Descriptif de la franchise 2 allin-price-frnch-amount-list

L x Montant franchise forfaitaire 2

allin-price-frnch-rate P x Taux franchise proportionnelle 2 floor-price-frnch-amount-list

L x Montant du plancher franchise proportionnelle 2

ceil-price-frnch-amount-list

L x Montant du plafond franchise proportionnelle 2

meeting-costs-rate % Pourcentage de prise en charge 2 meeting-costs-amount-list

L Montant plafond de prise en charge 2

deductible- timeworn B Vetusté à deduire 2 insured-deductible-VAT B TVA récupérable par l’assuré 2 calc-el-repair-included B Eléments de calcul compris dans le coût de la

réparation 2

internal-id x I L’ID de la franchise dans le document 2

Les balises de type liste permettent d’exprimer plusieures valeurs (TTC, HT).

9.4.26. Le défaut

Cette balise apparaît dans la version 2 du protocole.

default O Un défaut du véhicule 2 Champ A T M E D Description V name A M Le nom du défaut (fêlure, éclat, cassure,..) 2 position C M La position sur le véhicule (les valeurs correspondent à la

codification de la table d’ArvA 9038) 2

Page 116: Plateforme catalogue – API HTTP XAT2€¦ · Plateforme catalogue ... MAJ « Exemple de session de mise-à-jour de prix ». ... Lancement d’une session interactive sur l’ IO

Réf : XA20710DTS079 Ed 1. - Rév. 13 Spécification technique détaillée Date 4 septembre 2009

108 / 140

XAT2

0710

DTS0

79 -

Ce do

cume

nt es

t pro

priét

é de E

TAI.

Tous

droit

s de r

epro

ducti

on et

/ou co

mmun

icatio

n rés

ervé

s.

9.4.27. Le valeur simple d’un prix

Cette balise apparaît dans la version 2 du protocole ; elle représente une valeur simplifiée du prix (pour le bilan technique)

value 2 Champ A T M E D Description V label A M Le libellé 2 price O M La valeur du prix 2

9.4.28. L’intermédiaire

Cette balise apparaît dans la version 2 du protocole.

intermediary O Un intermédiaire 2 Champ A T M E D Description V basic-ident O M Données de base d’identification 2 intermediary-code A M Code de l’intermédiaire 2 extension-number I Numéro de poste de l’intermédiaire 2 file-id A L’ID du dossier 2 company O La société pour laquelle travaille l’intermediaire 2

9.4.29. Le lésé

Cette balise apparaît dans la version 2 du protocole.

injured-party O Un lésé 2 Champ A T M E D Description V basic-ident O M Données de base d’identification 2 insurance-type

A Le type d’assurance 2

third-party-name

A Le nom du tiers 2

business-phone

A Le numéro de téléphone professionnel en format international (préfixé par l’IDD)

2

company O La société où travaille le lésé 2

9.4.30. L’expert

Cette balise apparaît dans la version 2 du protocole.

insurance-evaluator O Un expert 2 Champ A T M E D Description V basic-ident O M Données de base d’identification 2 VGA-code A Le code VGA 2 arva-code A Le code d’ArvA 2 company O Le cabinet à qu’il appartient 2 tae-code A Code TAE de l’expert 2

Page 117: Plateforme catalogue – API HTTP XAT2€¦ · Plateforme catalogue ... MAJ « Exemple de session de mise-à-jour de prix ». ... Lancement d’une session interactive sur l’ IO

Réf : XA20710DTS079 Ed 1. - Rév. 13 Spécification technique détaillée Date 4 septembre 2009

109 / 140

XAT2

0710

DTS0

79 -

Ce do

cume

nt es

t pro

priét

é de E

TAI.

Tous

droit

s de r

epro

ducti

on et

/ou co

mmun

icatio

n rés

ervé

s.

9.4.31. Le cabinet d’experts

Cette balise apparaît dans la version 2 du protocole.

company O Une société 2 Champ A T M E D Description V basic-ident O M Données de base d’identification 2 arva-code A Le code d’ArvA 2

9.4.32. L’identifiant pour le service BulkData

Cette balise apparaît dans la version 2 du protocole.

Exemple:

<bulkdata> <id>48761c095c1d438fb73c7920bc414f93</id> <size>1782603</size> <digest algorithm="SHA-1">c3b2c2e2dfd37ef049a96886689a65733c113fb</digest>

</bulkdata>

bulkdata O 2 Champ A T M E D Description V id A L’ID de la ressource à utiliser dans l’URL du service BulkData 2 size I La taille du fichier envoyé par le service, en octets 2 digest O Une valeur de hash associé au fichier envoyé, pour vérifier

l’intégrité de celui-ci en réception 2

9.4.33. Site

Il s'agit de décrire ici le site de l'expertise.

site O Le site de l'expertise 2 Champ A T M E D Description V LocaliteGroup G M Localité du site 2

9.4.34. Identification d'une entité Note: cet objet est un groupe au sens xsd (xsd:group), ce qui signifie que tous ces tags sont inclus au même niveau que EntityIdentificationGroup. EntityIdentificationGroup ne doit pas apparaître dans le xml. EntityIdentificationGroup G Identification d'une entité 2 Champ A T M E D Description V name A M Le nom (personne, société d’assurance,…) 2 phone A Le numéro de téléphone (préfixé par l’IDD) 2 postal-code A Le code postal 2 title A E La civilité. 2 address A La localité 2 city A L’adresse 2

Page 118: Plateforme catalogue – API HTTP XAT2€¦ · Plateforme catalogue ... MAJ « Exemple de session de mise-à-jour de prix ». ... Lancement d’une session interactive sur l’ IO

Réf : XA20710DTS079 Ed 1. - Rév. 13 Spécification technique détaillée Date 4 septembre 2009

110 / 140

XAT2

0710

DTS0

79 -

Ce do

cume

nt es

t pro

priét

é de E

TAI.

Tous

droit

s de r

epro

ducti

on et

/ou co

mmun

icatio

n rés

ervé

s.

country-code A E FR L’abréviation du pays 2 fax A Numéro de fax en format international (préfixé

par l’IDD) 2

mobile A Numéro de mobile en format international (préfixé par l’IDD)

2

email @ L’adresse E-mail 2 POBox A La boîte postale 2 sra-nb A Le numéro SRA 2 siret-nb A Le numéro Siret 2

9.4.35. Une entreprise

company O Identification d'une entreprise 2 Champ A T M E D Description V EntityIdentificationGroup G Identification d'une entité 2

9.4.36. propriétaire du véhicule

owner O Identification du propriétaire du véhicule 2 Champ A T M E D Description V EntityIdentificationGroup G Identification d'une entité 2

9.4.37. Les données d’identification de base Cette balise caractérise une personne ou une entité quelconque ; elle apparaît à partir de la version 2 du protocole. basic-ident O Identification d'une entité ou d'une personne 2 Champ A T M E D Description V EntityIdentificationGroup G Identification d'une entité 2

9.4.38. L’état Cette balise apparaît à partir de la version 2 du protocole.

Exemple:

<status> <id>48761c095c1d438fb73c7920bc414f93</id> <status>Valide</status>

</status> status O Un état 2 Champ A T M E D Description V id A M Un ID qui permet la lecture de l’état ; il est unique 2 status A L’état du document 2 comment A Un commentaire 2

La lecture de l’état de fait en utilisant le service « BulkData », en faisant un GET à ce service avec une URL du genre http://..../xat2bd/12345678/abcde ou 12345678 représente l’ID de la session et abcde la valeur de l’ID de l’état ; on récupère un shuttle.

Page 119: Plateforme catalogue – API HTTP XAT2€¦ · Plateforme catalogue ... MAJ « Exemple de session de mise-à-jour de prix ». ... Lancement d’une session interactive sur l’ IO

Réf : XA20710DTS079 Ed 1. - Rév. 13 Spécification technique détaillée Date 4 septembre 2009

111 / 140

XAT2

0710

DTS0

79 -

Ce do

cume

nt es

t pro

priét

é de E

TAI.

Tous

droit

s de r

epro

ducti

on et

/ou co

mmun

icatio

n rés

ervé

s.

9.4.39. Le paramètre de recherche dans le DMS Cette balise apparaît à partir de la version 2 du protocole.

Exemple:

<parameter type=”Immatriculation”> 123AAA92 </ parameter>

L’exemple ci-dessus montre une recherché de véhicule, à partir de l’immatriculation, dans le DMS.

<parameter type=”Name”> Pascal </ parameter>

Cet exemple montre une recherché de client, à partir de son nom, dans le DMS.

parameter O Le paramètre à rechercher 2 Champ A T M E D Description V type x A M Le type de la recherche 2 A La valeur du paramètre recherché

9.4.40. L’identifiant

Cette balise apparaît à partir de la version 2 du protocole.

id O Identifiant 2 Champ A T M E D Description V type x A M Le propriétaire de l’identifiant (DMS, ETAI,…) 2 A La valeur de l’identifiant 2 Cette balise est susceptible d’évoluer.

9.5. Référentiels

9.5.1. Fournisseur

Un fournisseur de pièces.

Exemple :

<supplier ref-etai="1015"> <short-label>BEN</short-label> <long-label>Bendix</long-label> <reference-simplifiee>true</reference-simplifiee> <code-genre>Equipementier</code-genre> <actif>true</actif> </supplier>

supplier O Un fournisseur 1 Champ A T M E D Description V ref-etai x A M E référence du fournisseur dans la base ETAI cf.

annexe «liste des fournisseurs » Un fournisseur sera toujours associé à ce code.

1

short-label A Abréviation fournisseur. Il s’agit de celle paramétrée dans l’application IO. (1) Maximum 64 caractères.

1

Page 120: Plateforme catalogue – API HTTP XAT2€¦ · Plateforme catalogue ... MAJ « Exemple de session de mise-à-jour de prix ». ... Lancement d’une session interactive sur l’ IO

Réf : XA20710DTS079 Ed 1. - Rév. 13 Spécification technique détaillée Date 4 septembre 2009

112 / 140

XAT2

0710

DTS0

79 -

Ce do

cume

nt es

t pro

priét

é de E

TAI.

Tous

droit

s de r

epro

ducti

on et

/ou co

mmun

icatio

n rés

ervé

s.

long-label A M Nom du fournisseur 1 reference-simplifiee

B true Cette donnée correspond au paramétrage dans le module d’administration de l’application IO Cette donnée désigne si l’échange des références de pièce doit s’effectuer sur les références simplifiées ou sur les références complètes. (1)

1

code-genre A E Equipementier Constructeur ou Equipementier cf. « genres des fournisseurs » en annexe

1

actif B true ‘true’ indique que le fournisseur est géré ‘false’ indique que le fournisseur n’est pas ou n’est plus géré

1

(1) Se reporter au document suivant pour connaître l’utilisation et le format des abréviations fournisseur et des références simplifiées ou complètes :

AIO0607MMO039E1R1 interface_tcp_atelioAM_login silent

9.5.2. Tarifs Le DMS reçoit une liste de tarifs provenant de l'application ETAI. PartPrices 1 Champ A T M E D Description V a A M Un article (un prix). 1 Si la liste n’est pas compressée (atribut compressed = false ou pas présent), un article représente une ligne du fichier de tarifs envoyé chargé par le distributer. Les données sont de type CSV et les champs réprésentent :

le code ETAI du fournisseur (le même que celui fournit au DMS lors de la récupération du référentiel fournisseurs; un nombre entier),

le libellé court (l'abréviation) du fournisseur, la référence de la pièce fournie par le distributeur, le libellé fournisseur de la pièce, le prix achat unitaire garage HT (un nombre décimal) le prix achat unitaire public HT (un nombre décimal) - c'est à dire le prix de vente

Page 121: Plateforme catalogue – API HTTP XAT2€¦ · Plateforme catalogue ... MAJ « Exemple de session de mise-à-jour de prix ». ... Lancement d’une session interactive sur l’ IO

Réf : XA20710DTS079 Ed 1. - Rév. 13 Spécification technique détaillée Date 4 septembre 2009

113 / 140

XAT2

0710

DTS0

79 -

Ce do

cume

nt es

t pro

priét

é de E

TAI.

Tous

droit

s de r

epro

ducti

on et

/ou co

mmun

icatio

n rés

ervé

s.

10. ANNEXES – ENUMERATIONS Les tableaux suivants sont de la forme: tag xml contenant le code énuméré

Nom de l'énumération

Version XAT2 à partir de laquelle ce tag est disponible

Code Libellé V code de l'énumération Description de ce

code Version XAT2 à partir de laquelle ce code est disponible

10.1. Enumérations utilitaires Ce sont les énumérations liées aux objets utilitaires.

10.1.1. Liste des familles d’action action Action demandée au DMS 1 Code Libellé V update Mise à jour de données du shuttle 1 retrieve Demande de récupération du shuttle 1 test tester la bonne configuration des URL et tester les redirections 1 trigger Demande de lancer la fonction de création de contexte (session) 1 delete Demande de lancer la fonction de destruction de contexte 1

10.2. Types de Liste

Le type de liste est indiqué dans le tag code-type de l’objet list.

code-type Type de la liste 1 Code Libellé V Suppliers Liste des fournisseurs 1 TauxMO Liste des taux de main d’oeuvre 1 TauxTVA Liste des taux de TVA 1 Parts Liste de pièces 1 ReplacementParts Liste de pièces de remplacement 1 ClassificationElement Liste de classifications de véhicule 1 PartPrices Liste de tarifs 1 VehicleIdent Dans la version 2, ce type de liste permet de récupérer le référentiel

de véhicules. 2

10.3. Références administratives

code-type Type de référence administrative 1 Code Libellé V Immatriculation Immatriculation du véhicule 1 VIN « vehicle identification number » 1

Page 122: Plateforme catalogue – API HTTP XAT2€¦ · Plateforme catalogue ... MAJ « Exemple de session de mise-à-jour de prix ». ... Lancement d’une session interactive sur l’ IO

Réf : XA20710DTS079 Ed 1. - Rév. 13 Spécification technique détaillée Date 4 septembre 2009

114 / 140

XAT2

0710

DTS0

79 -

Ce do

cume

nt es

t pro

priét

é de E

TAI.

Tous

droit

s de r

epro

ducti

on et

/ou co

mmun

icatio

n rés

ervé

s.

CNIT CNIT d’un véhicule Code National d’Identification du Type Ce numéro est délivré par le CNRV « Centre National de Réception des Véhicules »

1

TypeMines Type mines d’un véhicule 1 Chassis Numéro de châssis d’un véhicule 1 TypeMoteur Type de moteur d’un véhicule 1 TVAIntraCommunautaire Code TVA intracommunautaire d’un client 1 ImmatriculationNationality La nationalité de l'immatriculation 2 MasseChargeMaxAdmVeh Masse en charge maximale admissible du véhicule en service 2 MasseChargeMaxAdmEns Masse en charge maximale admissible de l'ensemble en service 2 MasseVehService Masse du véhicule en service avec carosserie et dispositif

d'attelage 2

PoidsVide Poids à vide 2 PeriValid Période de validité du certificat d'immatriculation, si elle n'est pas

illimitée 2

PuissNetMaxi Puissance nette maximale (kW) 2 PuissAdmNat Puissance administrative nationale 2 VitesseMoteur La vitesse du moteur 2 CO2 Emission de CO2 (en g/km) 2 ClasseEnviron Classe environnementale de réception CE

(directives 70/220/CEE ou 88/77/CEE) 2

NivSonore Le niveau sonore à l'arrêt (en décibels) 2

10.4. Types de document Les documents suivants pourront être contenus dans le Shuttle : Code Libellé Version

XAT2 Caddie Un ensemble de pièces commandées 1 List Structure pour demander/envoyer des informations sur des

pièces/fournisseurs 1

Invoice Représente une facture ou une facture comptoir 2 Estimate Représente un devis (complété à la fin avec le panier de

pièces) 1

VehicleIdentification Structure pour demander un identifiant véhicule à IO hors devis

1

PartSearch Structure pour demander une recherche de pièces à partir d’une (partie de) référence, hors devis

1

ListVehicleIdentification Structure pour demander une liste d’identification véhicule à ETAI

2

Open L’application ETAI s’ouvre sur la page d’accueil 1 DocAck L’accusé de réception envoyé par le DMS pour un

devis/facture/panier 2

DocStatus Demande/lecture d’état d’un document antérieur 2 EADmessage Message EAD (contient un expert, des images,…) 2 DMSSearch Recherche d’informations dans le DMS

Page 123: Plateforme catalogue – API HTTP XAT2€¦ · Plateforme catalogue ... MAJ « Exemple de session de mise-à-jour de prix ». ... Lancement d’une session interactive sur l’ IO

Réf : XA20710DTS079 Ed 1. - Rév. 13 Spécification technique détaillée Date 4 septembre 2009

115 / 140

XAT2

0710

DTS0

79 -

Ce do

cume

nt es

t pro

priét

é de E

TAI.

Tous

droit

s de r

epro

ducti

on et

/ou co

mmun

icatio

n rés

ervé

s.

L’attribut document du Shuttle indique de quel type de document il s’agit.

10.5. Enumérations régionales

10.5.1. Liste des Pays

Les codes de pays sont sur 2 lettres, en majuscules et correspondent à la norme ISO 3166. Quelques exemples sont illustrés dans la table suivante :

code-pays Pays V Code Libellé AD ANDORRE 1 AT AUTRICHE 1 AU AUSTRALIE 1 BE Belgique 1 BW BOTSWANA 1 CH SUISSE 1 DE ALLEMAGNE 1 ES Espagne 1 FR FRANCE 1 GF GUYANE FRANÇAISE 1 GB ROYAUME-UNI 1 IT Italie 1 MC MONACO 1 MD République de Moldavie 1 NL PAYS-BAS 1 NO NORVÈGE 1 PL Pologne 1 PT Portugal 1 RO ROUMANIE 1 SM SAINT-MARIN 1 SK SLOVAQUIE 1 SE SUÈDE 1 TF TERRES AUSTRALES FRANÇAISES 1 UM UNITED STATES MINOR OUTLYING ISLANDS

(ÎLES MINEURES ÉLOIGNÉES DES Etats-Unis) 1

US Etats-Unis 1 VA Vatican - HOLY SEE (VATICAN CITY STATE) 1

Codes pays supplémentaires depuis la version 2 :

code-pays Pays V Code Libellé AL ALBANIE 2 AM ARMÉNIE 2 BY BÉLARUS 2 BA BOSNIE-HERZÉGOVINE 2 BG BULGARIE 2 CN CHINE 2 CY CHYPRE 2 CZ République Tchéque 2 DK Danemark 2 EE Estonie 2 FI Finalnd 2 GE Géorgie 2

Page 124: Plateforme catalogue – API HTTP XAT2€¦ · Plateforme catalogue ... MAJ « Exemple de session de mise-à-jour de prix ». ... Lancement d’une session interactive sur l’ IO

Réf : XA20710DTS079 Ed 1. - Rév. 13 Spécification technique détaillée Date 4 septembre 2009

116 / 140

XAT2

0710

DTS0

79 -

Ce do

cume

nt es

t pro

priét

é de E

TAI.

Tous

droit

s de r

epro

ducti

on et

/ou co

mmun

icatio

n rés

ervé

s.

GI Gibraltar 2 GL Groenland 2 GR Grèce 2 HR Croatie 2 HU Hongrie 2 IS Islande 2 IE Irlande (Eire) 2 LV Lettonie 2 LI Liechtenstein 2 LU Luxembourg 2 MK Macédoine 2 MT Malte 2 PF Polynésie française 2 PM Saint-Pierre-et-Miquelon 2 RU Russie 2 SH Sainte-Hélène 2 SI Slovénie 2 TR Turquie 2 UA Ukraine 2

10.5.2. Liste des Langues

Il s’agit de la codification de langues sur 2 lettres cf. ISO 639-1.

code-langue Langue 1 Code Libellé V fr Français (France) 1 en Anglais 1 it Italien 1 de Allemand 1 ro Roumain 1 es Espagnol 1 cs Tchèque 2 da Danois 2 fi Finnois 2 hr Croate 2 hu Hongrois 2 nl Néerlandais (flamand) 2 no Norvégian 2 pl Polonais 2 pt Portugais 2 ru Russe 2 sk Slovaque 2 sl Slovène 2 sv Suédois 2 zh Chinois 2

10.5.3. Unités de mesure

Ce sont les unités de mesure internationales. Voir le site : http://www.industrie.gouv.fr/metro/aquoisert/si.htm

Les pays anglo-saxon utilisent d’autres unités de mesure. Liste à compléter avec les unités anglo-saxonnes.

Page 125: Plateforme catalogue – API HTTP XAT2€¦ · Plateforme catalogue ... MAJ « Exemple de session de mise-à-jour de prix ». ... Lancement d’une session interactive sur l’ IO

Réf : XA20710DTS079 Ed 1. - Rév. 13 Spécification technique détaillée Date 4 septembre 2009

117 / 140

XAT2

0710

DTS0

79 -

Ce do

cume

nt es

t pro

priét

é de E

TAI.

Tous

droit

s de r

epro

ducti

on et

/ou co

mmun

icatio

n rés

ervé

s.

Les unités de mesures des USA et britanniques peuvent porter le même nom mais ne correspondent pas à la même mesure.

code-unite ou code-unite-temps

Unité de mesure 1

Code Libellé V mi Miles 1 km Kilométrage 1 hm hectomètre 1 dam décamètre 1 m mètre 1 dm décimètre 1 cm centimètre 1 mm millimètre 1 d jour 1 h Heure 1 min Minute 1 s Seconde 1 m2 mètre carré 1 dm2 décimètre carré 1 cm2 centimètre carré 1 mm2 millimètre carré 1 m3 mètre cube 1 dm3 décimètre cube 1 cm3 centimètre cube 1 mm3 millimètre cube 1 kg kilogramme 1 hg hectogramme 1 dag décagramme 1 g gramme 1 dg décigramme 1 cg centigramme 1 mg milligramme 1 kl kilolitre 1 hl hectolitre 1 dal décalitre 1 l litre 1 dl décilitre 1 cl centilitre 1 ml millilitre 1

10.5.4. Devises

La codification de devises sur 3 lettres cf. ISO 4217 (voir http://www.iso.org/iso/en/prods-services/popstds/currencycodeslist.html).

code-devise Devise 1 Code Libellé V

Page 126: Plateforme catalogue – API HTTP XAT2€¦ · Plateforme catalogue ... MAJ « Exemple de session de mise-à-jour de prix ». ... Lancement d’une session interactive sur l’ IO

Réf : XA20710DTS079 Ed 1. - Rév. 13 Spécification technique détaillée Date 4 septembre 2009

118 / 140

XAT2

0710

DTS0

79 -

Ce do

cume

nt es

t pro

priét

é de E

TAI.

Tous

droit

s de r

epro

ducti

on et

/ou co

mmun

icatio

n rés

ervé

s.

EUR euro 1 USD Dollars américains 1 GBP Livres sterling 1 CHF Franc suisse 1 SEK Couronne suédoise 1 RON Leu roumain nouveau 1 BWP Pula botswanaise 1 CZK Couronne tchèque 2 DKK Couronne dannoise 2 HUF Forint hongrois 2 NOK Couronne norvégienne 2 PLN Zlot polonnais 2 RUB Ruble russe 2 SKK Couronne slovaque 2 TRY Lire turque 2

10.6. Enumérations liées au client

10.6.1. Civilités code-civilite Civilités 1 Code Libellé V Mme Madame 1 Mlle Mademoiselle 1 M Monsieur 1 MM Messieurs 1 Doc Docteur 1 Me Maître 1 Soc Société 1

10.7. Enumérations liées aux prix

10.7.1. Type de remise code-expression-remises Type de remise 1 Code Libellé V A Absolu 1 P En pourcentage 1

10.7.2. Le payeur d’un prix code-payeur Payeur d'un prix 1 Code Libellé V Grossiste Prix d’achat du Grossiste = le grossiste achète à ce prix 1 Distributeur Prix d’achat du Distributeur = le distributeur achète à ce prix 1 Garage Prix d’achat du Garage = le garagiste achète à ce prix 1 Public Prix d’achat du Public = prix de vente d’un garage 1 Insurance Prix payé par la companie d’assurance (v2) 2

Page 127: Plateforme catalogue – API HTTP XAT2€¦ · Plateforme catalogue ... MAJ « Exemple de session de mise-à-jour de prix ». ... Lancement d’une session interactive sur l’ IO

Réf : XA20710DTS079 Ed 1. - Rév. 13 Spécification technique détaillée Date 4 septembre 2009

119 / 140

XAT2

0710

DTS0

79 -

Ce do

cume

nt es

t pro

priét

é de E

TAI.

Tous

droit

s de r

epro

ducti

on et

/ou co

mmun

icatio

n rés

ervé

s.

10.7.3. Nature d’un prix code-nature Nature d'un prix 1 Code Libellé V Piece Pièces 1 Ingredient Ingrédient 1 MO Main d’œuvre (m1, m2, m3, t1, t2, t3, p1, p2, i1, i2) 1 Forfait Forfait 1 FMO Forfait main d’œuvre 1 FP Forfait pièces 1 FPMO Forfait pièces et main d’œuvre 1 Consigne Consigne 1 Retraitement Retraitement 1 PF Petites fournitures 1 ESGC Eléments Sous Garantie Contractuelle 1 TA Total du shuttle part Assureur 1 TC Total du shuttle part Client 1 Total Total du shuttle 1

10.7.4. Tarification Une tarification comme les taux de main d’oeuvre sont classifiés selon la zone technique rencontrée et la difficulté de mise en œuvre. Zone technique zone Zone Technique 1 Code Libellé V

M Mécanique 1 T Tôlerie (carosserie) 1 I Ingrédient peinture 1 P Peinture 1 R Redressage 2

La Technicité de la main d’œuvre sera 1, 2,3,… selon la difficulté technique. Pour un ingrédient technicite désigne le numéro d’ingrédient. (1,2,…)

10.7.5. Valeurs

Type de valeurs code-type Type de valeur 1 Code Libellé V HT Hors Taxe 1 TTC Tout Compris 1

Page 128: Plateforme catalogue – API HTTP XAT2€¦ · Plateforme catalogue ... MAJ « Exemple de session de mise-à-jour de prix ». ... Lancement d’une session interactive sur l’ IO

Réf : XA20710DTS079 Ed 1. - Rév. 13 Spécification technique détaillée Date 4 septembre 2009

120 / 140

XAT2

0710

DTS0

79 -

Ce do

cume

nt es

t pro

priét

é de E

TAI.

Tous

droit

s de r

epro

ducti

on et

/ou co

mmun

icatio

n rés

ervé

s.

Quantite Le montant est une quantité pour laquelle on indique une unité (heure ou surface,…)

1

Nom des valeurs name Nom de la valeur 1 Code Libellé V Unitaire montant unitaire 1 Montant montant HT ou TTC remisé ou non, vétusté déduite ou non 1 TVA le montant de la TVA

ou le taux de TVA Le taux de TVA doit être cohérent avec ref-interne-taux-tva de l’objet dans lequel cet objet valeur se trouve.

1

Remise Montant de la Remise sur le TTC ou le HT. % de Remise sur le TTC ou le HT.

1

MO Main d’œuvre Si le taux de main d’œuvre est exprimé, il doit être cohérent avec ref-interne-taux-mo de l’objet dans lequel cet objet valeur se trouve.

1

Vetuste Vétusté indiquée en % ou en montant appliquée sur le HT ou sur le TTC

1

AbattementPeinture Abattement peinture indiqué en % ou en montant appliqué sur le HT ou sur le TTC ou sur la quantité

1

PriseEnChargeIngredient Prise en charge de l’ingrédient 1 SupplementPeinture Supplément peinture 1 Forfait A partir de la version 2 2 Franchise 2 Expression de la valeur code-exprime Expression de la valeur 1 Code Libellé V Devise

valeur exprimée en devise Spécifier la devise dans code-devise

1

Pourcentage

valeur exprimée en pourcentage 1

Taux

valeur exprimée en taux 1

Unite valeur exprimée en unité Spécifier la devise dans code-unite

1

10.8. Enumérations liées au véhicule

10.8.1. Types de carburant code-type-carburant Type de carburant du véhicule 1 Code label Description V Essence Essence 1 Diesel Diesel 1 GNV GNV Gaz Naturel Volatile 1 GPL GPL Gaz de pétrole Liquéfié 1 Electrique Electrique 1 Autre Autre Autre carburant 1 Ethanol Ethanol 2

Page 129: Plateforme catalogue – API HTTP XAT2€¦ · Plateforme catalogue ... MAJ « Exemple de session de mise-à-jour de prix ». ... Lancement d’une session interactive sur l’ IO

Réf : XA20710DTS079 Ed 1. - Rév. 13 Spécification technique détaillée Date 4 septembre 2009

121 / 140

XAT2

0710

DTS0

79 -

Ce do

cume

nt es

t pro

priét

é de E

TAI.

Tous

droit

s de r

epro

ducti

on et

/ou co

mmun

icatio

n rés

ervé

s.

Diester Diester 2 Gazogene Gazogene 2 Petrole Petrole 2 Tractee Tractee 2 HydrocarbComprimees HydrocarbComprimees Hydrocarbures comprimées 2 SansEnergie SansEnergie Sans energie 2

Ces valeurs sont inspirées de la table 9021 du protocole d’Arva.

10.8.2. Liste des marques Cette liste correspond aux marques d’automobiles. Les marques de vélo, de moto, de camions ne sont pas inclues. Ces marques seront également indiquées dans le référentiel forunisseur et apparitront en tant que constructeur.

Code ETAI marque 1 2APM 2 ADRIA MOBIL 3 ALFA-ROMEO 4 ALLIED

VEHICLE 5 ANTONELLI 6 ARCADIA

11 AUDI 12 AUTOBIANCHI 13 AUTOSTAR 14 AUVERLAND 15 AVIA 16 BAB-BUGGY 18 BENIMAR 20 BERTONE 23 BMW 24 BREMACH 27 CADILLAC 28 CAR SYSTEME 29 CARBODIES

182 CHEVROLET ( EUROPE )

31 CHEVROLET ( USA )

33 CHRYSLER 34 CI CARAVANS 35 CITROEN 36 CM 37 CMAK LTD 38 DACIA 39 DAEWOO 41 DAIHATSU 45 DE FREMOND 46 DETHLEFFS

48 DIAMOND STAR MOTOR

171 DODGE 49 DONKERVOORT 50 DURLSOTTI 51 EBRO 52 EBS 53 EFFEDI 54 ELNAGH 56 FIAT 57 FLEUR DE LYS 58 FORD

59 FREIGHT

ROVER 60 FSO 61 GIANNINI 62 GME 63 GPM 64 GRANDIN 65 HIREUS 66 HOBBYCAR 68 HONDA 69 HYMER 70 HYUNDAI 71 INDIGO 72 INNOCENTI 74 IVECO 75 JAGUAR

187 JEEP 76 KASSBOHRER 77 KIA 78 KNAUS 79 LADA 80 LAIKA

82 LANCIA 85 LAND ROVER

168 LEXUS 86 LTI 87 MAGNUM 88 MAHINDRA 89 MARUTI 93 MAZDA 97 MERCEDES 99 MERCURY

100 METROCAB 177 MG 164 MINI 101 MITSUBISHI 102 MOBILVETTA 103 MONCAYO 185 MORICE AIR 106 MORRIS 107 MOSKVITCH 108 MSC 109 MULTICAR 111 NILSSON 112 NISSAN 114 OMECAR 115 OPEL 116 PACHIAUDI 118 PERODUA 119 PEUGEOT 121 PIAGGIO 123 PONTIAC 124 PORSCHE 125 PORTARO ET

GV 126 PRINCESS 127 PROTON

Page 130: Plateforme catalogue – API HTTP XAT2€¦ · Plateforme catalogue ... MAJ « Exemple de session de mise-à-jour de prix ». ... Lancement d’une session interactive sur l’ IO

Réf : XA20710DTS079 Ed 1. - Rév. 13 Spécification technique détaillée Date 4 septembre 2009

122 / 140

XAT2

0710

DTS0

79 -

Ce do

cume

nt es

t pro

priét

é de E

TAI.

Tous

droit

s de r

epro

ducti

on et

/ou co

mmun

icatio

n rés

ervé

s.

128 PUCH 129 QUATEX 130 QVALE 131 RAYTON

FISSORE 133 RENAULT 134 RIMOR 136 ROVER 137 SAAB 138 SAMSUNG

139 SEAT 140 SKODA

95 SMART 141 SMS 142 SOVAMAG 143 SOVRA LM 144 SSANGYONG 145 SUBARU 146 SUNCAR 147 SUZUKI-

SANTANA 148 SVENSK TURBO 149 TALBOT SIMCA 151 TEILHOL 152 TELCO 153 TOYOTA 160 VOLKSWAGEN 159 VOLVO 162 YUGO 163 ZAZ

10.8.3. Organismes émetteur de classification véhicule code-origine de classification-vehicule

Organismes émetteurs de classification véhicule 1

Code Libellé V ETAI ETAI 1 Eurotax Eurotax 1 Jato Jato 1 Tecdoc Tecdoc 2 Polk Polk 2

10.8.4. Codes hiérarchiques d’élément de classification de véhicule code de element-classification

hiérarchie des éléments de classification ETAI 1

Code Libellé V VehicleType Le type de véhicule (v2, pour le poids-lourd) 2 Marque marque du véhicule 1 GroupeModele groupe modèle du véhicule 1 Modele modèle du véhicule 1 Variante variante du véhicule 1 Version une version du véhicule 1

10.8.5. Genres de la boite de vitesse code-genre-boite Genres de la boîte de vitesse 1 Code Libellé V Mecanique boite Mécanique 1 Automatique boite automatique 1

Page 131: Plateforme catalogue – API HTTP XAT2€¦ · Plateforme catalogue ... MAJ « Exemple de session de mise-à-jour de prix ». ... Lancement d’une session interactive sur l’ IO

Réf : XA20710DTS079 Ed 1. - Rév. 13 Spécification technique détaillée Date 4 septembre 2009

123 / 140

XAT2

0710

DTS0

79 -

Ce do

cume

nt es

t pro

priét

é de E

TAI.

Tous

droit

s de r

epro

ducti

on et

/ou co

mmun

icatio

n rés

ervé

s.

10.8.6. Usage du véhicule code-usage Usage du véhicule 1 Code Libellé V Nul nul 1 Modeste modeste 1 Normal normal 1 Intensif intensif 1

10.8.7. Types de véhicule vehicle-type Types de véhicule 2

Code Libellé V PL Poids-lourd 2 VUL Véhicule utilitaire léger 2 VL Véhicule léger 2 ES Essieu 2 AUC Autocar 2 RE remorque 2

10.9. Enumérations liées aux opérations

10.9.1. Types d’opération complexe code-type Type d'opération complexe 1 Code Description V Standard opération Standard 1 Forfait Forfait 1 Retraitement Retraitement 1 Consigne Consigne/Déconsigne 1

10.9.2. Liste des Interventions En gras sont indiquées les interventions les plus courantes.

code de intervention Intervention d'une opération ou d'un temps

1

Code Interventions Description V Accoupler Accoupler 1 Adapter Adapter 1 Ajuster Ajuster 1 Aleser Aléser 1 Aligner Aligner 1 Appairer Appairer 1 Approvisionner Approvisionner 1

Page 132: Plateforme catalogue – API HTTP XAT2€¦ · Plateforme catalogue ... MAJ « Exemple de session de mise-à-jour de prix ». ... Lancement d’une session interactive sur l’ IO

Réf : XA20710DTS079 Ed 1. - Rév. 13 Spécification technique détaillée Date 4 septembre 2009

124 / 140

XAT2

0710

DTS0

79 -

Ce do

cume

nt es

t pro

priét

é de E

TAI.

Tous

droit

s de r

epro

ducti

on et

/ou co

mmun

icatio

n rés

ervé

s.

Assembler Assembler 1 Bloquer Bloquer 1 Brancher Brancher 1 Caler Caler 1 Charger Charger 1 Coller Coller 1 Completer Compléter 1 Configurer Configurer 1 Controler Contrôler 1 Debrancher Débrancher 1 Deconnecter Déconnecter 1 Degarnir Dégarnir 1 Demonter Démonter 1 DemonterRemonter Démonter / remonter 1 Deplacer Déplacer 1 Deposer Déposer 1 DeposerPoser Déposer / Poser 1 Depoussierer Dépoussiérer 1 Depressuriser Dépressuriser 1 Desaccoupler Désaccoupler 1 Deshabiller Déshabiller 1 Desserrer Desserrer 1 Detruire Détruire 1 Diagnostiquer Diagnostiquer 1 Equerrer Equerrer 1 Equilibrer Equilibrer 1 Essayer Essayer 1 Fixer Fixer 1 Garnir Garnir 1 Graisser Graisser 1 Graver Graver 1 Habiller Habiller 1 Huiler Huiler 1 Initialiser Initialiser 1 Laver Laver 1 Lire Lire 1 Lustrer Lustrer 1 Mesurer Mesurer 1 Monter Monter 1 Nettoyer Nettoyer 1 Passer Passer 1 Peindre Peindre 1 Percer Percer 1 Permuter Permuter 1 Poser Poser 1 Prechauffer Préchauffer 1 Preparer Préparer 1 Programmer Programmer 1 Purger Purger 1 Recharger Recharger 1 Rectifier Rectifier 1 Redresser Redresser 1 Refectionner Réfectionner 1 Regler Régler 1

Page 133: Plateforme catalogue – API HTTP XAT2€¦ · Plateforme catalogue ... MAJ « Exemple de session de mise-à-jour de prix ». ... Lancement d’une session interactive sur l’ IO

Réf : XA20710DTS079 Ed 1. - Rév. 13 Spécification technique détaillée Date 4 septembre 2009

125 / 140

XAT2

0710

DTS0

79 -

Ce do

cume

nt es

t pro

priét

é de E

TAI.

Tous

droit

s de r

epro

ducti

on et

/ou co

mmun

icatio

n rés

ervé

s.

Remonter Remonter 1 Remorquer Remorquer 1 Remplacer Remplacer 1 Remplir Remplir 1 Reparer Réparer 1 Reposer Reposer 1 Resserrer Resserrer 1 Retablir Rétablir 1 Reviser Réviser 1 Rincer Rincer 1 Roder Roder 1 Separer Séparer 1 Serrer Serrer 1 Simuler Simuler 1 Souder Souder 1 Surfacer Surfacer 1 Synchroniser Synchroniser 1 Tarer Tarer 1 Telecharger Télécharger 1 Telecoder Télécoder 1 Tester Tester 1 Toiler Toiler 1 Transferer Transférer 1 Transformer Transformer 1 Transvider Transvider 1 Utiliser Utiliser 1 Verifier Vérifier 1 Veriner Vériner 1 Vidanger Vidanger 1

10.9.3. Qualifiants d’intervention (protocole version ?) Les qualifiants d’intervention ne sont pas prévus pour la version 1 du protocole. La table suivante est indiquée uniquement à titre indicatif et peut changer. Code Libellé Exemple V Banc utilisation du banc monter véhicule sur banc ? Dynamique calage dynamique ? Etancheite contexte étanchéité contrôle de l’étanchéité ? Ferrures ? Freinage ? Gabarit ? Marbre Utilisation du marbre ? Pige à la pige contrôle à la pige ? Prolonge prolongé Essai prolongé ? Puissance contrôle/réglage de la puissance ? Tare ? Tension ? Reglage contrôler le réglage ? Routier Essai routier ? Support sur support ?

Page 134: Plateforme catalogue – API HTTP XAT2€¦ · Plateforme catalogue ... MAJ « Exemple de session de mise-à-jour de prix ». ... Lancement d’une session interactive sur l’ IO

Réf : XA20710DTS079 Ed 1. - Rév. 13 Spécification technique détaillée Date 4 septembre 2009

126 / 140

XAT2

0710

DTS0

79 -

Ce do

cume

nt es

t pro

priét

é de E

TAI.

Tous

droit

s de r

epro

ducti

on et

/ou co

mmun

icatio

n rés

ervé

s.

10.9.4. Référentiels alternatifs code-referentiel Référentiel alternatif 1 Code Libellé V ETAI référentiel ETAI 1 DMS Le référentiel est celui du DMS courant, celui avec lequel IO communique 1 Renault le code de l’opération est celui du référentiel Renault - …

10.9.5. Secteur d’activité Code Libellé Activités dans ce secteur V Mecanique Mécanique Mécanique / Electricité / Ferreri 1 Carrosserie Carrosserie Tôlerie / Sellerie 1 Peinture Peinture 1 Redressage Redressage 2

10.9.6. Liste des activités Code Libellé V Electricite Electricité 1 Sellerie Sellerie 1 Mecanique Mécanique 1 Tolerie Tôlerie 1 Ferreri Ferreri 1

10.10. Enumérations liées aux pièces

10.10.1.Position d’une pièce code-position Position d'une pièce 1 Code Libellé V Right Right 1 Left Left 1 Up Up 1 Middle Middle 1 Down Down 1

10.10.2.Nature d’une pièce code-nature Nature d'une pièce 1 Code Libellé V Mecanique Pièce de mécanique 1

Page 135: Plateforme catalogue – API HTTP XAT2€¦ · Plateforme catalogue ... MAJ « Exemple de session de mise-à-jour de prix ». ... Lancement d’une session interactive sur l’ IO

Réf : XA20710DTS079 Ed 1. - Rév. 13 Spécification technique détaillée Date 4 septembre 2009

127 / 140

XAT2

0710

DTS0

79 -

Ce do

cume

nt es

t pro

priét

é de E

TAI.

Tous

droit

s de r

epro

ducti

on et

/ou co

mmun

icatio

n rés

ervé

s.

Carrosserie Pièce de carrosserie 1

10.10.3.Types de pièce code-type Type de pièce 1 Code Libellé V Piece Pièce 1 PF Petite fourniture 1 Ingredient Ingrédient 1 RecherchePiece La référence de la pièce sera utilisée pour

effectuer une recherche de pièces dans la base ETAI.

1

10.10.4.Code type de peinture d’un ingrédient code-type-peinture Type de peinture d'un ingédient 1 Code Libellé V Opaque opaque 1 Metal metal 1 Irise irisé 1 Nacre nacré 1 Vernie vernie 1 Autre Autre 1

Possibilités d’adéquation non exhaustive entre le type de peinture, le nombre de couches et le vernis. L’ingrédient est susceptible d’évoluer en fonction de l’apparition de nouvelles technologies. Pour un ingrédient donné : Type de peinture monocouche bicouche tricouche opaque non verni verni metal non verni verni irisé verni verni nacré verni verni

10.10.5.Code état du stock d’une pièce code-etat Etat du stock d'une pièce 1 Code Libellé V Actif La référence est connue du DMS 1 NestPlusFourni Le DMS ne fournit plus cette pièce 1 Inconnu Le DMS ne connaît pas cette référence 1 Transcode Des références équivalentes existent 1 Remplace Des pièces de remplacement existent 1

Page 136: Plateforme catalogue – API HTTP XAT2€¦ · Plateforme catalogue ... MAJ « Exemple de session de mise-à-jour de prix ». ... Lancement d’une session interactive sur l’ IO

Réf : XA20710DTS079 Ed 1. - Rév. 13 Spécification technique détaillée Date 4 septembre 2009

128 / 140

XAT2

0710

DTS0

79 -

Ce do

cume

nt es

t pro

priét

é de E

TAI.

Tous

droit

s de r

epro

ducti

on et

/ou co

mmun

icatio

n rés

ervé

s.

10.11. Enumérations liées au shuttle

10.11.1.Actions demandées Code Libellé V GetPrix L’IO met à disposition la liste de pièces et il veut les prix 1 GetConditionnement L’IO demande le conditionnement de chaque pièce 1 GetStock L’IO demande le stock disponible de chaque pièce 1 GetPanier L’IO met à la disposition du DMS le panier de pièces 1

GetFacture L’IO met à la disposition du DMS le devis initial plus la liste des opérations, les prix et les temps totaux,… En v2 cette action peut signifier l’envoi d’une facture (document bloqué) si le shuttle est de type Invoice

1 2

GetVehicleIdentification L’IO met à la disposition du DMS une classification de véhicule 1 GetStatusAcknowledge L’IO demande au DMS l’état du document aquitté 2 SendAcknowledge L’IO demande au DMS de lui acquitter le document en cours 2 GetCommande réservé 2 GetDocument réservé

10.12. Enumérations liées aux référentiels

10.12.1.Genre d’un fournisseur

code-genre Genre d'un forunisseur 1 Code Libellé V Constructeur Le fournisseur est un constructeur 1 Equipementier Le fournisseur est un équipementier 1 Manufacturier Pour les constructeurs de pneus 2

10.13. Enumérations liées aux codes de garantie

deposit-code correspond au code de la table D'ARVA 9043.

NB 1: Pour voir la liste complète des codes, se reporter à la norme D'ARVA

NB 2 : deposit-code n'est pas vérifié dans le xsd car une table D'ARVA est susceptible d'évoluer. La liste des codes n'est donc pas limitée à la liste suivante.

Extrait de la Table 9043 D'ARVA deposit-code Code de garantie 2 Code Libellé V 1 Responsabilité civile - 2 Dommage circulation sauf vol, incendie et bris de glace - 3 Vol -

Page 137: Plateforme catalogue – API HTTP XAT2€¦ · Plateforme catalogue ... MAJ « Exemple de session de mise-à-jour de prix ». ... Lancement d’une session interactive sur l’ IO

Réf : XA20710DTS079 Ed 1. - Rév. 13 Spécification technique détaillée Date 4 septembre 2009

129 / 140

XAT2

0710

DTS0

79 -

Ce do

cume

nt es

t pro

priét

é de E

TAI.

Tous

droit

s de r

epro

ducti

on et

/ou co

mmun

icatio

n rés

ervé

s.

4 Incendie -

5 Bris de glace - 6 Catastrophe naturelle -

7 Tempête Neige Grèle - 8 - 9 Protection juridique -

A Objet transporté - Z -

10.14. Enumérations liées aux types d’équipement

Ces valeurs ne sont valables qu’à partir de la version 2 du protocole.

Type d’équipment 2 Code Libellé V O Option 2 S Série 2 P Plus ou moins value 2

10.15. Autrès énumérations

10.15.1.Applicabilité d’une remise

Ces valeurs ne sont valables qu’à partir de la version 2 du protocole

Code Signification V P Pièces 2 C Carosserie 2 M Mécanique 2

R Redressage 2

V Peinture 2

I Ingrédient peinture 2

T Temps 2 B Pied de page 2

11. ANNEXE LISTE DES FOURNISSEURS ref-etai label-long actif label-court reference-simplifiee type

1000 ABEX true ABE true Equipementier

Page 138: Plateforme catalogue – API HTTP XAT2€¦ · Plateforme catalogue ... MAJ « Exemple de session de mise-à-jour de prix ». ... Lancement d’une session interactive sur l’ IO

Réf : XA20710DTS079 Ed 1. - Rév. 13 Spécification technique détaillée Date 4 septembre 2009

130 / 140

XAT2

0710

DTS0

79 -

Ce do

cume

nt es

t pro

priét

é de E

TAI.

Tous

droit

s de r

epro

ducti

on et

/ou co

mmun

icatio

n rés

ervé

s.

11.1.1. Liste des types de date Code Libellé format V DerniereModification Date de dernière modification du

shuttle yyyy-MM-dd hh:mm:ss

1

DerniereModificationFournisseur Date de dernière modification du référentiel fournisseur

yyyy-MM-dd hh:mm:ss

1

Validation date de validation du shuttle yyyy-MM-dd hh:mm:ss

1

ControleTehnique

Date de contrôle technique du véhicule Pour un véhicule donné, Il peut exister plusieurs dates de contrôle technique

yyyy-MM-dd 1

PremiereMEC Première mise en circulation Pour un véhicule donné, il ne peut exister qu’une seule 1ère date de mise en circulation.

yyyy-MM-dd 1

AnneeModele Année modèle d’un véhicule Pour un véhicule donné, il ne peut exister qu’une seule date de ce type.

yyyy 1

Disponibilite Date de disponibilité d’une pièce yyyy-MM-dd 1 Purchasing Date d’achat d’un véhicule yyyy-MM-dd 2 ExpertVisitBeforeWorks Date de visite de l’expert avant

travaux yyyy-MM-dd 2

ExpertVisitDuringWorks Date de visite de l’expert pendant travaux

yyyy-MM-dd 2

ExpertVisitAfterWorks Date de visite de l’expert après travaux

yyyy-MM-dd 2

ExpertVisitAfterRectificationBench Date d’examen sur banc de redressage

yyyy-MM-dd 2

ExpertFirstVisit Date de la première visite de l’expert

yyyy-MM-dd 2

ExpertSecondVisit Date de la deuxième visite de l’expert

yyyy-MM-dd 2

FileCreation Date de création du dossier yyyy-MM-dd hh:mm:ss

2

InvoiceCreation Date de création de la facture yyyy-MM-dd hh:mm:ss

2

Accident Date du sinistre yyyy-MM-dd 2 DerniereModificationIdent La date de la création du fichier

ident yyyy-MM-dd hh:mm:ss

2

Page 139: Plateforme catalogue – API HTTP XAT2€¦ · Plateforme catalogue ... MAJ « Exemple de session de mise-à-jour de prix ». ... Lancement d’une session interactive sur l’ IO

Réf : XA20710DTS079 Ed 1. - Rév. 13 Spécification technique détaillée Date 4 septembre 2009

131 / 140

XAT2

0710

DTS0

79 -

Ce do

cume

nt es

t pro

priét

é de E

TAI.

Tous

droit

s de r

epro

ducti

on et

/ou co

mmun

icatio

n rés

ervé

s.

12. ANNEXE – ENUMERATIONS LIEES AUX OBJETS UTILITAIRES

12.1. Enumérations liées aux services Les services assurés par le serveur d’applications ETAI sont :

Action Type d’accès Description V ManageSession GET, POST,

DELETE Gestion de la session de travail 1

SessionShuttle GET, POST Gestion du shuttle 1 Display GET Le point d’entrée dans l’application ETAI pour le DMS principal 1 TestSessionFlow GET, POST Service de test de redirections 1 BugReport POST Disponible à partir de la version 2 (service réservé) 2 BulkData GET L’URL pour récupérer des données binaires (images en

mode EAD, le contenu du fichier ident.xml ou la liste de tarifs) ; disponible à partir de la version 2.

2

Le DMS doit assurer, à son URL, un accès en HEAD, GET et POST.

13. ANNEXE – CONFIGURATION PARTICULIERE Une variante de la configuration DMS local – IO extranet consiste à avoir le navigateur intégré dans le DMS ; dans ce cas, il suffit que le DMS intercepte le code de retour 302 de l’IO et qu’il remplace l’adresse de redirection par l’adresse finale d’affichage de l’IO. Bien sur, avant de rendre la main au navigateur pour que celui-ci se rende à cette adresse, le DMS doit interroger l’IO pour récupérer la liste des objets (par exemple la liste de pièces) dont l’IO a besoin de renseignements supplémentaires, et transmettre le résultat (les pièces avec leur prix) à l’IO.

Page 140: Plateforme catalogue – API HTTP XAT2€¦ · Plateforme catalogue ... MAJ « Exemple de session de mise-à-jour de prix ». ... Lancement d’une session interactive sur l’ IO

Réf : XA20710DTS079 Ed 1. - Rév. 13 Spécification technique détaillée Date 4 septembre 2009

132 / 140

XAT2

0710

DTS0

79 -

Ce do

cume

nt es

t pro

priét

é de E

TAI.

Tous

droit

s de r

epro

ducti

on et

/ou co

mmun

icatio

n rés

ervé

s.