<?xml version="1.0"?>
<?xml-stylesheet type="text/css" href="https://frp.sage.fr/wiki1000/skins/common/feed.css?303"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="fr">
		<id>https://frp.sage.fr/wiki1000/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Cesru</id>
		<title>Wiki1000 - Contributions de l'utilisateur [fr]</title>
		<link rel="self" type="application/atom+xml" href="https://frp.sage.fr/wiki1000/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Cesru"/>
		<link rel="alternate" type="text/html" href="https://frp.sage.fr/wiki1000/index.php/Sp%C3%A9cial:Contributions/Cesru"/>
		<updated>2026-09-20T23:36:57Z</updated>
		<subtitle>Contributions de l'utilisateur</subtitle>
		<generator>MediaWiki 1.18.6</generator>

	<entry>
		<id>https://frp.sage.fr/wiki1000/index.php/Ressource_(sdata)</id>
		<title>Ressource (sdata)</title>
		<link rel="alternate" type="text/html" href="https://frp.sage.fr/wiki1000/index.php/Ressource_(sdata)"/>
				<updated>2026-09-16T11:34:30Z</updated>
		
		<summary type="html">&lt;p&gt;Cesru : ajout de l'exemple &amp;quot;Statuts de paiement d'une facture avec l'API SData&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__TOC__&lt;br /&gt;
