Cette description comportent deux types d'indications: Celles relevant de la norme SData et celles spécifiques à X3.
Norme SData
Les informations relatives au standard SData sont disponibles à l'adresse suivante : http://interop.sage.com/daisy/sdata/Metadata/TypicalSDataSchema.htm.
Indications spécifiques Safe X3
- Balise schema.
Indication du NameSpace (serp) utilisé par Safe X3 pour identifier les informations spécifiques dans le schéma.
xmlns:serp="http://schemas.sage.com/sdata/serp/2010"
- Balise import.
Cette balise permet de référencer d'autres descriptions XSD nécessaire à l'utilisation du présent contrat. - serp:conName="xxxxxx".
Cet attribut permet d'indiquer le code Safe X3 du contrat importé. Dans le cadre du contrat CRM, il s'agit ici de référencer le nom du contrat 'common' dans Sage X3, qui contient la description des ressources communes à tous les contrats et nécessaires au contrat CRM.
- Balise complexTypeavec un attribut namede la forme xxxx--type.
Cette balise appartient au standard SData et décrit la structure d'une ressource.
Sur ce tag, les attributs spécifiques Safe X3 peuvent être ajoutés : - serp:trtCode="STRGC1TRAACO".
Cet attribut permet d'indiquer le code du traitement Safe X3 qui prend en charge la gestion des accès à la ressource: opérations CRUDT (Create, Read, Update, Delete, Template), - serp:stcResCode="GC1TRAACO".
Cet attribut permet d'indiquer le code de la structure Safe X3 qui prend en charge la ressource, - serp:stcClobMaxSize="12".
Cet attribut permet d'indiquer la taille maximum du clob permettant de gérer l'échange des données entre le serveur Safe X3 et le composant "Safe X3 Java Bridge Server".
- Balise complexTypeavec un attribut namede la forme xxxx--list.
Cette balise appartient au standard SData et décrit la l'accès à une collection d'une ressource.
Sur ce tag, les attributs spécifiques Safe X3 peuvent être ajoutés : - serp:trtCode="STRGCTTRAACO".
Cet attribut permet d'indiquer le code du traitement Safe X3 qui prend en charge la gestion de l'accès à la collection (Query), - serp:stcColCode="GCTTRAACO".
Cet attribut permet d'indiquer le code de la structure Safe X3 qui prend en charge la collection d'une ressource, - serp:stcClobMaxSize="12".
Cet attribut permet d'indiquer la taille maximum du clob permettant de gérer l'échange des données entre le serveur Safe X3 et le composant "Safe X3 Java Bridge Server", - serp:maxQueryEntries="50".
Cet attribut permet d'indiquer le nombre maximum de ressources retournées par une interrogation.
Cette limite permet d'éviter de trop solliciter le serveur. Le client pourra accéder aux données suivantes par pagination ou en affinant ces critères de recherche, - serp:linkingQueryEntries="1000".
Cet attribut permet d'indiquer le nombre maximum de ressources retournées par le programme de linking,
Cet attribut est utilisé uniquement dans le cadre interne de mise en oeuvre de la fonction de linking.
- Balise elementcontenue dans une balise complexType.
Cette balise appartient au standard SData et permet de définir les informations appartenant à une ressource SData.
Chaque élément peut être un élément final (rubrique) ou un élément concernant d'autres ressources (relationship de type reference, children, association).
- Gestion des interrogations - Filtre.
Il est possible dans une interrogations d'utiliser les elements signalés par l'attribut canFilter="true".
- Cas des relations reference ou association
Le filtre ne peut porter que sur une seule rubrique de la ressource pour des raisons techniques.
Exemple : dans le contrat CRM : La structure GC1TRAACO contient le champ BPCINV lié à la ressource invoiceTradingAccount qui a une relation de type reference.
Dans ce cas, le contrat comporte :
- dans la description de la ressource principale et sur l'élément décrivant la relation , l'attribut serp:filter="byReference".
Cet attribut indique la restriction d'utilisation de la ressource incluse dans une interrogation (Nota : à titre d'information uniquement), - dans la description de la ressource lié et sur l'élément unique, l'attribut. serp:reference="true".
Cet attribut indique la rubrique utilisable pour une interrogation portant sur cette ressource incluse.
- Gestion des interrogations - Collection obtenues à partir d'une propriété.
Elles sont à utiliser lorsque le nombre de données est inconnue et nécessite d'avoir les mécanismes de pagination d'un query classique.
Ces interrogations sont possibles si l'attribut canGet="true" est positionné sur l'élément possédant la relation de type association.
Cela est le cas pour les commandes d'un client :
/tradingAccount('DIS001')/salesOrders.
Il est aussi possible d'obtenir ce résultat à l'aide d'un query classique
/salesOrders=where tradingAccount.refrerence eq 'DIS001.
Exemple:La structure GC1TRAACO contient le champ QCTORDER lié à la ressource salesOrders qui a une relation de type association.
Dans la structure applicative, les champs dans ce cas utilisent le code structure ASDCOLBV1.
Au niveau contrat, il faut indiquer sur l'élément décrivant la relation association le traitement et le sous-programme chargés de traiter ces demandes: - serp:trtQueryProperty - traitement,
- serp:spgQueryProperty -sous-programme.
- Balise enumeration.
- serp:value="99"
Cet attribut permet de faire une correspondance automatique entre la valeur de l'énunération SData (une chaine de caractère) et la valeur utilisée dans le cadre de Safe X3 (numéro de ligne du menu local gérant l'énumération).