&lt;br /&gt;
{{tip|Voir aussi l'[[API Json (SData)|API en mode JSON]], qui permet d'encapsuler d'avantage les appels de service.}}&lt;br /&gt;
&lt;br /&gt;
==Prérequis==&lt;br /&gt;
Les requêtes SData sont exécutées sur [[SData|le point d'accès SData du service]].&lt;br /&gt;
&lt;br /&gt;
La forme simplifiée des urls est &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;http://hostname/sdata/ressource?paramètres&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
ou &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;http://hostname/sdata/societe/ressource?paramètres&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Les requêtes sont authentifiées par un jeton d'authentification placé dans l'entête Authorization de la requêtes.&lt;br /&gt;
&lt;br /&gt;
[[Gestion des jetons d'authentification (Administration)|Le jeton d'authentification peut être géré par le client dans l'administration.]]&lt;br /&gt;
&lt;br /&gt;
Les requêtes doivent comporter les entêtes suivantes :&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|accept&lt;br /&gt;
|application/json&lt;br /&gt;
|-&lt;br /&gt;
|Authorization&lt;br /&gt;
|Bearer token&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Les url des requêtes doivent être encodées, par exemple :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;https://.../sdata/Société 1/ttiers...&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
doit être transmis encodé en&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;https://.../sdata.Soci%C3%A9t%C3%A9%201/ttiers....&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Sélection de version==&lt;br /&gt;
Il es possible d'indiquer un numéro de version dans l'url de la requête.&lt;br /&gt;
&lt;br /&gt;
Placez le numéro de version derrière le préfix sdata :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
 https://.../sdata/1/....&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
En absence de numéro de version la dernière version sera utilisée.&lt;br /&gt;
&lt;br /&gt;
==Informations de version==&lt;br /&gt;
Utilisez la fonction $version pour retrouver les informations de version &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
GET http://localhost:8080/sdata/$version&lt;br /&gt;
{&lt;br /&gt;
    &amp;quot;product&amp;quot;: &amp;quot;Sage FRP 1000&amp;quot;,&lt;br /&gt;
    &amp;quot;version&amp;quot;: &amp;quot;9.1.0.0&amp;quot;,&lt;br /&gt;
    &amp;quot;master&amp;quot;: &amp;quot;1.22&amp;quot;,&lt;br /&gt;
    &amp;quot;apiMajor&amp;quot;: 1,&lt;br /&gt;
    &amp;quot;apiMinor&amp;quot;: 0,&lt;br /&gt;
    &amp;quot;debug&amp;quot;: true,&lt;br /&gt;
    &amp;quot;shareEnable&amp;quot;: true&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
GET https://localhost/sdata/$version?select=details&lt;br /&gt;
{&lt;br /&gt;
    &amp;quot;product&amp;quot;: &amp;quot;Sage FRP 1000&amp;quot;,&lt;br /&gt;
    &amp;quot;version&amp;quot;: &amp;quot;9.1.0.0&amp;quot;,&lt;br /&gt;
    &amp;quot;master&amp;quot;: &amp;quot;1.22&amp;quot;,&lt;br /&gt;
    &amp;quot;apiMajor&amp;quot;: 1,&lt;br /&gt;
    &amp;quot;apiMinor&amp;quot;: 1,&lt;br /&gt;
    &amp;quot;debug&amp;quot;: true,&lt;br /&gt;
    &amp;quot;minors&amp;quot;: [&lt;br /&gt;
        {&lt;br /&gt;
            &amp;quot;minor&amp;quot;: 1,&lt;br /&gt;
            &amp;quot;details&amp;quot;: [&lt;br /&gt;
                &amp;quot;Fix $batch : Error in commit don't return message and continue execution&amp;quot;,&lt;br /&gt;
                &amp;quot;Fix time measure decimal format use . instead of local&amp;quot;,&lt;br /&gt;
                &amp;quot;Add extension information to $schema&amp;quot;,&lt;br /&gt;
                &amp;quot;Add operations to $schema&amp;quot;,&lt;br /&gt;
                &amp;quot;Add select options to $schema&amp;quot;&lt;br /&gt;
            ]&lt;br /&gt;
        },&lt;br /&gt;
        {&lt;br /&gt;
            &amp;quot;minor&amp;quot;: 0,&lt;br /&gt;
            &amp;quot;details&amp;quot;: [&lt;br /&gt;
                &amp;quot;Add version information&amp;quot;&lt;br /&gt;
            ]&lt;br /&gt;
        }&lt;br /&gt;
    ]&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Le paramètre select accepte les options suivantes :&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!option&lt;br /&gt;
!usage&lt;br /&gt;
|-&lt;br /&gt;
|details&lt;br /&gt;
|Détails des modifications des versions mineurs&lt;br /&gt;
|-&lt;br /&gt;
|patches&lt;br /&gt;
|Liste des patches installés&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Mise au point==&lt;br /&gt;
Vous pouvez activer l'enregistrement des messages SDATA dans le répertoire de log du service, en [[[[Fichier_de_configuration_(server)#Logs|configurant le fichier de service]] ou bien en utilisant l'interface de configuration du service.&lt;br /&gt;
&lt;br /&gt;
[[image:Sdata-conf-log.png|600px]]&lt;br /&gt;
&lt;br /&gt;
==Ressource (GET)==&lt;br /&gt;
Dans l'interface SData les ressources sont les objets de l'application.&lt;br /&gt;
&lt;br /&gt;
Une ressource est identifié par son uri qui représente le chemin de la ressource.&lt;br /&gt;
&lt;br /&gt;
L'uri est composé du chemin de la classe et d'un sélecteur qui est l'oid de l'objet. &lt;br /&gt;
&lt;br /&gt;
'''Exemple :''' &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
GET http://localhost:8080/sdata/gentiers/ttiers('9D33A23CFA6A005500F6000000285DAE')&lt;br /&gt;
Response: 200 OK&lt;br /&gt;
{&lt;br /&gt;
   &amp;quot;$baseUrl&amp;quot;:&amp;quot;http://localhost:8080/sdata/l1000/gentiers/-/&amp;quot;,&lt;br /&gt;
   &amp;quot;$title&amp;quot;:&amp;quot;TTiers - -&amp;quot;,&lt;br /&gt;
   &amp;quot;$updated&amp;quot;:&amp;quot;2020-12-22T08:10:09.740Z&amp;quot;,&lt;br /&gt;
   &amp;quot;$resources&amp;quot;:[&lt;br /&gt;
      {&lt;br /&gt;
         &amp;quot;$url&amp;quot;:&amp;quot;TTiers('9D33A23CFA6A005500F6000000285DAE')&amp;quot;,&lt;br /&gt;
         &amp;quot;$title&amp;quot;:&amp;quot;ABI Jardin&amp;quot;,&lt;br /&gt;
         &amp;quot;$updated&amp;quot;:&amp;quot;2010-03-23T15:37:46.000Z&amp;quot;,&lt;br /&gt;
         &amp;quot;$etag&amp;quot;:&amp;quot;9D33A23CFA6A005500F6000000285DAE-000002C60000421C&amp;quot;,&lt;br /&gt;
         &amp;quot;$key&amp;quot;:&amp;quot;9D33A23CFA6A005500F6000000285DAE&amp;quot;,&lt;br /&gt;
         &amp;quot;$baseUrl&amp;quot;:&amp;quot;http://localhost:8080/sdata/l1000/GenTiers/-/&amp;quot;,&lt;br /&gt;
         &amp;quot;stamp&amp;quot;:&amp;quot;000002C60000421C&amp;quot;,&lt;br /&gt;
         .... Attribute list ...&lt;br /&gt;
      }&lt;br /&gt;
   ]&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Sélecteur de ressource===&lt;br /&gt;
&lt;br /&gt;
Un sélecteur permet de retrouver une ressource spécifique, il est possible de rechercher une ressource par clé ou clause  &lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!Sélecteur&lt;br /&gt;
!Exemple&lt;br /&gt;
|-&lt;br /&gt;
|Clé&lt;br /&gt;
|TTiers('9D33A23CFA6A005500F6000000285DAE')&lt;br /&gt;
|-&lt;br /&gt;
|clause&lt;br /&gt;
|TTiers(code eq 'ABI 007')&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Code de retour HTTP===&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!Code&lt;br /&gt;
!Résultat&lt;br /&gt;
|-&lt;br /&gt;
|200&lt;br /&gt;
|La ressource existe &lt;br /&gt;
|-&lt;br /&gt;
|404&lt;br /&gt;
|La ressource n'existe pas&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Gestion des rôles dans les ressources===&lt;br /&gt;
La gestion des rôles de la ressource dépend du type et de la nature du rôle :&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!Type de rôle&lt;br /&gt;
!Nature&lt;br /&gt;
!Retour&lt;br /&gt;
|-&lt;br /&gt;
|Référence,Liste&lt;br /&gt;
|Composition&lt;br /&gt;
|Les ressources composants sont retournées dans le corps de la ressource composée&lt;br /&gt;
|-&lt;br /&gt;
|Référence&lt;br /&gt;
| -&lt;br /&gt;
|La ressource référencée est retournée par référence dans le corps de la ressource&lt;br /&gt;
|-&lt;br /&gt;
|Liste&lt;br /&gt;
| -&lt;br /&gt;
|Les ressources ne sont pas retournées. Pour obtenir ces ressources, il faut faire une requête sur la classe référencée filtrée sur la référence réciproque.&lt;br /&gt;
|-&lt;br /&gt;
|Association&lt;br /&gt;
|Avec suppression en cascade &lt;br /&gt;
|Les ressources associées sont considérées comme des composants et retournées dans le corps de la ressource composée.&lt;br /&gt;
|-&lt;br /&gt;
|Association&lt;br /&gt;
| -&lt;br /&gt;
|Les ressources ne sont pas retournées. Pour obtenir ces ressources, il faut faire une requête sur la classe associée filtrée sur la classe d'association&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{{tip|Utilisez une vue pour retourner directement les attributs liés par des références, voir le paramètre select}}&lt;br /&gt;
&lt;br /&gt;
===Gestion du périmètre société===&lt;br /&gt;
Par défaut, les requêtes s'exécutent dans le contexte société défini dans le jeton d'authentification.&lt;br /&gt;
&lt;br /&gt;
Vous pouvez définir le contexte société dans le l'url de la requête :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
  METHOD https://host/sdata/society/package/class ...&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{tip|Définir le contexte société dans l'url n'est utilisable que sur une base supportant le multi-société. Pour connaitre le statut multi-société, utilisez la requête $version ou bien interrogez [[Utilisation_du_contrôleur_de_partage_(API)|le contrôleur de partage]]}}&lt;br /&gt;
&lt;br /&gt;
==Requête sur les ressources (GET)==&lt;br /&gt;
Une requête sur les ressources est une requête sur une classe du modèle.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
GET http://localhost:8080/sdata/gentiers/ttiers?parameters&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Paramètres de la requête===&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!Paramètre&lt;br /&gt;
!valeur&lt;br /&gt;
!Usage&lt;br /&gt;
|-&lt;br /&gt;
|select&lt;br /&gt;
|liste d'attributs séparés par des virgules&lt;br /&gt;
|Liste des attributs à retourner&lt;br /&gt;
|-&lt;br /&gt;
|where&lt;br /&gt;
|Expression objet&lt;br /&gt;
|Filtre de la requête&lt;br /&gt;
|-&lt;br /&gt;
|orderBy&lt;br /&gt;
|Attribut de tri&lt;br /&gt;
|Ordre de tri de la requête&lt;br /&gt;
|-&lt;br /&gt;
|count&lt;br /&gt;
|Taille de page (*)&lt;br /&gt;
|Pagination : Taille de page&lt;br /&gt;
|-&lt;br /&gt;
|startIndex&lt;br /&gt;
|Index de page&lt;br /&gt;
|Pagination par page : Numéro de page (0 première)&lt;br /&gt;
|-&lt;br /&gt;
|startKey&lt;br /&gt;
|Valeur de clé ou de tri&lt;br /&gt;
|Pagination par clé : Clé de position&lt;br /&gt;
|-&lt;br /&gt;
|keyDirection &lt;br /&gt;
|lt,le,gt,ge&lt;br /&gt;
|Pagination par clé : direction par rapport à startKey&lt;br /&gt;
|-&lt;br /&gt;
|dateFormat&lt;br /&gt;
|noTime, locale, utc&lt;br /&gt;
|Indique le format de date retourné pour les types de données date comptable&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
(*) Il existe une limite par défaut si la valeur de count n'est pas précisée.&lt;br /&gt;
&lt;br /&gt;
Les valeurs passées en paramètre doivent être encodées en HTML &lt;br /&gt;
&lt;br /&gt;
Exemple :&lt;br /&gt;
&lt;br /&gt;
 where=code eq 'ABI 007'&lt;br /&gt;
&lt;br /&gt;
doit être encodée en :&lt;br /&gt;
&lt;br /&gt;
 where=code%20eq%20%27ABI%20007%27&lt;br /&gt;
&lt;br /&gt;
====Select====&lt;br /&gt;
Select permet de définir les attributs à retourner, par défaut tous les attributs non vide sont retournés&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
GET http://localhost:8080/sdata/gentiers/ttiers?select=code,caption&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
La présence du paramètre select conditionne la façon d'exécuter la requête.&lt;br /&gt;
&lt;br /&gt;
Les formats possibles sont :&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!format&lt;br /&gt;
!Usage&lt;br /&gt;
!Génère l'utilisation d'une vue&lt;br /&gt;
|-&lt;br /&gt;
|x&lt;br /&gt;
|Attribut x de la ressource&lt;br /&gt;
|non&lt;br /&gt;
|-&lt;br /&gt;
|x.y&lt;br /&gt;
|Attribut y de la ressource lié par de référence x (jointure exacte)&lt;br /&gt;
|oui&lt;br /&gt;
|-&lt;br /&gt;
|x.+y&lt;br /&gt;
|Attribut y de la ressource lié par de référence x (jointure externe)&lt;br /&gt;
|oui&lt;br /&gt;
|-&lt;br /&gt;
|x as y&lt;br /&gt;
|Attribut y de la ressource retourné sous l'alias x&lt;br /&gt;
|oui&lt;br /&gt;
|-&lt;br /&gt;
|x as ope(y)&lt;br /&gt;
|Opération sur l'attribut y de la ressource retourné sous l'alias x&lt;br /&gt;
|oui&lt;br /&gt;
|-&lt;br /&gt;
|x as ope(y;z)&lt;br /&gt;
|Opération sur les attributs y et z de la ressource retourné sous l'alias x&lt;br /&gt;
|oui&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Une vue sera utilisée si au moins un des membres de select nécessite l'utilisation d'une vue.&lt;br /&gt;
&lt;br /&gt;
Pour les opérateurs utilisables consultez [[Vue_locale_(langage)|la page sur les vues locales]]&lt;br /&gt;
&lt;br /&gt;
Notes :&lt;br /&gt;
&lt;br /&gt;
* La sélection d'attribut référencé non défini peut générer l'absence de ressources dans le résultat, pour éviter ceci utilisez un spécificateur de jointure externe.&lt;br /&gt;
* La sélection d'attribut référencé par un rôle liste peut générer plusieurs ressources dans le résultat correspondant à chaque ressource liée par la relation.&lt;br /&gt;
* La séparation des paramètres pour les opérateurs ayant plusieurs paramètres utilise le séparateur ; et pas ,&lt;br /&gt;
* Lorsqu'une vue est utilisée, les filtres et ordre de tri sont exprimés par rapport à la vue. &lt;br /&gt;
&lt;br /&gt;
Par exemple : &lt;br /&gt;
* TCompteGeneral?select=codeCompte&amp;amp;where=codeCompte ge '4'&amp;amp;orderBy=codeCompte&lt;br /&gt;
mais&lt;br /&gt;
* TCompteGeneral?select=code as codeCompte&amp;amp;where=code ge '4'&amp;amp;orderBy=code&lt;br /&gt;
&lt;br /&gt;
====Dates comptables====&lt;br /&gt;
Le paramètre dateFormat permet de définir le format des dates comptables retournées par l'API&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!Version API&lt;br /&gt;
!dateFormat&lt;br /&gt;
!Exemple&lt;br /&gt;
!Format&lt;br /&gt;
!Représente&lt;br /&gt;
!Temps UTC&lt;br /&gt;
|-&lt;br /&gt;
|1.6&lt;br /&gt;
|&lt;br /&gt;
|2021-05-31T22:00:00Z&lt;br /&gt;
|Format UTC&lt;br /&gt;
|Un instant heure universelle&lt;br /&gt;
|Le 31 Mai 2021 à 22 heure&lt;br /&gt;
|-&lt;br /&gt;
|1.7&lt;br /&gt;
| &lt;br /&gt;
|2021-06-01T00:00:00+02&lt;br /&gt;
|Format UTC&lt;br /&gt;
|Un instant heure universelle&lt;br /&gt;
|Le 31 Mai 2021 à 22 heure&lt;br /&gt;
|-&lt;br /&gt;
|1.7&lt;br /&gt;
|locale&lt;br /&gt;
|2021-06-01T00:00:00&lt;br /&gt;
|Format heure locale&lt;br /&gt;
|Un instant heure locale&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
|1.7&lt;br /&gt;
|noTime&lt;br /&gt;
|2021-06-01&lt;br /&gt;
|Format date locale&lt;br /&gt;
|Une date locale&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
|1.7&lt;br /&gt;
|UTC&lt;br /&gt;
|2021-05-31T22:00:00Z&lt;br /&gt;
|Format heure UTC&lt;br /&gt;
|Un instant heure universelle&lt;br /&gt;
|Le 31 Mai 2021 à 22 heure&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{{warning|Pour les dates comptables, les formats UTC sont ambigus et peuvent générer des erreurs de conversion si les fuseaux horaire du serveur et du client sont différents}}&lt;br /&gt;
&lt;br /&gt;
====Filtre====&lt;br /&gt;
&lt;br /&gt;
'''Opérateurs:'''&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!opérateur&lt;br /&gt;
!équivalence&lt;br /&gt;
!exemple&lt;br /&gt;
!encoded&lt;br /&gt;
|-&lt;br /&gt;
|eq&lt;br /&gt;
|=&lt;br /&gt;
|where=code eq 'ABI 007'&lt;br /&gt;
|where=code%20eq%20%27ABI%20007%27&lt;br /&gt;
|-&lt;br /&gt;
|ne&lt;br /&gt;
|&amp;lt;&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|lt&lt;br /&gt;
|&amp;lt;&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|le&lt;br /&gt;
|&amp;lt;=&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|gt&lt;br /&gt;
|&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|ge&lt;br /&gt;
|&amp;gt;=&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|like&lt;br /&gt;
|like&lt;br /&gt;
|where=code like 'ABI %'&lt;br /&gt;
|where=code%20like%20%27ABI %25%27&lt;br /&gt;
|-&lt;br /&gt;
|in&lt;br /&gt;
|in&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
'''Valeurs des paramètres:'''&lt;br /&gt;
&lt;br /&gt;
Les valeurs des paramètres sont passées en littérale&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!Type de donnée&lt;br /&gt;
!exemple&lt;br /&gt;
|-&lt;br /&gt;
|Chaîne&lt;br /&gt;
|code eq 'xxx'&lt;br /&gt;
|-&lt;br /&gt;
|boolean&lt;br /&gt;
|flag eq true&lt;br /&gt;
|-&lt;br /&gt;
|numérique&lt;br /&gt;
|value eq 1&lt;br /&gt;
|-&lt;br /&gt;
|flottant&lt;br /&gt;
|value eq 1.0&lt;br /&gt;
|-&lt;br /&gt;
|date (voir format)&lt;br /&gt;
|$updated &amp;gt; '2019-12-31T23:00:00Z'&lt;br /&gt;
|-&lt;br /&gt;
|enum (par index)&lt;br /&gt;
|value eq 1&lt;br /&gt;
|-&lt;br /&gt;
|enum (par constant)&lt;br /&gt;
|value eq sens_credit&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Format des paramètres date :&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!format&lt;br /&gt;
!décodage&lt;br /&gt;
!Exemple (1 jan. 2020 France)&lt;br /&gt;
|-&lt;br /&gt;
|AAAA-MM-DDTHH:MM:SS.MMMZ&lt;br /&gt;
|ISO-8601 UTC&lt;br /&gt;
|2019-12-31T23:00:00Z&lt;br /&gt;
|-&lt;br /&gt;
|AAAA-MM-DDTHH:MM:SS.MMM+OFFSET&lt;br /&gt;
|ISO-8601 avec timezone&lt;br /&gt;
|2019-12-31T23:00:00+1&lt;br /&gt;
|-&lt;br /&gt;
|AAAA-MM-DDTHH:MM:SS.MMM&lt;br /&gt;
|ISO-8601 sans timezone&lt;br /&gt;
|2020-01-01T00:00:00&lt;br /&gt;
|-&lt;br /&gt;
|AAA-MM-DD&lt;br /&gt;
|Date au format ISO-8601&lt;br /&gt;
|2020-01-01&lt;br /&gt;
|-&lt;br /&gt;
|DD/MM/AAAA&lt;br /&gt;
|Date au format local&lt;br /&gt;
|01/01/2020&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
====Ordre de tri====&lt;br /&gt;
&lt;br /&gt;
Tri ascendant :&lt;br /&gt;
&lt;br /&gt;
 orderby=code&lt;br /&gt;
&lt;br /&gt;
Tri descendant :&lt;br /&gt;
&lt;br /&gt;
 orderby=code%20desc&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
GET http://localhost:8080/sdata/gentiers/ttiers?orderBy=code%20desc&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Pagination par page====&lt;br /&gt;
&lt;br /&gt;
Utiliser orderBy, count et startIndex&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
GET http://localhost:8080/sdata/gentiers/ttiers?select=code&amp;amp;orderby=code&amp;amp;count=10&amp;amp;startIndex=0&lt;br /&gt;
GET http://localhost:8080/sdata/gentiers/ttiers?select=code&amp;amp;orderby=code&amp;amp;count=10&amp;amp;startIndex=10&lt;br /&gt;
GET http://localhost:8080/sdata/gentiers/ttiers?select=code&amp;amp;orderby=code&amp;amp;count=10&amp;amp;startIndex=20&lt;br /&gt;
  ...&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{tip|Incrémentez startIndex du nombre de ressource retourné par la requête}}&lt;br /&gt;
&lt;br /&gt;
====Pagination par clé====&lt;br /&gt;
&lt;br /&gt;
Utiliser orderBy, startKey et keyDirection&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
GET http://localhost:8080/sdata/gentiers/ttiers?select=code&amp;amp;orderby=code&amp;amp;count=10&amp;amp;startKey=1B28EFFFF1C3000200F6000000230893&amp;amp;keyDirection=lt&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Création de ressource (POST)== &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
POST http://localhost:8080/sdata/gentiers/ttiers&lt;br /&gt;
Request:&lt;br /&gt;
{&lt;br /&gt;
   &amp;quot;code&amp;quot;:&amp;quot;SYFRE1&amp;quot;,&lt;br /&gt;
   &amp;quot;caption&amp;quot;:&amp;quot;syfre 1&amp;quot;,&lt;br /&gt;
   &amp;quot;sitesList&amp;quot;:[&lt;br /&gt;
      {&lt;br /&gt;
         &amp;quot;code&amp;quot;:&amp;quot;SITE1&amp;quot;,&lt;br /&gt;
         &amp;quot;caption&amp;quot;:&amp;quot;site1 de syfre1&amp;quot;,&lt;br /&gt;
         &amp;quot;adresse&amp;quot;:{&lt;br /&gt;
            &amp;quot;nomRueVoie&amp;quot;:&amp;quot;rue de la pompe&amp;quot;,&lt;br /&gt;
            &amp;quot;ville&amp;quot;:&amp;quot;Clichy&amp;quot;,&lt;br /&gt;
            &amp;quot;codePostal&amp;quot;:&amp;quot;92100&amp;quot;,&lt;br /&gt;
            &amp;quot;pays&amp;quot;:{&lt;br /&gt;
               &amp;quot;$key&amp;quot;:&amp;quot;9D33A23CFA6A005500150000001700FD&amp;quot;&lt;br /&gt;
            }&lt;br /&gt;
         }&lt;br /&gt;
      }&lt;br /&gt;
   ]&lt;br /&gt;
}&lt;br /&gt;
Response: 200 OK&lt;br /&gt;
{&lt;br /&gt;
    &amp;quot;$resources&amp;quot;: [&lt;br /&gt;
        {&lt;br /&gt;
            &amp;quot;$key&amp;quot;: &amp;quot;9D33A23CFA6A005500F6000001E20022&amp;quot;,&lt;br /&gt;
            &amp;quot;$url&amp;quot;: &amp;quot;http://localhost:8080/sdata/l1000/gentiers/-/TTiers('9D33A23CFA6A005500F6000001E20022')&amp;quot;,&lt;br /&gt;
            ... attribute list ...&lt;br /&gt;
        } &lt;br /&gt;
     ]&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Gestion du périmètre de partage===&lt;br /&gt;
&lt;br /&gt;
Le niveau de partage d'une ressource de niveau activité peut être contrôlé par des propriétés de contrôle au niveau de la définition de la ressource : &lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!Contrôle&lt;br /&gt;
!Usage&lt;br /&gt;
|-&lt;br /&gt;
|$shareId&lt;br /&gt;
|Valeur du périmètre sur lequel créer l'objet&lt;br /&gt;
|-&lt;br /&gt;
|$shareLevel&lt;br /&gt;
|Niveau de partage sur lequel créer l'objet (0:dossier,1:activité ou 2:société)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
POST https://localhost/sdata/S3/gentiers/ttiers&lt;br /&gt;
Request:&lt;br /&gt;
{&lt;br /&gt;
   &amp;quot;$shareLevel&amp;quot;:2,&lt;br /&gt;
   &amp;quot;code&amp;quot;:&amp;quot;SYFRES3-2&amp;quot;,&lt;br /&gt;
   &amp;quot;caption&amp;quot;:&amp;quot;syfre S3-2&amp;quot;,&lt;br /&gt;
   &amp;quot;sitesList&amp;quot;:[&lt;br /&gt;
      {&lt;br /&gt;
         &amp;quot;code&amp;quot;:&amp;quot;SITE1&amp;quot;,&lt;br /&gt;
         &amp;quot;caption&amp;quot;:&amp;quot;site 1&amp;quot;,&lt;br /&gt;
         &amp;quot;adresse&amp;quot;:{&lt;br /&gt;
            &amp;quot;nomRueVoie&amp;quot;:&amp;quot;rue de la pompe&amp;quot;,&lt;br /&gt;
            &amp;quot;ville&amp;quot;:&amp;quot;Clichy&amp;quot;,&lt;br /&gt;
            &amp;quot;codePostal&amp;quot;:&amp;quot;92100&amp;quot;,&lt;br /&gt;
            &amp;quot;pays&amp;quot;:{&lt;br /&gt;
               &amp;quot;$key&amp;quot;:&amp;quot;9D33A23CFA6A005500150000001700FD&amp;quot;&lt;br /&gt;
            }&lt;br /&gt;
         }&lt;br /&gt;
      }&lt;br /&gt;
   ]&lt;br /&gt;
}&lt;br /&gt;
Response : 201 OK&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{Tip|Par défaut la ressource sera créée au niveau activité}}&lt;br /&gt;
&lt;br /&gt;
===Gestion des rôles===&lt;br /&gt;
&lt;br /&gt;
La création de ressource dans les rôles dépend de la nature du rôle.&lt;br /&gt;
&lt;br /&gt;
* Pour les rôles de type composition les ressources liées sont créés simultanément.&lt;br /&gt;
* Pour les rôles qui ne sont pas des compositions les ressources liées sont rattachés.&lt;br /&gt;
&lt;br /&gt;
'''Identification des références'''&lt;br /&gt;
&lt;br /&gt;
'''Par clé:'''&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
  &amp;quot;pays&amp;quot;:{&lt;br /&gt;
    &amp;quot;$key&amp;quot;:&amp;quot;9D33A23CFA6A005500150000001700FD&amp;quot;&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Par uri:'''&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
  &amp;quot;pays&amp;quot;:{&lt;br /&gt;
    &amp;quot;$url&amp;quot;:TPays(&amp;quot;9D33A23CFA6A005500150000001700FD&amp;quot;)&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Par expression:'''&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
  &amp;quot;pays&amp;quot;:{&lt;br /&gt;
    &amp;quot;$where&amp;quot;:&amp;quot;codeISO = 'FRA'&amp;quot;,&lt;br /&gt;
    &amp;quot;$orderby&amp;quot;:&amp;quot;codeISO&amp;quot;&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Lorsqu'une expression est utilisée la première ressource retournée par l'expression est utilisée.&lt;br /&gt;
&lt;br /&gt;
===Gestion des dates comptables===&lt;br /&gt;
Pour les dates comptables, le serveur convertit la date reçu en heure locale puis conserve la partie date.&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!Format&lt;br /&gt;
!Représente&lt;br /&gt;
!Exemple&lt;br /&gt;
!Interprète&lt;br /&gt;
|-&lt;br /&gt;
|locale&lt;br /&gt;
|Une heure locale&lt;br /&gt;
|2021-06-01T00:00:00&lt;br /&gt;
|Conserve l’heure reçue en heure locale et conserve la date, la date sera toujours celle transmise.&lt;br /&gt;
|-&lt;br /&gt;
|noTime&lt;br /&gt;
|Une date sans heure	&lt;br /&gt;
|2021-06-01&lt;br /&gt;
|Conserve la date reçue sans conversion, la date sera toujours celle transmise.&lt;br /&gt;
|-&lt;br /&gt;
|UTC&lt;br /&gt;
|Un instant universel UTC&lt;br /&gt;
|2021-05-31T22:00:00Z&lt;br /&gt;
2021-05-31T22:00:00+02&lt;br /&gt;
|Convertit l’heure UTC en heure locale du service et conserve la date reçue, la date peut être différente de la date transmise si le client et le service ne sont pas dans le même fuseau horaire.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{{warning|Pour les dates comptables, les formats UTC sont ambigus et peuvent générer des erreurs de conversion si les fuseaux horaire du serveur et du client sont différents}}&lt;br /&gt;
&lt;br /&gt;
==Modification de ressource (PUT)==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
PUT http://localhost:8080/sdata/gentiers/ttiers('9D33A23CFA6A005500F6000001E20018')&lt;br /&gt;
Request:&lt;br /&gt;
{&lt;br /&gt;
&amp;quot;codeSIRET&amp;quot;:&amp;quot;12345678&amp;quot;&lt;br /&gt;
}&lt;br /&gt;
Response: 200 OK&lt;br /&gt;
[&lt;br /&gt;
{ &lt;br /&gt;
.... resource modified ...&lt;br /&gt;
}&lt;br /&gt;
]&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Modification de rôle liste composition===&lt;br /&gt;
Par défaut les rôles composition sont gérés en remplacement, pour contrôler le mode de gestion des rôles utilisez un élément de contrôle &amp;quot;$&amp;quot; pour le rôle :&lt;br /&gt;
&lt;br /&gt;
'''Exemple : Modification du rôle par remplacement des composants :'''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
PUT http://localhost:8080/sdata/gentiers/ttiers('9D33A23CFA6A005500F6000001E20018')&lt;br /&gt;
Request :&lt;br /&gt;
{&lt;br /&gt;
   &amp;quot;sitesList&amp;quot;:[&lt;br /&gt;
      {&lt;br /&gt;
         &amp;quot;code&amp;quot;:&amp;quot;SITE3&amp;quot;,&lt;br /&gt;
         &amp;quot;caption&amp;quot;:&amp;quot;site3 de syfre1&amp;quot;,&lt;br /&gt;
         &amp;quot;adresse&amp;quot;:{&lt;br /&gt;
            &amp;quot;nomRueVoie&amp;quot;:&amp;quot;rue Mogador&amp;quot;,&lt;br /&gt;
            &amp;quot;ville&amp;quot;:&amp;quot;Paris&amp;quot;,&lt;br /&gt;
            &amp;quot;codePostal&amp;quot;:&amp;quot;75008&amp;quot;,&lt;br /&gt;
            &amp;quot;pays&amp;quot;:{&lt;br /&gt;
               &amp;quot;$where&amp;quot;:&amp;quot;codeISO = 'FRA'&amp;quot;,&lt;br /&gt;
               &amp;quot;$orderby&amp;quot;:&amp;quot;codeISO&amp;quot;&lt;br /&gt;
            }&lt;br /&gt;
         }&lt;br /&gt;
      }&lt;br /&gt;
   ]&lt;br /&gt;
}&lt;br /&gt;
Response: 200 OK&lt;br /&gt;
{&lt;br /&gt;
    &amp;quot;$resources&amp;quot;: [&lt;br /&gt;
        {&lt;br /&gt;
            &amp;quot;$key&amp;quot;: &amp;quot;9D33A23CFA6A005500F6000001E30019&amp;quot;,&lt;br /&gt;
            &amp;quot;$url&amp;quot;: &amp;quot;/sdata/gentiers/ttiers('9D33A23CFA6A005500F6000001E30019')&amp;quot;,&lt;br /&gt;
            &amp;quot;stamp&amp;quot;: &amp;quot;000001710000002A&amp;quot;,&lt;br /&gt;
            ....&lt;br /&gt;
            &amp;quot;sitesList&amp;quot;: [&lt;br /&gt;
            ... Site3 has been added, other sites has been removed.&lt;br /&gt;
            ... There is one site left in the list&lt;br /&gt;
           ]&lt;br /&gt;
    ]&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Exemple : Modification du rôle par ajout de composant :'''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
PUT http://localhost:8080/sdata/gentiers/ttiers('9D33A23CFA6A005500F6000001E20018')&lt;br /&gt;
Request :&lt;br /&gt;
{&lt;br /&gt;
   &amp;quot;$&amp;quot;:{&lt;br /&gt;
     &amp;quot;sitesList:[&amp;quot;create&amp;quot;]&lt;br /&gt;
   },&lt;br /&gt;
   &amp;quot;sitesList&amp;quot;:[&lt;br /&gt;
      {&lt;br /&gt;
         &amp;quot;code&amp;quot;:&amp;quot;SITE3&amp;quot;,&lt;br /&gt;
         &amp;quot;caption&amp;quot;:&amp;quot;site3 de syfre1&amp;quot;,&lt;br /&gt;
         &amp;quot;adresse&amp;quot;:{&lt;br /&gt;
            &amp;quot;nomRueVoie&amp;quot;:&amp;quot;rue Mogador&amp;quot;,&lt;br /&gt;
            &amp;quot;ville&amp;quot;:&amp;quot;Paris&amp;quot;,&lt;br /&gt;
            &amp;quot;codePostal&amp;quot;:&amp;quot;75008&amp;quot;,&lt;br /&gt;
            &amp;quot;pays&amp;quot;:{&lt;br /&gt;
               &amp;quot;$where&amp;quot;:&amp;quot;codeISO = 'FRA'&amp;quot;,&lt;br /&gt;
               &amp;quot;$orderby&amp;quot;:&amp;quot;codeISO&amp;quot;&lt;br /&gt;
            }&lt;br /&gt;
         }&lt;br /&gt;
      }&lt;br /&gt;
   ]&lt;br /&gt;
}&lt;br /&gt;
Response: 200 OK&lt;br /&gt;
{&lt;br /&gt;
    &amp;quot;$resources&amp;quot;: [&lt;br /&gt;
        {&lt;br /&gt;
            &amp;quot;$key&amp;quot;: &amp;quot;9D33A23CFA6A005500F6000001E30019&amp;quot;,&lt;br /&gt;
            &amp;quot;$url&amp;quot;: &amp;quot;/sdata/gentiers/ttiers('9D33A23CFA6A005500F6000001E30019')&amp;quot;,&lt;br /&gt;
            &amp;quot;stamp&amp;quot;: &amp;quot;000001710000002A&amp;quot;,&lt;br /&gt;
            ....&lt;br /&gt;
            &amp;quot;sitesList&amp;quot;: [&lt;br /&gt;
                ... Site3 has been added, other sites are not affected&lt;br /&gt;
                ... There is one site more in the list&lt;br /&gt;
            }&lt;br /&gt;
           ]&lt;br /&gt;
    ]&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Exemple : Modification du rôle par mise à jour de composant :'''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
PUT http://localhost:8080/sdata/gentiers/ttiers('9D33A23CFA6A005500F6000001E20018')&lt;br /&gt;
Request :&lt;br /&gt;
{&lt;br /&gt;
   &amp;quot;$&amp;quot;:{&lt;br /&gt;
     &amp;quot;sitesList:[&amp;quot;update&amp;quot;]&lt;br /&gt;
   },&lt;br /&gt;
   &amp;quot;sitesList&amp;quot;:[&lt;br /&gt;
      {&lt;br /&gt;
         &amp;quot;$key&amp;quot;:&amp;quot;9D33A23CFA6A005500F6000001E30019&amp;quot;, &lt;br /&gt;
         &amp;quot;caption&amp;quot;:&amp;quot;Site maj&amp;quot;,&lt;br /&gt;
      }&lt;br /&gt;
   ]&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!contrôle&lt;br /&gt;
!action&lt;br /&gt;
|-&lt;br /&gt;
|create&lt;br /&gt;
|Les nouvelles ressources sont ajoutées au rôle&lt;br /&gt;
|-&lt;br /&gt;
|update&lt;br /&gt;
|Les ressources existantes dans le rôle sont mise à jour&lt;br /&gt;
|-&lt;br /&gt;
|delete&lt;br /&gt;
|Les ressources existantes et non présentes dans la requête sont supprimées&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
La valeur par défaut est &amp;quot;create&amp;quot;,&amp;quot;update&amp;quot;,&amp;quot;delete&amp;quot;&lt;br /&gt;
&lt;br /&gt;
===Modification des attributs privés===&lt;br /&gt;
Par défaut les attributs privés sont modifiés sur le niveau de partage correspondant au périmètre société, pour contrôler le niveau de partage des attributs privés utilisez un élément de contrôle $sharePrivateLevel.&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!sharePrivateLevel&lt;br /&gt;
!Périmètre de définition&lt;br /&gt;
|-&lt;br /&gt;
|absent&lt;br /&gt;
|Périmètre courant de l'objet&lt;br /&gt;
|-&lt;br /&gt;
|0&lt;br /&gt;
|Dossier&lt;br /&gt;
|-&lt;br /&gt;
|1&lt;br /&gt;
|Activité&lt;br /&gt;
|-&lt;br /&gt;
|2&lt;br /&gt;
|Société&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{{tip|Le périmètre courant de l'objet dépend de l'état de l'objet. Par exemple, si l'objet est de niveau activité et n'a pas de propriété défini pour la société courante, le périmètre courant sera l'activité, mais si l'objet a des propriétés définies pour la société courante alors le périmètre courant sera la société. Ne pas définir explicitement le niveau de partage peut amener à des ambiguïtés.}}&lt;br /&gt;
&lt;br /&gt;
'''Modification de la valeur de l'attribut privé pour les sociétés de l'activité du Tiers (le tiers n'a pas de propriété défini pour la société S3):'''&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
PUT http://localhost:8080/sdata/S3/gentiers/ttiers(code eq 'ABI 00007')&lt;br /&gt;
{&lt;br /&gt;
&amp;quot;modeReglementDecaissement&amp;quot;:{&amp;quot;$where&amp;quot;:&amp;quot;code eq 'CHQ'&amp;quot;},&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt; &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Modification de la valeur de l'attribut privé pour la société S3 :'''&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
PUT http://localhost:8080/sdata/S3/gentiers/ttiers(code eq 'ABI 00007')&lt;br /&gt;
{&lt;br /&gt;
&amp;quot;$sharePrivateLevel&amp;quot;:2,&lt;br /&gt;
&amp;quot;modeReglementDecaissement&amp;quot;:{&amp;quot;$where&amp;quot;:&amp;quot;code eq 'CBB'&amp;quot;},&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Suppression de ressource (DELETE)==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
DELETE http://localhost:8080/sdata/gentiers/ttiers('9D33A23CFA6A005500F6000001E20018')&lt;br /&gt;
Response: 200 OK&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Opération sur une ressource (POST)==&lt;br /&gt;
&lt;br /&gt;
Les opérations des ressources correspondent aux méthodes publiques de cette ressource.&lt;br /&gt;
&lt;br /&gt;
===Méthode d'instance de ressource===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
POST http://localhost:8080/sdata/testsyfrewf/wfclassea('B5A28A92EB0C00020010000000DB0006')/testmethode&lt;br /&gt;
Request:&lt;br /&gt;
{&lt;br /&gt;
&amp;quot;pString&amp;quot;:&amp;quot;value1&amp;quot;,&lt;br /&gt;
&amp;quot;pInteger&amp;quot;:1,&lt;br /&gt;
&amp;quot;pFloat&amp;quot;:1.2,&lt;br /&gt;
&amp;quot;pEnum&amp;quot;:1,&lt;br /&gt;
&amp;quot;pBoolean&amp;quot;:false&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
Response: 200 OK&lt;br /&gt;
{&lt;br /&gt;
    &amp;quot;result&amp;quot;: &amp;quot;pString:value1 pInteger:1 pBoolean:false pFloat:1,2 pEnum:1&amp;quot;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Méthode de classe de ressource, ou méthode de classe non persistante===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
POST http://localhost:8080/sdata/testsyfrewf/myProcessus/testmethode&lt;br /&gt;
Request:&lt;br /&gt;
{&lt;br /&gt;
&amp;quot;pString&amp;quot;:&amp;quot;value1&amp;quot;,&lt;br /&gt;
&amp;quot;pInteger&amp;quot;:1,&lt;br /&gt;
&amp;quot;pFloat&amp;quot;:1.2,&lt;br /&gt;
&amp;quot;pEnum&amp;quot;:1,&lt;br /&gt;
&amp;quot;pBoolean&amp;quot;:false&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
Response: 200 OK&lt;br /&gt;
{&lt;br /&gt;
    &amp;quot;result&amp;quot;: &amp;quot;pString:value1 pInteger:1 pBoolean:false pFloat:1,2 pEnum:1&amp;quot;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Passage des paramètres===&lt;br /&gt;
Les paramètres sont passés par nom et valeur.&lt;br /&gt;
&lt;br /&gt;
Les types de paramètres et de retour supportés sont :&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!Type&lt;br /&gt;
!Exemple&lt;br /&gt;
|-&lt;br /&gt;
|Chaîne&lt;br /&gt;
|&amp;quot;p&amp;quot;:&amp;quot;xxx&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|Entier&lt;br /&gt;
|&amp;quot;p&amp;quot;:1&lt;br /&gt;
|-&lt;br /&gt;
|Boolean&lt;br /&gt;
|&amp;quot;p&amp;quot;:true&lt;br /&gt;
|-&lt;br /&gt;
|Flottant&lt;br /&gt;
|&amp;quot;p&amp;quot;:1.1&lt;br /&gt;
|-&lt;br /&gt;
|Datetime&lt;br /&gt;
|&amp;quot;p&amp;quot;:&amp;quot;2020-12-25T01:01:01&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|Enuméré (par valeur)&lt;br /&gt;
|&amp;quot;p&amp;quot;:1&lt;br /&gt;
|-&lt;br /&gt;
|Liste d'objets&lt;br /&gt;
|&amp;quot;p&amp;quot;:[ {$key:&amp;quot;key&amp;quot;, $uuid:&amp;quot;uuid&amp;quot;, $where:&amp;quot;expression&amp;quot;}, ...],&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{{tip|Les références des objets passés dans des listes peuvent être définies par clé ($key), identifiant appelant ($uuid) ou expression ($where)&lt;br /&gt;
Exemple :&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
&amp;quot;paramList&amp;quot;:[&lt;br /&gt;
    {&amp;quot;$key&amp;quot;:&amp;quot;B5A28A92EB0C00020010000001F500A1&amp;quot;},&lt;br /&gt;
    {&amp;quot;$where&amp;quot;:&amp;quot;uneChaine like 'cN%'&amp;quot;}&lt;br /&gt;
    ]&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
===Résultat de type ressource===&lt;br /&gt;
Lorsque l'opération retourne un objet ou une liste d'objets ceux-ci sont retournés sous forme de ressource.&lt;br /&gt;
&lt;br /&gt;
Par exemple :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;delphi&amp;quot;&amp;gt;&lt;br /&gt;
//class Function GetWFClasseA(const iCode:string):WFClasseA;&lt;br /&gt;
begin&lt;br /&gt;
  Result := WFClasseA.Find('(unCode = %1)','unCode',True,[iCode]);&lt;br /&gt;
end;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
POST http://localhost:8080/sdata/testsyfrewf/testapi/getwfclassea&lt;br /&gt;
{&lt;br /&gt;
    &amp;quot;result&amp;quot;: {&lt;br /&gt;
        &amp;quot;$baseUrl&amp;quot;: &amp;quot;http://localhost:8080/sdata/testsyfrewf/&amp;quot;,&lt;br /&gt;
        &amp;quot;$title&amp;quot;: &amp;quot;WFClasseA - -&amp;quot;,&lt;br /&gt;
        &amp;quot;$updated&amp;quot;: &amp;quot;2021-01-29T12:41:41.015Z&amp;quot;,&lt;br /&gt;
        &amp;quot;$resources&amp;quot;: [&lt;br /&gt;
            {&lt;br /&gt;
                &amp;quot;$key&amp;quot;: &amp;quot;B5A28A92EB0C00020010000001B40002&amp;quot;,&lt;br /&gt;
                &amp;quot;$etag&amp;quot;: &amp;quot;B5A28A92EB0C00020010000001B40002-0000028E00000001&amp;quot;,&lt;br /&gt;
                &amp;quot;stamp&amp;quot;: &amp;quot;0000028E00000001&amp;quot;,&lt;br /&gt;
                &amp;quot;Caption&amp;quot;: &amp;quot;Title 1&amp;quot;,&lt;br /&gt;
                &amp;quot;unBool&amp;quot;: false,&lt;br /&gt;
                &amp;quot;unCode&amp;quot;: &amp;quot;A1&amp;quot;,&lt;br /&gt;
                &amp;quot;unCompteur&amp;quot;: {&lt;br /&gt;
                    &amp;quot;value&amp;quot;: &amp;quot;aaaaaaaaaaky&amp;quot;,&lt;br /&gt;
                    &amp;quot;CounterName&amp;quot;: &amp;quot;MonCompteur&amp;quot;&lt;br /&gt;
                },&lt;br /&gt;
                &amp;quot;unDouble&amp;quot;: 0,&lt;br /&gt;
                &amp;quot;uneChaine&amp;quot;: &amp;quot;une chaine 1&amp;quot;,&lt;br /&gt;
                &amp;quot;unEntier&amp;quot;: 10,&lt;br /&gt;
                &amp;quot;unEtat&amp;quot;: {&lt;br /&gt;
                    &amp;quot;value&amp;quot;: 1,&lt;br /&gt;
                    &amp;quot;title&amp;quot;: &amp;quot;Etat 1&amp;quot;&lt;br /&gt;
                },&lt;br /&gt;
                &amp;quot;unStatus&amp;quot;: 0,&lt;br /&gt;
                &amp;quot;WFClasseCList&amp;quot;: [&lt;br /&gt;
                    {&lt;br /&gt;
                        &amp;quot;$key&amp;quot;: &amp;quot;B5A28A92EB0C000200140000020E000A&amp;quot;,&lt;br /&gt;
                        &amp;quot;uneChaine&amp;quot;: &amp;quot;Title 1-1&amp;quot;,&lt;br /&gt;
                        &amp;quot;unEntier&amp;quot;: 0&lt;br /&gt;
                    },&lt;br /&gt;
                    {&lt;br /&gt;
                        &amp;quot;$key&amp;quot;: &amp;quot;B5A28A92EB0C000200140000020E000B&amp;quot;,&lt;br /&gt;
                        &amp;quot;uneChaine&amp;quot;: &amp;quot;Title 1-0&amp;quot;,&lt;br /&gt;
                        &amp;quot;unEntier&amp;quot;: 0&lt;br /&gt;
                    },&lt;br /&gt;
                    {&lt;br /&gt;
                        &amp;quot;$key&amp;quot;: &amp;quot;B5A28A92EB0C00020014000002100079&amp;quot;,&lt;br /&gt;
                        &amp;quot;uneChaine&amp;quot;: &amp;quot;Title 1-0&amp;quot;,&lt;br /&gt;
                        &amp;quot;unEntier&amp;quot;: 0&lt;br /&gt;
                    },&lt;br /&gt;
                    {&lt;br /&gt;
                        &amp;quot;$key&amp;quot;: &amp;quot;B5A28A92EB0C0002001400000210007A&amp;quot;,&lt;br /&gt;
                        &amp;quot;uneChaine&amp;quot;: &amp;quot;Title 1-1&amp;quot;,&lt;br /&gt;
                        &amp;quot;unEntier&amp;quot;: 0&lt;br /&gt;
                    }&lt;br /&gt;
                ]&lt;br /&gt;
            }&lt;br /&gt;
        ]&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;delphi&amp;quot;&amp;gt;&lt;br /&gt;
//Class Function GetWFClasseA(const iCodeLike:string):WFClasseAList;&lt;br /&gt;
begin&lt;br /&gt;
 Result := WFClasseA.CreateListWhere('(unCode like %1)','','unCode',True,-1,[iCodeLike]);&lt;br /&gt;
end;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
POST http://localhost:8080/sdata/testsyfrewf/testapi/getwfclassealist&lt;br /&gt;
{&lt;br /&gt;
    &amp;quot;result&amp;quot;: {&lt;br /&gt;
        &amp;quot;$baseUrl&amp;quot;: &amp;quot;http://localhost:8080/sdata/testsyfrewf/&amp;quot;,&lt;br /&gt;
        &amp;quot;$title&amp;quot;: &amp;quot;WFClasseA - -&amp;quot;,&lt;br /&gt;
        &amp;quot;$updated&amp;quot;: &amp;quot;2021-01-29T12:49:14.061Z&amp;quot;,&lt;br /&gt;
        &amp;quot;$resources&amp;quot;: [&lt;br /&gt;
            {&lt;br /&gt;
                &amp;quot;$key&amp;quot;: &amp;quot;B5A28A92EB0C00020010000001B40002&amp;quot;,&lt;br /&gt;
                &amp;quot;$etag&amp;quot;: &amp;quot;B5A28A92EB0C00020010000001B40002-0000028E00000001&amp;quot;,&lt;br /&gt;
                &amp;quot;stamp&amp;quot;: &amp;quot;0000028E00000001&amp;quot;,&lt;br /&gt;
                &amp;quot;Caption&amp;quot;: &amp;quot;Title 1&amp;quot;,&lt;br /&gt;
                &amp;quot;unBool&amp;quot;: false,&lt;br /&gt;
                &amp;quot;unCode&amp;quot;: &amp;quot;A1&amp;quot;,&lt;br /&gt;
                &amp;quot;unCompteur&amp;quot;: {&lt;br /&gt;
                    &amp;quot;value&amp;quot;: &amp;quot;aaaaaaaaaaky&amp;quot;,&lt;br /&gt;
                    &amp;quot;CounterName&amp;quot;: &amp;quot;MonCompteur&amp;quot;&lt;br /&gt;
                },&lt;br /&gt;
                &amp;quot;unDouble&amp;quot;: 0,&lt;br /&gt;
                &amp;quot;uneChaine&amp;quot;: &amp;quot;une chaine 1&amp;quot;,&lt;br /&gt;
                &amp;quot;unEntier&amp;quot;: 10,&lt;br /&gt;
                &amp;quot;unEtat&amp;quot;: {&lt;br /&gt;
                    &amp;quot;value&amp;quot;: 1,&lt;br /&gt;
                    &amp;quot;title&amp;quot;: &amp;quot;Etat 1&amp;quot;&lt;br /&gt;
                },&lt;br /&gt;
                &amp;quot;unStatus&amp;quot;: 0,&lt;br /&gt;
                &amp;quot;WFClasseCList&amp;quot;: [&lt;br /&gt;
                    {&lt;br /&gt;
                        &amp;quot;$key&amp;quot;: &amp;quot;B5A28A92EB0C000200140000020E000A&amp;quot;,&lt;br /&gt;
                        &amp;quot;uneChaine&amp;quot;: &amp;quot;Title 1-1&amp;quot;,&lt;br /&gt;
                        &amp;quot;unEntier&amp;quot;: 0&lt;br /&gt;
                    },&lt;br /&gt;
                    {&lt;br /&gt;
                        &amp;quot;$key&amp;quot;: &amp;quot;B5A28A92EB0C000200140000020E000B&amp;quot;,&lt;br /&gt;
                        &amp;quot;uneChaine&amp;quot;: &amp;quot;Title 1-0&amp;quot;,&lt;br /&gt;
                        &amp;quot;unEntier&amp;quot;: 0&lt;br /&gt;
                    },&lt;br /&gt;
                    {&lt;br /&gt;
                        &amp;quot;$key&amp;quot;: &amp;quot;B5A28A92EB0C00020014000002100079&amp;quot;,&lt;br /&gt;
                        &amp;quot;uneChaine&amp;quot;: &amp;quot;Title 1-0&amp;quot;,&lt;br /&gt;
                        &amp;quot;unEntier&amp;quot;: 0&lt;br /&gt;
                    },&lt;br /&gt;
                    {&lt;br /&gt;
                        &amp;quot;$key&amp;quot;: &amp;quot;B5A28A92EB0C0002001400000210007A&amp;quot;,&lt;br /&gt;
                        &amp;quot;uneChaine&amp;quot;: &amp;quot;Title 1-1&amp;quot;,&lt;br /&gt;
                        &amp;quot;unEntier&amp;quot;: 0&lt;br /&gt;
                    }&lt;br /&gt;
                ]&lt;br /&gt;
            },&lt;br /&gt;
            {&lt;br /&gt;
                &amp;quot;$key&amp;quot;: &amp;quot;B5A28A92EB0C00020010000001B4000E&amp;quot;,&lt;br /&gt;
                &amp;quot;$etag&amp;quot;: &amp;quot;B5A28A92EB0C00020010000001B4000E-0000025000000025&amp;quot;,&lt;br /&gt;
                &amp;quot;stamp&amp;quot;: &amp;quot;0000025000000025&amp;quot;,&lt;br /&gt;
                &amp;quot;Caption&amp;quot;: &amp;quot;Title 1&amp;quot;,&lt;br /&gt;
                &amp;quot;unBool&amp;quot;: false,&lt;br /&gt;
                &amp;quot;unCode&amp;quot;: &amp;quot;A1&amp;quot;,&lt;br /&gt;
                &amp;quot;unCompteur&amp;quot;: {&lt;br /&gt;
                    &amp;quot;value&amp;quot;: &amp;quot;aaaaaaaaaalb&amp;quot;,&lt;br /&gt;
                    &amp;quot;CounterName&amp;quot;: &amp;quot;MonCompteur&amp;quot;&lt;br /&gt;
                },&lt;br /&gt;
                &amp;quot;unDouble&amp;quot;: 0,&lt;br /&gt;
                &amp;quot;uneChaine&amp;quot;: &amp;quot;U1&amp;quot;,&lt;br /&gt;
                &amp;quot;unEntier&amp;quot;: 10,&lt;br /&gt;
                &amp;quot;unEtat&amp;quot;: {&lt;br /&gt;
                    &amp;quot;value&amp;quot;: 2,&lt;br /&gt;
                    &amp;quot;title&amp;quot;: &amp;quot;Etat 2&amp;quot;&lt;br /&gt;
                },&lt;br /&gt;
                &amp;quot;unStatus&amp;quot;: 0&lt;br /&gt;
            },&lt;br /&gt;
            {&lt;br /&gt;
                &amp;quot;$key&amp;quot;: &amp;quot;B5A28A92EB0C00020010000001B4001A&amp;quot;,&lt;br /&gt;
                &amp;quot;$etag&amp;quot;: &amp;quot;B5A28A92EB0C00020010000001B4001A-0000018B0000001A&amp;quot;,&lt;br /&gt;
                &amp;quot;stamp&amp;quot;: &amp;quot;0000018B0000001A&amp;quot;,&lt;br /&gt;
                &amp;quot;Caption&amp;quot;: &amp;quot;Title 1&amp;quot;,&lt;br /&gt;
                &amp;quot;unBool&amp;quot;: false,&lt;br /&gt;
                &amp;quot;unCode&amp;quot;: &amp;quot;A1&amp;quot;,&lt;br /&gt;
                &amp;quot;unCompteur&amp;quot;: {&lt;br /&gt;
                    &amp;quot;value&amp;quot;: &amp;quot;aaaaaaaaaale&amp;quot;,&lt;br /&gt;
                    &amp;quot;CounterName&amp;quot;: &amp;quot;MonCompteur&amp;quot;&lt;br /&gt;
                },&lt;br /&gt;
                &amp;quot;unDouble&amp;quot;: 0,&lt;br /&gt;
                &amp;quot;uneChaine&amp;quot;: &amp;quot;U1&amp;quot;,&lt;br /&gt;
                &amp;quot;unEntier&amp;quot;: 10,&lt;br /&gt;
                &amp;quot;unEtat&amp;quot;: {&lt;br /&gt;
                    &amp;quot;value&amp;quot;: 0,&lt;br /&gt;
                    &amp;quot;title&amp;quot;: &amp;quot;Initial&amp;quot;&lt;br /&gt;
                },&lt;br /&gt;
                &amp;quot;unStatus&amp;quot;: 0&lt;br /&gt;
            },&lt;br /&gt;
            ......&lt;br /&gt;
        ]&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Initialisation de la ressource===&lt;br /&gt;
Il est possible d'initialiser la ressource avant d'exécuter la méthode, par exemple pour un processus :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;delphi&amp;quot;&amp;gt;&lt;br /&gt;
Type&lt;br /&gt;
  TmyProcessus = class&lt;br /&gt;
  public&lt;br /&gt;
   procedure Execute(p:string);&lt;br /&gt;
   property attString:string;&lt;br /&gt;
   property attInt:Integer;&lt;br /&gt;
   property attRef:TRefClass;&lt;br /&gt;
  end;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
POST http://localhost:8080/sdata/testsyfrewf/myProcessus/execute&lt;br /&gt;
Request:&lt;br /&gt;
{&lt;br /&gt;
&amp;quot;$resource&amp;quot;:{&lt;br /&gt;
 &amp;quot;attString&amp;quot;:&amp;quot;value 1&amp;quot;,&lt;br /&gt;
 &amp;quot;attInt&amp;quot;:100,&lt;br /&gt;
 &amp;quot;attRef&amp;quot;:{&amp;quot;$url&amp;quot;:&amp;quot;TRefClass('xxx')&amp;quot;},&lt;br /&gt;
},&lt;br /&gt;
&amp;quot;p&amp;quot;:&amp;quot;value&amp;quot;,&lt;br /&gt;
}&lt;br /&gt;
Response: 200 OK&lt;br /&gt;
{&lt;br /&gt;
    &amp;quot;result&amp;quot;:&amp;quot;&amp;quot;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Requête Batch (POST $batch)==&lt;br /&gt;
Une requête Batch permet de réaliser plusieurs opérations de type GET,POST/PUT/DELETE/EXEC en une seule fois.&lt;br /&gt;
&lt;br /&gt;
Une requête Batch contient un tableau de ressources, pour chaque ressource l'action et l'uri doivent être précisées :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
POST http://.../sdata/$batch&lt;br /&gt;
{&lt;br /&gt;
   &amp;quot;$resources&amp;quot;:[&lt;br /&gt;
      {&lt;br /&gt;
         &amp;quot;$httpMethod&amp;quot;:&amp;quot;POST&amp;quot;,&lt;br /&gt;
         &amp;quot;$url&amp;quot;:&amp;quot;gentiers/ttiers&amp;quot;,&lt;br /&gt;
         &amp;quot;code&amp;quot;:&amp;quot;SYFRE2&amp;quot;,&lt;br /&gt;
         &amp;quot;caption&amp;quot;:&amp;quot;syfre 2&amp;quot;,&lt;br /&gt;
         &amp;quot;sitesList&amp;quot;:[&lt;br /&gt;
            {&lt;br /&gt;
               &amp;quot;code&amp;quot;:&amp;quot;SITE1&amp;quot;,&lt;br /&gt;
               &amp;quot;caption&amp;quot;:&amp;quot;site2 de syfre2&amp;quot;,&lt;br /&gt;
               &amp;quot;adresse&amp;quot;:{&lt;br /&gt;
                  &amp;quot;nomRueVoie&amp;quot;:&amp;quot;rue de la pompe&amp;quot;,&lt;br /&gt;
                  &amp;quot;ville&amp;quot;:&amp;quot;Clichy&amp;quot;,&lt;br /&gt;
                  &amp;quot;codePostal&amp;quot;:&amp;quot;92100&amp;quot;,&lt;br /&gt;
                  &amp;quot;pays&amp;quot;:{&lt;br /&gt;
                     &amp;quot;$where&amp;quot;:&amp;quot;codeISO = 'FRA'&amp;quot;,&lt;br /&gt;
                     &amp;quot;$orderby&amp;quot;:&amp;quot;codeISO&amp;quot;&lt;br /&gt;
                  }&lt;br /&gt;
               }&lt;br /&gt;
            }&lt;br /&gt;
         ]&lt;br /&gt;
      }&lt;br /&gt;
   ]&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{tip|Le format d'url complet de $Batch est https://hostname/service/server/sdata/l1000/-/-/$batch}}&lt;br /&gt;
&lt;br /&gt;
===Gestion de la transaction dans un batch===&lt;br /&gt;
Par défaut les opérations réalisées sont unitaires (une transaction par ressource).&lt;br /&gt;
&lt;br /&gt;
Pour réaliser une opération Batch atomique (une seule transaction longue) utilisez un élément de contrôle transaction :&lt;br /&gt;
&lt;br /&gt;
Lorsque l'opération est atomique la réponse contient un élément $batch indiquant le statut de l'opération.&lt;br /&gt;
&lt;br /&gt;
Le code de retour http est le code de retour de la dernière opération réalisée.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
POST http://localhost:8080/sdata/$batch&lt;br /&gt;
{&lt;br /&gt;
   &amp;quot;$&amp;quot;: {&amp;quot;$transaction&amp;quot;:[&amp;quot;atomic&amp;quot;]},&lt;br /&gt;
   &amp;quot;$resources&amp;quot;:[&lt;br /&gt;
      {&lt;br /&gt;
         &amp;quot;$httpMethod&amp;quot;:&amp;quot;PUT&amp;quot;,&lt;br /&gt;
         &amp;quot;$url&amp;quot;:&amp;quot;gentiers/ttiers('9D33A23CFA6A005500F6000000285DAE')&amp;quot;,&lt;br /&gt;
         &amp;quot;$uuid&amp;quot;:&amp;quot;1&amp;quot;,&lt;br /&gt;
         &amp;quot;capital&amp;quot;:{&amp;quot;value&amp;quot;:7200,&amp;quot;CodeDevise&amp;quot;:&amp;quot;USD&amp;quot;}&lt;br /&gt;
      },&lt;br /&gt;
      {&lt;br /&gt;
         &amp;quot;$httpMethod&amp;quot;:&amp;quot;PUT&amp;quot;,&lt;br /&gt;
         &amp;quot;$url&amp;quot;:&amp;quot;gentiers/ttiers('9D33A23CFA6A005500F600000023048C')&amp;quot;,&lt;br /&gt;
         &amp;quot;$uuid&amp;quot;:&amp;quot;2&amp;quot;,&lt;br /&gt;
         &amp;quot;capital&amp;quot;:{&amp;quot;value&amp;quot;:1000,&amp;quot;CodeDevise&amp;quot;:&amp;quot;EUR&amp;quot;}&lt;br /&gt;
      }&lt;br /&gt;
   ]&lt;br /&gt;
}&lt;br /&gt;
Response : 401&lt;br /&gt;
{&lt;br /&gt;
    &amp;quot;$baseUrl&amp;quot;: &amp;quot;http://localhost:8080/sdata/l1000/-/-/&amp;quot;,&lt;br /&gt;
    &amp;quot;$title&amp;quot;: &amp;quot;$batch - -&amp;quot;,&lt;br /&gt;
    &amp;quot;$resources&amp;quot;: [&lt;br /&gt;
        {&lt;br /&gt;
            &amp;quot;$httpStatus&amp;quot;: 200,&lt;br /&gt;
            &amp;quot;$httpMethod&amp;quot;: &amp;quot;PUT&amp;quot;,&lt;br /&gt;
            &amp;quot;$httpMessage&amp;quot;: &amp;quot;OK&amp;quot;,&lt;br /&gt;
            &amp;quot;$etag&amp;quot;: &amp;quot;9D33A23CFA6A005500F6000000285DAE-0000018C00000001&amp;quot;&lt;br /&gt;
        },&lt;br /&gt;
        {&lt;br /&gt;
            &amp;quot;$httpStatus&amp;quot;: 410,&lt;br /&gt;
            &amp;quot;$httpMessage&amp;quot;: &amp;quot;Already Deleted&amp;quot;,&lt;br /&gt;
            &amp;quot;$uuid&amp;quot;: &amp;quot;2&amp;quot;,&lt;br /&gt;
            &amp;quot;$url&amp;quot;: &amp;quot;gentiers/ttiers('9D33A23CFA6A005500F600000023048C')&amp;quot;,&lt;br /&gt;
            &amp;quot;$&amp;quot;: {&lt;br /&gt;
                &amp;quot;$diagnoses&amp;quot;: [&lt;br /&gt;
                    {&lt;br /&gt;
                        &amp;quot;severity&amp;quot;: &amp;quot;error&amp;quot;,&lt;br /&gt;
                        &amp;quot;message&amp;quot;: &amp;quot;Already Deleted&amp;quot;,&lt;br /&gt;
                        &amp;quot;sdataCode&amp;quot;: &amp;quot;ApplicationDiagnosis&amp;quot;&lt;br /&gt;
                    }&lt;br /&gt;
                ]&lt;br /&gt;
            }&lt;br /&gt;
        }&lt;br /&gt;
    ],&lt;br /&gt;
    &amp;quot;$batch&amp;quot;: {&lt;br /&gt;
        &amp;quot;$httpStatus&amp;quot;: 400,&lt;br /&gt;
        &amp;quot;$httpMessage&amp;quot;: &amp;quot;ROLLBACK&amp;quot;,&lt;br /&gt;
        &amp;quot;$&amp;quot;: {&lt;br /&gt;
            &amp;quot;$diagnoses&amp;quot;: [&lt;br /&gt;
                {&lt;br /&gt;
                    &amp;quot;severity&amp;quot;: &amp;quot;error&amp;quot;,&lt;br /&gt;
                    &amp;quot;message&amp;quot;: &amp;quot;Already Deleted&amp;quot;,&lt;br /&gt;
                    &amp;quot;sdataCode&amp;quot;: &amp;quot;ApplicationDiagnosis&amp;quot;,&lt;br /&gt;
                    &amp;quot;entry&amp;quot;: {&lt;br /&gt;
                        &amp;quot;number&amp;quot;: 2,&lt;br /&gt;
                        &amp;quot;uuid&amp;quot;: &amp;quot;2&amp;quot;&lt;br /&gt;
                    }&lt;br /&gt;
                }&lt;br /&gt;
            ]&lt;br /&gt;
        }&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''$transaction :'''&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!Commande&lt;br /&gt;
!Action&lt;br /&gt;
|-&lt;br /&gt;
|atomic&lt;br /&gt;
|Démarre une transaction longue&lt;br /&gt;
|-&lt;br /&gt;
|flush&lt;br /&gt;
|Force un batch de la transaction longue&lt;br /&gt;
|-&lt;br /&gt;
|commit&lt;br /&gt;
|Valide la transaction longue&lt;br /&gt;
|}&lt;br /&gt;
{{Tip|L'élément de contrôle de transaction peut être placé au niveau d'un ordre du lot.}}&lt;br /&gt;
&lt;br /&gt;
===Execution de méthode dans un batch===&lt;br /&gt;
Utiliser le verbe EXEC pour exécuter une méthode &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
POST http://localhost:8080/sdata/$batch&lt;br /&gt;
{&lt;br /&gt;
   &amp;quot;$resources&amp;quot;:[&lt;br /&gt;
      {&lt;br /&gt;
         &amp;quot;$httpMethod&amp;quot;:&amp;quot;EXEC&amp;quot;,&lt;br /&gt;
         &amp;quot;$url&amp;quot;:&amp;quot;testsyfrewf/wfprocessus/testmethod&amp;quot;,&lt;br /&gt;
         &amp;quot;$resource&amp;quot;:{&lt;br /&gt;
            &amp;quot;uneChaine&amp;quot;:&amp;quot;value 1&amp;quot;&lt;br /&gt;
         },&lt;br /&gt;
         &amp;quot;p&amp;quot;:&amp;quot;value 2&amp;quot;&lt;br /&gt;
      }&lt;br /&gt;
   ]&lt;br /&gt;
}&lt;br /&gt;
Response : 200 OK&lt;br /&gt;
{&lt;br /&gt;
    &amp;quot;$baseUrl&amp;quot;: &amp;quot;http://localhost:8080/sdata/l1000/-/-/&amp;quot;,&lt;br /&gt;
    &amp;quot;$title&amp;quot;: &amp;quot;$batch - -&amp;quot;,&lt;br /&gt;
    &amp;quot;$resources&amp;quot;: [&lt;br /&gt;
        {&lt;br /&gt;
            &amp;quot;$httpStatus&amp;quot;: 200,&lt;br /&gt;
            &amp;quot;$httpMethod&amp;quot;: &amp;quot;POST&amp;quot;,&lt;br /&gt;
            &amp;quot;$httpMessage&amp;quot;: &amp;quot;Executed&amp;quot;,&lt;br /&gt;
            &amp;quot;$url&amp;quot;: &amp;quot;testsyfrewf/wfprocessus/testmethod&amp;quot;,&lt;br /&gt;
            &amp;quot;$uuid&amp;quot;: &amp;quot;&amp;quot;,&lt;br /&gt;
            &amp;quot;result&amp;quot;: &amp;quot;value 1 value 2&amp;quot;&lt;br /&gt;
        }&lt;br /&gt;
    ]&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Schéma d'une ressource (GET $schema)==&lt;br /&gt;
Le schéma d'une ressource retourne la structure de la classe.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
GET http://localhost:8080/sdata/testsyfrewf/wfclassea/$schema&lt;br /&gt;
Response : 200 OK&lt;br /&gt;
{&lt;br /&gt;
    &amp;quot;title&amp;quot;: &amp;quot;Libellé de la Classe A&amp;quot;,&lt;br /&gt;
    &amp;quot;stereotype&amp;quot;: &amp;quot;persistent&amp;quot;,&lt;br /&gt;
    &amp;quot;properties&amp;quot;: {&lt;br /&gt;
        &amp;quot;unBool&amp;quot;: {&lt;br /&gt;
            &amp;quot;type&amp;quot;: &amp;quot;boolean&amp;quot;,&lt;br /&gt;
            &amp;quot;title&amp;quot;: &amp;quot;Un Bool&amp;quot;&lt;br /&gt;
        },&lt;br /&gt;
        &amp;quot;unCode&amp;quot;: {&lt;br /&gt;
            &amp;quot;type&amp;quot;: &amp;quot;string&amp;quot;,&lt;br /&gt;
            &amp;quot;title&amp;quot;: &amp;quot;Un code&amp;quot;&lt;br /&gt;
        },&lt;br /&gt;
        &amp;quot;unCompteur&amp;quot;: {&lt;br /&gt;
            &amp;quot;type&amp;quot;: &amp;quot;string&amp;quot;&lt;br /&gt;
        },&lt;br /&gt;
        &amp;quot;unDerive&amp;quot;: {&lt;br /&gt;
            &amp;quot;type&amp;quot;: &amp;quot;string&amp;quot;,&lt;br /&gt;
            &amp;quot;title&amp;quot;: &amp;quot;Un dérivé&amp;quot;&lt;br /&gt;
        },&lt;br /&gt;
        &amp;quot;unDouble&amp;quot;: {&lt;br /&gt;
            &amp;quot;type&amp;quot;: &amp;quot;double&amp;quot;,&lt;br /&gt;
            &amp;quot;title&amp;quot;: &amp;quot;Un double&amp;quot;&lt;br /&gt;
        },&lt;br /&gt;
        &amp;quot;uneChaine&amp;quot;: {&lt;br /&gt;
            &amp;quot;type&amp;quot;: &amp;quot;string&amp;quot;,&lt;br /&gt;
            &amp;quot;title&amp;quot;: &amp;quot;une chaine&amp;quot;&lt;br /&gt;
        },&lt;br /&gt;
        &amp;quot;unEmail&amp;quot;: {&lt;br /&gt;
            &amp;quot;type&amp;quot;: &amp;quot;string&amp;quot;,&lt;br /&gt;
            &amp;quot;title&amp;quot;: &amp;quot;Un email&amp;quot;&lt;br /&gt;
        },&lt;br /&gt;
        &amp;quot;unEntier&amp;quot;: {&lt;br /&gt;
            &amp;quot;type&amp;quot;: &amp;quot;int&amp;quot;,&lt;br /&gt;
            &amp;quot;title&amp;quot;: &amp;quot;Un Entier&amp;quot;&lt;br /&gt;
        },&lt;br /&gt;
        &amp;quot;unEtat&amp;quot;: {&lt;br /&gt;
            &amp;quot;type&amp;quot;: &amp;quot;integer&amp;quot;,&lt;br /&gt;
            &amp;quot;title&amp;quot;: &amp;quot;Un Etat&amp;quot;&lt;br /&gt;
        },&lt;br /&gt;
        &amp;quot;unStatus&amp;quot;: {&lt;br /&gt;
            &amp;quot;type&amp;quot;: &amp;quot;int&amp;quot;,&lt;br /&gt;
            &amp;quot;title&amp;quot;: &amp;quot;Statut de l'objet (Panel)&amp;quot;&lt;br /&gt;
        },&lt;br /&gt;
        &amp;quot;WFClasseBRef&amp;quot;: {&lt;br /&gt;
            &amp;quot;type&amp;quot;: {&lt;br /&gt;
                &amp;quot;$ref&amp;quot;: &amp;quot;http://localhost:8080/sdata/l1000/testsyfrewf/-/WFClasseB/$schema&amp;quot;,&lt;br /&gt;
                &amp;quot;$relationship&amp;quot;: &amp;quot;reference&amp;quot;&lt;br /&gt;
            },&lt;br /&gt;
            &amp;quot;title&amp;quot;: &amp;quot;Référence B&amp;quot;&lt;br /&gt;
        },&lt;br /&gt;
        &amp;quot;WFClasseCList&amp;quot;: {&lt;br /&gt;
            &amp;quot;type&amp;quot;: &amp;quot;array&amp;quot;,&lt;br /&gt;
            &amp;quot;item&amp;quot;: {&lt;br /&gt;
                &amp;quot;title&amp;quot;: &amp;quot;Classe C&amp;quot;,&lt;br /&gt;
                &amp;quot;properties&amp;quot;: {&lt;br /&gt;
                    &amp;quot;uneChaine&amp;quot;: {&lt;br /&gt;
                        &amp;quot;type&amp;quot;: &amp;quot;string&amp;quot;,&lt;br /&gt;
                        &amp;quot;title&amp;quot;: &amp;quot;une chaine&amp;quot;&lt;br /&gt;
                    },&lt;br /&gt;
                    &amp;quot;unEntier&amp;quot;: {&lt;br /&gt;
                        &amp;quot;type&amp;quot;: &amp;quot;int&amp;quot;,&lt;br /&gt;
                        &amp;quot;title&amp;quot;: &amp;quot;un entier&amp;quot;&lt;br /&gt;
                    }&lt;br /&gt;
                }&lt;br /&gt;
            }&lt;br /&gt;
        }&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;$url&amp;quot;: &amp;quot;http://localhost:8080/sdata/l1000/testsyfrewf/-/WFClasseA/$schema&amp;quot;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Le contenu de la réponse peut être configurée avec le paramètre &amp;quot;select&amp;quot;, à défaut toutes les informations sont retournées.&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!Paramètre&lt;br /&gt;
!Usage&lt;br /&gt;
|-&lt;br /&gt;
|extensions&lt;br /&gt;
|Retourne uniquement les attributs issus d'extension&lt;br /&gt;
|-&lt;br /&gt;
|properties&lt;br /&gt;
|Retourne la liste de tous les attributs&lt;br /&gt;
|-&lt;br /&gt;
|selfProperties&lt;br /&gt;
|Retourne uniquement les attributs de la classe elle même&lt;br /&gt;
|-&lt;br /&gt;
|operations&lt;br /&gt;
|Retourne les opérations de la classe&lt;br /&gt;
|-&lt;br /&gt;
|compositions&lt;br /&gt;
|Retourne le schéma des classes composants &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Exemple : Retrouver uniquement les attributs d'extension d'une classe :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
GET http://localhost:8080/sdata/ttiers/$schema?select=extensions&lt;br /&gt;
{&lt;br /&gt;
    &amp;quot;title&amp;quot;: &amp;quot;Tiers&amp;quot;,&lt;br /&gt;
    &amp;quot;stereotype&amp;quot;: &amp;quot;persistent&amp;quot;,&lt;br /&gt;
    &amp;quot;extensions&amp;quot;: [&lt;br /&gt;
        {&lt;br /&gt;
            &amp;quot;class&amp;quot;: &amp;quot;TTiers_esmPackage&amp;quot;,&lt;br /&gt;
            &amp;quot;title&amp;quot;: &amp;quot;Extension de TTiers&amp;quot;,&lt;br /&gt;
            &amp;quot;package&amp;quot;: &amp;quot;esmPackage&amp;quot;&lt;br /&gt;
        }&lt;br /&gt;
    ],&lt;br /&gt;
    &amp;quot;properties&amp;quot;: {&lt;br /&gt;
        &amp;quot;esmCode&amp;quot;: {&lt;br /&gt;
            &amp;quot;type&amp;quot;: &amp;quot;string&amp;quot;,&lt;br /&gt;
            &amp;quot;extension&amp;quot;: &amp;quot;TTiers_esmPackage&amp;quot;,&lt;br /&gt;
            &amp;quot;title&amp;quot;: &amp;quot;un code esm&amp;quot;&lt;br /&gt;
        }&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;$url&amp;quot;: &amp;quot;http://localhost:8080/sdata/gentiers/TTiers/$schema&amp;quot;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Modèle de ressource (GET $template)==&lt;br /&gt;
Le modèle de ressource retourne une ressource initialisée&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
GET http://localhost:8080/sdata/gcimport/TImportContratCommercial/$template&lt;br /&gt;
Response : 200 OK&lt;br /&gt;
&lt;br /&gt;
{&lt;br /&gt;
    &amp;quot;$url&amp;quot;: &amp;quot;http://localhost:8080/sdata/l1000/gcimport/-/TImportContratCommercial&amp;quot;,&lt;br /&gt;
    &amp;quot;stamp&amp;quot;: &amp;quot;000001D900000001&amp;quot;,&lt;br /&gt;
    &amp;quot;acompte&amp;quot;: 0,&lt;br /&gt;
    &amp;quot;affaire&amp;quot;: &amp;quot;&amp;quot;,&lt;br /&gt;
    &amp;quot;budget&amp;quot;: &amp;quot;&amp;quot;,&lt;br /&gt;
    &amp;quot;Caption&amp;quot;: &amp;quot;&amp;quot;,&lt;br /&gt;
    &amp;quot;commandeEngagement&amp;quot;: false,&lt;br /&gt;
    &amp;quot;commercial&amp;quot;: &amp;quot;&amp;quot;,&lt;br /&gt;
    &amp;quot;coursDevise&amp;quot;: {&lt;br /&gt;
        &amp;quot;value&amp;quot;: 1,&lt;br /&gt;
        &amp;quot;CodeDevise&amp;quot;: &amp;quot;&amp;quot;,&lt;br /&gt;
        &amp;quot;Date&amp;quot;: &amp;quot;1899-12-30T00:00:00.000Z&amp;quot;,&lt;br /&gt;
        &amp;quot;TCConv&amp;quot;: &amp;quot;&amp;quot;,&lt;br /&gt;
        &amp;quot;TCValue&amp;quot;: 0,&lt;br /&gt;
        &amp;quot;RPConv&amp;quot;: &amp;quot;&amp;quot;,&lt;br /&gt;
        &amp;quot;RPValue&amp;quot;: 0&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;coursNegocie&amp;quot;: false,&lt;br /&gt;
    &amp;quot;dateCommande&amp;quot;: &amp;quot;1899-12-30T00:00:00.000Z&amp;quot;,&lt;br /&gt;
    &amp;quot;dateLivraison&amp;quot;: &amp;quot;1899-12-30T00:00:00.000Z&amp;quot;,&lt;br /&gt;
    &amp;quot;devise&amp;quot;: &amp;quot;&amp;quot;,&lt;br /&gt;
    &amp;quot;donneeEDI1&amp;quot;: &amp;quot;&amp;quot;,&lt;br /&gt;
    &amp;quot;donneeEDI2&amp;quot;: &amp;quot;&amp;quot;,&lt;br /&gt;
    &amp;quot;donneeEDI3&amp;quot;: &amp;quot;&amp;quot;,&lt;br /&gt;
    &amp;quot;donneeEDI4&amp;quot;: &amp;quot;&amp;quot;,&lt;br /&gt;
    &amp;quot;donneeEDI5&amp;quot;: &amp;quot;&amp;quot;,&lt;br /&gt;
    &amp;quot;echeancement&amp;quot;: &amp;quot;&amp;quot;,&lt;br /&gt;
    &amp;quot;etablissement&amp;quot;: &amp;quot;&amp;quot;,&lt;br /&gt;
    &amp;quot;exonereTaxe&amp;quot;: &amp;quot;&amp;quot;,&lt;br /&gt;
    &amp;quot;exonereTVA&amp;quot;: &amp;quot;&amp;quot;,&lt;br /&gt;
    &amp;quot;gestionTransport&amp;quot;: {&lt;br /&gt;
        &amp;quot;value&amp;quot;: 0,&lt;br /&gt;
        &amp;quot;title&amp;quot;: &amp;quot;Automatique&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;immobilisation&amp;quot;: {&lt;br /&gt;
        &amp;quot;value&amp;quot;: 0,&lt;br /&gt;
        &amp;quot;title&amp;quot;: &amp;quot;B&amp;amp;S&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;ImportCCDetailList&amp;quot;: [],&lt;br /&gt;
    &amp;quot;importeGMAO&amp;quot;: false,&lt;br /&gt;
    &amp;quot;importerRemisePied&amp;quot;: false,&lt;br /&gt;
    &amp;quot;ImportSiteAdresse&amp;quot;: {},&lt;br /&gt;
    &amp;quot;incoterm&amp;quot;: &amp;quot;&amp;quot;,&lt;br /&gt;
    &amp;quot;MentionExonerationTVA&amp;quot;: &amp;quot;&amp;quot;,&lt;br /&gt;
    &amp;quot;posteBudgetaire&amp;quot;: &amp;quot;&amp;quot;,&lt;br /&gt;
    &amp;quot;pourcentAcompte&amp;quot;: {&lt;br /&gt;
        &amp;quot;value&amp;quot;: 0,&lt;br /&gt;
        &amp;quot;Decimales&amp;quot;: 2&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;pourcentRemisePied&amp;quot;: {&lt;br /&gt;
        &amp;quot;value&amp;quot;: 0,&lt;br /&gt;
        &amp;quot;Decimales&amp;quot;: 2&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;reference&amp;quot;: &amp;quot;&amp;quot;,&lt;br /&gt;
    &amp;quot;referenceMandat&amp;quot;: &amp;quot;&amp;quot;,&lt;br /&gt;
    &amp;quot;regimeTVA&amp;quot;: &amp;quot;&amp;quot;,&lt;br /&gt;
    &amp;quot;roleTiers&amp;quot;: &amp;quot;&amp;quot;,&lt;br /&gt;
    &amp;quot;roleTiersLivre&amp;quot;: &amp;quot;&amp;quot;,&lt;br /&gt;
    &amp;quot;SessionImportation&amp;quot;: {},&lt;br /&gt;
    &amp;quot;typeFacturation&amp;quot;: {&lt;br /&gt;
        &amp;quot;value&amp;quot;: 0,&lt;br /&gt;
        &amp;quot;title&amp;quot;: &amp;quot;HT&amp;quot;&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Voir aussi :&lt;br /&gt;
&lt;br /&gt;
* [[SData|Point d'accès et url SData]]&lt;br /&gt;
* [[Gestion des jetons d'authentification (Administration)|Gestion des jetons d'authentification]]&lt;br /&gt;
* [[API Json (SData)|API SData en mode json]]&lt;br /&gt;
* [[Fichier_de_configuration_(server)#Logs|Enregistrement des messages SDATA]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Voir aussi les exemples suivants : &lt;br /&gt;
&lt;br /&gt;
* [[Utilisation du contrôleur de partage (API)|Utilisation du contrôleur de partage]]&lt;br /&gt;
* [[Interrogation des écritures (API)|Interrogation des écritures avec l'API SData]]&lt;br /&gt;
* [[Interrogation des fournisseurs (API)|Interrogation des fournisseurs avec l'API SData]]&lt;br /&gt;
* [[Creation d'un fournisseur (API)|Création d'un fournisseur avec l'API SData]]&lt;br /&gt;
* [[Import_de commandes_(API)|Import de commandes avec l'API SData]]&lt;br /&gt;
* [[Import_d%27écritures_(API)|Import d'écritures avec l'API SData]]&lt;br /&gt;
* [[Gestion des réceptions fournisseurs (API)|Gestion des réceptions fournisseurs avec l'API SData]]&lt;br /&gt;
* [[Facturation d'un bon de livraison (API)|Facturation d'un bon de livraison avec l'API SData]]&lt;br /&gt;
* [[Creation_d%27un_Tiers_et_son_compte_bancaire_(API)|Creation_d'un Tiers et son compte bancaire (API)]]&lt;br /&gt;
* [[Statuts de paiement d'une facture (API)|Statuts de paiement d'une facture avec l'API SData]]&lt;br /&gt;
[[Category:SData]]&lt;/div&gt;</summary>
		<author><name>Cesru</name></author>	</entry>

	<entry>
		<id>https://frp.sage.fr/wiki1000/index.php/Statuts_de_paiement_d%27une_facture_(API)</id>
		<title>Statuts de paiement d'une facture (API)</title>
		<link rel="alternate" type="text/html" href="https://frp.sage.fr/wiki1000/index.php/Statuts_de_paiement_d%27une_facture_(API)"/>
				<updated>2026-09-16T11:30:58Z</updated>
		
		<summary type="html">&lt;p&gt;Cesru : ajout de la catégorie&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Cette page décrit comment une gestion commerciale externe peut récupérer les statuts '''Encaissée''' générés dans FRP 1000 pour une facture comptable.&lt;br /&gt;
&lt;br /&gt;
L'application externe utilise ces informations pour piloter et réaliser elle-même la transmission des statuts vers son propre destinataire. L'API SData est consultée en lecture seule.&lt;br /&gt;
&lt;br /&gt;
== Principe ==&lt;br /&gt;
&lt;br /&gt;
FRP 1000 génère un événement de cycle de vie `212`, correspondant au statut '''Encaissée''', pour chaque règlement lettré sur une facture.&lt;br /&gt;
&lt;br /&gt;
Une facture peut posséder :&lt;br /&gt;
&lt;br /&gt;
* un règlement unique ;&lt;br /&gt;
* plusieurs règlements partiels ;&lt;br /&gt;
* un événement d'annulation après délettrage d'un règlement.&lt;br /&gt;
&lt;br /&gt;
La réponse doit donc être traitée comme un '''historique d'événements''', et non comme le statut courant unique de la facture.&lt;br /&gt;
&lt;br /&gt;
== Pré-requis ==&lt;br /&gt;
&lt;br /&gt;
* Connaître la référence de la facture (`oid`, `numeroPiece`, `reference`, `referenceExterne`, etc.).&lt;br /&gt;
* La pièce doit appartenir au flux '''e-invoicing'''.&lt;br /&gt;
&lt;br /&gt;
== Identifier la facture ==&lt;br /&gt;
&lt;br /&gt;
Dans les exemples à venir, la requête recherche une facture grâce à `referenceOrigine`.&lt;br /&gt;
&lt;br /&gt;
Cette valeur doit être celle fournie par la gestion commerciale lors de l'intégration de la facture dans FRP 1000. En pratique, il s'agit généralement du numéro de facture de la gestion commerciale.&lt;br /&gt;
&lt;br /&gt;
Exemple : si la facture externe porte le numéro `FAC-2026-000123`, la pièce FRP 1000 doit avoir :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;delphi&amp;quot;&amp;gt;&lt;br /&gt;
TPiece.referenceOrigine = 'FAC-2026-000123'&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Requête SData ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
GET http://localhost:8080/sdata/cptmouvement/tpiece?&lt;br /&gt;
  where=typeFlux eq 1&lt;br /&gt;
    and codeStatut eq '212'&lt;br /&gt;
    and referenceOrigine eq 'FAC-2026-000123'&lt;br /&gt;
  &amp;amp;select=referenceOrigine,&lt;br /&gt;
    idStatut as StatutFEList.oid,&lt;br /&gt;
    dateStatut as StatutFEList.DateStatut,&lt;br /&gt;
    codeStatut as StatutFEList.StatutCycleVie.code,&lt;br /&gt;
    idStatutAnnule as StatutFEList.oidStatutAnnule,&lt;br /&gt;
    StatutFEList.dataContent&lt;br /&gt;
  &amp;amp;orderBy=StatutFEList.DateStatut&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
''Cette présentation est destinée à la lisibilité.''&lt;br /&gt;
&lt;br /&gt;
=== Paramètres de requête ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Paramètre&lt;br /&gt;
! Rôle&lt;br /&gt;
|-&lt;br /&gt;
| where&lt;br /&gt;
| Filtre les pièces du flux `e-invoicing`, les statuts « Encaissé » et la référence externe de facture.&lt;br /&gt;
|-&lt;br /&gt;
| select&lt;br /&gt;
| Limite la réponse aux informations utiles au consommateur.&lt;br /&gt;
|-&lt;br /&gt;
| orderBy&lt;br /&gt;
| Trie les événements par date de statut croissante.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Informations retournées ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Champ&lt;br /&gt;
! Description&lt;br /&gt;
! Usage par l'application externe&lt;br /&gt;
|-&lt;br /&gt;
| referenceOrigine&lt;br /&gt;
| Référence externe de la facture.&lt;br /&gt;
| Rattacher l'événement à la facture de la gestion commerciale.&lt;br /&gt;
|-&lt;br /&gt;
| idStatut&lt;br /&gt;
| Identifiant unique du statut de paiement.&lt;br /&gt;
| Identifiant d'idempotence : conserver les statuts déjà transmis.&lt;br /&gt;
|-&lt;br /&gt;
| dateStatut&lt;br /&gt;
| Date et heure de création du statut dans FRP 1000.&lt;br /&gt;
| Ordonner l'historique des événements.&lt;br /&gt;
|-&lt;br /&gt;
| codeStatut&lt;br /&gt;
| Code du statut de cycle de vie.&lt;br /&gt;
| Vaut `212` pour « Encaissée ».&lt;br /&gt;
|-&lt;br /&gt;
| idStatutAnnule&lt;br /&gt;
| Identifiant du statut d'encaissement annulé.&lt;br /&gt;
| Présent uniquement pour une annulation.&lt;br /&gt;
|-&lt;br /&gt;
| dataContent&lt;br /&gt;
| Snapshot JSON du règlement.&lt;br /&gt;
| Désérialiser pour obtenir les informations à transmettre.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Contenu de `dataContent` ===&lt;br /&gt;
&lt;br /&gt;
`dataContent` est une chaîne contenant un tableau JSON. Il fournit notamment :&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Propriété&lt;br /&gt;
! Description&lt;br /&gt;
|-&lt;br /&gt;
| InvoiceID&lt;br /&gt;
| Identifiant de la facture.&lt;br /&gt;
|-&lt;br /&gt;
| isCreditNote&lt;br /&gt;
| Indique si la facture est un avoir.&lt;br /&gt;
|-&lt;br /&gt;
| isDiscount&lt;br /&gt;
| Indique si le règlement est un escompte.&lt;br /&gt;
|-&lt;br /&gt;
| isDownpayment&lt;br /&gt;
| Indique si la facture est un acompte.&lt;br /&gt;
|-&lt;br /&gt;
| isPurchase&lt;br /&gt;
| Indique si la facture relève d'un flux d'achat.&lt;br /&gt;
|-&lt;br /&gt;
| isSale&lt;br /&gt;
| Indique si la facture relève d'un flux de vente.&lt;br /&gt;
|-&lt;br /&gt;
| IssueDate&lt;br /&gt;
| Date de la facture.&lt;br /&gt;
|-&lt;br /&gt;
| Payment.Amount&lt;br /&gt;
| Montant encaissé.&lt;br /&gt;
|-&lt;br /&gt;
| Payment.Currency&lt;br /&gt;
| Devise du règlement.&lt;br /&gt;
|-&lt;br /&gt;
| Payment.Date&lt;br /&gt;
| Date du règlement.&lt;br /&gt;
|-&lt;br /&gt;
| Payment.SubTotals&lt;br /&gt;
| Ventilation TVA.&lt;br /&gt;
|-&lt;br /&gt;
| typeCode&lt;br /&gt;
| Code du type de flux, par exemple `MEN`.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Exemple de contenu :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
[&lt;br /&gt;
  {&lt;br /&gt;
    &amp;quot;InvoiceID&amp;quot;: &amp;quot;FAC-2026-000123&amp;quot;,&lt;br /&gt;
    &amp;quot;isCreditNote&amp;quot;: false,&lt;br /&gt;
    &amp;quot;isDiscount&amp;quot;: false,&lt;br /&gt;
    &amp;quot;isDownpayment&amp;quot;: false,&lt;br /&gt;
    &amp;quot;isPurchase&amp;quot;: 0,&lt;br /&gt;
    &amp;quot;isSale&amp;quot;: 1,&lt;br /&gt;
    &amp;quot;IssueDate&amp;quot;: &amp;quot;2026-09-14&amp;quot;,&lt;br /&gt;
    &amp;quot;Payment&amp;quot;: {&lt;br /&gt;
      &amp;quot;Amount&amp;quot;: 1000.0000,&lt;br /&gt;
      &amp;quot;Currency&amp;quot;: &amp;quot;EUR&amp;quot;,&lt;br /&gt;
      &amp;quot;Date&amp;quot;: &amp;quot;2026-09-14&amp;quot;,&lt;br /&gt;
      &amp;quot;SubTotals&amp;quot;: [&lt;br /&gt;
        {&lt;br /&gt;
          &amp;quot;Percent&amp;quot;: 20.00,&lt;br /&gt;
          &amp;quot;TaxableAmount&amp;quot;: 1000.00&lt;br /&gt;
        }&lt;br /&gt;
      ]&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;typeCode&amp;quot;: &amp;quot;MEN&amp;quot;&lt;br /&gt;
  }&lt;br /&gt;
]&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Cas 1 — Facture réglée en une fois ==&lt;br /&gt;
&lt;br /&gt;
La facture `FAC-2026-000123` possède un encaissement de 1000 EUR.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre style=&amp;quot;white-space: pre-wrap; overflow-wrap: anywhere;&amp;quot;&amp;gt;&lt;br /&gt;
GET http://localhost:8080/sdata/cptmouvement/tpiece?&lt;br /&gt;
  where=typeFlux eq 1&lt;br /&gt;
    and codeStatut eq '212'&lt;br /&gt;
    and referenceOrigine eq 'FAC-2026-000123'&lt;br /&gt;
  &amp;amp;select=referenceOrigine,&lt;br /&gt;
    idStatut as StatutFEList.oid,&lt;br /&gt;
    dateStatut as StatutFEList.DateStatut,&lt;br /&gt;
    codeStatut as StatutFEList.StatutCycleVie.code,&lt;br /&gt;
    idStatutAnnule as StatutFEList.oidStatutAnnule,&lt;br /&gt;
    StatutFEList.dataContent&lt;br /&gt;
  &amp;amp;orderBy=StatutFEList.DateStatut&lt;br /&gt;
&lt;br /&gt;
Response: 200 OK&lt;br /&gt;
{&lt;br /&gt;
  &amp;quot;$baseUrl&amp;quot;: &amp;quot;http://localhost:8080/sdata/cptmouvement/&amp;quot;,&lt;br /&gt;
  &amp;quot;$title&amp;quot;: &amp;quot;TPiece - -&amp;quot;,&lt;br /&gt;
  &amp;quot;$updated&amp;quot;: &amp;quot;2026-09-16T10:46:51.428+02:00&amp;quot;,&lt;br /&gt;
  &amp;quot;$resources&amp;quot;: [&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;$url&amp;quot;: &amp;quot;TPiece('860D26D2C52800A007CC0000240A0053')&amp;quot;,&lt;br /&gt;
      &amp;quot;$title&amp;quot;: &amp;quot;860D26D2C52800A007CC0000240A0053&amp;quot;,&lt;br /&gt;
      &amp;quot;$updated&amp;quot;: &amp;quot;2026-09-14T17:45:10.000+02:00&amp;quot;,&lt;br /&gt;
      &amp;quot;$etag&amp;quot;: &amp;quot;860D26D2C52800A007CC0000240A0053-000028B2000000EA&amp;quot;,&lt;br /&gt;
      &amp;quot;$shareId&amp;quot;: &amp;quot;860D26D2C52800A007220000024D000B&amp;quot;,&lt;br /&gt;
      &amp;quot;$shareInfo&amp;quot;: &amp;quot;S1&amp;quot;,&lt;br /&gt;
      &amp;quot;$shareLevel&amp;quot;: 2,&lt;br /&gt;
      &amp;quot;$key&amp;quot;: &amp;quot;860D26D2C52800A007CC0000240A0053&amp;quot;,&lt;br /&gt;
      &amp;quot;stamp&amp;quot;: &amp;quot;000028B2000000EA&amp;quot;,&lt;br /&gt;
      &amp;quot;codeStatut&amp;quot;: &amp;quot;212&amp;quot;,&lt;br /&gt;
      &amp;quot;dataContent&amp;quot;: &amp;quot;[{\&amp;quot;InvoiceID\&amp;quot;:\&amp;quot;FAC-2026-000123\&amp;quot;,\&amp;quot;isCreditNote\&amp;quot;:false,\&amp;quot;isDiscount\&amp;quot;:false,\&amp;quot;isDownpayment\&amp;quot;:false,\&amp;quot;isPurchase\&amp;quot;:0,\&amp;quot;isSale\&amp;quot;:1,\&amp;quot;IssueDate\&amp;quot;:\&amp;quot;2026-09-14\&amp;quot;,\&amp;quot;Payment\&amp;quot;:{\&amp;quot;Amount\&amp;quot;:1000.0000,\&amp;quot;Currency\&amp;quot;:\&amp;quot;EUR\&amp;quot;,\&amp;quot;Date\&amp;quot;:\&amp;quot;2026-09-14\&amp;quot;,\&amp;quot;SubTotals\&amp;quot;:[{\&amp;quot;Percent\&amp;quot;:20.00,\&amp;quot;TaxableAmount\&amp;quot;:1000.00}]},\&amp;quot;typeCode\&amp;quot;:\&amp;quot;MEN\&amp;quot;}]&amp;quot;,&lt;br /&gt;
      &amp;quot;dateStatut&amp;quot;: &amp;quot;2026-09-14T18:02:43.000+02:00&amp;quot;,&lt;br /&gt;
      &amp;quot;idStatut&amp;quot;: &amp;quot;860D26D2C52800A072AB0000240A0090&amp;quot;,&lt;br /&gt;
      &amp;quot;referenceOrigine&amp;quot;: &amp;quot;FAC-2026-000123&amp;quot;&lt;br /&gt;
    }&lt;br /&gt;
  ]&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Cas 2 — Facture réglée en plusieurs fois ==&lt;br /&gt;
&lt;br /&gt;
La facture `FAC-2026-000123` est réglée par deux encaissements : 1 000 EUR, puis 200 EUR.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre style=&amp;quot;white-space: pre-wrap; overflow-wrap: anywhere;&amp;quot;&amp;gt;&lt;br /&gt;
GET http://localhost:8080/sdata/cptmouvement/tpiece?&lt;br /&gt;
  where=typeFlux eq 1&lt;br /&gt;
    and codeStatut eq '212'&lt;br /&gt;
    and referenceOrigine eq 'FAC-2026-000123'&lt;br /&gt;
  &amp;amp;select=referenceOrigine,&lt;br /&gt;
    idStatut as StatutFEList.oid,&lt;br /&gt;
    dateStatut as StatutFEList.DateStatut,&lt;br /&gt;
    codeStatut as StatutFEList.StatutCycleVie.code,&lt;br /&gt;
    idStatutAnnule as StatutFEList.oidStatutAnnule,&lt;br /&gt;
    StatutFEList.dataContent&lt;br /&gt;
  &amp;amp;orderBy=StatutFEList.DateStatut&lt;br /&gt;
&lt;br /&gt;
Response: 200 OK&lt;br /&gt;
{&lt;br /&gt;
  &amp;quot;$baseUrl&amp;quot;: &amp;quot;http://localhost:8080/sdata/cptmouvement/&amp;quot;,&lt;br /&gt;
  &amp;quot;$title&amp;quot;: &amp;quot;TPiece - -&amp;quot;,&lt;br /&gt;
  &amp;quot;$updated&amp;quot;: &amp;quot;2026-09-16T10:46:18.876+02:00&amp;quot;,&lt;br /&gt;
  &amp;quot;$resources&amp;quot;: [&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;$url&amp;quot;: &amp;quot;TPiece('860D26D2C52800A007CC0000240B000C')&amp;quot;,&lt;br /&gt;
      &amp;quot;$title&amp;quot;: &amp;quot;860D26D2C52800A007CC0000240B000C&amp;quot;,&lt;br /&gt;
      &amp;quot;$updated&amp;quot;: &amp;quot;2026-09-15T14:59:32.000+02:00&amp;quot;,&lt;br /&gt;
      &amp;quot;$etag&amp;quot;: &amp;quot;860D26D2C52800A007CC0000240B000C-000028B300000057&amp;quot;,&lt;br /&gt;
      &amp;quot;$shareId&amp;quot;: &amp;quot;860D26D2C52800A007220000024D000B&amp;quot;,&lt;br /&gt;
      &amp;quot;$shareInfo&amp;quot;: &amp;quot;S1&amp;quot;,&lt;br /&gt;
      &amp;quot;$shareLevel&amp;quot;: 2,&lt;br /&gt;
      &amp;quot;$key&amp;quot;: &amp;quot;860D26D2C52800A007CC0000240B000C&amp;quot;,&lt;br /&gt;
      &amp;quot;stamp&amp;quot;: &amp;quot;000028B300000057&amp;quot;,&lt;br /&gt;
      &amp;quot;codeStatut&amp;quot;: &amp;quot;212&amp;quot;,&lt;br /&gt;
      &amp;quot;dataContent&amp;quot;: &amp;quot;[{\&amp;quot;InvoiceID\&amp;quot;:\&amp;quot;FAC-2026-000123\&amp;quot;,\&amp;quot;isCreditNote\&amp;quot;:false,\&amp;quot;isDiscount\&amp;quot;:false,\&amp;quot;isDownpayment\&amp;quot;:false,\&amp;quot;isPurchase\&amp;quot;:0,\&amp;quot;isSale\&amp;quot;:1,\&amp;quot;IssueDate\&amp;quot;:\&amp;quot;2026-09-14\&amp;quot;,\&amp;quot;Payment\&amp;quot;:{\&amp;quot;Amount\&amp;quot;:1000.0000,\&amp;quot;Currency\&amp;quot;:\&amp;quot;EUR\&amp;quot;,\&amp;quot;Date\&amp;quot;:\&amp;quot;2026-09-14\&amp;quot;,\&amp;quot;SubTotals\&amp;quot;:[{\&amp;quot;Percent\&amp;quot;:20.00,\&amp;quot;TaxableAmount\&amp;quot;:1000.00}]},\&amp;quot;typeCode\&amp;quot;:\&amp;quot;MEN\&amp;quot;}]&amp;quot;,&lt;br /&gt;
      &amp;quot;dateStatut&amp;quot;: &amp;quot;2026-09-15T15:01:18.000+02:00&amp;quot;,&lt;br /&gt;
      &amp;quot;idStatut&amp;quot;: &amp;quot;860D26D2C52800A072AB0000240B002B&amp;quot;,&lt;br /&gt;
      &amp;quot;referenceOrigine&amp;quot;: &amp;quot;FAC-2026-000123&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;$url&amp;quot;: &amp;quot;TPiece('860D26D2C52800A007CC0000240B000C')&amp;quot;,&lt;br /&gt;
      &amp;quot;$title&amp;quot;: &amp;quot;860D26D2C52800A007CC0000240B000C&amp;quot;,&lt;br /&gt;
      &amp;quot;$updated&amp;quot;: &amp;quot;2026-09-15T14:59:32.000+02:00&amp;quot;,&lt;br /&gt;
      &amp;quot;$etag&amp;quot;: &amp;quot;860D26D2C52800A007CC0000240B000C-000028B300000057&amp;quot;,&lt;br /&gt;
      &amp;quot;$shareId&amp;quot;: &amp;quot;860D26D2C52800A007220000024D000B&amp;quot;,&lt;br /&gt;
      &amp;quot;$shareInfo&amp;quot;: &amp;quot;S1&amp;quot;,&lt;br /&gt;
      &amp;quot;$shareLevel&amp;quot;: 2,&lt;br /&gt;
      &amp;quot;$key&amp;quot;: &amp;quot;860D26D2C52800A007CC0000240B000C&amp;quot;,&lt;br /&gt;
      &amp;quot;stamp&amp;quot;: &amp;quot;000028B300000057&amp;quot;,&lt;br /&gt;
      &amp;quot;codeStatut&amp;quot;: &amp;quot;212&amp;quot;,&lt;br /&gt;
      &amp;quot;dataContent&amp;quot;: &amp;quot;[{\&amp;quot;InvoiceID\&amp;quot;:\&amp;quot;FAC-2026-000123\&amp;quot;,\&amp;quot;isCreditNote\&amp;quot;:false,\&amp;quot;isDiscount\&amp;quot;:false,\&amp;quot;isDownpayment\&amp;quot;:false,\&amp;quot;isPurchase\&amp;quot;:0,\&amp;quot;isSale\&amp;quot;:1,\&amp;quot;IssueDate\&amp;quot;:\&amp;quot;2026-09-14\&amp;quot;,\&amp;quot;Payment\&amp;quot;:{\&amp;quot;Amount\&amp;quot;:200.0000,\&amp;quot;Currency\&amp;quot;:\&amp;quot;EUR\&amp;quot;,\&amp;quot;Date\&amp;quot;:\&amp;quot;2026-09-15\&amp;quot;,\&amp;quot;SubTotals\&amp;quot;:[{\&amp;quot;Percent\&amp;quot;:20.00,\&amp;quot;TaxableAmount\&amp;quot;:200.00}]},\&amp;quot;typeCode\&amp;quot;:\&amp;quot;MEN\&amp;quot;}]&amp;quot;,&lt;br /&gt;
      &amp;quot;dateStatut&amp;quot;: &amp;quot;2026-09-15T15:02:24.000+02:00&amp;quot;,&lt;br /&gt;
      &amp;quot;idStatut&amp;quot;: &amp;quot;860D26D2C52800A072AB0000240B0032&amp;quot;,&lt;br /&gt;
      &amp;quot;referenceOrigine&amp;quot;: &amp;quot;FAC-2026-000123&amp;quot;&lt;br /&gt;
    }&lt;br /&gt;
  ]&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Les deux éléments sont deux événements distincts. Le second encaissement ne remplace pas le premier.&lt;br /&gt;
&lt;br /&gt;
== Cas 3 — Annulation d'un paiement ==&lt;br /&gt;
&lt;br /&gt;
Une annulation est produite lorsque le règlement précédemment lettré est délettré, puis que la tâche '''Génération des statuts de paiement''' est exécutée.&lt;br /&gt;
&lt;br /&gt;
La réponse contient alors :&lt;br /&gt;
&lt;br /&gt;
* le statut d'encaissement initial ;&lt;br /&gt;
* un nouveau statut `212` ;&lt;br /&gt;
* la propriété `idStatutAnnule`, qui référence l'identifiant du statut initial.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre style=&amp;quot;white-space: pre-wrap; overflow-wrap: anywhere;&amp;quot;&amp;gt;&lt;br /&gt;
GET http://localhost:8080/sdata/cptmouvement/tpiece?&lt;br /&gt;
  where=typeFlux eq 1&lt;br /&gt;
    and codeStatut eq '212'&lt;br /&gt;
    and referenceOrigine eq 'FAC-2026-000123'&lt;br /&gt;
  &amp;amp;select=referenceOrigine,&lt;br /&gt;
    idStatut as StatutFEList.oid,&lt;br /&gt;
    dateStatut as StatutFEList.DateStatut,&lt;br /&gt;
    codeStatut as StatutFEList.StatutCycleVie.code,&lt;br /&gt;
    idStatutAnnule as StatutFEList.oidStatutAnnule,&lt;br /&gt;
    StatutFEList.dataContent&lt;br /&gt;
  &amp;amp;orderBy=StatutFEList.DateStatut&lt;br /&gt;
&lt;br /&gt;
Response: 200 OK&lt;br /&gt;
{&lt;br /&gt;
  &amp;quot;$baseUrl&amp;quot;: &amp;quot;http://localhost:8080/sdata/cptmouvement/&amp;quot;,&lt;br /&gt;
  &amp;quot;$title&amp;quot;: &amp;quot;TPiece - -&amp;quot;,&lt;br /&gt;
  &amp;quot;$updated&amp;quot;: &amp;quot;2026-09-16T10:45:31.403+02:00&amp;quot;,&lt;br /&gt;
  &amp;quot;$resources&amp;quot;: [&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;$url&amp;quot;: &amp;quot;TPiece('860D26D2C52800A007CC0000240B0035')&amp;quot;,&lt;br /&gt;
      &amp;quot;$title&amp;quot;: &amp;quot;860D26D2C52800A007CC0000240B0035&amp;quot;,&lt;br /&gt;
      &amp;quot;$updated&amp;quot;: &amp;quot;2026-09-16T10:31:27.000+02:00&amp;quot;,&lt;br /&gt;
      &amp;quot;$etag&amp;quot;: &amp;quot;860D26D2C52800A007CC0000240B0035-000028B300000095&amp;quot;,&lt;br /&gt;
      &amp;quot;$shareId&amp;quot;: &amp;quot;860D26D2C52800A007220000024D000B&amp;quot;,&lt;br /&gt;
      &amp;quot;$shareInfo&amp;quot;: &amp;quot;S1&amp;quot;,&lt;br /&gt;
      &amp;quot;$shareLevel&amp;quot;: 2,&lt;br /&gt;
      &amp;quot;$key&amp;quot;: &amp;quot;860D26D2C52800A007CC0000240B0035&amp;quot;,&lt;br /&gt;
      &amp;quot;stamp&amp;quot;: &amp;quot;000028B300000095&amp;quot;,&lt;br /&gt;
      &amp;quot;codeStatut&amp;quot;: &amp;quot;212&amp;quot;,&lt;br /&gt;
      &amp;quot;dataContent&amp;quot;: &amp;quot;[{\&amp;quot;InvoiceID\&amp;quot;:\&amp;quot;FAC-2026-000123\&amp;quot;,\&amp;quot;isCreditNote\&amp;quot;:false,\&amp;quot;isDiscount\&amp;quot;:false,\&amp;quot;isDownpayment\&amp;quot;:false,\&amp;quot;isPurchase\&amp;quot;:0,\&amp;quot;isSale\&amp;quot;:1,\&amp;quot;IssueDate\&amp;quot;:\&amp;quot;2026-09-16\&amp;quot;,\&amp;quot;Payment\&amp;quot;:{\&amp;quot;Amount\&amp;quot;:1000.0000,\&amp;quot;Currency\&amp;quot;:\&amp;quot;EUR\&amp;quot;,\&amp;quot;Date\&amp;quot;:\&amp;quot;2026-09-16\&amp;quot;,\&amp;quot;SubTotals\&amp;quot;:[{\&amp;quot;Percent\&amp;quot;:20.00,\&amp;quot;TaxableAmount\&amp;quot;:1000.0000}]},\&amp;quot;typeCode\&amp;quot;:\&amp;quot;MEN\&amp;quot;}]&amp;quot;,&lt;br /&gt;
      &amp;quot;dateStatut&amp;quot;: &amp;quot;2026-09-16T10:32:53.000+02:00&amp;quot;,&lt;br /&gt;
      &amp;quot;idStatut&amp;quot;: &amp;quot;860D26D2C52800A072AB0000240B004F&amp;quot;,&lt;br /&gt;
      &amp;quot;referenceOrigine&amp;quot;: &amp;quot;FAC-2026-000123&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;$url&amp;quot;: &amp;quot;TPiece('860D26D2C52800A007CC0000240B0035')&amp;quot;,&lt;br /&gt;
      &amp;quot;$title&amp;quot;: &amp;quot;860D26D2C52800A007CC0000240B0035&amp;quot;,&lt;br /&gt;
      &amp;quot;$updated&amp;quot;: &amp;quot;2026-09-16T10:31:27.000+02:00&amp;quot;,&lt;br /&gt;
      &amp;quot;$etag&amp;quot;: &amp;quot;860D26D2C52800A007CC0000240B0035-000028B300000095&amp;quot;,&lt;br /&gt;
      &amp;quot;$shareId&amp;quot;: &amp;quot;860D26D2C52800A007220000024D000B&amp;quot;,&lt;br /&gt;
      &amp;quot;$shareInfo&amp;quot;: &amp;quot;S1&amp;quot;,&lt;br /&gt;
      &amp;quot;$shareLevel&amp;quot;: 2,&lt;br /&gt;
      &amp;quot;$key&amp;quot;: &amp;quot;860D26D2C52800A007CC0000240B0035&amp;quot;,&lt;br /&gt;
      &amp;quot;stamp&amp;quot;: &amp;quot;000028B300000095&amp;quot;,&lt;br /&gt;
      &amp;quot;codeStatut&amp;quot;: &amp;quot;212&amp;quot;,&lt;br /&gt;
      &amp;quot;dataContent&amp;quot;: &amp;quot;[{\&amp;quot;InvoiceID\&amp;quot;:\&amp;quot;FAC-2026-000123\&amp;quot;,\&amp;quot;isCreditNote\&amp;quot;:false,\&amp;quot;isDiscount\&amp;quot;:false,\&amp;quot;isDownpayment\&amp;quot;:false,\&amp;quot;isPurchase\&amp;quot;:0,\&amp;quot;isSale\&amp;quot;:1,\&amp;quot;IssueDate\&amp;quot;:\&amp;quot;2026-09-16\&amp;quot;,\&amp;quot;Payment\&amp;quot;:{\&amp;quot;Amount\&amp;quot;:1000.0000,\&amp;quot;Currency\&amp;quot;:\&amp;quot;EUR\&amp;quot;,\&amp;quot;Date\&amp;quot;:\&amp;quot;2026-09-16\&amp;quot;,\&amp;quot;SubTotals\&amp;quot;:[{\&amp;quot;Percent\&amp;quot;:20.00,\&amp;quot;TaxableAmount\&amp;quot;:1000.0000}]},\&amp;quot;typeCode\&amp;quot;:\&amp;quot;MEN\&amp;quot;}]&amp;quot;,&lt;br /&gt;
      &amp;quot;dateStatut&amp;quot;: &amp;quot;2026-09-16T10:35:13.000+02:00&amp;quot;,&lt;br /&gt;
      &amp;quot;idStatut&amp;quot;: &amp;quot;860D26D2C52800A072AB0000240B0051&amp;quot;,&lt;br /&gt;
      &amp;quot;idStatutAnnule&amp;quot;: &amp;quot;860D26D2C52800A072AB0000240B004F&amp;quot;,&lt;br /&gt;
      &amp;quot;referenceOrigine&amp;quot;: &amp;quot;FAC-2026-000123&amp;quot;&lt;br /&gt;
    }&lt;br /&gt;
  ]&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Dans cet exemple, le statut `860D...004F` est annulé par le statut `860D...0051`.&lt;br /&gt;
&lt;br /&gt;
L'application externe doit transmettre l'annulation selon son propre protocole et conserver les deux événements dans son historique.&lt;br /&gt;
&lt;br /&gt;
== Cas sans encaissement ==&lt;br /&gt;
&lt;br /&gt;
Lorsqu'aucun statut `Encaissé` (`212`) ne correspond à la facture recherchée, la réponse HTTP est réussie (`200`) et le tableau `$resources` est vide :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Response: 200 OK&lt;br /&gt;
{&lt;br /&gt;
  &amp;quot;$baseUrl&amp;quot;: &amp;quot;http://localhost:8080/sdata/cptmouvement/&amp;quot;,&lt;br /&gt;
  &amp;quot;$title&amp;quot;: &amp;quot;TPiece - -&amp;quot;,&lt;br /&gt;
  &amp;quot;$updated&amp;quot;: &amp;quot;2026-09-16T11:47:32.384+02:00&amp;quot;,&lt;br /&gt;
  &amp;quot;$resources&amp;quot;: []&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Category:SData]]&lt;/div&gt;</summary>
		<author><name>Cesru</name></author>	</entry>

	<entry>
		<id>https://frp.sage.fr/wiki1000/index.php/Statuts_de_paiement_d%27une_facture_(API)</id>
		<title>Statuts de paiement d'une facture (API)</title>
		<link rel="alternate" type="text/html" href="https://frp.sage.fr/wiki1000/index.php/Statuts_de_paiement_d%27une_facture_(API)"/>
				<updated>2026-09-16T11:29:39Z</updated>
		
		<summary type="html">&lt;p&gt;Cesru : Page créée avec « Cette page décrit comment une gestion commerciale externe peut récupérer les statuts '''Encaissée''' générés dans FRP 1000 pour une facture comptable.  L'applicatio... »&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Cette page décrit comment une gestion commerciale externe peut récupérer les statuts '''Encaissée''' générés dans FRP 1000 pour une facture comptable.&lt;br /&gt;
&lt;br /&gt;
L'application externe utilise ces informations pour piloter et réaliser elle-même la transmission des statuts vers son propre destinataire. L'API SData est consultée en lecture seule.&lt;br /&gt;
&lt;br /&gt;
== Principe ==&lt;br /&gt;
&lt;br /&gt;
FRP 1000 génère un événement de cycle de vie `212`, correspondant au statut '''Encaissée''', pour chaque règlement lettré sur une facture.&lt;br /&gt;
&lt;br /&gt;
Une facture peut posséder :&lt;br /&gt;
&lt;br /&gt;
* un règlement unique ;&lt;br /&gt;
* plusieurs règlements partiels ;&lt;br /&gt;
* un événement d'annulation après délettrage d'un règlement.&lt;br /&gt;
&lt;br /&gt;
La réponse doit donc être traitée comme un '''historique d'événements''', et non comme le statut courant unique de la facture.&lt;br /&gt;
&lt;br /&gt;
== Pré-requis ==&lt;br /&gt;
&lt;br /&gt;
* Connaître la référence de la facture (`oid`, `numeroPiece`, `reference`, `referenceExterne`, etc.).&lt;br /&gt;
* La pièce doit appartenir au flux '''e-invoicing'''.&lt;br /&gt;
&lt;br /&gt;
== Identifier la facture ==&lt;br /&gt;
&lt;br /&gt;
Dans les exemples à venir, la requête recherche une facture grâce à `referenceOrigine`.&lt;br /&gt;
&lt;br /&gt;
Cette valeur doit être celle fournie par la gestion commerciale lors de l'intégration de la facture dans FRP 1000. En pratique, il s'agit généralement du numéro de facture de la gestion commerciale.&lt;br /&gt;
&lt;br /&gt;
Exemple : si la facture externe porte le numéro `FAC-2026-000123`, la pièce FRP 1000 doit avoir :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;delphi&amp;quot;&amp;gt;&lt;br /&gt;
TPiece.referenceOrigine = 'FAC-2026-000123'&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Requête SData ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
GET http://localhost:8080/sdata/cptmouvement/tpiece?&lt;br /&gt;
  where=typeFlux eq 1&lt;br /&gt;
    and codeStatut eq '212'&lt;br /&gt;
    and referenceOrigine eq 'FAC-2026-000123'&lt;br /&gt;
  &amp;amp;select=referenceOrigine,&lt;br /&gt;
    idStatut as StatutFEList.oid,&lt;br /&gt;
    dateStatut as StatutFEList.DateStatut,&lt;br /&gt;
    codeStatut as StatutFEList.StatutCycleVie.code,&lt;br /&gt;
    idStatutAnnule as StatutFEList.oidStatutAnnule,&lt;br /&gt;
    StatutFEList.dataContent&lt;br /&gt;
  &amp;amp;orderBy=StatutFEList.DateStatut&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
''Cette présentation est destinée à la lisibilité.''&lt;br /&gt;
&lt;br /&gt;
=== Paramètres de requête ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Paramètre&lt;br /&gt;
! Rôle&lt;br /&gt;
|-&lt;br /&gt;
| where&lt;br /&gt;
| Filtre les pièces du flux `e-invoicing`, les statuts « Encaissé » et la référence externe de facture.&lt;br /&gt;
|-&lt;br /&gt;
| select&lt;br /&gt;
| Limite la réponse aux informations utiles au consommateur.&lt;br /&gt;
|-&lt;br /&gt;
| orderBy&lt;br /&gt;
| Trie les événements par date de statut croissante.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Informations retournées ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Champ&lt;br /&gt;
! Description&lt;br /&gt;
! Usage par l'application externe&lt;br /&gt;
|-&lt;br /&gt;
| referenceOrigine&lt;br /&gt;
| Référence externe de la facture.&lt;br /&gt;
| Rattacher l'événement à la facture de la gestion commerciale.&lt;br /&gt;
|-&lt;br /&gt;
| idStatut&lt;br /&gt;
| Identifiant unique du statut de paiement.&lt;br /&gt;
| Identifiant d'idempotence : conserver les statuts déjà transmis.&lt;br /&gt;
|-&lt;br /&gt;
| dateStatut&lt;br /&gt;
| Date et heure de création du statut dans FRP 1000.&lt;br /&gt;
| Ordonner l'historique des événements.&lt;br /&gt;
|-&lt;br /&gt;
| codeStatut&lt;br /&gt;
| Code du statut de cycle de vie.&lt;br /&gt;
| Vaut `212` pour « Encaissée ».&lt;br /&gt;
|-&lt;br /&gt;
| idStatutAnnule&lt;br /&gt;
| Identifiant du statut d'encaissement annulé.&lt;br /&gt;
| Présent uniquement pour une annulation.&lt;br /&gt;
|-&lt;br /&gt;
| dataContent&lt;br /&gt;
| Snapshot JSON du règlement.&lt;br /&gt;
| Désérialiser pour obtenir les informations à transmettre.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Contenu de `dataContent` ===&lt;br /&gt;
&lt;br /&gt;
`dataContent` est une chaîne contenant un tableau JSON. Il fournit notamment :&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Propriété&lt;br /&gt;
! Description&lt;br /&gt;
|-&lt;br /&gt;
| InvoiceID&lt;br /&gt;
| Identifiant de la facture.&lt;br /&gt;
|-&lt;br /&gt;
| isCreditNote&lt;br /&gt;
| Indique si la facture est un avoir.&lt;br /&gt;
|-&lt;br /&gt;
| isDiscount&lt;br /&gt;
| Indique si le règlement est un escompte.&lt;br /&gt;
|-&lt;br /&gt;
| isDownpayment&lt;br /&gt;
| Indique si la facture est un acompte.&lt;br /&gt;
|-&lt;br /&gt;
| isPurchase&lt;br /&gt;
| Indique si la facture relève d'un flux d'achat.&lt;br /&gt;
|-&lt;br /&gt;
| isSale&lt;br /&gt;
| Indique si la facture relève d'un flux de vente.&lt;br /&gt;
|-&lt;br /&gt;
| IssueDate&lt;br /&gt;
| Date de la facture.&lt;br /&gt;
|-&lt;br /&gt;
| Payment.Amount&lt;br /&gt;
| Montant encaissé.&lt;br /&gt;
|-&lt;br /&gt;
| Payment.Currency&lt;br /&gt;
| Devise du règlement.&lt;br /&gt;
|-&lt;br /&gt;
| Payment.Date&lt;br /&gt;
| Date du règlement.&lt;br /&gt;
|-&lt;br /&gt;
| Payment.SubTotals&lt;br /&gt;
| Ventilation TVA.&lt;br /&gt;
|-&lt;br /&gt;
| typeCode&lt;br /&gt;
| Code du type de flux, par exemple `MEN`.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Exemple de contenu :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
[&lt;br /&gt;
  {&lt;br /&gt;
    &amp;quot;InvoiceID&amp;quot;: &amp;quot;FAC-2026-000123&amp;quot;,&lt;br /&gt;
    &amp;quot;isCreditNote&amp;quot;: false,&lt;br /&gt;
    &amp;quot;isDiscount&amp;quot;: false,&lt;br /&gt;
    &amp;quot;isDownpayment&amp;quot;: false,&lt;br /&gt;
    &amp;quot;isPurchase&amp;quot;: 0,&lt;br /&gt;
    &amp;quot;isSale&amp;quot;: 1,&lt;br /&gt;
    &amp;quot;IssueDate&amp;quot;: &amp;quot;2026-09-14&amp;quot;,&lt;br /&gt;
    &amp;quot;Payment&amp;quot;: {&lt;br /&gt;
      &amp;quot;Amount&amp;quot;: 1000.0000,&lt;br /&gt;
      &amp;quot;Currency&amp;quot;: &amp;quot;EUR&amp;quot;,&lt;br /&gt;
      &amp;quot;Date&amp;quot;: &amp;quot;2026-09-14&amp;quot;,&lt;br /&gt;
      &amp;quot;SubTotals&amp;quot;: [&lt;br /&gt;
        {&lt;br /&gt;
          &amp;quot;Percent&amp;quot;: 20.00,&lt;br /&gt;
          &amp;quot;TaxableAmount&amp;quot;: 1000.00&lt;br /&gt;
        }&lt;br /&gt;
      ]&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;typeCode&amp;quot;: &amp;quot;MEN&amp;quot;&lt;br /&gt;
  }&lt;br /&gt;
]&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Cas 1 — Facture réglée en une fois ==&lt;br /&gt;
&lt;br /&gt;
La facture `FAC-2026-000123` possède un encaissement de 1000 EUR.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre style=&amp;quot;white-space: pre-wrap; overflow-wrap: anywhere;&amp;quot;&amp;gt;&lt;br /&gt;
GET http://localhost:8080/sdata/cptmouvement/tpiece?&lt;br /&gt;
  where=typeFlux eq 1&lt;br /&gt;
    and codeStatut eq '212'&lt;br /&gt;
    and referenceOrigine eq 'FAC-2026-000123'&lt;br /&gt;
  &amp;amp;select=referenceOrigine,&lt;br /&gt;
    idStatut as StatutFEList.oid,&lt;br /&gt;
    dateStatut as StatutFEList.DateStatut,&lt;br /&gt;
    codeStatut as StatutFEList.StatutCycleVie.code,&lt;br /&gt;
    idStatutAnnule as StatutFEList.oidStatutAnnule,&lt;br /&gt;
    StatutFEList.dataContent&lt;br /&gt;
  &amp;amp;orderBy=StatutFEList.DateStatut&lt;br /&gt;
&lt;br /&gt;
Response: 200 OK&lt;br /&gt;
{&lt;br /&gt;
  &amp;quot;$baseUrl&amp;quot;: &amp;quot;http://localhost:8080/sdata/cptmouvement/&amp;quot;,&lt;br /&gt;
  &amp;quot;$title&amp;quot;: &amp;quot;TPiece - -&amp;quot;,&lt;br /&gt;
  &amp;quot;$updated&amp;quot;: &amp;quot;2026-09-16T10:46:51.428+02:00&amp;quot;,&lt;br /&gt;
  &amp;quot;$resources&amp;quot;: [&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;$url&amp;quot;: &amp;quot;TPiece('860D26D2C52800A007CC0000240A0053')&amp;quot;,&lt;br /&gt;
      &amp;quot;$title&amp;quot;: &amp;quot;860D26D2C52800A007CC0000240A0053&amp;quot;,&lt;br /&gt;
      &amp;quot;$updated&amp;quot;: &amp;quot;2026-09-14T17:45:10.000+02:00&amp;quot;,&lt;br /&gt;
      &amp;quot;$etag&amp;quot;: &amp;quot;860D26D2C52800A007CC0000240A0053-000028B2000000EA&amp;quot;,&lt;br /&gt;
      &amp;quot;$shareId&amp;quot;: &amp;quot;860D26D2C52800A007220000024D000B&amp;quot;,&lt;br /&gt;
      &amp;quot;$shareInfo&amp;quot;: &amp;quot;S1&amp;quot;,&lt;br /&gt;
      &amp;quot;$shareLevel&amp;quot;: 2,&lt;br /&gt;
      &amp;quot;$key&amp;quot;: &amp;quot;860D26D2C52800A007CC0000240A0053&amp;quot;,&lt;br /&gt;
      &amp;quot;stamp&amp;quot;: &amp;quot;000028B2000000EA&amp;quot;,&lt;br /&gt;
      &amp;quot;codeStatut&amp;quot;: &amp;quot;212&amp;quot;,&lt;br /&gt;
      &amp;quot;dataContent&amp;quot;: &amp;quot;[{\&amp;quot;InvoiceID\&amp;quot;:\&amp;quot;FAC-2026-000123\&amp;quot;,\&amp;quot;isCreditNote\&amp;quot;:false,\&amp;quot;isDiscount\&amp;quot;:false,\&amp;quot;isDownpayment\&amp;quot;:false,\&amp;quot;isPurchase\&amp;quot;:0,\&amp;quot;isSale\&amp;quot;:1,\&amp;quot;IssueDate\&amp;quot;:\&amp;quot;2026-09-14\&amp;quot;,\&amp;quot;Payment\&amp;quot;:{\&amp;quot;Amount\&amp;quot;:1000.0000,\&amp;quot;Currency\&amp;quot;:\&amp;quot;EUR\&amp;quot;,\&amp;quot;Date\&amp;quot;:\&amp;quot;2026-09-14\&amp;quot;,\&amp;quot;SubTotals\&amp;quot;:[{\&amp;quot;Percent\&amp;quot;:20.00,\&amp;quot;TaxableAmount\&amp;quot;:1000.00}]},\&amp;quot;typeCode\&amp;quot;:\&amp;quot;MEN\&amp;quot;}]&amp;quot;,&lt;br /&gt;
      &amp;quot;dateStatut&amp;quot;: &amp;quot;2026-09-14T18:02:43.000+02:00&amp;quot;,&lt;br /&gt;
      &amp;quot;idStatut&amp;quot;: &amp;quot;860D26D2C52800A072AB0000240A0090&amp;quot;,&lt;br /&gt;
      &amp;quot;referenceOrigine&amp;quot;: &amp;quot;FAC-2026-000123&amp;quot;&lt;br /&gt;
    }&lt;br /&gt;
  ]&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Cas 2 — Facture réglée en plusieurs fois ==&lt;br /&gt;
&lt;br /&gt;
La facture `FAC-2026-000123` est réglée par deux encaissements : 1 000 EUR, puis 200 EUR.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre style=&amp;quot;white-space: pre-wrap; overflow-wrap: anywhere;&amp;quot;&amp;gt;&lt;br /&gt;
GET http://localhost:8080/sdata/cptmouvement/tpiece?&lt;br /&gt;
  where=typeFlux eq 1&lt;br /&gt;
    and codeStatut eq '212'&lt;br /&gt;
    and referenceOrigine eq 'FAC-2026-000123'&lt;br /&gt;
  &amp;amp;select=referenceOrigine,&lt;br /&gt;
    idStatut as StatutFEList.oid,&lt;br /&gt;
    dateStatut as StatutFEList.DateStatut,&lt;br /&gt;
    codeStatut as StatutFEList.StatutCycleVie.code,&lt;br /&gt;
    idStatutAnnule as StatutFEList.oidStatutAnnule,&lt;br /&gt;
    StatutFEList.dataContent&lt;br /&gt;
  &amp;amp;orderBy=StatutFEList.DateStatut&lt;br /&gt;
&lt;br /&gt;
Response: 200 OK&lt;br /&gt;
{&lt;br /&gt;
  &amp;quot;$baseUrl&amp;quot;: &amp;quot;http://localhost:8080/sdata/cptmouvement/&amp;quot;,&lt;br /&gt;
  &amp;quot;$title&amp;quot;: &amp;quot;TPiece - -&amp;quot;,&lt;br /&gt;
  &amp;quot;$updated&amp;quot;: &amp;quot;2026-09-16T10:46:18.876+02:00&amp;quot;,&lt;br /&gt;
  &amp;quot;$resources&amp;quot;: [&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;$url&amp;quot;: &amp;quot;TPiece('860D26D2C52800A007CC0000240B000C')&amp;quot;,&lt;br /&gt;
      &amp;quot;$title&amp;quot;: &amp;quot;860D26D2C52800A007CC0000240B000C&amp;quot;,&lt;br /&gt;
      &amp;quot;$updated&amp;quot;: &amp;quot;2026-09-15T14:59:32.000+02:00&amp;quot;,&lt;br /&gt;
      &amp;quot;$etag&amp;quot;: &amp;quot;860D26D2C52800A007CC0000240B000C-000028B300000057&amp;quot;,&lt;br /&gt;
      &amp;quot;$shareId&amp;quot;: &amp;quot;860D26D2C52800A007220000024D000B&amp;quot;,&lt;br /&gt;
      &amp;quot;$shareInfo&amp;quot;: &amp;quot;S1&amp;quot;,&lt;br /&gt;
      &amp;quot;$shareLevel&amp;quot;: 2,&lt;br /&gt;
      &amp;quot;$key&amp;quot;: &amp;quot;860D26D2C52800A007CC0000240B000C&amp;quot;,&lt;br /&gt;
      &amp;quot;stamp&amp;quot;: &amp;quot;000028B300000057&amp;quot;,&lt;br /&gt;
      &amp;quot;codeStatut&amp;quot;: &amp;quot;212&amp;quot;,&lt;br /&gt;
      &amp;quot;dataContent&amp;quot;: &amp;quot;[{\&amp;quot;InvoiceID\&amp;quot;:\&amp;quot;FAC-2026-000123\&amp;quot;,\&amp;quot;isCreditNote\&amp;quot;:false,\&amp;quot;isDiscount\&amp;quot;:false,\&amp;quot;isDownpayment\&amp;quot;:false,\&amp;quot;isPurchase\&amp;quot;:0,\&amp;quot;isSale\&amp;quot;:1,\&amp;quot;IssueDate\&amp;quot;:\&amp;quot;2026-09-14\&amp;quot;,\&amp;quot;Payment\&amp;quot;:{\&amp;quot;Amount\&amp;quot;:1000.0000,\&amp;quot;Currency\&amp;quot;:\&amp;quot;EUR\&amp;quot;,\&amp;quot;Date\&amp;quot;:\&amp;quot;2026-09-14\&amp;quot;,\&amp;quot;SubTotals\&amp;quot;:[{\&amp;quot;Percent\&amp;quot;:20.00,\&amp;quot;TaxableAmount\&amp;quot;:1000.00}]},\&amp;quot;typeCode\&amp;quot;:\&amp;quot;MEN\&amp;quot;}]&amp;quot;,&lt;br /&gt;
      &amp;quot;dateStatut&amp;quot;: &amp;quot;2026-09-15T15:01:18.000+02:00&amp;quot;,&lt;br /&gt;
      &amp;quot;idStatut&amp;quot;: &amp;quot;860D26D2C52800A072AB0000240B002B&amp;quot;,&lt;br /&gt;
      &amp;quot;referenceOrigine&amp;quot;: &amp;quot;FAC-2026-000123&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;$url&amp;quot;: &amp;quot;TPiece('860D26D2C52800A007CC0000240B000C')&amp;quot;,&lt;br /&gt;
      &amp;quot;$title&amp;quot;: &amp;quot;860D26D2C52800A007CC0000240B000C&amp;quot;,&lt;br /&gt;
      &amp;quot;$updated&amp;quot;: &amp;quot;2026-09-15T14:59:32.000+02:00&amp;quot;,&lt;br /&gt;
      &amp;quot;$etag&amp;quot;: &amp;quot;860D26D2C52800A007CC0000240B000C-000028B300000057&amp;quot;,&lt;br /&gt;
      &amp;quot;$shareId&amp;quot;: &amp;quot;860D26D2C52800A007220000024D000B&amp;quot;,&lt;br /&gt;
      &amp;quot;$shareInfo&amp;quot;: &amp;quot;S1&amp;quot;,&lt;br /&gt;
      &amp;quot;$shareLevel&amp;quot;: 2,&lt;br /&gt;
      &amp;quot;$key&amp;quot;: &amp;quot;860D26D2C52800A007CC0000240B000C&amp;quot;,&lt;br /&gt;
      &amp;quot;stamp&amp;quot;: &amp;quot;000028B300000057&amp;quot;,&lt;br /&gt;
      &amp;quot;codeStatut&amp;quot;: &amp;quot;212&amp;quot;,&lt;br /&gt;
      &amp;quot;dataContent&amp;quot;: &amp;quot;[{\&amp;quot;InvoiceID\&amp;quot;:\&amp;quot;FAC-2026-000123\&amp;quot;,\&amp;quot;isCreditNote\&amp;quot;:false,\&amp;quot;isDiscount\&amp;quot;:false,\&amp;quot;isDownpayment\&amp;quot;:false,\&amp;quot;isPurchase\&amp;quot;:0,\&amp;quot;isSale\&amp;quot;:1,\&amp;quot;IssueDate\&amp;quot;:\&amp;quot;2026-09-14\&amp;quot;,\&amp;quot;Payment\&amp;quot;:{\&amp;quot;Amount\&amp;quot;:200.0000,\&amp;quot;Currency\&amp;quot;:\&amp;quot;EUR\&amp;quot;,\&amp;quot;Date\&amp;quot;:\&amp;quot;2026-09-15\&amp;quot;,\&amp;quot;SubTotals\&amp;quot;:[{\&amp;quot;Percent\&amp;quot;:20.00,\&amp;quot;TaxableAmount\&amp;quot;:200.00}]},\&amp;quot;typeCode\&amp;quot;:\&amp;quot;MEN\&amp;quot;}]&amp;quot;,&lt;br /&gt;
      &amp;quot;dateStatut&amp;quot;: &amp;quot;2026-09-15T15:02:24.000+02:00&amp;quot;,&lt;br /&gt;
      &amp;quot;idStatut&amp;quot;: &amp;quot;860D26D2C52800A072AB0000240B0032&amp;quot;,&lt;br /&gt;
      &amp;quot;referenceOrigine&amp;quot;: &amp;quot;FAC-2026-000123&amp;quot;&lt;br /&gt;
    }&lt;br /&gt;
  ]&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Les deux éléments sont deux événements distincts. Le second encaissement ne remplace pas le premier.&lt;br /&gt;
&lt;br /&gt;
== Cas 3 — Annulation d'un paiement ==&lt;br /&gt;
&lt;br /&gt;
Une annulation est produite lorsque le règlement précédemment lettré est délettré, puis que la tâche '''Génération des statuts de paiement''' est exécutée.&lt;br /&gt;
&lt;br /&gt;
La réponse contient alors :&lt;br /&gt;
&lt;br /&gt;
* le statut d'encaissement initial ;&lt;br /&gt;
* un nouveau statut `212` ;&lt;br /&gt;
* la propriété `idStatutAnnule`, qui référence l'identifiant du statut initial.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre style=&amp;quot;white-space: pre-wrap; overflow-wrap: anywhere;&amp;quot;&amp;gt;&lt;br /&gt;
GET http://localhost:8080/sdata/cptmouvement/tpiece?&lt;br /&gt;
  where=typeFlux eq 1&lt;br /&gt;
    and codeStatut eq '212'&lt;br /&gt;
    and referenceOrigine eq 'FAC-2026-000123'&lt;br /&gt;
  &amp;amp;select=referenceOrigine,&lt;br /&gt;
    idStatut as StatutFEList.oid,&lt;br /&gt;
    dateStatut as StatutFEList.DateStatut,&lt;br /&gt;
    codeStatut as StatutFEList.StatutCycleVie.code,&lt;br /&gt;
    idStatutAnnule as StatutFEList.oidStatutAnnule,&lt;br /&gt;
    StatutFEList.dataContent&lt;br /&gt;
  &amp;amp;orderBy=StatutFEList.DateStatut&lt;br /&gt;
&lt;br /&gt;
Response: 200 OK&lt;br /&gt;
{&lt;br /&gt;
  &amp;quot;$baseUrl&amp;quot;: &amp;quot;http://localhost:8080/sdata/cptmouvement/&amp;quot;,&lt;br /&gt;
  &amp;quot;$title&amp;quot;: &amp;quot;TPiece - -&amp;quot;,&lt;br /&gt;
  &amp;quot;$updated&amp;quot;: &amp;quot;2026-09-16T10:45:31.403+02:00&amp;quot;,&lt;br /&gt;
  &amp;quot;$resources&amp;quot;: [&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;$url&amp;quot;: &amp;quot;TPiece('860D26D2C52800A007CC0000240B0035')&amp;quot;,&lt;br /&gt;
      &amp;quot;$title&amp;quot;: &amp;quot;860D26D2C52800A007CC0000240B0035&amp;quot;,&lt;br /&gt;
      &amp;quot;$updated&amp;quot;: &amp;quot;2026-09-16T10:31:27.000+02:00&amp;quot;,&lt;br /&gt;
      &amp;quot;$etag&amp;quot;: &amp;quot;860D26D2C52800A007CC0000240B0035-000028B300000095&amp;quot;,&lt;br /&gt;
      &amp;quot;$shareId&amp;quot;: &amp;quot;860D26D2C52800A007220000024D000B&amp;quot;,&lt;br /&gt;
      &amp;quot;$shareInfo&amp;quot;: &amp;quot;S1&amp;quot;,&lt;br /&gt;
      &amp;quot;$shareLevel&amp;quot;: 2,&lt;br /&gt;
      &amp;quot;$key&amp;quot;: &amp;quot;860D26D2C52800A007CC0000240B0035&amp;quot;,&lt;br /&gt;
      &amp;quot;stamp&amp;quot;: &amp;quot;000028B300000095&amp;quot;,&lt;br /&gt;
      &amp;quot;codeStatut&amp;quot;: &amp;quot;212&amp;quot;,&lt;br /&gt;
      &amp;quot;dataContent&amp;quot;: &amp;quot;[{\&amp;quot;InvoiceID\&amp;quot;:\&amp;quot;FAC-2026-000123\&amp;quot;,\&amp;quot;isCreditNote\&amp;quot;:false,\&amp;quot;isDiscount\&amp;quot;:false,\&amp;quot;isDownpayment\&amp;quot;:false,\&amp;quot;isPurchase\&amp;quot;:0,\&amp;quot;isSale\&amp;quot;:1,\&amp;quot;IssueDate\&amp;quot;:\&amp;quot;2026-09-16\&amp;quot;,\&amp;quot;Payment\&amp;quot;:{\&amp;quot;Amount\&amp;quot;:1000.0000,\&amp;quot;Currency\&amp;quot;:\&amp;quot;EUR\&amp;quot;,\&amp;quot;Date\&amp;quot;:\&amp;quot;2026-09-16\&amp;quot;,\&amp;quot;SubTotals\&amp;quot;:[{\&amp;quot;Percent\&amp;quot;:20.00,\&amp;quot;TaxableAmount\&amp;quot;:1000.0000}]},\&amp;quot;typeCode\&amp;quot;:\&amp;quot;MEN\&amp;quot;}]&amp;quot;,&lt;br /&gt;
      &amp;quot;dateStatut&amp;quot;: &amp;quot;2026-09-16T10:32:53.000+02:00&amp;quot;,&lt;br /&gt;
      &amp;quot;idStatut&amp;quot;: &amp;quot;860D26D2C52800A072AB0000240B004F&amp;quot;,&lt;br /&gt;
      &amp;quot;referenceOrigine&amp;quot;: &amp;quot;FAC-2026-000123&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;$url&amp;quot;: &amp;quot;TPiece('860D26D2C52800A007CC0000240B0035')&amp;quot;,&lt;br /&gt;
      &amp;quot;$title&amp;quot;: &amp;quot;860D26D2C52800A007CC0000240B0035&amp;quot;,&lt;br /&gt;
      &amp;quot;$updated&amp;quot;: &amp;quot;2026-09-16T10:31:27.000+02:00&amp;quot;,&lt;br /&gt;
      &amp;quot;$etag&amp;quot;: &amp;quot;860D26D2C52800A007CC0000240B0035-000028B300000095&amp;quot;,&lt;br /&gt;
      &amp;quot;$shareId&amp;quot;: &amp;quot;860D26D2C52800A007220000024D000B&amp;quot;,&lt;br /&gt;
      &amp;quot;$shareInfo&amp;quot;: &amp;quot;S1&amp;quot;,&lt;br /&gt;
      &amp;quot;$shareLevel&amp;quot;: 2,&lt;br /&gt;
      &amp;quot;$key&amp;quot;: &amp;quot;860D26D2C52800A007CC0000240B0035&amp;quot;,&lt;br /&gt;
      &amp;quot;stamp&amp;quot;: &amp;quot;000028B300000095&amp;quot;,&lt;br /&gt;
      &amp;quot;codeStatut&amp;quot;: &amp;quot;212&amp;quot;,&lt;br /&gt;
      &amp;quot;dataContent&amp;quot;: &amp;quot;[{\&amp;quot;InvoiceID\&amp;quot;:\&amp;quot;FAC-2026-000123\&amp;quot;,\&amp;quot;isCreditNote\&amp;quot;:false,\&amp;quot;isDiscount\&amp;quot;:false,\&amp;quot;isDownpayment\&amp;quot;:false,\&amp;quot;isPurchase\&amp;quot;:0,\&amp;quot;isSale\&amp;quot;:1,\&amp;quot;IssueDate\&amp;quot;:\&amp;quot;2026-09-16\&amp;quot;,\&amp;quot;Payment\&amp;quot;:{\&amp;quot;Amount\&amp;quot;:1000.0000,\&amp;quot;Currency\&amp;quot;:\&amp;quot;EUR\&amp;quot;,\&amp;quot;Date\&amp;quot;:\&amp;quot;2026-09-16\&amp;quot;,\&amp;quot;SubTotals\&amp;quot;:[{\&amp;quot;Percent\&amp;quot;:20.00,\&amp;quot;TaxableAmount\&amp;quot;:1000.0000}]},\&amp;quot;typeCode\&amp;quot;:\&amp;quot;MEN\&amp;quot;}]&amp;quot;,&lt;br /&gt;
      &amp;quot;dateStatut&amp;quot;: &amp;quot;2026-09-16T10:35:13.000+02:00&amp;quot;,&lt;br /&gt;
      &amp;quot;idStatut&amp;quot;: &amp;quot;860D26D2C52800A072AB0000240B0051&amp;quot;,&lt;br /&gt;
      &amp;quot;idStatutAnnule&amp;quot;: &amp;quot;860D26D2C52800A072AB0000240B004F&amp;quot;,&lt;br /&gt;
      &amp;quot;referenceOrigine&amp;quot;: &amp;quot;FAC-2026-000123&amp;quot;&lt;br /&gt;
    }&lt;br /&gt;
  ]&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Dans cet exemple, le statut `860D...004F` est annulé par le statut `860D...0051`.&lt;br /&gt;
&lt;br /&gt;
L'application externe doit transmettre l'annulation selon son propre protocole et conserver les deux événements dans son historique.&lt;br /&gt;
&lt;br /&gt;
== Cas sans encaissement ==&lt;br /&gt;
&lt;br /&gt;
Lorsqu'aucun statut `Encaissé` (`212`) ne correspond à la facture recherchée, la réponse HTTP est réussie (`200`) et le tableau `$resources` est vide :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Response: 200 OK&lt;br /&gt;
{&lt;br /&gt;
  &amp;quot;$baseUrl&amp;quot;: &amp;quot;http://localhost:8080/sdata/cptmouvement/&amp;quot;,&lt;br /&gt;
  &amp;quot;$title&amp;quot;: &amp;quot;TPiece - -&amp;quot;,&lt;br /&gt;
  &amp;quot;$updated&amp;quot;: &amp;quot;2026-09-16T11:47:32.384+02:00&amp;quot;,&lt;br /&gt;
  &amp;quot;$resources&amp;quot;: []&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Cesru</name></author>	</entry>

	<entry>
		<id>https://frp.sage.fr/wiki1000/index.php/Travailler_sur_une_branche_git</id>
		<title>Travailler sur une branche git</title>
		<link rel="alternate" type="text/html" href="https://frp.sage.fr/wiki1000/index.php/Travailler_sur_une_branche_git"/>
				<updated>2020-07-01T08:14:04Z</updated>
		
		<summary type="html">&lt;p&gt;Cesru : Correction mot manquant&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Principe==&lt;br /&gt;
&lt;br /&gt;
Il s'agit de créer une branche, de développer sur cette branche et de pousser les modifications dans BitBucket pour partager cette branche avec l'équipe.&lt;br /&gt;
&lt;br /&gt;
==Mise en oeuvre==&lt;br /&gt;
&lt;br /&gt;
===Création de branche dans le concepteur===&lt;br /&gt;
====Dans le concepteur de modèle ajouter un nouvelle branche====&lt;br /&gt;
&lt;br /&gt;
&amp;quot;add new branch&amp;quot;=crée une branche ; &amp;quot;Checkout new branch&amp;quot;=crée une branche et se positionne dessus)&lt;br /&gt;
&lt;br /&gt;
[[image:git_branch0.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Choisir le type de branche et la nommer====&lt;br /&gt;
&lt;br /&gt;
{{tip|Le type de branche influe sur les pulls requests}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[image:git_branch2.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
La branche apparaît dans les branches locales&lt;br /&gt;
&lt;br /&gt;
[[image:git_branch30.png]]&lt;br /&gt;
&lt;br /&gt;
La branche courante apparaît dans le titre de l'onglet Git&lt;br /&gt;
&lt;br /&gt;
[[image:git_branch50.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Obtenir une branche distante===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Si on souhaite travailler sur une branche qu'on a pas créée (crée dans JIRA ou créée par un autre membre de l'équipe dans le concepteur), il faut faire un refresh des branches distantes pour la voir apparaître et faire un checkout pour se positionner dessus.&lt;br /&gt;
&lt;br /&gt;
[[image:git_branch14.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[image:git_branch15.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Voir les modifications effectuées===&lt;br /&gt;
&lt;br /&gt;
Pour voir les modification de source dans Git, penser à enregistrer les modifications&lt;br /&gt;
&lt;br /&gt;
[[image:git_branch40.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Voir les modifications apportées&lt;br /&gt;
&lt;br /&gt;
[[image:git_branch6.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Commiter son travail===&lt;br /&gt;
&lt;br /&gt;
Ajouter les fichiers modifiés dans l'index &lt;br /&gt;
&lt;br /&gt;
[[image:git_branch7.png]]&lt;br /&gt;
&lt;br /&gt;
Les fichiers apparaissent dans l'index&lt;br /&gt;
&lt;br /&gt;
[[image:git_branch8.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
effectuer un commit&lt;br /&gt;
&lt;br /&gt;
[[image:git_branch10.png]]&lt;br /&gt;
&lt;br /&gt;
Le commit apparaît sur la branche&lt;br /&gt;
&lt;br /&gt;
[[image:git_branch9.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Pousser sa branche sur le répertoire distant===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[image:git_branch11.png]]&lt;br /&gt;
&lt;br /&gt;
[[image:git_branch12.png]]&lt;br /&gt;
&lt;br /&gt;
La branche est visible dans BitBucket, les autres membres de l'équipe peuvent travailler dessus en faisaint un &amp;quot;pull&amp;quot; dans le concepteur de modèle et en faisant un &amp;quot;checkout&amp;quot; sur cette branche&lt;br /&gt;
&lt;br /&gt;
[[image:git_branch13.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Git]]&lt;br /&gt;
[[Category:Développement]]&lt;br /&gt;
[[Category:Version910]]&lt;/div&gt;</summary>
		<author><name>Cesru</name></author>	</entry>

	<entry>
		<id>https://frp.sage.fr/wiki1000/index.php/Parameters_(type)</id>
		<title>Parameters (type)</title>
		<link rel="alternate" type="text/html" href="https://frp.sage.fr/wiki1000/index.php/Parameters_(type)"/>
				<updated>2019-09-30T08:20:50Z</updated>
		
		<summary type="html">&lt;p&gt;Cesru : &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Le type de données « Paramètres » permet de stocker dynamiquement des [[Parameter (type)|paramètres]] qui ne sont pas connu à l'avance.&lt;br /&gt;
&lt;br /&gt;
Le type paramètres est stocké sous forme de document XML&lt;br /&gt;
&lt;br /&gt;
Le type [[Parameter (type)|paramètre]] peut être utilisé pour stocker des couple clé/valeur.&lt;br /&gt;
&lt;br /&gt;
===Propriétés===&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|[[Count (parameters type)|Count]]&lt;br /&gt;
|Retourne le nombre de paramètre&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Méthodes===&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|[[Clear (parameters type)|Clear]]&lt;br /&gt;
|Vide la liste des paramètres&lt;br /&gt;
|-&lt;br /&gt;
|[[Names (parameters type)|Names]]&lt;br /&gt;
|Accède au nom des paramètres&lt;br /&gt;
|-&lt;br /&gt;
|[[Values (parameters type)|Values]]&lt;br /&gt;
|Accède au valeur des paramètres&lt;br /&gt;
|-&lt;br /&gt;
|[[ValueByIndex (parameters type)|ValueByIndex]]&lt;br /&gt;
|Accède au valeur des paramètres par leur index&lt;br /&gt;
|-&lt;br /&gt;
|[[NameExists (parameters type)|NameExists]]&lt;br /&gt;
|Test si un paramètre existe.&lt;br /&gt;
|-&lt;br /&gt;
|[[IndexOfName (parameters type)|IndexOfName]]&lt;br /&gt;
|Retourne l'index d'un paramètre&lt;br /&gt;
|-&lt;br /&gt;
|[[Add (parameters type)|Add]]&lt;br /&gt;
|Ajoute un paramètre&lt;br /&gt;
|-&lt;br /&gt;
|[[Find (parameters type)|Find]]&lt;br /&gt;
|Retourne un paramètre par son nom&lt;br /&gt;
|-&lt;br /&gt;
|[[Remove (parameters type)|Remove]]&lt;br /&gt;
|Supprime un paramètre&lt;br /&gt;
|-&lt;br /&gt;
|[[Merge (parameters type)|Merge]]&lt;br /&gt;
|Fusionne une liste de paramètre&lt;br /&gt;
|-&lt;br /&gt;
|[[Replace (parameters type)|Replace]]&lt;br /&gt;
|Remplace les valeurs par une liste de paramètre&lt;br /&gt;
|-&lt;br /&gt;
|[[Items (parameters type)|Items]]&lt;br /&gt;
|Retourne un paramètre par son index&lt;br /&gt;
|-&lt;br /&gt;
|[[LogEvent (parameters type)|LogEvent]]&lt;br /&gt;
|Transmet le contenu comme évènement.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Exemple :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;delphi&amp;quot;&amp;gt;&lt;br /&gt;
unit TestSYFREWF;&lt;br /&gt;
interface&lt;br /&gt;
&lt;br /&gt;
Type&lt;br /&gt;
  Facade1 = Class(TitObject)&lt;br /&gt;
  public&lt;br /&gt;
    keyvalue: TFrameWorkDataType;&lt;br /&gt;
    Procedure AddKeyValue;&lt;br /&gt;
    Class Procedure TestFacade1;&lt;br /&gt;
  end;&lt;br /&gt;
&lt;br /&gt;
Implementation&lt;br /&gt;
&lt;br /&gt;
{Facade1}&lt;br /&gt;
&lt;br /&gt;
Procedure Facade1.AddKeyValue;&lt;br /&gt;
//Procedure AddKeyValue;&lt;br /&gt;
begin&lt;br /&gt;
  keyvalue.Add('source','key1',100);&lt;br /&gt;
  //&lt;br /&gt;
  if keyvalue.Find('source','key1').Value=100&lt;br /&gt;
     then showMessage('OK')&lt;br /&gt;
     else showMessage('failed');&lt;br /&gt;
&lt;br /&gt;
  if keyvalue.Names[0]='key1'&lt;br /&gt;
     then showMessage('Names ok')&lt;br /&gt;
     else showMessage('Names failed');&lt;br /&gt;
&lt;br /&gt;
  if keyvalue.Values['key1']=100&lt;br /&gt;
     then showMessage('Values ok')&lt;br /&gt;
     else showMessage('Values failed');&lt;br /&gt;
&lt;br /&gt;
  if keyvalue.ValueByIndex[0]=100&lt;br /&gt;
     then showMessage('ValueByIndex ok')&lt;br /&gt;
     else showMessage('ValueByIndex failed');&lt;br /&gt;
&lt;br /&gt;
  if keyvalue.NameExists('key1')&lt;br /&gt;
     then showMessage('NameExists ok')&lt;br /&gt;
     else showMessage('NameExists failed');&lt;br /&gt;
&lt;br /&gt;
  if keyvalue.IndexOfName('key1')&amp;lt;&amp;gt;-1&lt;br /&gt;
     then showMessage('IndexOfName ok')&lt;br /&gt;
     else showMessage('IndexOfName failed');&lt;br /&gt;
&lt;br /&gt;
  if keyvalue.Items[keyvalue.IndexOfName('key1')].Value=100&lt;br /&gt;
     then showMessage('Items ok')&lt;br /&gt;
     else showMessage('Items failed');&lt;br /&gt;
end;&lt;br /&gt;
&lt;br /&gt;
Class Procedure Facade1.TestFacade1;&lt;br /&gt;
//Class Procedure TestFacade1;&lt;br /&gt;
begin&lt;br /&gt;
  showMessage('Test Facade1');&lt;br /&gt;
end;&lt;br /&gt;
&lt;br /&gt;
end.&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Voir aussi :&lt;br /&gt;
&lt;br /&gt;
* [[Parameter (type)|Type paramètre]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Type de donnée Paramètres]]&lt;br /&gt;
[[category:Types]]&lt;br /&gt;
[[Category:Version700]]&lt;/div&gt;</summary>
		<author><name>Cesru</name></author>	</entry>

	<entry>
		<id>https://frp.sage.fr/wiki1000/index.php/TSelectorConstraint_(selector)</id>
		<title>TSelectorConstraint (selector)</title>
		<link rel="alternate" type="text/html" href="https://frp.sage.fr/wiki1000/index.php/TSelectorConstraint_(selector)"/>
				<updated>2016-11-17T15:08:27Z</updated>
		
		<summary type="html">&lt;p&gt;Cesru : &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{latest}}&lt;br /&gt;
&amp;lt;source lang='delphi'&amp;gt;TSelectorConstraint:TObject;&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Cet objet matérialise une contrainte posée sur un sélecteur.&lt;br /&gt;
&lt;br /&gt;
Une contrainte permet de définir une jointure et de poser des conditions sur cette jointure.&lt;br /&gt;
&lt;br /&gt;
===Attributs===&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!Attribut&lt;br /&gt;
!Usage&lt;br /&gt;
|-&lt;br /&gt;
|[[Nom (TSelectorConstraint)|Nom]]&lt;br /&gt;
|Nom de la contrainte&lt;br /&gt;
|-&lt;br /&gt;
|[[Parent (TSelectorConstraint)|Parent]]&lt;br /&gt;
|Objet parent de la contrainte&lt;br /&gt;
|-&lt;br /&gt;
|[[ClassName (TSelectorConstraint)|ClassName]]&lt;br /&gt;
|Nom de la classe sur laquelle porte la sélection&lt;br /&gt;
|-&lt;br /&gt;
|[[Left (TSelectorConstraint)|Left]]&lt;br /&gt;
|Nom de l'attribut gauche&lt;br /&gt;
|-&lt;br /&gt;
|[[Right (TSelectorConstraint)|Right]]&lt;br /&gt;
|Nom de l'attribut droit&lt;br /&gt;
|-&lt;br /&gt;
|[[Where (TSelectorConstraint)|Where]]&lt;br /&gt;
|Clause Where de la contrainte&lt;br /&gt;
|-&lt;br /&gt;
|[[ArgCount (TSelectorConstraint)|ArgCount]]&lt;br /&gt;
|Nombre d'arguments de la clause where&lt;br /&gt;
|-&lt;br /&gt;
|[[Args (TSelectorConstraint)|Args[]]]&lt;br /&gt;
|Argument de la clause where&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Méthodes d'instance===&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!Méthode&lt;br /&gt;
!Usage&lt;br /&gt;
|-&lt;br /&gt;
|[[AliasOf (TSelectorConstraint)|AliasOf]]&lt;br /&gt;
|Retourne la colonne préfixée d'un attribut de la classe de la contrainte&lt;br /&gt;
|-&lt;br /&gt;
|[[Delete (TSelectorConstraint)|Delete]]&lt;br /&gt;
|Supprime la contrainte&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Exemples d'utilisation de contrainte===&lt;br /&gt;
&lt;br /&gt;
[[image:selector_constraint_1.jpg]]&lt;br /&gt;
&lt;br /&gt;
'''Contrainte venant d'une référence'''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;delphi&amp;quot;&amp;gt;&lt;br /&gt;
function doSelector(const iCodeA:string; const iCodeB:string):Integer;&lt;br /&gt;
var selA:TSelector; obj:TSelectorConstraint;&lt;br /&gt;
begin&lt;br /&gt;
  selA := ClassA.CreateSelector('unCodeA=%1','unCodeA',True,[iCodeA]);&lt;br /&gt;
  obj  := selA.AddConstraint(nil, 'ClassB','oid','refB','unCodeB=%1',[iCodeB]);&lt;br /&gt;
  Result := selA.Count;&lt;br /&gt;
end;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Contrainte venant d'une référence inversée'''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;delphi&amp;quot;&amp;gt;&lt;br /&gt;
function doSelector(const iCodeA:string; const iCodeB:string):Integer;&lt;br /&gt;
var selB:TSelector; obj:TSelectorConstraint;&lt;br /&gt;
begin&lt;br /&gt;
  selB := ClassB.CreateSelector('unCodeB=%1','unCodeB',True,[iCodeB]);&lt;br /&gt;
  obj  := selB.AddConstraint(nil, 'ClassA','refB','oid','unCodeA=%1',[iCodeA]);&lt;br /&gt;
  Result := selB.Count;&lt;br /&gt;
end;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Contrainte en cascade'''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;delphi&amp;quot;&amp;gt;&lt;br /&gt;
function doSelector(const iCodeA:string; const iCodeB:string):Integer;&lt;br /&gt;
var selA:TSelector; obj:TSelectorConstraint;&lt;br /&gt;
begin&lt;br /&gt;
  selA := ClassA.CreateSelector('unCodeA=%1','unCodeA',True,[iCodeA]);&lt;br /&gt;
  obj  := selA.AddConstraint(nil, 'ClassB','oid','refB','unCodeB=%1',[iCodeB]);&lt;br /&gt;
  obj  := selA.AddConstraint(obj, 'ClassA2','refB','oid','AliasOf(''ClassA'',''unCodeA'')=unCodeA',[]);&lt;br /&gt;
  Result := selA.Count;&lt;br /&gt;
end;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Contrainte entre classes'''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;delphi&amp;quot;&amp;gt;&lt;br /&gt;
function doSelector(const iCodeA:string; const iCodeB:string):Integer;&lt;br /&gt;
var selB:TSelector; obj:TSelectorConstraint;&lt;br /&gt;
begin&lt;br /&gt;
  selB := ClassB.CreateSelector('unCodeB=%1','unCodeB',True,[iCodeB]);&lt;br /&gt;
  obj  := selB.AddConstraint(nil, 'ClassA','refB','oid','',[]);&lt;br /&gt;
  obj  := selB.AddConstraint(nil, 'ClassA2','refB','oid','(AliasOf(''ClassA'',''unCodeA'')=unCodeA2) and (unCodeA2=%1)',[iCodeA]);&lt;br /&gt;
  Result := selB.Count;&lt;br /&gt;
end;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Mise à jour'''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;delphi&amp;quot;&amp;gt;&lt;br /&gt;
function doSelector(const iCodeA:string; const iCodeB:string):Integer;&lt;br /&gt;
var selA:TSelector; obj:TSelectorConstraint;&lt;br /&gt;
begin&lt;br /&gt;
  selA := ClassA.CreateSelector('unCodeA=%1','unCodeA',True,[iCodeA]);&lt;br /&gt;
  obj  := selA.AddConstraint(nil, 'ClassB','oid','refB','unCodeB=%1',[iCodeB]);&lt;br /&gt;
  withP long transaction do&lt;br /&gt;
   begin&lt;br /&gt;
     Result := selA.Update(['unEntierA'],[0]);&lt;br /&gt;
   end;&lt;br /&gt;
end;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Mise à jour en utilisant un attribut de la contrainte'''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;delphi&amp;quot;&amp;gt;&lt;br /&gt;
function doSelector(const iCodeA:string; const iCodeB:string):Integer;&lt;br /&gt;
var selA:TSelector; obj:TSelectorConstraint;&lt;br /&gt;
begin&lt;br /&gt;
  selA := ClassA.CreateSelector('unCodeA=%1','unCodeA',True,[iCodeA]);&lt;br /&gt;
  obj  := selA.AddConstraint(nil, 'ClassB','oid','refB','unCodeB=%1',[iCodeB]); // obj.Name='C1'&lt;br /&gt;
  obj  := selA.AddConstraint(obj, 'ClassA2','refB','oid','AliasOf(''ClassA'',''unCodeA'')=unCodeA2',[]); // obj.Name='C2'&lt;br /&gt;
  withP long transaction do&lt;br /&gt;
   begin&lt;br /&gt;
     Result :=  selA.Update(['unEntierA'],['C2.unEntierA2']);&lt;br /&gt;
   end;&lt;br /&gt;
end;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Voir aussi :&lt;br /&gt;
&lt;br /&gt;
* [[AddConstraint (selector)|Ajouter une contrainte]]&lt;br /&gt;
* [[AliasOf (exp)|AliasOf]]&lt;br /&gt;
&lt;br /&gt;
{{Footer|Selecteur (tech)}}&lt;br /&gt;
[[category:Sélecteur]]&lt;/div&gt;</summary>
		<author><name>Cesru</name></author>	</entry>

	</feed>