Dialoguer avec NOUTOnline
Présentation de NOUTOnline
NOUTOnline est un programme serveur de SIMAX avec lequel on peut communiquer via les protocoles SOAP et REST. Ces deux protocoles doivent respecter les normes SIMAX, c'est à dire envoyer des requêtes telles qu'elles sont décrites dans la documentation.
Grâce aux formats SOAP-SIMAX et REST-SIMAX vous avez la possibilité de développer votre propre client NOUTOnline.
Schéma d'échanges entre un client et NOUTOnline
-
GetTokenSession
- Identifiant
- Mot de passe
-
Identification
Ouverture de session
- Jeton de session
-
Create
- Formulaire
-
Record
Ouverture d'un contexte d'action
Initialisation d'un nouvel enregistrement avec valeurs par défaut- XML / XSD
- Identifiant du contexte
-
Update
- XML modifié
- Identifiant du contexte
-
Record
Mise à jour des valeurs
- XML mis à jour
- Identifiant du contexte
-
Validate
- XML modifié
- Identifiant du contexte
-
Report
Enregistrement dans la base de données
Fermeture du contexte d'action- CR
-
Disconnect
-
Empty
Fermeture de la session
Concepts clés
Le dialogue commence toujours par une ouverture de session sécurisée avec l'appel de la méthode GetTokenSession qui renvoi un jeton de session à fournir dans chaque requête. La session reste ouverte jusqu'à l'appel de la méthode Disconnect ou jusqu'à la fin du timeout de session.
Chaque requête va ensuite être associée à un contexte d'action (ou contexte d'exécution). La réponse de NOUTOnline à la première requête du client fournira l'identifiant du contexte d'action créé pour ce dialogue. Ce même identifiant devra être fournit dans chaque Header des requêtes SOAP qui suivent car il permet alors de faire le lien entre les requêtes et les réponses de ce même dialogue.
Dans le schéma du paragraphe précédent, NOUTOnline sait quel enregistrement mettre à jour à la réception de la requête Update car le client lui a fournit l'identifiant du contexte d'action créé lors de la création de l'enregistrement. Un contexte d'action correspond bien à un dialogue complet entre le client et NOUTOnline.
L'appel à la méthode Validate permet d'envoyer les données à la base de données. Tous les appels aux méthodes Create, Modify, Delete, etc... doivent se terminer par un validate pour que ces actions soient effectivement exécutées dans la base de données ou par un Cancel quand l'action est finalement annulée. L'entête AutoValidate permet de demander à NOUTOnline de faire automatiquement un validate après le traitement de vos requêtes.
A tout moment NOUTOnline peut être amené à demander des informations complémentaires (ex : champs obligatoires non remplis) ou des confirmations (ex : « voulez-vous vraiment supprimer cet élément ? ») pour exécuter vos requêtes. Des cycles « question de NOUTOnline/réponse du client » supplémentaires peuvent donc s'ajouter au schéma vu précédemment.
Par défaut, NOUTOnline renvoie dans le header de ses réponses SOAP le XSD décrivant la structure des données du XML présent dans le body. Pour des questions de rapidité, vous pouvez demander à NOUTOnline de ne pas vous envoyer ce XSD (cf OptionDialogue) .
Les méthodes Create (création), Modify (modification), Delete (suppression), Display (lecture), List (liste), Search (recherche) et Execute (exécution) sont des méthodes qui sont basées sur les actions paramétrées dans SIMAX, les paramètres à fournir dans les requêtes SOAP correspondent donc aux paramètres définis dans les actions du paramétrage SIMAX.
Le format des données
On distingue 2 formats de données, le format stocké et le format affichée. Il est possible de demander l'un ou l'autre via DisplayValue
des options de dialogue.
DisplayValue
à pour valeur une combinaison de flags :
65535
: tous les types de données sont au format affichage,0
: tous les types de données sont au format stocké
La construction de la combinaison de flags suit le tableau suivant ; ce dernier fait aussi office de calculateur, cliquer sur la colonne Valeur affichée demandée pour sélectionner une valeur d'affichage et regarder en bas du tableau la combinaison de flags calculée.
Type de données | Valeur du flags | Valeur Affichée demandée |
---|---|---|
Texte | 0x0001 | ✓ |
Texte multi-ligne | 0x0002 | ✓ |
Entier | 0x0004 | ✓ |
Réel | 0x0008 | ✖ |
Monétaire | 0x0010 | ✖ |
Date | 0x0020 | ✖ |
Heure | 0x0040 | ✖ |
Date Heure | 0x0080 | ✖ |
Booléen | 0x0100 | ✖ |
Identifiant | 0x0200 | ✖ |
Fichier | 0x0400 | ✖ |
Liste déroulante | 0x0800 | ✖ |
Élément de tableau | 0x1000 | ✖ |
Liste d'élément de tableau | 0x2000 | ✖ |
Durée | 0x4000 | ✓ |
Flags Calculée | 0x4007 | 16391 |
Les identifiants
Les identifiants doivent être dans un des formats suivants :
- décimal
- hexadécimal préfixé par 0x
- affichage préfixé par 0z
Si l'identifiant doit être inséré en tant que nom de balise, il doit être préfixé par id_
Format stocké
Les identifiants
Les identifiants doivent être dans un des formats suivants :
- décimal
- hexadécimal préfixé par 0x
- affichage préfixé par 0z
Si l'identifiant doit être inséré en tant que nom de balise, il doit être préfixé par id_
Les dates et heures
Les dates et heures sont dans le format suivant :
- date et heure :
AAAAMMJJHHMMSS
, exemple pour le 25/11/2007 11:23:56, on aura 20071125112356 - date :
AAAAMMJJ
, exemple pour le 25/11/2007 on aura 20071125 - heure :
HHMMSS
, exemple pour 11:23:56, on aura 112356
Les enregistrements
Les enregistrements sont représentés par leur identifiant SIMAX.
Format affiché
Les dates et heures
Les dates et heures sont retourné au format français:
- date et heure :
JJ/MM/AAAA HH:MM:SS
, exemple pour le 25/11/2007 11:23:56 - date :
JJ/MM/AAAA
, exemple pour le 25/11/2007 - heure :
HH:MM:SS
, exemple pour 11:23:56
Les enregistrements
Les enregistrements sont représentés par leurs titres (informations contenues dans les colonnes repris dans l'intitulé).
Invariable
Certaines données ont toujours le même format.
Les couleurs
Les couleurs sont envoyées au format BBVVRR
en valeurs hexadécimales. Exemple :
- FF0000 pour du bleu
- FFFFFF pour du blanc.
Les fichiers ou les textes long de plus de 512 caractères
<xml xmlns:simax="http://www.nout.fr/XML/" xmlns:simax-layout="http://www.nout.fr/XML/layout" xmlns:simax-error="http://www.nout.fr/XML/error" VERSION="1" VERSION_LECTECRIT="1" VERSION_LECTURE="1" DATEHEURE="2022022317383256">
<id_49742045913032 simax:id="23090304575380" simax:title="Si ..." simax:xsdLevel="0">
...
<id_46867230845026>
....
<id_42243033015006 simax:ref="1"/>
</id_46867230845026>
...
</id_49742045913032>
<simax:Data simax:ref="1" simax:encoding="quoted-printable" simax:size="1392" simax:type="text/plain">Si vous consultez r=E9guli=E8rement les news sur le net, ....</simax:Data>
</xml>
Dans un Record ou List, le contenu des fichiers n'est pas retourné, il faut utiliser l'opération GetColInRecord
en mode REST ou en SOAP pour le récupérer.
Dans le cas d'un texte long, si le contenu de ce dernier est plus long que 512 caractères, alors le contenu est déporté dans une balise Data
référencée par l'attribut simax:ref
. La description en détail de cette balise ci-dessous.
La balise DATA
Data d'un fichier
<Data simax:size="6028" simax:filename="11.png" simax:typemime="image/png" simax:encoding="base64">iVBORw0KGgoAAAANSUhEUgAAADIAAABBCAY....</Data>
Cette balise permet de formatter une valeur. Elle prend en attribut :
simax:size
la taille du contenu de la balisesimax:encoding
l'encodage ; les valeurs possibles sontplain
valeur par défaut, pas d'encodagequoted-printable
encodé via l'algorithme Quoted-Printablebase64
encodé en base64
simax:typemime
ousimax:type
le mime type du contenu,text/plain
par défautsimax:filename
le nom du fichier, si le contenu est un fichiersimax:ref
: référence de la balise Data qui correspond à la ref dans la colonne de l'enregistrement à laquelle est associée
Les protocoles de dialogue
SOAP
Exemple d'entête HTTP
POST / HTTP/1.1
Host: localhost:8052
x-SIMAXService-Client: ClientWeb
x-SIMAXService-Client-IP: 1.1.1.2
x-SIMAXService-Client-Version: 1.1
...
Initialisation du service SOAP
<?php
//autoload
spl_autoload_extensions(".php"); // comma-separated list
spl_autoload_register();
use NOUT\Soap\PackageBase\AbstractSoapClientBase;
$options = array(
AbstractSoapClientBase::WSDL_TRACE=>1,
AbstractSoapClientBase::WSDL_EXCEPTIONS=>1, //optional parameters for debugging
AbstractSoapClientBase::WSDL_STREAM_CONTEXT => stream_context_create(array('http' => array(
'header' => "x-SIMAXService-Client: Proxy-SOAPClient\nx-SIMAXService-Client-Version: 01.1631.01\nx-SIMAXService-Client-IP: ".$_SERVER["REMOTE_ADDR"],
))),
AbstractSoapClientBase::WSDL_URL => "http://$sHost:$nPort/getwsdl".(!empty($apiuuid) ? "?!apiuuid=$apiuuid" : ''),
AbstractSoapClientBase::WSDL_PROXY_HOST => $sHost,
AbstractSoapClientBase::WSDL_PROXY_PORT => "$nPort",
AbstractSoapClientBase::WSDL_CLASSMAP => \NOUT\Soap\ClassMap::get(),
AbstractSoapClientBase::WSDL_SOAP_VERSION => SOAP_1_1,
);
$oSOAPClient = new \NOUT\Soap\ServiceType\Service($options);
if (!empty($apiuuid)){
$oSOAPClient->setSoapHeaderAPIUUID($apiuuid);
}
//les options de dialogue
$oOptionDialogue = new \NOUT\Soap\StructType\OptionDialogue(0, 1, 1, 0, 0, 0, 0, 0, 12, 0, 1, 1, 1);
$oSOAPClient->setSoapHeaderOptionDialogue($oOptionDialogue);
?>
L'un des protocoles utilisés est le protocole SOAP en version 1.1 ou 1.2. Notre dialogue SOAP défini ces propres entêtes et méthode qui sont documentés par cette présente documentation.
Les entêtes suivantes sont à ajouter obligatoirement aux entêtes HTTP :
x-SIMAXService-Client
le nom du client qui execute la requêtex-SIMAXService-Client-IP
l'adresse IP de l'utilisateur final. Cette entête est obligatoire.x-SIMAXService-Client-Version
la version du client qui execute la requête
REST
<?php
//autoload
spl_autoload_extensions(".php"); // comma-separated list
spl_autoload_register();
//utilisateur SIMAX
$usernameToken = new \NOUT\Entity\UsernameToken('superviseur', '');
//instanciation du service
$oREST = new \NOUT\Rest\Service("http://localhost:8052", $usernameToken);
//identifiant de l'application enregistrée dans le site d'administration de NOUTOnline
$oREST->setAPIUUID('6aff6e77-e6a1-4c6a-b67a-dfe16f98891a');
Un autre protocole utilisé est REST pour de la consultation de données.
Le format REST est le suivant :
http://<adresse du noutonline>:<port du noutonline>/<formulaire>/<enregistrement>/<colonne>/<operation>?<liste des paramètres>;<liste des options>!<chaine d'identification>&contextaction=<id du contexte>
L'adresse est donc composée de :
<adresse du noutonline>:<port du noutonline>
: l'accès au NOUTOnline<formulaire>
: (facultatif) identifiant ou libellé du formulaire quand l'opération porte sur un formulaire,<enregistrement>
: (facultatif) enregistrement quand l'opération porte sur un enregistrement,<colonne>
: (facultatif) colonne quand l'opération porte sur une colonne,<opération>
: (obligatoire ou presque) L'opération à effectuer, elle peut être omise quand :- le formulaire est précisé, dans ce cas l'opération effectuée est Request,
- le formulaire et l'enregistrement sont précisé, dans ce cas l'opération effectuée est Display,
- le formulaire, l'enregistrement et la colonne sont précisé, dans ce cas l'opération effectuée est GetColInRecord,
<liste des paramètres>
: (facultatif) (après le ?) la liste des paramètres (dépend de chaque opération),<liste des options>
: (facultatif) (après le ;) la liste des options (dépend de chaque opération),<chaine d'identification>
: (facultatif) (après le !) la liste des informations pour les opérations nécessitant une identification.
Gestion des erreurs
Lorsqu'une erreur se produit, le détail de celle dernière est retourné.
Exemple d'erreur
<env:Envelope xmlns:env="http://www.w3.org/2003/05/soap-envelope"
xmlns:xml="http://www.w3.org/XML/1998/namespace"
xmlns:simax-error="http://www.nout.fr/soap/error">
<env:Body>
<env:Fault>
<env:Code>
<env:Value>Sender</env:Value>
</env:Code>
<env:Reason>
<env:Text xml:lang="fr">849347964(12|1404)<br />
L'identifiant ou le mot de passe utilisateur sont incorrects.<ul><li>Paramètre 1169(Utilisateur) ; Valeur dfqsdf</li></ul>
</env:Text>
</env:Reason>
<env:Detail>
<ListErr VERSION="1" VERSION_LECTECRIT="1" VERSION_LECTURE="1"
DATEHEURE="2015071710034273" xmlns:simax-error="http://www.nout.fr/soap/error">
<simax-error:Error>
<Code Name="849347964">
<Category>12</Category>
<Numero>1404</Numero>
</Code>
<Parameter>
<utilisateur IDParam="1169" TitleParam="Utilisateur" TitleElem="super viseur" />
</Parameter>
<Message>L'identifiant ou le mot de passe utilisateur sont incorrects.</Message>
</simax-error:Error>
</ListErr>
</env:Detail>
</env:Fault>
</env:Body>
</env:Envelope>
Une erreur est composé :
- d'un code d'erreur, lui même décompasable,
- d'un message d'erreur,
- de détail sur l'élément qui à produit l'erreur.
Une code d'erreur (sur 32 bits) se décompose de la manière suivante (poids fort vers poids faible):
- 6 bits : catégorie de l'erreur
- 3 bits : le niveau de l'erreur
- 2 bits : l'affichage recommandé pour le message
- 5 bits : la nature de l'erreur
- 6 bits : le numéro de l'erreur
Valeur | Niveau | Affichage | Catégorie |
---|---|---|---|
0 | Aucun | Optionnel | Global |
1 | Information | Obligatoire | Routage |
2 | Ignorable | Impossible | Calcul |
3 | Faible | Formule | |
4 | Grave | Passerelle | |
5 | Fatal | IHM | |
6 | Action | ||
7 | Max | ||
8 | Réseaux | ||
9 | Fichier | ||
10 | Application | ||
11 | DataSource | ||
12 | SIMAXService | ||
13 | Publication | ||
14 | Session | ||
15 | Requête |
Format XSD-SIMAX
Qu'est-ce XSD et le format XSD-SIMAX ?
Un schéma XML ou XSD est un standard permettant de décrire la structure d'un document XML. XSD définit de façon structurée le type de contenu, la syntaxe et la sémantique d'un document XML. Il est également utilisé pour valider un document XML, c'est à dire vérifier si le document XML respecte les règles décrites dans le document XSD. Contrairement à la norme DTD, XSD respecte le format XML.
Le standard XSD a été approuvé par le W3C :
- XML Schema Part 0: Primer Second Edition
- XML Schema Part 1: Structures Second Edition
- XML Schema Part 2: Datatypes Second Edition
Pour plus d'informations générales sur les éléments et attributs du XSD, consultez XML Schemas (XSD) Reference sur MSDN.
Le format XSD-SIMAX, en particulier, est le format utilisé par NOUTOnline dans les réponses SOAP pour décrire la structure des données telles qu'elles sont dans le paramétrage SIMAX.
Ce format doit être connu par tous les client NOUTOnline pour être capable d'afficher un enregistrement tel qu'il est décrit dans le XSD.
Le format XSD-SIMAX se base sur les spécifications XML Schema du W3C mais des attributs et des notations supplémentaires ont été ajoutés dans l'espace de nom simax.
Description d'un enregistrement
Exemple de description d'un enregistrement
<?simax version="1.1"?>
<xs:schema VERSION="1" VERSION_LECTECRIT="1" VERSION_LECTURE="1" DATEHEURE="2008053007263421" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:simax="http://www.nout.fr/XMLSchema">
<xs:element name="contact_client" simax:name="Contact client">
<xs:complexType>
<xs:sequence>
.... description des colonnes
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:schema>
Un enregistrement est décrit par une balise <element>
de type <complexType>
. C'est à
dire qu'un enregistrement est un type complexe qui contient un élément par colonne.
Description d'une liste d'enregistrement
Exemple de description d'une liste d'enregistrement
<xs:element xs:name="id_3017" simax:name="Tâche (Liste)" simax:withGhost="1">
<xs:complexType>
<xs:sequence>
...
</xs:sequence>
</xs:complexType>
</xs:element>
Quand le service renvoie une liste d'enregistrement, le XSD contient la description d'un élément de la liste.
Dans la balise <element>
, l'attribut withGhost="1"
indique que les éléments de la liste ont
une colonne invalide et donc qu'on peut ajouter un bouton pour filtrer sur les invalides.
Description des colonnes
Exemple de description d'une colonne
<xs:element xs:name="contact_professionnel" simax:name="Contact professionnel" simax:typeElement="simax-element" />
Chaque colonne est décrite comme ceci :
- balise
<xs:element>
- attribut
xs:name
dont la valeur est le libellé de la colonne transformé pour être utilisé dans la balise XML correspondante et pour respecter les standards XML. - attribut
simax:name
dont la valeur est le libellé de la colonne dans le paramétrage SIMAX. - attribut
type
pour indiquer le type de colonne (voir tableau ci-dessous). - liste d'attributs pour décrire cette colonne en particulier
Type SIMAX | Type XSD-SIMAX |
---|---|
Texte | xs:string (avec restriction) |
Texte long | xs:string (sans restriction) |
Entier | xs:integer |
Réel | xs:float |
Monétaire | xs:decimal |
Date | xs:date |
Heure | xs:time |
Date Heure | xs:datetime |
Vrai / Faux | xs:boolean |
Identifiant | xs:unsignedLong |
Fichier | xs:base64Binary |
Liste déroulante | simax-choice |
Elément de tableau | simax-element |
Liste d'élément | simax-list |
Bouton | simax-button |
Séparateur | simax-section |
Durée | simax-duration |
Calcul automatique | simax-autocomputed |
Attributs possibles
Attributs communs à toutes les colonnes
Nom | Description | Valeur par défault |
---|---|---|
detail | 1 si visible en mode détail uniquement | 0 |
1 si marqué comme imprimable | 0 | |
computed | 1 si calcul recalculé | 0 |
sort | 1 si on peut trier sur cette colonne | 0 |
hidden | 1 si la colonne est invisible | 0 |
readonly | 1 si la colonne est en lecture seule | 0 |
link | 1 si la modification peut déclencher des mises à jour d'autres colonnes | 0 |
linkControl | 1 si la modification peut modifier l'etat d'autres colonnes | 0 |
textBoxSize | nombre de caractères autorisés dans le champ |
Attributs pour les éléments d'un tableau
Nom | Description | Valeur par défault |
---|---|---|
linkedTableXML | Libellé XML du formulaire lié | |
linkedTableID | Identifiant SIMAX du formulaire lié | |
withModifyAndRemove | 1 si c'est une relation 1-1 | 0 |
withoutDetail | 1 si interdiction de consulter | 0 |
withoutSearch | 1 si interdiction de rechercher | 0 |
withoutCreate | 1 si interdiction de créer | 0 |
resource | 1 si l'élément est fils de planification de ressource et donc peut être affichée dans un planning | 0 |
Attributs pour les colonnes liste
Nom | Description | Valeur par défault |
---|---|---|
linkedTableXML | Libellé XML du formulaire lié | |
linkedTableID | Identifiant SIMAX du formulaire lié | |
withAddAndRemove | 1 si c'est un groupe de relation | 0 |
Attributs pour les boutons
Nom | Description | Valeur par défault |
---|---|---|
idAction | Identifiant de l'action du bouton | 0 |
withValidation | 1 si l'enregistrement courant à besoin d'être validé avant de déclencher l'action | 0 |
actionType | Type de l'action parmis les valeurs suivantes :
|
0 |
typeSelection |
|
Attributs pour les séparateurs
Exemple d'une section
<xs:element xs:name="general" simax:name="Général" simax:typeElement="simax-section">
<xs:complexType>
<xs:sequence>
<xs:element xs:name="nom" simax:name="Nom" />
<xs:element xs:name="prenom" simax:name="Prénom" />
</xs:sequence>
</xs:complexType>
</xs:element>
L'élément séparateur est décrit comme un <complexType>
avec une liste de colonne à l'intérieur, de
la même manière que l'enregistrement.
Nom | Description | Valeur par défault |
---|---|---|
icon | Identifiant de l'icône du séparateur | |
sectionComputed | 1 si le séparateur contient des calculs de fin de ligne (tableau croisé) | 0 |
sectionLevel |
|
|
multicolonne |
|
|
direction |
|
Attributs pour une liste déroulante
Exemple de liste déroulante à 4 choix
<xs:element xs:name="type" simax:name="Type" simax:typeElement="simax-choice">
<xs:simpleType>
<xs:restriction xs:base="xs:string">
<xs:enumeration xs:value="Type 1" xs:id="1" icon="453"/>
<xs:enumeration xs:value="Type 2" xs:id="2" icon="465"/>
<xs:enumeration xs:value="Type 3" xs:id="3" icon="984"/>
<xs:enumeration xs:value="Type 4" xs:id="4" icon="246"/>
</xs:restriction>
</xs:simpleType>
</xs:element>
Une liste déroulante est un <xs:simpleType>
avec une énumération <xs:enumeration>
comme restriction.
Nom | Description |
---|---|
value | Libellé du choix |
id | Identifiant SIMAX du choix |
icon | Identifant SIMAX de l'icône SIMAX du choix |
Attributs liés au modèle de la colonne
Nom | Description | Valeur par défault |
---|---|---|
phoneNumber | 1 si la colonne est un numéro de téléphone | 0 |
directory | 1 si la colonne est un répertoire ou un chemin de fichier complet | 0 |
postalCode | 1 si la colonne est un code postal | 0 |
city | 1 si la colonne est une ville | 0 |
inputMask | masque de saisie pour les réels et les monétaires | |
transform |
|
Documentation de l'API SOAP
Opérations NOUTOnline
Opérations d'utilisation générale
Ces opérations n'ont pas besoin d'authentification.
Opérations | Usage |
---|---|
GetLanguages | Récupération de la liste des langues disponibles dans le paramétrage |
GetTableChild | Récupération des formulaire fils d'un autre formulaire |
ResetPasswordFailed | Régénérer un mot de passe pour résoudre un problème de de perte de mot de passe |
Ces opérations ont besoin d'une authentification.
Opérations | Usage |
---|---|
Request | Requête sur un formulaire |
Opérations de gestion de session
Opérations | Usage |
---|---|
Disconnect | Fermeture de la session |
GetTokenSession | Ouverture d'une session sécurisée |
Opérations de départ d'action
Ces méthodes s'appuie sur les actions paramétrées dans SIMAX.
Opérations | Usage |
---|---|
Create | Créer un nouvel enregistrement |
CreateFrom | Créer un nouvel enregistrement à partir d'un enregisrement d'origine |
Delete | Créer un nouvel enregistrement à partir d'un enregisrement d'origine |
Display | Consulter un enregistrement |
Execute | Exécuter une action à partir d'un identifiant ou d'une phrase |
Export | Action classique d'export sur un formulaire |
GetEndAutomatism | Lancement des automatismes sur fermeture de session |
GetStartAutomatism | Lancement des automatismes sur ouverture de session |
GetTemporalAutomatism | Lancement des automatismes temporels pour la session |
List | Lister des enregistrement |
Modify | Ouvrir un enregistrement en modification |
Imprimer un enregistrement | |
Search | Rechercher des enregistrement |
TransformInto | Transformer un enregistrement en un enregistrement d'un autre type (formulaire) |
Opérations de récupération d'informations diverses
Opérations | Usage |
---|---|
GetCalculation | Récupèration des calculs et graphes de liste (v5) |
GetColInRecord | Récupéreration de la valeur d'une colonne d'un enregistrement |
GetPlanningInfo | Récupèration des éléments de planning |
HasChanged | Demande si l'enregistrement a été modifié |
Request | Faire un requête sur un formulaire |
RequestParam | Faire un requête sur un paramètre |
Opérations de mise à jour
Opérations | Usage |
---|---|
Update | Met à jour les valeurs courantes des colonnes d'un enregistrement |
Opérations de validation ou annulation
Opérations | Usage |
---|---|
Cancel | Annule l'action ou le contexte d'action en cours |
Validate | Valide l'action en cours |
Réponse à des questions intermédaires
Opérations | Usage |
---|---|
ConfirmResponse | Répondre à une Message Box |
SelectForm | Sélectionner un formulaire en réponse à un retour Ambigus... |
SelectPrintTemplate | Sélectionner un modèle d'édition en réponse à un retour Ambigus... |
Cancel
Cette opération permet d'annuler l'action en cours ou le contexte d'action dans sa totalité. Cette annulation peut engendrer l'annulation d'autres actions, vous serez alors avertit par une demande de confirmation d'annulation.
Requête
Requête qui annule le contexte en entier
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/">
<SOAP-ENV:Header>
</SOAP-ENV:Header>
<SOAP-ENV:Body>
<Cancel>
<Context>1</Context>
</Cancel>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>
PHP
<?php
$stParam = new \NOUT\Soap\StructType\Cancel(1);
$oSOAPClient->Cancel($stParam);
L'entête ActionContext est obligatoire pour la simple raison qu'on ne précise pas l'action à annuler,
c'est bien l'action en cours du contexte d'action qui sera annulée ou bien le contexte lui-même en fonction du paramètre Context
.
Le paramètre ByUser
permet de savoir si c'est un clic utilisteur qui a engendré ce Cancel.
Les paramètres sont :
Paramètre | Type | Valeur par défaut | Description | |
---|---|---|---|---|
Context |
entier | 0 | indique si c'est uniquement la dernière action ou le contexte dans sa totalité qui doit être annulé :
|
|
ByUser |
entier | 1 | indique si l'annulation est une action utilisateur :
|
Les entêtes acceptées sont :
En-tête | Description | |
---|---|---|
SessionToken | obligatoire | token de la session |
UsernameToken | obligatoire | information de connexion |
ActionContext | facultatif | contexte d'action courant |
OptionDialogue | facultatif | les options de dialogue |
APIUser | facultatif | 1 si action logiciel (ie pas utilisateur) |
APIUUID | facultatif | identifiant uuid de l'application |
CustomerInfos | facultatif |
Réponse
Réponse
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/">
<SOAP-ENV:Header>
</SOAP-ENV:Header>
<SOAP-ENV:Body>
<CancelResponse />
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>
La réponse d'un Cancel est un message SOAP vide. En effet, une annulation ne peut pas déclencher d'automatismes ni d'action liées.
Cette opération a uniquement pour but de revenir en arrière ou d'annuler tout le dialogue en cours.
Les entêtes retournées sont :
En-tête | Description |
---|---|
ReturnType | toujours égal à Empty |
CustomerInfos | (si fourni dans l'entête) |
ActionContext |
ConfirmResponse
Question posée par NOUTOnline
...
<MessageBox>
<Message> - Collaborateur : test pour suppression
Confirmez-vous cette action ?</Message>
<Title>Supprimer Collaborateur</Title>
<ButtonList>
<TypeConfirmation title="OK">1</TypeConfirmation>
<TypeConfirmation title="Annuler" default="1">2</TypeConfirmation>
</ButtonList>
</MessageBox>
...
Cette opération permet de répondre à une question posée par NOUTOnline. En effet, si vous recevez une réponse du type MessageBox, c'est qu'une question doit être posée à l'utilisateur.
Il faut utiliser cette opération ConfirmResponse
avec la réponse de l'utilisateur.
Requête
Requête
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/">
<SOAP-ENV:Header>
</SOAP-ENV:Header>
<SOAP-ENV:Body>
<ConfirmResponse >
<TypeConfirmation>1</TypeConfirmation>
</ConfirmResponse >
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>
PHP
<?php
$stConfirmResponse = new \NOUT\Soap\StructType\ConfirmResponse(1);
$oSOAPClient->ConfirmResponse($stConfirmResponse);
La réponse précedente de type MessageBox contenait la liste des réponses possibles ainsi que la question à afficher à l'utilisateur.
Pour y répondre, il faut renvoyer la balise <TypeConfirmation>
avec la valeur correspondant à la réponse de l'utilisateur.
Cette requête n'a aucun sens hors contexte.
Les paramètres sont :
Paramètre | Type | Valeur par défaut | Description | |
---|---|---|---|---|
TypeConfirmation | entier | obligatoire | null | réponse choisie parmis les options de la question |
Les entête de la requête sont :
En-tête | Description | |
---|---|---|
SessionToken | obligatoire | token de la session |
UsernameToken | obligatoire | information de connexion |
ActionContext | obligatoire | même contexte d'action que la réponse de type MessageBox |
OptionDialogue | facultatif | les options de dialogue |
APIUser | facultatif | 1 si action logiciel (ie pas utilisateur) |
APIUUID | facultatif | identifiant uuid de l'application |
CustomerInfos | facultatif |
Réponse
Réponse
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/">
<SOAP-ENV:Header>
</SOAP-ENV:Header>
<SOAP-ENV:Body>
<ConfirmResponseResponse>
...dépend de la question précédente ...
</ConfirmResponseResponse>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>
Quand on envoit un ConfirmResponse, c'est que NOUTOnline a eu besoin de nous demander confirmation pour l'action précédente. La réponse d'un ConfirmResponse est donc en réalité la réponse à la question qui à précédé le ConfirmResponse. Voir les réponses du workflow SIMAX pour plus de détail.
Create
Cette opération permet de demander la création d'un nouvel élément dans un formulaire.
Cette opération nécessite une authentification.
Requête
Requête
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/">
<SOAP-ENV:Header>
....
</SOAP-ENV:Header>
<SOAP-ENV:Body>
<Create>
<Table>2564</Table>
<ParamXML></ParamXML>
</Create>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>
PHP
<?php
//quelque constante
define("TABLEAU_CLIENT", '2564');
$stCreate = new \NOUT\Soap\StructType\Create(TABLEAU_CLIENT);
$resultCreate = $oSOAPClient->Create($stCreate);
Elle prend en paramètre :
Paramètre | Type | Valeur par défaut | Description | |
---|---|---|---|---|
Table | string | obligatoire | null | formulaire sur lequel porte l'action de création |
ParamXML | string | null | paramètres de l'action SIMAX |
Les entête de la requête sont :
En-tête | Description | |
---|---|---|
SessionToken | obligatoire | token de la session |
UsernameToken | obligatoire | information de connexion |
AutoValidate | validation automatique de l'action | |
ActionContext | contexte d'action courant si pertinant | |
OptionDialogue | facultatif | les options de dialogue |
APIUser | facultatif | 1 si action logiciel (ie pas utilisateur) |
APIUUID | facultatif | identifiant uuid de l'application |
CustomerInfos | facultatif |
Réponse
Réponse
<?xml version="1.0" encoding="utf-8"?>
<env:Envelope xmlns:env="http://schemas.xmlsoap.org/soap/envelope/" xmlns:simax="http://www.nout.fr/soap">
<env:Header xmlns="http://www.nout.fr/wsdl/SimaxService.wsdl/">
<ReturnType>Record</ReturnType>
<ConnectedUser>...</ConnectedUser>
<ActionContext>18625944717301</ActionContext>
<Action title="Consulter Utilisateur" typeReturn="Record" typeAction="2390" actionForm="8685">1484</Action>
<Form title="Utilisateur">1169</Form>
<Element title="Superviseur">2</Element>
</env:Header>
<env:Body>
<CreateResponse xmlns="http://www.nout.fr/wsdl/SimaxService.wsdl/">
<xml><xml VERSION="1" VERSION_LECTECRIT="1" VERSION_LECTURE="1" DATEHEURE="2018052909081578" xmlns:simax="http://www.nout.fr/XML/" xmlns:simax-layout="http://www.nout.fr/XML/layout">
<id_1169 simax:id="2" simax:title="Superviseur" simax:xsdLevel="0">
<id_1171>Superviseur</id_1171>
<id_1172>Super</id_1172>
<id_1173>Viseur</id_1173>
<id_1174>florian@nout.fr</id_1174>
<id_7623>city hunter - ryo couleur 027.jpg</id_7623>
<id_7624>1</id_7624>
<id_9424/>
<id_10545>0</id_10545>
</id_1169>
</xml>
</xml>
</CreateResponse>
</env:Body>
</env:Envelope>
La réponse dépend de l'entête AutoValidate.
Si renseigné à 1, le retour est variable car équivalent à une validation, voir l'opération Validate.
Sinon, la réponse est toujours une description d'enregistrement (ie ReturnType
= Record
).
CreateFrom
Cette méthode permet de demander à NOUTOnline de créer un nouvel enregistrement à partir d'un enregistrement existant. Pour être effective en base de données, cette opération a besoin d'être validée : appel à la méthode Validate ou passage de l'header AutoValidate à 1 dans l'opération directement.
Requête
Requête
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/">
<SOAP-ENV:Header>
....
</SOAP-ENV:Header>
<SOAP-ENV:Body>
<CreateFrom>
<Table>2564</Table>
<TableSrc>2564</TableSrc>
<ElemSrc>3214130345664</ElemSrc>
</CreateFrom>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>
PHP
<?php
//quelque constante
define("TABLEAU_CLIENT", '2564');
$stCreateFrom = new \NOUT\Soap\StructType\CreateFrom(TABLEAU_CLIENT, TABLEAU_CLIENT, 3214130345664);
$resultCreate = $oSOAPClient->CreateFrom($stCreateFrom);
Elle prend en paramètre :
Paramètre | Type | Valeur par défaut | Description | |
---|---|---|---|---|
Table | string | obligatoire | null | formulaire sur lequel porte l'action de création |
TableSrc | string | obligatoire | null | formulaire de l'élément source |
ElemSrc | string | obligatoire | null | enregistrement source |
Les entête de la requête sont :
En-tête | Description | |
---|---|---|
SessionToken | obligatoire | token de la session |
UsernameToken | obligatoire | information de connexion |
AutoValidate | facultatif | validation automatique de l'action |
ActionContext | facultatif | contexte d'action courant si pertinant |
OptionDialogue | facultatif | les options de dialogue |
APIUser | facultatif | 1 si action logiciel (ie pas utilisateur) |
APIUUID | facultatif | identifiant uuid de l'application |
CustomerInfos | facultatif |
Réponse
Réponse
<?xml version="1.0" encoding="utf-8"?>
<env:Envelope xmlns:env="http://schemas.xmlsoap.org/soap/envelope/" xmlns:simax="http://www.nout.fr/soap">
<env:Header xmlns="http://www.nout.fr/wsdl/SimaxService.wsdl/">
<ReturnType>Record</ReturnType>
<ConnectedUser>...</ConnectedUser>
<ActionContext>18625944717301</ActionContext>
<Action title="Consulter Utilisateur" typeReturn="Record" typeAction="2390" actionForm="8685">1484</Action>
<Form title="Utilisateur">1169</Form>
<Element title="Superviseur">2</Element>
</env:Header>
<env:Body>
<CreateFromResponse xmlns="http://www.nout.fr/wsdl/SimaxService.wsdl/">
<xml><xml VERSION="1" VERSION_LECTECRIT="1" VERSION_LECTURE="1" DATEHEURE="2018052909081578" xmlns:simax="http://www.nout.fr/XML/" xmlns:simax-layout="http://www.nout.fr/XML/layout">
<id_1169 simax:id="2" simax:title="Superviseur" simax:xsdLevel="0">
<id_1171>Superviseur</id_1171>
<id_1172>Super</id_1172>
<id_1173>Viseur</id_1173>
<id_1174>florian@nout.fr</id_1174>
<id_7623>city hunter - ryo couleur 027.jpg</id_7623>
<id_7624>1</id_7624>
<id_9424/>
<id_10545>0</id_10545>
</id_1169>
</xml>
</xml>
</CreateFromResponse>
</env:Body>
</env:Envelope>
La réponse est toujours une description d'enregistrement (ie ReturnType
= Record
).
Delete
Cette opération permet de demander la suppression d'un enregistrement.
Remarque : La validation est automatique (ie : pas besoin d'utiliser la méthode Validate ou l'entête AutoValidate à 1).
Une confirmation de type MessageBox peut-être retournée par NOUTOnline pour une confirmation utilisateur.
Requête
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/">
<SOAP-ENV:Header>
....
</SOAP-ENV:Header>
<SOAP-ENV:Body>
<Delete>
<Table>2564</Table>
<ParamXML>
<id_2564>3214130345664</id_2564>
</ParamXML>
</Delete>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>
PHP
<?php
//quelque constante
define("TABLEAU_CLIENT", '2564');
$stParam = new \NOUT\Soap\StructType\Delete(TABLEAU_CLIENT, '<id_'.TABLEAU_CLIENT.'>3214130345664</id_'.TABLEAU_CLIENT.'>');
$result = $oSOAPClient->Delete($stParam);
NOUTOnline a besoin du formulaire de l'enregistrement à supprimer ainsi que des paramètres de l'action de suppression correspondante qui contient au moins l'identifiant de l'enregistrement à supprimer.
Remarque : quand on supprime un enregistrement qui a une colonne de type invalide, l'enregistrement passe en invalide et ce ne sera qu'à la 2ième suppression qu'il sera vraiment supprimé de la base de données. C'est pour cela qu'une suppression peut correspond à une modification.
Elle prend en paramètre :
Paramètre | Type | Valeur par défaut | Description | |
---|---|---|---|---|
Table | string | obligatoire | null | formulaire sur lequel porte l'action de création |
ParamXML | string | obligatoire | null | paramètres de l'action SIMAX |
Les entête de la requête sont :
En-tête | Description | |
---|---|---|
SessionToken | obligatoire | token de la session |
UsernameToken | obligatoire | information de connexion |
ActionContext | contexte d'action courant si nécessaire | |
OptionDialogue | facultatif | les options de dialogue |
APIUser | facultatif | 1 si action logiciel (ie pas utilisateur) |
APIUUID | facultatif | identifiant uuid de l'application |
CustomerInfos | facultatif |
Réponse
A cause de la posibilité de brancher des automatismes sur les actions de suppression, la réponse n'est pas fixe. Voir les réponses du workflow SIMAX pour plus de détail.
Disconnect
Cette méthode permet de fermer la session ouverte par GetTokenSession.
Requête
Requête
http://localhost:8052/Disconnect?!Username=superviseur&Password=Yd062cQFVga7fRdraeoVitjF0xY%3D&nonce=MC4xMjU2NDMwMCAxNTIwMDAwMDc3&created=Fri%2C+02+Mar+2018+14%3A14%3A37+%2B0000&SessionToken=09df1afd-c8b2-4ad7-a381-f96f5a9815c7
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/">
<SOAP-ENV:Header>
<SessionToken>7cec0345-3abb-4353-bfb9-aacc143a2d05</SessionToken>
</SOAP-ENV:Header>
<SOAP-ENV:Body>
<Disconnect xmlns="http://www.nout.fr/wsdl/SimaxService.wsdl/" />
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>
PHP
<?php
$oSOAPClient->setSoapHeaderActionContext(null);
$oSOAPClient->setSoapHeaderAutoValidate(null);
$result = $oSOAPClient->Disconnect(null);
Cette opération nécessite une identification.
Cette opération ne requiert aucun paramètres.
Le format est :
/Disconnect?!<chaine d'identification>
Réponse
Réponse
HTTP/1.1 200 OK
Content-Length: 0
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/">
<SOAP-ENV:Header>
<SessionToken>7cec0345-3abb-4353-bfb9-aacc143a2d05</SessionToken>
<UsernameToken>
...
</UsernameToken>
</SOAP-ENV:Header>
<SOAP-ENV:Body>
<DisconnectResponse />
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>
Le retour est vide.
Display
Cette opération permet d'ouvrir un enregistrement de formulaire en consultation.
Cette opération nécessite une authentification.
Requête
Requête
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/">
<SOAP-ENV:Header>
....
</SOAP-ENV:Header>
<SOAP-ENV:Body>
<Display>
<Table>1169</Table>
<ParamXML><id_1169>2</id_1169></ParamXML>
</Display>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>
PHP
<?php
$stDisplay = new \NOUT\Soap\StructType\Display(''.\NOUT\Entity\Langage::TABL_Utilisateur, "<id_".\NOUT\Entity\Langage::TABL_Utilisateur.">2</id_".\NOUT\Entity\Langage::TABL_Utilisateur.">");
$resultDisplay = $oSOAPClient->Display($stDisplay);
Elle prend en paramètre :
Paramètre | Type | Valeur par défaut | Description | |
---|---|---|---|---|
Table | string | obligatoire | null | formulaire sur lequel porte l'action de consultation |
ParamXML | string | null | paramètres de l'action SIMAX |
Les entête de la requête sont :
En-tête | Description | |
---|---|---|
SessionToken | obligatoire | token de la session |
UsernameToken | obligatoire | information de connexion |
AutoValidate | facultatif | validation automatique de l'action si pertinant |
ActionContext | facultatif | contexte d'action courant |
OptionDialogue | facultatif | les options de dialogue |
APIUser | facultatif | 1 si action logiciel (ie pas utilisateur) |
APIUUID | facultatif | identifiant uuid de l'application |
CustomerInfos | facultatif |
Réponse
Réponse
<?xml version="1.0" encoding="utf-8"?>
<env:Envelope xmlns:env="http://schemas.xmlsoap.org/soap/envelope/" xmlns:simax="http://www.nout.fr/soap">
<env:Header xmlns="http://www.nout.fr/wsdl/SimaxService.wsdl/">
<ReturnType>Record</ReturnType>
<ConnectedUser>...</ConnectedUser>
<ActionContext>18625944717301</ActionContext>
<Action title="Consulter Utilisateur" typeReturn="Record" typeAction="2390" actionForm="8685">1484</Action>
<Form title="Utilisateur">1169</Form>
<Element title="Superviseur">2</Element>
</env:Header>
<env:Body>
<DisplayResponse xmlns="http://www.nout.fr/wsdl/SimaxService.wsdl/">
<xml><xml VERSION="1" VERSION_LECTECRIT="1" VERSION_LECTURE="1" DATEHEURE="2018052909081578" xmlns:simax="http://www.nout.fr/XML/" xmlns:simax-layout="http://www.nout.fr/XML/layout">
<id_1169 simax:id="2" simax:title="Superviseur" simax:xsdLevel="0">
<id_1171>Superviseur</id_1171>
<id_1172>Super</id_1172>
<id_1173>Viseur</id_1173>
<id_1174>florian@nout.fr</id_1174>
<id_7623>city hunter - ryo couleur 027.jpg</id_7623>
<id_7624>1</id_7624>
<id_9424/>
<id_10545>0</id_10545>
</id_1169>
</xml>
</xml>
</DisplayResponse>
</env:Body>
</env:Envelope>
La réponse est toujours une description d'enregistrement (ie ReturnType
= Record
).
Execute
Cette opération permet d'exécuter une action SIMAX à partir de son identifiant ou d'une phrase.
Cette opération nécessite un authentification.
Requête
Requête
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/">
<SOAP-ENV:Header>
....
</SOAP-ENV:Header>
<SOAP-ENV:Body>
<Execute xmlns="http://www.nout.fr/wsdl/SimaxService.wsdl/">
<ID>51695308791388</ID>
<ParamXML>...</ParamXML>
<SpecialParamList>
<First>0</First>
<Length>0</Length>
<WithBreakRow>1</WithBreakRow>
<WithEndCalculation>1</WithEndCalculation>
<ChangePage>0</ChangePage>
</SpecialParamList>
</Execute>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>
PHP
<?php
$stParam = new \NOUT\Soap\StructType\Execute(51695308791388);
$result = $oSOAPClient->Execute($stParam);
En paramètre, elle prend obligatoirement l'une des deux balises suivantes :
Paramètre | Type | Valeur par défaut | Description |
---|---|---|---|
ID |
string | null | identifiant de l'action SIMAX à exécuter |
Sentence |
string | null | une phrase correspondant à une action |
Elle accepte aussi les paramètres optionnels suivant :
Paramètre | Type | Valeur par défaut | Description | |
---|---|---|---|---|
ParamXML | string | null | paramètres de l'action SIMAX | |
SpecialParamList | objet | null | paramètres de récupération de liste | |
Checksum | string | null | valeur du checksum du résultat de liste en cache | |
DisplayMode | string | null | mode d'affichage liste voulu | |
CallingColumn | string | obsolète | null | colonne liée a la requête |
CallingInfo | objet | null | informations sur l’origine de la requête | |
BtnListMode | int (0|1) | null | si vrai, traite les paramètres de l’action comme une liste plutôt qu’un ensemble d’éléments | |
Final | int (0|1) | null | si faux, dans le cas où le formulaire demandé possède des formulaires fils, renvoie la liste des fils au lieu du formulaire |
Les entête de la requête sont :
En-tête | Description | |
---|---|---|
SessionToken | obligatoire | token de la session |
UsernameToken | obligatoire | information de connexion |
AutoValidate | validation automatique de l'action | |
ActionContext | contexte d'action courant | |
CustomerInfos | ||
OptionDialogue | facultatif | les options de dialogue |
APIUser | facultatif | 1 si action logiciel (ie pas utilisateur) |
APIUUID | facultatif | identifiant uuid de l'application |
Réponse
Réponse
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/">
<SOAP-ENV:Header>
...
</SOAP-ENV:Header>
<SOAP-ENV:Body>
<Execute>
<xml>
...
</xml>
</Execute>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>
La réponse dépend de l'action exécutée. Voir les réponses du workflow SIMAX pour plus de détail.
Export
GetCalculation
Cette opération permet de demander à NOUTOnline le résultat de calculs sur une ou plusieurs colonnes.
Requête
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/">
<SOAP-ENV:Header>
....
</SOAP-ENV:Header>
<SOAP-ENV:Body>
<GetCalculation>
<ColList>
<Col>2472257.....</Col>
<Col>4854876.....</Col>
</ColList>
<CalculationList>
<Calculation>Sum</Calculation>
<Calculation>Count</Calculation>
</CalculationList>
</GetCalculation>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>
<?php
$CalculationList = new \NOUT\Soap\StructType\CalculationListType();
$CalculationList->addToCalculation(\NOUT\Soap\EnumType\CalculationTypeEnum::VALUE_AVERAGE);
define("COL_Ville_Libelle", '9489'); //GUID : "98H", 9489 [F_COLINFO]
$ColList = new \NOUT\Soap\StructType\ColListType();
$ColList->addToCol(COL_Ville_Libelle);
$stParam = new \NOUT\Soap\StructType\GetCalculation($ColList, $CalculationList);
$oSOAPClient->GetCalculation($stParam);
Il faut préciser à NOUTOnline les colonnes sur lesquelles faire les calculs (ColList) ainsi que les calculs à exécuter (CalculationList). Cette opération est à utiliser après une requête qui retourne une liste (ie un ReturnType de type List).
Elle prend en paramètre :
Paramètre | Type | Valeur par défaut | Description | |
---|---|---|---|---|
ColList | liste | obligatoire | null | liste des colonnes |
CalculationList | liste | obligatoire | null | liste des calculs |
Les entête de la requête sont :
En-tête | Description | |
---|---|---|
SessionToken | obligatoire | token de la session |
UsernameToken | obligatoire | information de connexion |
ActionContext | obligatoire | contexte d'action de la liste |
OptionDialogue | facultatif | les options de dialogue |
APIUser | facultatif | 1 si action logiciel (ie pas utilisateur) |
APIUUID | facultatif | identifiant uuid de l'application |
CustomerInfos | facultatif |
Réponse
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/">
<SOAP-ENV:Header>
<ReturnType>ListCalculation</ReturnType>
<XSDSchema>
<xs:schema VERSION="1" VERSION_LECTECRIT="1" VERSION_LECTURE="1" DATEHEURE="2022022215502068" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:simax="http://www.nout.fr/XMLSchema">
<xs:element xs:name="xml">
<xs:complexType>
<xs:sequence>
<xs:element xs:name="sum" simax:typeElement="xs:string"/>
<xs:element xs:name="count" simax:typeElement="xs:integer"/>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:schema>
</XSDSchema>
....
</SOAP-ENV:Header>
<SOAP-ENV:Body>
<GetCalculationResponse xmlns="http://www.nout.fr/wsdl/SimaxService.wsdl/">
<xml VERSION="1" VERSION_LECTECRIT="1" VERSION_LECTURE="1" DATEHEURE="2022022215502068" xmlns:simax="http://www.nout.fr/XML/" xmlns:simax-layout="http://www.nout.fr/XML/layout" xmlns:simax-error="http://www.nout.fr/XML/error">
<sum/>
<count>0</count>
</xml>
</GetCalculationResponse>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>
La réponse est toujours une liste de calcul (ie ReturnType
= ListCalculation
).
Avec les entêtes :
En-tête | Description |
---|---|
ReturnType | toujours égal à ListCalculation |
CustomerInfos | (si fourni dans l'entête) |
ActionContext |
GetColInRecord
Cette opération permet de récupérer la valeur d'une colonne d'un enregistrement au format demandé.
Requête
convertion en png et récupérer au format base64
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/">
<SOAP-ENV:Header>
....
</SOAP-ENV:Header>
<SOAP-ENV:Body>
<GetColInRecord>
<Column>46716464</Column>
<Record>448522445214</Record>
<Encoding>base64</Encoding>
<MineType>image/png</MineType>
</GetColInRecord>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>
PHP
<?php
$stParam = new \NOUT\Soap\StructType\GetColInRecord(46716464, 448522445214, 'base64', 'image/png');
$result = $oSOAPClient->GetColInRecord($stParam);
Les paramètres de type couleur sont dans un des deux formats suivants :
- rgb(rouge, vert, bleu)
- notation web #RRVVBB sans le # (exemple EF12CC)
Les paramètres sont :
Paramètre | Type | Valeur par défaut | Description | |
---|---|---|---|---|
Record |
string | obligatoire | null | Identifiant de l'enregistrement dont on veut la valeur de la colonne |
Column |
string | obligatoire | null | Libellé ou identifiant de la colonne dont on souhaite la valeur |
ColorFrom |
couleur | falcultatif | magenta | couleur d'origine ou tableau de couleurs d'origne séparé par des | quand la valeur est une image. Ce paramètre nécessite la présence du paramètre ColorTo |
ColorTo |
couleur | falcultatif | null | couleur de destination ou tableau de couleurs de destination d'origne séparé par des | quand la valeur est une image |
TransColor |
couleur | falcultatif | null | couleur qui fait office de couleur transparente quand la valeur est une image (ex: magenta dans une BMP) |
MimeType |
string | falcultatif | null | Type mime de la valeur de la colonne renvoyée (utilisé pour convertir une image) |
Encoding |
string | falcultatif | plain | Format d'encodage dans lequel la valeur de la colonne est retournée. Les valeurs possibles sont : plain (ie sans encodage), base64 , quoted-printable |
Height |
entier | falcultatif | null | Taille verticale en pixel. Si le paramètre Width n'est pas présent, il est calculé de manière à conserver les proportions de l'image |
Width |
entier | falcultatif | null | Taille horizontale en pixel. Si le paramètre Height n'est pas présent, il est calculé de manière à conserver les proportions de l'image |
WantContent |
entier | falcultatif | 0 | Si 1 et que la colonne est :
|
Les entête de la requête sont :
En-tête | Description | |
---|---|---|
SessionToken | obligatoire | token de la session |
UsernameToken | obligatoire | information de connexion |
ActionContext | facultatif | contexte d'action courant si pertinant |
OptionDialogue | facultatif | les options de dialogue |
APIUser | facultatif | 1 si action logiciel (ie pas utilisateur) |
APIUUID | facultatif | identifiant uuid de l'application |
CustomerInfos | facultatif |
Réponse
Réponse qui retourne le contenu d'un fichier
<?xml version="1.0" encoding="utf-8"?>
<env:Envelope xmlns:env="http://schemas.xmlsoap.org/soap/envelope/" xmlns:simax="http://www.nout.fr/soap">
<env:Header xmlns="http://www.nout.fr/wsdl/SimaxService.wsdl/">
<ReturnType>Record</ReturnType>
....
</env:Header>
<env:Body>
<GetColInRecordResponse xmlns="http://www.nout.fr/wsdl/SimaxService.wsdl/">
<xml>
<Data simax:size="6028" simax:filename="11.png" simax:typemime="image/png" simax:encoding="base64">iVBORw0KGgoAAAANSUhEUgAAADIAAABBCAY....</Data>
</xml>
</GetColInRecordResponse>
</env:Body>
</env:Envelope>
Réponse qui retourne une valeur simple
<GetColInRecordResponse xmlns="http://www.nout.fr/wsdl/SimaxService.wsdl/">
<xml>
<Data simax:size="15" simax:typemime="text/plain" simax:encoding="plain">SuperviseurNOUT</Data>
</xml>
</GetColInRecordResponse>
Réponse qui retourne le contenu d'une liste
<GetColInRecordResponse xmlns="http://www.nout.fr/wsdl/SimaxService.wsdl/">
<xml>
<Data simax:size="15" simax:typemime="text/plain" simax:encoding="plain">23390292767272|</Data>
<xml VERSION="1" VERSION_LECTECRIT="1" VERSION_LECTURE="1" DATEHEURE="2022022309332454" xmlns:simax="http://www.nout.fr/XML/" xmlns:simax-layout="http://www.nout.fr/XML/layout" xmlns:simax-error="http://www.nout.fr/XML/error">
<id_37438955068224 simax:id="23390292767272" simax:title="000034" simax:xsdLevel="1" simax:linkedTableID="37438955068224">
<id_44817708883037>000034</id_44817708883037>
...
</id_37438955068224>
<id_2564 simax:id="25460458787936" simax:title="3 D" simax:xsdLevel="2"/>
...
</xml>
</xml>
</GetColInRecordResponse>
Le ReturnType est toujours Record
mais le contenu ne respecte pas les règles.
Le contenu de la balise GetColInRecordResponse
est au format xml
> Data
, avec la balise Data contenant la valeur de retour demandé.
Si le champ est une liste et que le contenu est demandé, la balise xml
> xml
est ajoutée, c'est la même balise que pour une réponse liste d'enregistrement.
GetEndAutomatism
Cette opération permet de déclencher les automatismes de liés à l'action Arrêt Application.
Cette opération ne requiert aucun paramètre.
Elle doit être appelée une seule fois avant la déconnexion.
Requête
Requête
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/">
<SOAP-ENV:Header>
....
</SOAP-ENV:Header>
<SOAP-ENV:Body>
<GetEndAutomatism/>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>
Il n'y a pas de paramètres.
Les entêtes acceptées sont :
En-tête | Description | |
---|---|---|
SessionToken | obligatoire | token de la session |
UsernameToken | obligatoire | information de connexion |
OptionDialogue | facultatif | les options de dialogue |
APIUUID | facultatif | identifiant uuid de l'application |
CustomerInfos | facultatif |
Réponse
Reponse
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/">
<SOAP-ENV:Header>
...
</SOAP-ENV:Header>
<SOAP-ENV:Body>
<GetEndAutomatismResponse>
<xml>
...
</xml>
</GetEndAutomatismResponse>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>
La réponse dépend des automatismes s'ils existent ou pas. Comme l'opération Execute, le retour est variable ; voir les réponses du workflow SIMAX pour plus de détail.
GetLanguages
Cette opération permet de récupérer la liste des langues disponibles dans le paramétrage SIMAX lié au NOUTOnline utilisé.
Cette opération ne requiert aucune authentification, ni aucun paramètre. Vous pouvez l'appeler juste avant d'afficher la fenêtre de login et mot de passe afin que l'utilisateur choisisse sa langue.
Requête
Requête
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/">
<SOAP-ENV:Header>
</SOAP-ENV:Header>
<SOAP-ENV:Body>
<GetLanguages/>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>
Il n'y a pas de paramètres.
Les entêtes acceptées sont :
En-tête | Description | |
---|---|---|
OptionDialogue | facultatif | les options de dialogue |
APIUUID | facultatif | identifiant uuid de l'application |
CustomerInfos | facultatif |
Réponse
Reponse
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/">
<SOAP-ENV:Header>
</SOAP-ENV:Header>
<SOAP-ENV:Body>
<GetLanguagesResponse>
<xml>
<LanguageCode>9</LanguageCode>
<LanguageCode>12</LanguageCode>
</xml>
</GetLanguagesResponse>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>
NOUTOnline renvoie la liste des langues disponibles dans des balises <LanguageCode>
Les valeurs possibles sont :
Langue | Code |
---|---|
Anglais | 9 |
Espagnol | 10 |
Français | 12 |
Allemand | 19 |
Les entêtes retournées sont :
En-tête | Description |
---|---|
ReturnType | format de la réponse |
CustomerInfos | si fourni dans l'entête |
GetPlanningInfo
Cette opération permet de rechercher la liste des évènements liés à une ressource (collaborateur, salle de réunion, machine) entre 2 dates.
Cette opération nécessite une authentification.
Requête
Requête
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/">
<SOAP-ENV:Header>
....
</SOAP-ENV:Header>
<SOAP-ENV:Body>
<GetPlanningInfo>
<Resource>43918660116110</Resource>
<StartTime>20191209000000</StartTime>
<EndTime>20191215000000</EndTime>
<Table></Table>
</GetPlanningInfo>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>
PHP
<?php
$stPlanningInfo = new \NOUT\Soap\StructType\GetPlanningInfo('43918660116110', "20191209000000", "20191215000000");
$resultPlanningInfo= $oSOAPClient->GetPlanningInfo($stPlanningInfo);
Elle prend en paramètre :
Paramètre | Type | Valeur par défaut | Description | |
---|---|---|---|---|
Table | string | obligatoire | null | formulaire sur lequel porte l'action de consultation |
Resource | string | obligatoire | null | formulaire sur lequel porte l'action de consultation |
StartTime | string | null | paramètres de l'action SIMAX | |
EndTime | string | null | paramètres de l'action SIMAX |
Les entête de la requête sont :
En-tête | Description | |
---|---|---|
SessionToken | obligatoire | token de la session |
UsernameToken | obligatoire | information de connexion |
OptionDialogue | facultatif | les options de dialogue |
APIUser | facultatif | 1 si action logiciel (ie pas utilisateur) |
APIUUID | facultatif | identifiant uuid de l'application |
CustomerInfos | facultatif |
Réponse
Réponse
<?xml version="1.0" encoding="utf-8"?>
<env:Envelope xmlns:env="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xml="http://www.w3.org/XML/1998/namespace" xmlns:simax="http://www.nout.fr/soap">
<env:Header xmlns="http://www.nout.fr/wsdl/SimaxService.wsdl/">
<ReturnType>Planning</ReturnType>
<ConnectedUser>...</ConnectedUser>
<Action title="" typeReturn="Planning" typeAction="">0</Action>
<XSDSchema>...</XSDSchema>
<Form title="Planification sans réservation de ressource">17151</Form>
<PlanningFilter>
<Resource>43918660116110</Resource>
<Table>17151</Table>
<StartTime>20191209000000</StartTime>
<EndTime>20191215000000</EndTime>
</PlanningFilter>
</env:Header>
<env:Body>
<GetPlanningInfoResponse xmlns="http://www.nout.fr/wsdl/SimaxService.wsdl/">
<xml VERSION="1" VERSION_LECTECRIT="1" VERSION_LECTURE="1" DATEHEURE="2019121109451731" xmlns:simax="http://www.nout.fr/XML/">
<event simax:uid="49099513243904" simax:startTime="20191211T150000Z" simax:endTime="00000000T160000Z" simax:summary="Petite reunion" simax:description="Reunion:
Petite reunion" simax:resource="43918660116110" simax:typeOfEvent="7988"/>
<event simax:uid="44130236081944" simax:startTime="20191211T100000Z" simax:endTime="00000000T110000Z" simax:summary="94033 EK FRANCE" simax:description="Intervention:
Client professionnel:
94033
EK FRANCE
c'est un test" simax:resource="43918660116110" simax:typeOfEvent="37166563901386"/>
</xml>
</GetPlanningInfoResponse>
</env:Body>
</env:Envelope>
La réponse est toujours de type planning (ie ReturnType
= Planning
).
GetStartAutomatism
Cette opération permet de déclencher les automatismes de liés à l'action Démarrage Application.
Cette opération nécessite un authentification.
Cette opération ne requiert aucun paramètre.
Elle doit être appelée une seule fois à la fin de l'initialisation de l'IHM après l'ouverture de la session.
Requête
Requête
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/">
<SOAP-ENV:Header>
....
</SOAP-ENV:Header>
<SOAP-ENV:Body>
<GetStartAutomatism/>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>
PHP
<?php
$stStartAuto = new \NOUT\Soap\StructType\GetStartAutomatism();
$resultStartAuto = $oSOAPClient->GetStartAutomatism($stStartAuto);
Il n'y a pas de paramètres.
Les entêtes acceptées sont :
En-tête | Description | |
---|---|---|
SessionToken | obligatoire | token de la session |
UsernameToken | obligatoire | information de connexion |
OptionDialogue | facultatif | les options de dialogue |
APIUUID | facultatif | identifiant uuid de l'application |
CustomerInfos | facultatif |
Réponse
Reponse
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/">
<SOAP-ENV:Header>
...
</SOAP-ENV:Header>
<SOAP-ENV:Body>
<GetStartAutomatismResponse>
<xml>
...
</xml>
</GetStartAutomatismResponse>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>
La réponse dépend des automatismes s'ils existent ou pas. Comme l'opération Execute, le retour est variable ; voir les réponses du workflow SIMAX pour plus de détail.
GetTemporalAutomatism
Cette opération permet de preparer et de declencher les automatismes temporels. Cette méthode fonctionne de la même manière que GetStartAutomatism.
Cette opération nécessite une authentification.
Requête
Requête
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/">
<SOAP-ENV:Header>
....
</SOAP-ENV:Header>
<SOAP-ENV:Body>
<GetTemporalAutomatism/>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>
PHP
<?php
$result = $oSOAPClient->GetTemporalAutomatism();
Cette opération ne requiert aucun paramètres.
Les entêtes acceptées sont :
En-tête | Description | |
---|---|---|
SessionToken | obligatoire | token de la session |
UsernameToken | obligatoire | information de connexion |
OptionDialogue | facultatif | les options de dialogue |
APIUUID | facultatif | identifiant uuid de l'application |
CustomerInfos | facultatif |
Réponse
Soit il y avait des automatismes temporels à lancer et dans ce cas on reçoit les questions intermediaires, les compte-rendus ou de demande d'affichage.
Soit il n'y avait rien à lancer et on doit récupérer l'information NextCall pour savoir dans combien de temps relancer la requête GetTemporalAutomatism.
GetTokenSession
Cette opération permet de s'authentifier auprès de NOUTOnline et de récupérer un token de session, à utiliser jusqu'à la déconnexion. C'est une étape obligatoire pour dialoguer avec NOUTOnline car cela permet d'ouvrir une session. Pour cela, il faut demander son identifiant et son mot de passe à l'utilisateur pour pouvoir calculer le UsernameToken.
Le token de session récolté devra être passé dans le Header de toutes les requêtes jusqu'à la fermeture de la session. L'entête à utiliser est SessionToken.
Cette fonction s'appuie sur les spécifications d'OASIS Web Service Security UserNameToken.
Pour plus de détails, voir le tutoriel Ouvrir et Fermer une session.
Mode intranet
Requête intranet
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/">
<SOAP-ENV:Header>
<OptionDialogue>...</OptionDialogue>
<APIUUID/>
</SOAP-ENV:Header>
<SOAP-ENV:Body>
<GetTokenSession xmlns="http://www.nout.fr/wsdl/SimaxService.wsdl/">
<UsernameToken>
<Username>superviseur</Username>
<Password>X3WmzrQFDaAtBvHTnoLSg6vyFuE=</Password>
<Nonce>MC4wNTc4NTEwMCAxMzc2NDczMTM2</Nonce>
<Created>Wed, 14 Aug 2013 09:38:56 +0000</Created>
</UsernameToken>
<ExtranetUser>
<UsernameToken/>
<Form/>
</ExtranetUser>
</GetTokenSession>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>
PHP
<?php
$usernameToken = new \NOUT\Entity\UsernameToken($sLogin, $sMdp);
$usernameToken->ComputeCryptedPassword();
$stGetTokenSessionParam = new \NOUT\Soap\StructType\GetTokenSession($usernameToken);
$result = $oSOAPClient->GetTokenSession($stGetTokenSessionParam);
//on a le token de session qui va nous servir par la suite
$sessionToken = $result->SessionToken;
$oSOAPClient->setSoapHeaderSessionToken($sessionToken);
$oSOAPClient->setSoapHeaderUsernameToken($usernameToken);
Les entêtes acceptées sont :
En-tête | Description |
---|---|
CustomerInfos | |
OptionDialogue | les options de dialogue |
APIUUID | identifiant de l'application |
Elle prend en paramètre :
Paramètre | Type | Valeur par défaut | Description | |
---|---|---|---|---|
UsernameToken | obligatoire | null | information de connexion de l'utilisateur SIMAX, | |
ExtranetUser | null | information de connexion de l'utilisateur Extranet, | ||
DefaultClientLanguageCode |
entier | 0 | code langue (avec la sous-langue si possible) désiré pour la session (si paramétrage multilangue) |
Voir le tableaux souvant pour les valeurs possibles pour DefaultClientLanguageCode
:
Langue principale | Sous-langue | Code Langue |
---|---|---|
Français | Standard | 1036 |
Canadien | 3084 | |
Espagnol | Standard | 1034 |
Américain | 21514 | |
Anglais | Américain | 1033 |
Britanique | 2057 | |
Canadien | 4105 | |
Allemand | Standard | 1031 |
Italien | Standard | 1040 |
Succès de l'identification
Reponse succès
<env:Envelope xmlns:env="http://www.w3.org/2003/05/soap-envelope"
xmlns:xml="http://www.w3.org/XML/1998/namespace">
<env:Header>
<ReturnType>Identification</ReturnType>
<ConnectedUser>
<Form title="Utilisateur">1169</Form>
<Element title="superviseur">2</Element>
</ConnectedUser>
</env:Header>
<env:Body>
<GetTokenSessionResponse xmlns="http://www.nout.fr/wsdl/SimaxService.wsdl/">
<SessionToken>7cec0345-3abb-4353-bfb9-aacc143a2d05</SessionToken>
</GetTokenSessionResponse>
</env:Body>
</env:Envelope>
NOUTOnline renvoit un token de session dans la balise <SessionToken>
.
Le token retourné est à conserver car il permet d'identifier la session courante de l'utilisateur et il devra être
ajouté dans le header de toutes les requêtes jusqu'à la déconnexion.
Les entêtes retournées sont :
En-tête | Description |
---|---|
ReturnType | toujours égal à Identification |
ConnectedUser | information sur l'utilisateur SIMAX utilisé |
CustomerInfos | si fourni dans l'entête |
ConnectedExtranet | si authentification extranet |
SessionLanguageCode | la langue de session ouverte |
Échec de l'identification
Reponse échec
<env:Envelope xmlns:env="http://www.w3.org/2003/05/soap-envelope"
xmlns:xml="http://www.w3.org/XML/1998/namespace"
xmlns:simax-error="http://www.nout.fr/soap/error">
<env:Body>
<env:Fault>
<env:Code>
<env:Value>Sender</env:Value>
</env:Code>
<env:Reason>
<env:Text xml:lang="fr">849347964(12|1404)<br />
L'identifiant ou le mot de passe utilisateur sont incorrects.<ul><li>Paramètre 1169(Utilisateur) ; Valeur dfqsdf</li></ul>
</env:Text>
</env:Reason>
<env:Detail>
<ListErr VERSION="1" VERSION_LECTECRIT="1" VERSION_LECTURE="1"
DATEHEURE="2015071710034273" xmlns:simax-error="http://www.nout.fr/soap/error">
<simax-error:Error>
<Code Name="849347964">
<Category>12</Category>
<Numero>1404</Numero>
</Code>
<Parameter>
<utilisateur IDParam="1169" TitleParam="Utilisateur" TitleElem="super viseur" />
</Parameter>
<Message>L'identifiant ou le mot de passe utilisateur sont incorrects.</Message>
</simax-error:Error>
</ListErr>
</env:Detail>
</env:Fault>
</env:Body>
</env:Envelope>
Si l'identification échoue, une erreur d'identification est retournée. Les erreurs possibles sont :
- UTIL_NONRESOLU : le pseudo fourni n'a pas permis de retrouvé l'utilisateur
- UTIL_TROPCHOIX : le pseudo fourni correspond à plus d'un utilisateur
- UTIL_INCONNU : l'identifiant d'utilisateur fourni est inconnu
- UTIL_PASSERRINTRA : le mot de passe intranet est incorrect
- UTIL_FORM_NONAUTORISE : le formulaire n'est pas configuré pour l'extranet
- UTIL_NONAUTORISE : l'utilisateur n'est pas autorisé à se connecter
D'autres erreurs ayant traits à la sécurité peuvent être retournées (configuration de NOUTOnline) :
- APPLI_NONAUTORISE : l'application n'est pas autorisée à se connecter
- SOAP_DESACTIVE : le protocole SOAP est désactivé
- EXTRANET_NONACTIVE : l'extranet est désactivé
- CONNEXION_NONAUTORISE : les connexions ne sont pas autorisées
Mode Extranet
Requête extranet
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/">
<SOAP-ENV:Header>
<OptionDialogue>
<Readable>0</Readable>
<DisplayValue>16638</DisplayValue>
<EncodingOutput>0</EncodingOutput>
<LanguageCode>12</LanguageCode>
<WithFieldStateControl>1</WithFieldStateControl>
</OptionDialogue>
<APIUUID/>
</SOAP-ENV:Header>
<SOAP-ENV:Body>
<GetTokenSession xmlns="http://www.nout.fr/wsdl/SimaxService.wsdl/">
<UsernameToken>
<Username>extranet</Username>
<Password>3380nSjvFIiiLRX9zFmNIcLHmGE=</Password>
<Nonce>MC42NDE2OTQwMCAxNTAwOTEwMjM4</Nonce>
<Created>Mon, 24 Jul 2017 17:30:38 +0200</Created>
</UsernameToken>
<ExtranetUser>
<UsernameToken>
<Username>conan2</Username>
<Password>nGyVm65soPgm9W7VXUJnJfT2e1s=</Password>
<Nonce>MC42NDE3NjMwMCAxNTAwOTEwMjM4</Nonce>
<Created>Mon, 24 Jul 2017 17:30:38 +0200</Created>
</UsernameToken>
<Form>224661136955914</Form>
</ExtranetUser>
</GetTokenSession>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>
Pour une identification en mode extranet, l'identifiant et le mot de passe récoltés permettent de calculer le
<UsernameToken>
fils de <ExtranetUser>
.
Le paramètre <Form>
contient l'identifiant ou le libellé du formulaire qui contient les éléments sur lequel se fait l'extranet (exemple: client professionnel).
Le paramètre <UsernameToken>
(fils de la balise <GetTokenSession>
) est calculé à partir de l'identifiant et
du mot de passe de l'utilisateur SIMAX auquel est associé l'extranet et qui donne les droits d'accès.
Ces dernières informations (formulaire, identifiant, mot de passe) peuvent être stockées dans un fichier de configuration.
HasChanged
Cette opération permet de savoir si l'enregistrement en cours de traitement a été modifié et donc a besoin d'être validé car les nouvelles valeurs doivent être envoyées à NOUTOnline.
Cette opération est souvent appelée lors d'un clic sur un bouton de formulaire, avant de lancer l'action du bouton, car certaines actions dépendent de l'enregistrement courant.
Requête
Requête
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/">
<SOAP-ENV:Header>
</SOAP-ENV:Header>
<SOAP-ENV:Body>
<HasChanged>
</HasChanged>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>
PHP
<?php
$result = $oSOAPClient->HasChanged();
Cette opération travaille sur l'enregistrement de l'action courante, aucun paramètre n'est donc demandé.
Les entête de la requête sont :
En-tête | Description | |
---|---|---|
SessionToken | obligatoire | token de la session |
UsernameToken | obligatoire | information de connexion |
ActionContext | obligatoire | contexte d'action courant |
OptionDialogue | facultatif | les options de dialogue |
APIUser | facultatif | 1 si action logiciel (ie pas utilisateur) |
APIUUID | facultatif | identifiant uuid de l'application |
CustomerInfos | facultatif |
Réponse
Réponse
<?xml version="1.0" encoding="utf-8"?>
<env:Envelope xmlns:env="http://schemas.xmlsoap.org/soap/envelope/" xmlns:simax="http://www.nout.fr/soap">
<env:Header xmlns="http://www.nout.fr/wsdl/SimaxService.wsdl/">
<ReturnType>Value</ReturnType>
....
</env:Header>
<env:Body>
<HasChangedResponse xmlns="http://www.nout.fr/wsdl/SimaxService.wsdl/">
<Value>1</Value>
</HasChangedResponse>
</env:Body>
</env:Envelope>
Le ReturnType est toujours Value
. Les valeurs possibles sont :
1
: l'enregistrement à besoin d'être validé car au moins une valeur de colonne a changée par rapport aux valeur de la base de données.0
: pas besoin de validation
List
Cette opération vous permet de récupérer une liste d'enregistrements paginées et/ou triées.
Il vous faudra annuler ou valider (même effet) cette liste pour que NOUTOnline vide ce cache sinon la liste reste chargée.
L'appel à cette opération avant de faire une serie de consultation vous permet d'optimiser vos temps de réponses car tous les enregistrement auront déjà été chargés, les display ou GetColInRecord mettront ensuite moins de temps.
Requête
NOUTOnline a besoin du type des élements à lister (Table) et vous avez la possibilité de lui fournir les tris et la pagination dans le paramètre SpecialParamList.
Le mode d'affichage DisplayMode permet d'utiliser cette operation pour récupérer les données dans différents formats.
Requête
Requête
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/">
<SOAP-ENV:Header>
....
</SOAP-ENV:Header>
<SOAP-ENV:Body>
<List>
<Table>1169</Table>
<ParamXML>...</ParamXML>
</List>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>
PHP
<?php
$stParam = new \NOUT\Soap\StructType\List((string)\NOUT\Entity\Langage::TABL_Utilisateur);
$result = $oSOAPClient->List($stParam);
Elle prend en paramètre :
Paramètre | Type | Valeur par défaut | Description | |
---|---|---|---|---|
Table | string | obligatoire | null | formulaire sur lequel porte l'action de consultation |
ParamXML | string | facultatif | null | paramètres de l'action SIMAX |
SpecialParamList | string | facultatif | null | paramètres de gestion de liste |
Checksum | entier | facultatif | null | checksum pour vérifier si la base de données à été modifiée |
DisplayMode | string | facultatif | null | le mode d'affichage voulu |
CallingColumn | string | facultatif | null | la colonne qui provoque l'action (quand on vient d'une fiche) |
CallingInfo | string | facultatif | null | informations sur la provenance de la requête |
Les entête de la requête sont :
En-tête | Description | |
---|---|---|
SessionToken | obligatoire | token de la session |
UsernameToken | obligatoire | information de connexion |
AutoValidate | facultatif | validation automatique de l'action |
ActionContext | facultatif | contexte d'action courant |
OptionDialogue | facultatif | les options de dialogue |
APIUser | facultatif | 1 si action logiciel (ie pas utilisateur) |
APIUUID | facultatif | identifiant uuid de l'application |
CustomerInfos | facultatif |
Réponse
Réponse
<?xml version="1.0" encoding="utf-8"?>
<env:Envelope xmlns:env="http://schemas.xmlsoap.org/soap/envelope/" xmlns:simax="http://www.nout.fr/soap">
<env:Header xmlns="http://www.nout.fr/wsdl/SimaxService.wsdl/">
<ReturnType>List</ReturnType>
<ConnectedUser>...</ConnectedUser>
<ActionContext>18625944717301</ActionContext>
<Action title="Consulter Utilisateur" typeReturn="Record" typeAction="2390" actionForm="8685">1484</Action>
<Form title="Utilisateur">1169</Form>
</env:Header>
<env:Body>
<ListResponse xmlns="http://www.nout.fr/wsdl/SimaxService.wsdl/">
<xml><xml VERSION="1" VERSION_LECTECRIT="1" VERSION_LECTURE="1" DATEHEURE="2018052909081578" xmlns:simax="http://www.nout.fr/XML/" xmlns:simax-layout="http://www.nout.fr/XML/layout">
<id_1169 simax:id="2" simax:title="Superviseur" simax:xsdLevel="0">
<id_1171>Superviseur</id_1171>
<id_1172>Super</id_1172>
<id_1173>Viseur</id_1173>
<id_1174>florian@nout.fr</id_1174>
<id_7623>city hunter - ryo couleur 027.jpg</id_7623>
<id_7624>1</id_7624>
<id_9424/>
<id_10545>0</id_10545>
</id_1169>
</xml>
</xml>
</ListResponse>
</env:Body>
</env:Envelope>
Le type de retour dépend du DisplayMode :
- si
DisplayMode
estGraph
, le type de retour est NumberOfChart, avec le nombre de graphe à afficher. Cela permet aussi d'initialiser les graphes ; inutile de demander le contenu d'un graphe si ce mode d'affichage n'a pas été demandé. Il faut aussi rappeler ce mode pour réactualiser les graphes après un rafraichissement. - sinon la réponse est de type liste d'enregistrement (ie
ReturnType
=List
). C'est la description XML des enregistrements.
Cette action a besoin d'être validée pour que le contexte d'action soit fermé et le cache de la liste supprimé de la mémoire du NOUTOnline.
Modify
Cette opération permet de demander la modification d'un enregistrement de la base de données.
Requête
Requête
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/">
<SOAP-ENV:Header>
....
</SOAP-ENV:Header>
<SOAP-ENV:Body>
<Modify>
<Table>2564</Table>
<ParamXML>
<id_2564>13457313471134</id_2564>
</ParamXML>
</Modify>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>
PHP
<?php
//quelque constante
define("TABLEAU_CLIENT", '2564');
$stParam = new \NOUT\Soap\StructType\Modify(TABLEAU_CLIENT, '<id_'.TABLEAU_CLIENT.'>13457313471134'.'</id_'.TABLEAU_CLIENT.'>');
$result = $oSOAPClient->Modify($stParam);
Elle prend en paramètre :
Paramètre | Type | Valeur par défaut | Description | |
---|---|---|---|---|
Table | string | obligatoire | null | formulaire sur lequel porte l'action de création |
ParamXML | string | null | paramètres de l'action SIMAX |
Les entête de la requête sont :
En-tête | Description | |
---|---|---|
SessionToken | obligatoire | token de la session |
UsernameToken | obligatoire | information de connexion |
AutoValidate | validation automatique de l'action | |
ActionContext | contexte d'action courant si pertinant | |
OptionDialogue | facultatif | les options de dialogue |
APIUser | facultatif | 1 si action logiciel (ie pas utilisateur) |
APIUUID | facultatif | identifiant uuid de l'application |
CustomerInfos | facultatif |
Réponse
Réponse
<?xml version="1.0" encoding="utf-8"?>
<env:Envelope xmlns:env="http://schemas.xmlsoap.org/soap/envelope/" xmlns:simax="http://www.nout.fr/soap">
<env:Header xmlns="http://www.nout.fr/wsdl/SimaxService.wsdl/">
<ReturnType>Record</ReturnType>
<ConnectedUser>...</ConnectedUser>
<ActionContext>18625944717301</ActionContext>
<Action title="Consulter Utilisateur" typeReturn="Record" typeAction="2390" actionForm="8685">1484</Action>
<Form title="Utilisateur">1169</Form>
<Element title="Superviseur">2</Element>
</env:Header>
<env:Body>
<ModifyResponse xmlns="http://www.nout.fr/wsdl/SimaxService.wsdl/">
<xml><xml VERSION="1" VERSION_LECTECRIT="1" VERSION_LECTURE="1" DATEHEURE="2018052909081578" xmlns:simax="http://www.nout.fr/XML/" xmlns:simax-layout="http://www.nout.fr/XML/layout">
<id_1169 simax:id="2" simax:title="Superviseur" simax:xsdLevel="0">
<id_1171>Superviseur</id_1171>
<id_1172>Super</id_1172>
<id_1173>Viseur</id_1173>
<id_1174>florian@nout.fr</id_1174>
<id_7623>city hunter - ryo couleur 027.jpg</id_7623>
<id_7624>1</id_7624>
<id_9424/>
<id_10545>0</id_10545>
</id_1169>
</xml>
</xml>
</ModifyResponse>
</env:Body>
</env:Envelope>
La réponse dépend de l'entête AutoValidate.
Si renseigné à 1, le retour est variable car équivalent à une validation, voir l'opération Validate.
Sinon, la réponse est toujours une description d'enregistrement (ie ReturnType
= Record
).
Cette opération permet de demander au service d'imprimer un ou plusieurs enregistrements.
Contrairement aux autres actions, il n'y a pas besoin d'envoyer un message Validate aprés le "Print"car valider une action d'impression n'a pas de sens.
Requête
Requête
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/">
<SOAP-ENV:Header>
....
</SOAP-ENV:Header>
<SOAP-ENV:Body>
<Modify>
<Table>2564</Table>
<ParamXML>
<id_2564>13457313471134</id_2564>
</ParamXML>
</Modify>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>
PHP
<?php
//quelque constante
define("TABLEAU_CLIENT", '2564');
$stParam = new \NOUT\Soap\StructType\_Print(TABLEAU_CLIENT, '<id_'.TABLEAU_CLIENT.'>13457313471134'.'</id_'.TABLEAU_CLIENT.'>');
$result = $oSOAPClient->_Print($stParam);
Elle prend en paramètre :
Paramètre | Type | Valeur par défaut | Description | |
---|---|---|---|---|
Table | string | obligatoire | null | formulaire sur lequel porte l'action de création |
ParamXML | string | null | paramètres de l'action SIMAX | |
ListMode | int | 0 | 0 pour impression en mode fiche, 1 pour une impression en mode liste |
Les entête de la requête sont :
En-tête | Description | |
---|---|---|
SessionToken | obligatoire | token de la session |
UsernameToken | obligatoire | information de connexion |
AutoValidate | validation automatique de l'action | |
ActionContext | contexte d'action courant si pertinant | |
OptionDialogue | facultatif | les options de dialogue |
APIUser | facultatif | 1 si action logiciel (ie pas utilisateur) |
APIUUID | facultatif | identifiant uuid de l'application |
CustomerInfos | facultatif |
Réponse
Réponse
<?xml version="1.0" encoding="utf-8"?>
<env:Envelope xmlns:env="http://schemas.xmlsoap.org/soap/envelope/" xmlns:simax="http://www.nout.fr/soap">
<env:Header xmlns="http://www.nout.fr/wsdl/SimaxService.wsdl/">
<ReturnType>Record</ReturnType>
...
</env:Header>
<env:Body>
<PrintResponse xmlns="http://www.nout.fr/wsdl/SimaxService.wsdl/">
<xml>
</xml>
</PrintResponse>
</env:Body>
</env:Envelope>
La réponse est variable.
Si vous n'avez pas fourni de modèle d'édition dans les paramètres de l'action d'impression et qu'il en existe plusieurs dans le paramétrage, NOUTOnline renvoit une réponse de type PrintTemplate pour demander le modèle d'édition à utiliser. Dans ce cas il faut répondre avec un SelectPrintTemplate avec le modèle choisi par l'utilisateur.
Dans les autres cas, NOUTOnline renvoit le résultat de l'impression dans une balise Data.
Request
Cette opération permet de filtrer les éléments d'un formulaire.
Cette opération nécessite un authentification.
Requête
Requête
<?xml version="1.0" encoding="UTF-8"?>
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/">
<SOAP-ENV:Header>
<AutoValidate>-1</AutoValidate>
<UsernameToken>
<Username>superviseur</Username>
<Nonce>MC42MTU1MDkwMCAxNTIwNTA1MzA4</Nonce>
<Created>Thu, 08 Mar 2018 11:35:08 +0100</Created>
<Password>thKHmoVaRvfiK+EsIKNd/sct5CM=</Password>
</UsernameToken>
<SessionToken>8284b4ca-087e-46b8-8e7c-719150c879a8</SessionToken>
<OptionDialogue>
<Readable>0</Readable>
<LanguageCode>12</LanguageCode>
</OptionDialogue>
</SOAP-ENV:Header>
<SOAP-ENV:Body>
<Request>
<Table>ville</Table>
<CondList>
<Operator type="AND">
<Condition>
<CondCol>15311</CondCol>
<CondType>BeginWith</CondType>
<CondValue>montb</CondValue>
</Condition>
<Condition>
<CondCol>departement</CondCol>
<CondType>Equal</CondType>
<CondValue>34 Herault</CondValue>
</Condition>
</Operator>
</CondList>
</Request>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>
PHP
<?php
$clFileNPI = new \NOUT\Soap\Entity\ConditionFileNPI();
$clFileNPI->EmpileCondition('departement', \NOUT\Soap\Entity\ConditionColonne::COND_EQUAL, '34 Herault');
$clFileNPI->EmpileCondition(\NOUT\Soap\Entity\ConditionColonne::COL_GENERIQUE_MINIDESC, \NOUT\Soap\Entity\ConditionColonne::COND_BEGINWITH, 'montb');
$clFileNPI->EmpileOperateur(\NOUT\Soap\Entity\Operator\OperatorType::OP_AND);
$stRequest = new \NOUT\Soap\StructType\Request(TABL_Ville, null, $clFileNPI->sToSoap());
$oSOAPClient->setSoapHeaderAutoValidate(-1);
$resultRequest = $oSOAPClient->Request($stRequest);
Elle prend en paramètre :
Paramètre | Type | Valeur par défaut | Description | |
---|---|---|---|---|
Table | string | obligatoire | null | formulaire sur lequel porte l'action de consultation |
ColList | objet | null | liste des colonnes à afficher | |
CondList | string | null | arbre des conditions | |
Sort1 | objet | null | première colonne de tri | |
Sort2 | objet | null | deuxième colonne de tri | |
Sort3 | objet | null | troisième colonne de tri | |
CallingColumn | string | obsolète | null | colonne liée a la requête |
CallingInfo | objet | null | information sur l'origine de la requête |
Les entête de la requête sont :
En-tête | Description | |
---|---|---|
SessionToken | obligatoire | token de la session |
UsernameToken | obligatoire | information de connexion |
AutoValidate | validation automatique de l'action | |
ActionContext | contexte d'action courant | |
OptionDialogue | facultatif | les options de dialogue |
APIUser | facultatif | 1 si action logiciel (ie pas utilisateur) |
APIUUID | facultatif | identifiant uuid de l'application |
CustomerInfos | facultatif |
Réponse
Réponse d'une requête sur les villes de l'hérault qui commence par 'montb'
<?xml version="1.0" encoding="utf-8"?>
<env:Envelope xmlns:env="http://schemas.xmlsoap.org/soap/envelope/">
<env:Header xmlns="http://www.nout.fr/wsdl/SimaxService.wsdl/">
<ReturnType>List</ReturnType>
<ConnectedUser>...</ConnectedUser>
<Form typeForm="2029" title="Ville" sort1="9489" sort1asc="1">9494</Form>
<XSDSchema>...</XSDSchema>
</env:Header>
<env:Body>
<RequestResponse xmlns="http://www.nout.fr/wsdl/SimaxService.wsdl/">
<xml xmlns:simax="http://www.nout.fr/XML/" xmlns:simax-layout="http://www.nout.fr/XML/layout" VERSION="1" VERSION_LECTECRIT="1" VERSION_LECTURE="1" DATEHEURE="2018031214491186">
<id_9494 simax:id="36075772305282" simax:title="MONTBAZIN" simax:xsdLevel="1">
<id_9489>MONTBAZIN</id_9489>
<id_9490>34560</id_9490>
<id_52176367525111>70790356397240</id_52176367525111>
<id_45957764764076>47997784314920</id_45957764764076>
<id_35577931141252/>
</id_9494>
<id_9494 simax:id="48806055370617" simax:title="MONTBLANC" simax:xsdLevel="1">
<id_9489>MONTBLANC</id_9489>
<id_9490>34290</id_9490>
<id_52176367525111>70790356397240</id_52176367525111>
<id_45957764764076>47997784314920</id_45957764764076>
<id_35577931141252/>
</id_9494>
<id_9495 simax:id="70790356397240" simax:title="France" simax:xsdLevel="2"/>
<id_40619030499034 simax:id="47997784314920" simax:title="34 Hérault" simax:xsdLevel="2"/>
</xml>
</RequestResponse>
</env:Body>
</env:Envelope>
Cette opération renvoi la description d'une liste d'enregistrements à afficher (mode liste, ie ReturnType
= List
).
Les entêtes retournées sont :
- ReturnType : toujours égal à List,
- ConnectedUser : information sur l'utilisateur SIMAX utilisé,
- CustomerInfos (si fourni dans l'entête),
- Form : information sur le formulaire sur lequel a lieu la requête
- XSDSchema : description de la structure du formulaire
RequestParam
Cette opération permet de filtrer les éléments d'un formulaire, mais à la différence d'un Request les conditions portent sur des paramètres (d'action) et pas sur des colonnes.
Cette opération nécessite un authentification.
Requête
Requête
<?xml version="1.0" encoding="UTF-8"?>
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/">
<SOAP-ENV:Header>
<AutoValidate>-1</AutoValidate>
<UsernameToken>
<Username>superviseur</Username>
<Nonce>MC42MTU1MDkwMCAxNTIwNTA1MzA4</Nonce>
<Created>Thu, 08 Mar 2018 11:35:08 +0100</Created>
<Password>thKHmoVaRvfiK+EsIKNd/sct5CM=</Password>
</UsernameToken>
<SessionToken>8284b4ca-087e-46b8-8e7c-719150c879a8</SessionToken>
<OptionDialogue>
<Readable>0</Readable>
<LanguageCode>12</LanguageCode>
</OptionDialogue>
</SOAP-ENV:Header>
<SOAP-ENV:Body>
<RequestParam>
<Table>8267</Table> <!-- formulaire Ressource -->
<CondList>
<Operator type="AND">
<Condition>
<CondCol>8521</CondCol> <!-- paramètre formulaire de l'action Planning de plusieurs ressources -->
<CondType>Equal</CondType>
<CondValue>8267</CondValue>
</Condition>
<Condition>
<CondCol>214444689700023</CondCol> <!-- paramètre Equipe de l'action Planning de plusieurs ressources -->
<CondType>Equal</CondType>
<CondValue>228046851125089</CondValue>
</Condition>
</Operator>
</CondList>
</RequestParam>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>
PHP
<?php
$clFileNPI = new \NOUT\Soap\Entity\ConditionFileNPI();
$clFileNPI->EmpileCondition('214444689700023', \NOUT\Soap\Entity\ConditionColonne::COND_EQUAL, '228046851125089');
$clFileNPI->EmpileCondition('8521', \NOUT\Soap\Entity\ConditionColonne::COND_EQUAL, '8267');
$clFileNPI->EmpileOperateur(\NOUT\Soap\Entity\Operator\OperatorType::OP_AND);
$stRequest = new \NOUT\Soap\StructType\Request(TABL_Ressource, null, $clFileNPI->sToSoap());
$oSOAPClient->setSoapHeaderAutoValidate(-1);
$resultRequest = $oSOAPClient->Request($stRequest);
Elle prend en paramètre :
Paramètre | Type | Valeur par défaut | Description | |
---|---|---|---|---|
Table | string | obligatoire | null | formulaire sur lequel porte l'action de consultation |
ColList | objet | null | liste des colonnes à afficher | |
CondList | string | null | arbre des conditions | |
Sort1 | objet | null | première colonne de tri | |
Sort2 | objet | null | deuxième colonne de tri | |
Sort3 | objet | null | troisième colonne de tri | |
CallingColumn | string | obsolète | null | colonne liée a la requête |
CallingInfo | objet | null | information sur l'origine de la requête |
Les entête de la requête sont :
En-tête | Description | |
---|---|---|
SessionToken | obligatoire | token de la session |
UsernameToken | obligatoire | information de connexion |
AutoValidate | facultatif | validation automatique de l'action |
ActionContext | facultatif | contexte d'action courant |
OptionDialogue | facultatif | les options de dialogue |
APIUser | facultatif | 1 si action logiciel (ie pas utilisateur) |
APIUUID | facultatif | identifiant uuid de l'application |
CustomerInfos | facultatif |
Réponse
Réponse d'une requête sur les ressources
<?xml version="1.0" encoding="utf-8"?>
<env:Envelope xmlns:env="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xml="http://www.w3.org/XML/1998/namespace">
<env:Header xmlns="http://www.nout.fr/wsdl/SimaxService.wsdl/">
<ReturnType>List</ReturnType>
<ConnectedUser>...</ConnectedUser>
<XSDSchema>...</XSDSchema>
<Form title="Ressource" typeForm="2029" sort1="8269" sort1asc="1">8267</Form>
</env:Header>
<env:Body>
<RequestParamResponse xmlns="http://www.nout.fr/wsdl/SimaxService.wsdl/">
<xml VERSION="1" VERSION_LECTECRIT="1" VERSION_LECTURE="1" DATEHEURE="2018082713310273" xmlns:simax="http://www.nout.fr/XML/" xmlns:simax-layout="http://www.nout.fr/XML/layout">
<id_8267 simax:id="25398393449382" simax:title="Support" simax:xsdLevel="1">
<id_15134>225156338133961</id_15134>
<id_8269/>
<id_8270>Support</id_8270>
</id_8267>
<id_8267 simax:id="36683203627649" simax:title="Super Viseur" simax:xsdLevel="1">
<id_15134>228509290911145</id_15134>
<id_8269>Super</id_8269>
<id_8270/>
</id_8267>
<id_2029 simax:id="225156338133961" simax:title="Equipe" simax:xsdLevel="2"/>
<id_2029 simax:id="228509290911145" simax:title="Collaborateur" simax:xsdLevel="2"/>
</xml>
</RequestParamResponse>
</env:Body>
</env:Envelope>
Cette opération renvoi la description d'une liste d'enregistrements à afficher (mode liste, ie ReturnType
= List
).
Les entêtes retournées sont :
- ReturnType : toujours égal à List,
- ConnectedUser : information sur l'utilisateur SIMAX utilisé,
- CustomerInfos (si fourni dans l'entête),
- Form : information sur le formulaire sur lequel a lieu la requête
- XSDSchema : description de la structure du formulaire
ResetPasswordFailed
En cas d'oubli de mot de passe, cette opération permet à l'utilisateur à partir de son login de demander à ce que son mot de passe soit réinitialisé et qu'on lui envoie le nouveau par mail .
Requête
<ResetPasswordFailed>
<Login>Dupont</Login>
</ResetPasswordFailed>
L'opération a besoin du login de l'utilisateur qui a perdu son mot de passe pour retrouver l'utilisateur ainsi que son adresse email.
Elle prend en paramètre :
Paramètre | Type | Valeur par défaut | Description | |
---|---|---|---|---|
Login | string | obligatoire | null | formulaire sur lequel porte l'action de consultation |
Les entête de la requête sont :
En-tête | Description | |
---|---|---|
CustomerInfos | facultatif | |
APIUUID | facultatif | identifiant uuid de l'application |
Réponse
<xml> Un nouveau mot de passe vous a été envoyé par mail </xml>
Cette opération ne renvoie qu'un compte-rendu ou un message d'erreur dans le cas où le login ne correspond à aucun utilisateur SIMAX. Quand SIMAXService reçoit cette requête, il recherche l'utilisateur à partir du login, regénère un mot de passe et change celui de l'utilisateur et lui envoie ensuite un mail avec le nouveau mot de passe. L'adresse email à laquelle est envoyé le message est soit celle du collaborateur associé à l'utilisateur (si la colonne est présente et remplie), soit celle de "ma société" (enregistrement unique). Si aucun adresse email valide n'est trouvé, le mot de passe n'est pas réinitialisé car envoie impossible.
Les entêtes retournées sont :
- ReturnType : toujours égal à List,
- CustomerInfos (si fourni dans l'entête)
Search
Cette opération permet de lancer une action de type Recherche sur un formulaire.
Cette opération nécessite une authentification.
Requête
Requête
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/">
<SOAP-ENV:Header>
....
</SOAP-ENV:Header>
<SOAP-ENV:Body>
<Search>
<Table>1169</Table>
<ParamXML>...</ParamXML>
</Search>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>
PHP
<?php
$stSearch = new \NOUT\Soap\StructType\Search((string)\NOUT\Entity\Langage::TABL_Utilisateur);
$resultSearch = $oSOAPClient->Search($stSearch);
Elle prend en paramètre :
Paramètre | Type | Valeur par défaut | Description | |
---|---|---|---|---|
Table | string | obligatoire | null | formulaire sur lequel porte l'action de consultation |
ParamXML | string | facultatif | null | paramètres de l'action SIMAX |
SpecialParamList | string | facultatif | null | paramètres de gestion de liste |
Checksum | entier | facultatif | null | checksum pour vérifier si la base de données à été modifiée |
DisplayMode | string | facultatif | null | le mode d'affichage voulu |
CallingColumn | string | facultatif | null | la colonne qui provoque l'action (quand on vient d'une fiche) |
CallingInfo | string | facultatif | null | informations sur la provenance de la requête |
Les entête de la requête sont :
En-tête | Description | |
---|---|---|
SessionToken | obligatoire | token de la session |
UsernameToken | obligatoire | information de connexion |
AutoValidate | facultatif | validation automatique de l'action |
ActionContext | facultatif | contexte d'action courant |
OptionDialogue | facultatif | les options de dialogue |
APIUser | facultatif | 1 si action logiciel (ie pas utilisateur) |
APIUUID | facultatif | identifiant uuid de l'application |
CustomerInfos | facultatif |
Réponse
Réponse
<?xml version="1.0" encoding="utf-8"?>
<env:Envelope xmlns:env="http://schemas.xmlsoap.org/soap/envelope/" xmlns:simax="http://www.nout.fr/soap">
<env:Header xmlns="http://www.nout.fr/wsdl/SimaxService.wsdl/">
<ReturnType>List</ReturnType>
<ConnectedUser>...</ConnectedUser>
<ActionContext>18625944717301</ActionContext>
<Action title="Consulter Utilisateur" typeReturn="Record" typeAction="2390" actionForm="8685">1484</Action>
<Form title="Utilisateur">1169</Form>
</env:Header>
<env:Body>
<SearchResponse xmlns="http://www.nout.fr/wsdl/SimaxService.wsdl/">
<xml><xml VERSION="1" VERSION_LECTECRIT="1" VERSION_LECTURE="1" DATEHEURE="2018052909081578" xmlns:simax="http://www.nout.fr/XML/" xmlns:simax-layout="http://www.nout.fr/XML/layout">
<id_1169 simax:id="2" simax:title="Superviseur" simax:xsdLevel="0">
<id_1171>Superviseur</id_1171>
<id_1172>Super</id_1172>
<id_1173>Viseur</id_1173>
<id_1174>florian@nout.fr</id_1174>
<id_7623>city hunter - ryo couleur 027.jpg</id_7623>
<id_7624>1</id_7624>
<id_9424/>
<id_10545>0</id_10545>
</id_1169>
</xml>
</xml>
</SearchResponse>
</env:Body>
</env:Envelope>
Le type de retour dépend du DisplayMode :
- si
DisplayMode
estGraph
, le type de retour est NumberOfChart, avec le nombre de graphe à afficher. Cela permet aussi d'initialiser les graphes ; inutile de demander le contenu d'un graphe si ce mode d'affichage n'a pas été demandé. Il faut aussi rappeler ce mode pour réactualiser les graphes après un rafraichissement. - sinon la réponse est de type liste d'enregistrement (ie
ReturnType
=List
). C'est la description XML des enregistrements.
Cette action a besoin d'être validée pour que le contexte d'action soit fermé et le cache de la liste supprimé de la mémoire du NOUTOnline.
SelectForm
Cette opération permet de sélectionner un formulaire dans une liste proposée par le service dans le cas d'une ambiguïté Remarque : à utiliser aprés l'envoi d'une action de type creation dont la réponse de SIMAXService est de typeReturn = "AmbiguousAction" et propose une liste de formulaires possibles car il y a ambiguïté.
Requête
<SelectForm>
<Form>24356.....</Form>
</SelectForm>
Elle prend en paramètre :
Paramètre | Type | Valeur par défaut | Description | |
---|---|---|---|---|
Form | integer | obligatoire | null |
Renvoyer dans la balise Form, le formulaire choisit.
Les entête de la requête sont :
En-tête | Description | |
---|---|---|
CustomerInfos | facultatif | |
SessionToken | facultatif | |
UsernameToken | facultatif | |
OptionDialogue | facultatif | |
ActionContext | facultatif | |
APIUser | facultatif | |
APIUUID | facultatif | identifiant uuid de l'application |
Réponse
(cf réponse d'un Create)
La réponse correspond à la réponse de l'action de création précedente où il y eut ambiguïté.
Les headers Filter, Count et ValidateError sont toujours possibles car la requête de création précédente a pu être appelée avec le header <AutoValidate>
à 1 et donc des automatismes contenant des listes ont pu être déclenchés.
Les entête de la requête sont :
- ReturnType : toujours égal à List,
- Count : toujours égal à List,
- CustomerInfos (si fourni dans l'entête),
- ValidateError : toujours égal à List,
- XSDSchema : ,
- Element : ,
- Filter : ,
- Action : ,
- Form : ,
- ActionContext : ,
Les valeurs retourné est de type : Xml
SelectPrintTemplate
Cette opération permet d'envoyer au service le modèle d'édition que l'on souhaite utiliser parmi une liste envoyée précedemment par le service pour une impression où il avait une ambiguïté. Remarque : à utiliser quand SIMAXService renvoie une réponse avec typeReturn = PrintTemplate et propose une liste de modèles d'édition possibles.
Requête
<SelectPrintTemplate>
<Template>24356.....</Template>
</SelectPrintTemplate>
L'identifiant du modèle d'édition choisit par l'utilisateur doit être envoyé au service dans la balise <Template>
.
Le contexte d'action est obligatoire car votre requête correspond finalement à la réponse de la question posée par le service concernant le choix d'un modèle d'édition.
Elle prend en paramètre :
Paramètre | Type | Valeur par défaut | Description | |
---|---|---|---|---|
Template | integer | obligatoire | null |
Les entête de la requête sont :
En-tête | Description | |
---|---|---|
CustomerInfos | facultatif | |
SessionToken | facultatif | |
UsernameToken | facultatif | |
OptionDialogue | facultatif | |
ActionContext | facultatif | |
APIUser | facultatif | |
APIUUID | facultatif | identifiant uuid de l'application |
Réponse
<SelectPrintTemplateResponse>
<xml>
<Report>L'action a été effectuée avec succès.</Report>
<Data simax:size="11279" simax:filename="Conge - Sebag Stephanie 17-11-2010 22-11-2010.odt" simax:typemime="application/vnd.oasis.opendocument.text" simax:encoding="base64" simax:ref="0">
UEsDBBQAAgAIAIKCdz17r4rpXgsAAI4NAA..............................
</Data>
</xml>
</SelectPrintTemplateResponse>
La réponse est celle de l'impression précedente déclenché par automatisme ou par l'utilisateur lui-même
[Les entêtes retournées sont :
- ReturnType : toujours égal à List,
- Count : toujours égal à List,
- CustomerInfos (si fourni dans l'entête),
- ValidateError : toujours égal à List,
- XSDSchema : ,
- Element : ,
- Filter : ,
- Action : ,
- Form : ,
- ActionContext : ,]()
Les valeurs retourné est de type : Xml
TransformInto
(A partir de la version 04.05.0936.16)) Cette opération vous permet de transformer un élément d'un formulaire en un élément d'un autre formulaire. (ex transformer fournisseur en société).
Requête
on souhaite transformer le fournisseur "Marque A" en société
xml <TransformInto> <Table>societe</Table> <TableSrc>Fournisseur</TableSrc> <ElemSrc>Marque A</ElemSrc> </TransformInto>
SIMAXService a besoin de l'élément à transformer (ElemSrc, TableSrc) et du formulaire d'arrivée (Table). Une transformation nécessite une validation car fonctionne comme une modification. Vous pouvez donc envoyer des updates succéssifs pour mettre à jour les colonnes de l'enregistrement suite à des modifications puis faire un validate.
Elle prend en paramètre :
Paramètre | Type | Valeur par défaut | Description | |
---|---|---|---|---|
Table | string | obligatoire | null | formulaire sur lequel porte l'action de consultation |
TableSrc | objet | null | liste des colonnes à afficher | |
ElemSrc | string | null | arbre des conditions |
Les entête de la requête sont :
En-tête | Description | |
---|---|---|
AutoValidate | validation automatique de l'action | |
CustomerInfos | facultatif | |
SessionToken | obligatoire | token de la session |
UsernameToken | obligatoire | information de connexion |
OptionDialogue | facultatif | les options de dialogue |
ActionContext | contexte d'action courant | |
APIUser | facultatif | 1 si action logiciel (ie pas utilisateur) |
APIUUID | facultatif | identifiant uuid de l'application |
Réponse
Le service nous renvoie donc la description de la société avec les infos du fournisseur origine
xml (cf résultat d'un Create)
Le retour de cette action est la description de l'élément transformé avec les valeurs par défaut des colonnes s'il y en a et les valeurs récupérées lors de la transformation.
Les entête de la requête sont :
- ReturnType : toujours égal à List,
- Count : toujours égal à List,
- CustomerInfos (si fourni dans l'entête),
- ValidateError : toujours égal à List,
- XSDSchema : ,
- Element : ,
- Filter : ,
- Action : ,
- Form : ,
- ActionContext : ,
Update
Cette opération permet d'avertir SIMAXService qu'un ou des champs ont été modifiés en envoyant les nouvelles valeurs. SIMAX peut alors lancer les mises à jour de calcul, les transmissions et renvoyer l'enregistrement mis à jour.
Remarque : Cet appel peut engendrer des créations et des modifications qui nécessitent des confirmations ou des informations supplémentaires. Une optimisation est de n'appeler cette méthode que quand on sort d'un champ possédant l'attribut "link" car seuls ces champs peuvent déclencher des modifications.
Remarque : Seuls les champs à modifier doivent être présents dans la requête Update. Si vous envoyez des balises sans valeur, les colonnes correspondantes seront vidées. L'identifiant du contexte d'action à mettre dans l'Update est celui fournit par SIMAXService en réponse au Create ou au Modify que vous avez envoyé précedemment.
L'update peut être validé automatiquement (c'est à dire sans appeler la methode Validate) en ajoutant la balise AutoValidate à 1 dans le header. Si on demande une validation automatique, la reponse de l'update sera finalement équivalente à celle d'un validate.
Requête
on modifie les colonnes nom, prenom, telephone d'un client particulier
<Update>
<Table>client particulier</Table>
<ParamXML>
<client_particulier>269961792...</client_particulier>
</ParamXML>
<UpdateData>
<xml VERSION="1" VERSION_LECTECRIT="1" VERSION_LECTURE="1" DATEHEURE="2008072913211996"
xmlns:simax="http://www.nout.fr/XML/">
<client_particulier simax:id="269961792..." simax:title="Client particulier">
<nom>Dupont</nom>
<prenom>Pierre</prenom>
<telephone>0612....</telephone>
</client_particulier>
</xml>
</UpdateData>
</Update>
Envoyer les nouvelles valeurs de colonne (Dans UpdateData) au service afin de récupérer l'enregistrement mis à jour.
Elle prend en paramètre :
Paramètre | Type | Valeur par défaut | Description | |
---|---|---|---|---|
Table | string | obligatoire | null | formulaire sur lequel porte l'action de consultation |
ParamXML | objet | null | liste des colonnes à afficher | |
Complete | string | null | arbre des conditions | |
UpdateData | objet | null | première colonne de tri |
Les entête de la requête sont :
En-tête | Description | |
---|---|---|
AutoValidate | validation automatique de l'action | |
CustomerInfos | info du client | |
SessionToken | obligatoire | token de la session |
UsernameToken | obligatoire | information de connexion |
ActionContext | contexte d'action courant | |
OptionDialogue | facultatif | les options de dialogue |
APIUser | facultatif | 1 si action logiciel (ie pas utilisateur) |
APIUUID | facultatif | identifiant uuid de l'application |
Réponse
on récupère la description complète du client particulier mis à jour
xml <UpdateResponse> <xml> <client_particulier simax:id="269961792..." simax:title="Client particulier"> <id._unique>269961792...</id._unique> <civilite/> <nom>Dupont</nom> <prenom>Pierre</prenom> <telephone>0612....</telephone> <adresse_email>DupontPierre@toto.fr</adresse_email> <type_de_client>45326123574406</type_de_client> <date_de_naissance/> <commercial/> <adresse/> <code_postal>34000</code_postal> <ville/> <pays>139728866165270</pays> </xml> </UpdateResponse>
On reçoit la description de l'enregistrement mis à jour suite aux modifications
Les entêtes retournées sont :
- ReturnType : toujours égal à List,
- Count : toujours égal à List,
- CustomerInfos (si fourni dans l'entête),
- ValidateError : toujours égal à List,
- XSDSchema : ,
- Element : ,
- Filter : ,
- Action : ,
- Form : ,
- ActionContext : ,
Les valeurs retourné est de type : Xml
Validate
Cette opération permet de valider l'action courante.
Remarque : Dans le cas où cette action est l'action principale, elle est éxécutée dans la base de données. (ex : valider "créer société") Dans le cas où cette action est une action quelconque du contexte d'action, la validation permet de remonter à l'action précédente (ex : valider "Créer ligne de commande" pendant la création d'une commande, le service renvoie la commande pour continuer)
Requête
<env:Body>
<Validate />
</env:Body>
La validation ne nécessite pas de paramètre car on travaille sur l'action courante du contexte d'action. C'est pour cela, que le contexte d'action est obligatoire.
Les entêtes de la requête sont :
En-tête | Description | |
---|---|---|
CustomerInfos | facultatif | |
SessionToken | obligatoire | token de la session |
UsernameToken | obligatoire | information de connexion |
ActionContext | contexte d'action courant | |
OptionDialogue | facultatif | les options de dialogue |
APIUser | facultatif | 1 si action logiciel (ie pas utilisateur) |
APIUUID | facultatif | identifiant uuid de l'application |
Réponse
Le fait de valider une action déclenche les actions liées ainsi que les automatismes. La réponse d'un Validate peut donc être la réponse à n'importe quelle action déclenchée par automatisme.
Les entête de la requête sont :
- ReturnType : toujours égal à List,
- Count : toujours égal à List,
- CustomerInfos (si fourni dans l'entête),
- ValidateError : toujours égal à List,
- XSDSchema : ,
- Element : ,
- Filter : ,
- Action : ,
- Form : ,
- ActionContext : ,
Toutes les réponses sont possibles car tout dépend des automatismes qui ont été déclenchés et si il y a des ouvertures d'IHM demandées.
Les valeurs retourné est de type : Xml
Réponses du workflow SIMAX
Les réponses SIMAX se partage en plusieurs catégories :
- générique,
- intermédiaire
- spécifique.
Le type de réponse est dans l'entête ReturnType toujours présente.
Valeur | Description |
---|---|
Générique | |
Empty | Réponse vide |
Report | Compte rendu d'une action |
Record | Affichage d'un enregistrement |
List | Affichage d'une liste d'enregistrement |
Intermédaire | |
AmbiguousAction | l'action est ambigüe, il faut choisir parmis les formulaires proposés, |
MessageBox | Une question à afficher à l'utilisateur, |
ValidateAction | Compléter ou valider les paramètres d'une action, |
ValidateEnreg | Erreur lors de la validation d'un enregistrement. L'erreur est dans le header ValidateError |
PrintTemplate | Demande de choix de modèle d'édition. |
Spécifique | |
ListCalculation | Calcul de fin de liste |
Value | Valeur en retour |
Les entêtes suivante sont potentiellement retournées pour tous les types de réponse :
- CustomerInfos (si fourni dans la requête)
Empty
C'est une réponse vide, l'action courante c'est bien passée.
Les entêtes potentiellement retournées sont :
Report
C'est une réponse avec un compte-rendu a afficher, l'action courante c'est bien passée.
Les entêtes potentiellement retournées sont :
Record
<?xml version="1.0" encoding="utf-8"?>
<env:Envelope xmlns:env="http://schemas.xmlsoap.org/soap/envelope/" xmlns:simax="http://www.nout.fr/soap">
<env:Header xmlns="http://www.nout.fr/wsdl/SimaxService.wsdl/">
<ReturnType>Record</ReturnType>
<ConnectedUser>...</ConnectedUser>
<ActionContext>25424871020661</ActionContext>
<Action title="Tableau de bord commercial" typeReturn="Record" typeAction="2386" actionForm="8685">106852539823503</Action>
<Form title="Tableau de bord commercial">107977821246867</Form>
<Element title="Tableau de bord commercial">20494248564854</Element>
</env:Header>
<env:Body>
<GetStartAutomatismResponse xmlns="http://www.nout.fr/wsdl/SimaxService.wsdl/">
<xml xmlns:simax="http://www.nout.fr/XML/" xmlns:simax-layout="http://www.nout.fr/XML/layout" VERSION="1" VERSION_LECTECRIT="1" VERSION_LECTURE="1" DATEHEURE="2018052408532792">
<id_107977821246867 simax:id="20494248564854" simax:title="Tableau de bord commercial" simax:xsdLevel="0">
....
</id_107977821246867>
...
</xml>
</GetStartAutomatismResponse>
</env:Body>
</env:Envelope>
C'est la description d'un enregistrement à afficher (ie mode fiche).
Les entêtes supplémentaires retournées sont :
- Action
- ActionContext
- ConnectedUser
- Element
- Form
- XSDSchema si demandé dans les options de dialogue
List
<?xml version="1.0" encoding="utf-8"?>
<env:Envelope xmlns:env="http://schemas.xmlsoap.org/soap/envelope/" xmlns:simax="http://www.nout.fr/soap">
<env:Header xmlns="http://www.nout.fr/wsdl/SimaxService.wsdl/">
<ReturnType>List</ReturnType>
<ConnectedUser>...</ConnectedUser>
<ActionContext>18625944717301</ActionContext>
<Action title="Consulter Utilisateur" typeReturn="Record" typeAction="2390" actionForm="8685">1484</Action>
<Form title="Utilisateur">1169</Form>
</env:Header>
<env:Body>
<ListResponse xmlns="http://www.nout.fr/wsdl/SimaxService.wsdl/">
<xml><xml VERSION="1" VERSION_LECTECRIT="1" VERSION_LECTURE="1" DATEHEURE="2018052909081578" xmlns:simax="http://www.nout.fr/XML/" xmlns:simax-layout="http://www.nout.fr/XML/layout">
<id_1169 simax:id="2" simax:title="Superviseur" simax:xsdLevel="0">
<id_1171>Superviseur</id_1171>
<id_1172>Super</id_1172>
<id_1173>Viseur</id_1173>
<id_1174>florian@nout.fr</id_1174>
<id_7623>city hunter - ryo couleur 027.jpg</id_7623>
<id_7624>1</id_7624>
<id_9424/>
<id_10545>0</id_10545>
</id_1169>
</xml>
</xml>
</ListResponse>
</env:Body>
</env:Envelope>
C'est la description d'une liste d'enregistrements à afficher (mode liste).
Les entêtes supplémentaires retournées sont :
- ActionContext
- Action
- Form
- Count
- Filter facultatif, si des filtres sont paramétrés dans l'action SIMAX
- XSDSchema si demandé dans les options de dialogue
- PossibleDisplayMode liste des modes d'affichage disponible pour la liste courante
- DefaultDisplayMode le mode d'affichage par défaut
Dans le cas où l'action liste est à confirmer, le header Action aura l'attribut userConfirmation
à 1
, et le contenu de la requête est vide (même si des enregistrements sont demandés). La requête avec les nouveaux paramètres devra être envoyée à NOUTOnline uniquement quand l'utilisateur valide les filtres et non pas à chaque fois qu'un filtre change de valeur, comme c'est le cas par défaut.
Planning
<?xml version="1.0" encoding="utf-8"?>
<env:Envelope xmlns:env="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xml="http://www.w3.org/XML/1998/namespace" xmlns:simax="http://www.nout.fr/soap">
<env:Header xmlns="http://www.nout.fr/wsdl/SimaxService.wsdl/">
<ReturnType>Planning</ReturnType>
<ConnectedUser>...</ConnectedUser>
<Action title="" typeReturn="Planning" typeAction="">0</Action>
<XSDSchema>...</XSDSchema>
<Form title="Planification sans réservation de ressource">17151</Form>
<PlanningFilter>
<Resource>43918660116110</Resource>
<Table>17151</Table>
<StartTime>20191209000000</StartTime>
<EndTime>20191215000000</EndTime>
</PlanningFilter>
</env:Header>
<env:Body>
<GetPlanningInfoResponse xmlns="http://www.nout.fr/wsdl/SimaxService.wsdl/">
<xml VERSION="1" VERSION_LECTECRIT="1" VERSION_LECTURE="1" DATEHEURE="2019121109451731" xmlns:simax="http://www.nout.fr/XML/">
<event simax:uid="49099513243904" simax:startTime="20191211T150000Z" simax:endTime="00000000T160000Z" simax:summary="Petite reunion" simax:description="Reunion:
Petite reunion" simax:resource="43918660116110" simax:typeOfEvent="7988"/>
<event simax:uid="44130236081944" simax:startTime="20191211T100000Z" simax:endTime="00000000T110000Z" simax:summary="94033 EK FRANCE" simax:description="Intervention:
Client professionnel:
94033
EK FRANCE
c'est un test" simax:resource="43918660116110" simax:typeOfEvent="37166563901386"/>
</xml>
</GetPlanningInfoResponse>
</env:Body>
</env:Envelope>
C'est la description d'évènement en vue d'un affichage dans un planning
Chaque élément de la liste est la représentation iCal des évènements du planning.
La balise Event
à les attributs suivants :
uid
: identifiant de l'enregistrementstartTime
: date heure de débutendTime
: date heure de findescription
: description de l'enregistrementsummary
: libellé de l'enregistrementresource
: la ressource associé à l'évènementtypeOfEvent
: le formulaire réel de l'évènement
Les entêtes supplémentaires retournées sont :
AmbiguousAction
Il s'agit d'une question intermédiaire : choisir le type de formulaire à créer quand le formulaire à des fils. Le format est le même qu'une liste d'enregistrement.
Pour répondre à cette question, il faut utiliser l'opération SelectForm avec le formulaire choisi.
MessageBox
<env:Envelope xmlns:env="http://schemas.xmlsoap.org/soap/envelope/">
<env:Header xmlns="http://www.nout.fr/wsdl/SimaxService.wsdl/">
<ReturnType>MessageBox</ReturnType>
....
</env:Header>
<env:Body>
<ExecuteResponse xmlns="http://www.nout.fr/wsdl/SimaxService.wsdl/">
<xml>
<MessageBox>
<Message> - Collaborateur : test pour suppression
Confirmez-vous cette action ?</Message>
<Title>Supprimer Collaborateur</Title>
<ButtonList>
<TypeConfirmation title="OK">1</TypeConfirmation>
<TypeConfirmation title="Annuler" default="1">2</TypeConfirmation>
</ButtonList>
</MessageBox>
</xml>
</ExecuteResponse>
</env:Body>
</env:Envelope>
Il s'agit d'une question posée via une boite de dialogue.
Pour répondre à cette question, il faut utiliser l'opération ConfirmResponse avec l'une des options fourni dans la description de la boite de dialogue.
ValidateAction
Il s'agit d'une demande de paramètre. Cette question arrive dans les cas suivant :
- un paramètre obligatoire n'a pas été renseigné,
- l'action est à confirmer.
Pour répondre à cette question, il faut utiliser l'opération @@TODO
ValidateEnreg
Il s'agit d'une demande de validation d'enregistrement. Cette question arrive dans les cas suivant :
- une colonne obligatoire n'a pas été renseignée,
- un controle de validité n'est pas valide
Dans ce cas, il faut corriger les données puis refaire une validation.
PrintTemplate
Il s'agit d'une demande de modèle d'édition. Cette question arrive quand plusieurs modèles d'édition sont possibles pour l'impression demandée.
Pour répondre à cette question, il faut utiliser l'opération SelectPrintTemplate.
ListCalculation
Il s'agit d'un retour spécifique pour la demande des calculs de fin de liste GetCalculation
Value
Exemple
<?xml version="1.0" encoding="utf-8"?>
<env:Envelope xmlns:env="http://schemas.xmlsoap.org/soap/envelope/" xmlns:simax="http://www.nout.fr/soap">
<env:Header xmlns="http://www.nout.fr/wsdl/SimaxService.wsdl/">
<ReturnType>Value</ReturnType>
....
</env:Header>
<env:Body>
<HasChangedResponse xmlns="http://www.nout.fr/wsdl/SimaxService.wsdl/">
<Value>1</Value>
</HasChangedResponse>
</env:Body>
</env:Envelope>
Il s'agit d'un retour spécifique qui précise une valeur, cet retour est renvoyé par :
Opérations de messagerie
Opérations diverses
Opérations | Usage |
---|---|
GetMailServiceStatus | Récupère l'état de la messagerie |
InitRecordFromAddress | Initialise un enregistrement à partir d'une adresse email |
InitRecordFromMessage | Initialise un enregistrement à partir d'un message |
Opérations sur les messages
Opérations | Usage |
---|---|
AddPJ | Ajouter une pièce jointe au message en cours de création |
CancelMessage | Annuler la modification ou création d'un message |
CheckCreateElement | Demande si la création du message va créer des éléments liés |
CheckRecipient | Vérifie les destinataires du message |
CloseMessageList | Ferme la liste de messages |
CreateMessage | Ouvre un message en création |
DeletePJ | Supprime une pièce jointe du message en cours de création |
GetPJ | Récupère le contenu d'une pièce jointe |
ModifyMessage | Ouvre un message en modification (pour changer son état) |
RequestMessage | Fait une requête sur les messages |
SendMessage | Envoi le message en création, Valide le message en modification |
UpdateMessage | Met à jour les informations du message |
WithAutomaticResponse | Demande si une réponse automatique est démandée et l'envoyer si nécessaire |
ZipPJ | Compresse les pièces jointes d'un message en un zip |
UpdateColumnMessageValueInBatch | Met à jour la valeur d'une colonne d'un ensemble de message |
Opérations sur les dossiers
Opérations | Usage |
---|---|
CancelFolder | Annuler la modification ou création d'un dossier |
CloseFolderList | Ferme la liste des dossiers |
CreateFolder | Ouvre un dossier en création |
DeleteFolder | Supprime un dossier |
GetContentFolder | Récupère la liste des messages contenu dans un dossier |
GetFolderList | Liste les dossiers |
ModifyFolder | Ouvre un dossier en modification |
UpdateFolder | Met à jour les informations du dossier |
ValidateFolder | Valide les modifications du dossier |
AddPJ
Cette opération vous permet d'ajouter une pièce jointe dans un message et de récupérer le message mis à jour.
Requête
Vous devez fournir au service le message dans lequel vous voulez ajouter votre pièce jointe ainsi que le contenu de votre pièce jointe.
Elle prend en paramètre :
Paramètre | Type | Valeur par défaut | Description |
---|---|---|---|
IDMessage | |||
ColList |
Les entête de la requête sont :
En-tête | Description | |
---|---|---|
CustomerInfos | facultatif | |
SessionToken | obligatoire | token de la session |
UsernameToken | obligatoire | information de connexion |
OptionDialogue | facultatif | les options de dialogue |
APIUUID | facultatif | identifiant uuid de l'application |
Réponse
Le service vous renvoie le message mis à jour, c'est à dire avec cette pièce jointe. Les destinataires sont recontrôlés ainsi que la taille totale des pièces jointes car on vient d'en ajouter une
Les entêtes retournées sont :
- ReturnType : toujours égal à List,
- RecipientCheck : toujours égal à List,
- CustomerInfos (si fourni dans l'entête),
- XSDSchema : ,
- PJSizeCheck : vérifie la taille de la piece jointe,
Les valeurs retourné est de type : Xml
CancelFolder
Cette opération vous permet d'annuler le ModifyFolder ou le CreateFolder suivi des UpdateFolder que vous venez d'envoyer au service. Le dossier ne sera donc ni modifié, ni créé.
Requête
Le service requiert l'identifiant du dossier dont la création ou la modification doit être annulé.
Paramètre | Type | Valeur par défaut | Description |
---|---|---|---|
IDFolder |
Les entête de la requête sont :
En-tête | Description | |
---|---|---|
CustomerInfos | facultatif | |
SessionToken | obligatoire | token de la session |
UsernameToken | obligatoire | information de connexion |
OptionDialogue | facultatif | les options de dialogue |
APIUUID | facultatif | identifiant uuid de l'application |
Réponse
Le service annule la création ou la modification et renvoie un compte-rendu vide si tout s'est bien passé
Les entêtes retournées sont :
- ReturnType : toujours égal à List,
- CustomerInfos (si fourni dans l'entête),
CancelMessage
L'action en cours (creation, modification ou liste) est annulée.
Requête
<SOAP-ENV:Body>
<CancelMessage xmlns="http://www.nout.fr/wsdl/SimaxService.wsdl/">
<IDMessage>19279367467273</IDMessage>
</CancelMessage>
</SOAP-ENV:Body>
Demander au service d'annuler la création ou la modification du message donné en paramètre.
Ou demander au service de vider le cache de la liste des messages. Dans ce cas <IDMessage>
doit contenir la valeur du <ActionContext>
reçu lors de la réponse à la requête RequestMessage ou GetContentFolder sur les messages que l'on souhaite annuler.
Elle prend en paramètre :
Paramètre | Type | Valeur par défaut | Description |
---|---|---|---|
IDMessage |
Les entête de la requête sont :
En-tête | Description | |
---|---|---|
CustomerInfos | facultatif | |
SessionToken | obligatoire | token de la session |
UsernameToken | obligatoire | information de connexion |
OptionDialogue | facultatif | les options de dialogue |
APIUUID | facultatif | identifiant uuid de l'application |
Réponse
<env:Body>
<CancelMessageResponse xmlns="http://www.nout.fr/wsdl/SimaxService.wsdl/"/>
</env:Body>
Le service vous renvoie un message vide.
Les entêtes retournées sont :
- ReturnType : toujours égal à List,
- CustomerInfos (si fourni dans l'entête),
CheckCreateElement
Cette opération permet de savoir quel type d'enregistrement va être créé à l'envoi du message.
Requête
<SOAP-ENV:Body>
<CheckCreateElement xmlns="http://www.nout.fr/wsdl/SimaxService.wsdl/">
<IDMessage>19279367467273</IDMessage>
</CheckCreateElement>
</SOAP-ENV:Body>
Il faut alors fournir l'identifiant du message dont on veut savoir si son envoi va déclencher la création d'élements liés
Elle prend en paramètre :
Paramètre | Type | Valeur par défaut | Description |
---|---|---|---|
IDMessage |
Les entête de la requête sont :
En-tête | Description | |
---|---|---|
CustomerInfos | facultatif | |
SessionToken | obligatoire | token de la session |
UsernameToken | obligatoire | information de connexion |
OptionDialogue | facultatif | les options de dialogue |
APIUUID | facultatif | identifiant uuid de l'application |
Réponse
<env:Body>
<CheckCreateElementResponse xmlns="http://www.nout.fr/wsdl/SimaxService.wsdl/">
<Value>0</Value>
</CheckCreateElementResponse>
</env:Body>
Le service retourne un compte rendu avec l'identifiant du tableau de l'élément à créer
Les entêtes retournées sont :
- ReturnType : toujours égal à List,
- CustomerInfos (si fourni dans l'entête),
Les valeurs retourné est de type : Value
CheckRecipient
Cette opération permet de demander au service de contrôler la validité des destinataires d'un message que l'on souhaite envoyer.
Requête
Le service n'a besoin que de l'identifiant du message
Elle prend en paramètre :
Paramètre | Type | Valeur par défaut | Description |
---|---|---|---|
IDMessage |
Les entête de la requête sont :
En-tête | Description | |
---|---|---|
CustomerInfos | facultatif | |
SessionToken | obligatoire | token de la session |
UsernameToken | obligatoire | information de connexion |
OptionDialogue | facultatif | les options de dialogue |
APIUUID | facultatif | identifiant uuid de l'application |
Réponse
La réponse du service est la description du message avec le header RecipientCheck qui indique le résultat de la validation des destinataires
Les entêtes retournées sont :
- ReturnType : toujours égal à List,
- CustomerInfos (si fourni dans l'entête),
Les valeurs retourné est de type : Xml
CloseFolderList
Cette opération doit être appelée quand on a fini d'utiliser la liste des dossiers renvoyée par le service suite à une requête GetFolderList. Tant que cette opération n'est pas envoyée, la liste reste dans le cache et vous pouvez continuer à l'interroger.
Requête
<SOAP-ENV:Body>
<CloseMessageList xmlns="http://www.nout.fr/wsdl/SimaxService.wsdl/">
<IDList>1</IDList>
</CloseMessageList>
</SOAP-ENV:Body>
Le service a besoin de connaître l'identifiant de la liste que vous souhaitez fermer. Cet identifiant vous a été fournit en réponse du GetFodlerList dans la balise <ActionContext>
Elle prend en paramètre :
Paramètre | Type | Valeur par défaut | Description |
---|---|---|---|
IDList |
Les entête de la requête sont :
En-tête | Description | |
---|---|---|
CustomerInfos | facultatif | |
SessionToken | obligatoire | token de la session |
UsernameToken | obligatoire | information de connexion |
OptionDialogue | facultatif | les options de dialogue |
APIUUID | facultatif | identifiant uuid de l'application |
Réponse
<env:Body>
<CloseMessageListResponse xmlns="http://www.nout.fr/wsdl/SimaxService.wsdl/"/>
</env:Body>
Le service ferme la liste et vous renvoie un compte-rendu vide.
Les entêtes retournées sont :
- ReturnType : toujours égal à List,
- CustomerInfos (si fourni dans l'entête),
CloseMessageList
L'action en cours (creation, modification ou liste) est annulée.
Requête
<SOAP-ENV:Body>
<CancelMessage xmlns="http://www.nout.fr/wsdl/SimaxService.wsdl/">
<IDMessage>19279367467273</IDMessage>
</CancelMessage>
</SOAP-ENV:Body>
Demander au service d'annuler la création ou la modification du message donné en paramètre.
Ou demander au service de vider le cache de la liste des messages. Dans ce cas <IDMessage>
doit contenir la valeur du <ActionContext>
reçu lors de la réponse à la requête RequestMessage ou GetContentFolder sur les messages que l'on souhaite annuler.
Elle prend en paramètre :
Paramètre | Type | Valeur par défaut | Description |
---|---|---|---|
IDMessage |
Les entête de la requête sont :
En-tête | Description | |
---|---|---|
CustomerInfos | facultatif | |
SessionToken | obligatoire | token de la session |
UsernameToken | obligatoire | information de connexion |
OptionDialogue | facultatif | les options de dialogue |
APIUUID | facultatif | identifiant uuid de l'application |
Réponse
<env:Body>
<CancelMessageResponse xmlns="http://www.nout.fr/wsdl/SimaxService.wsdl/"/>
</env:Body>
Le service vous renvoie un message vide.
Les entêtes retournées sont :
- ReturnType : toujours égal à List,
- CustomerInfos (si fourni dans l'entête),
CreateFolder
Cette opération vous permet d'ajouter un nouveau dossier dans la messagerie pour classer vos messages. Pour que le dossier soit réellement créé, cette opération a besoin d'être validée : appel à la méthode Validate ou passage de AutoValidate à 1 dans l'opération directement
Requête
<SOAP-ENV:Body>
<CreateFolder />
</SOAP-ENV:Body>
Aucun paramètre n'est demandé pour cette opération.
Les entête de la requête sont :
En-tête | Description | |
---|---|---|
AutoValidate | validation automatique de l'action | |
CustomerInfos | facultatif | |
SessionToken | obligatoire | token de la session |
UsernameToken | obligatoire | information de connexion |
OptionDialogue | facultatif | les options de dialogue |
APIUUID | facultatif | identifiant uuid de l'application |
Réponse
<env:Body>
<CreateFolderResponse xmlns="http://www.nout.fr/wsdl/SimaxService.wsdl/">
<xml VERSION="1" VERSION_LECTECRIT="1" VERSION_LECTURE="1" DATEHEURE="2011012416270631" xmlns:simax="http://www.nout.fr/XML/" xmlns:simax-layout="http://www.nout.fr/XML/layout">
<id_16511 simax:id="27633078928814" simax:title="">
<id_16100>27633078928814</id_16100>
<id_16101/>
<id_16102/>
</id_16511>
</xml>
</CreateFolderResponse>
</env:Body>
Le service renvoie la description d'un dossier de la messagerie avec les valeurs par défaut et d'initialisation s'il y en a.
Les entêtes retournées sont :
- ReturnType : toujours égal à List,
- CustomerInfos (si fourni dans l'entête),
- XSDSchema : ,
Les valeurs retournée est de type : Xml
CreateMessage
Cette opération vous permet de créer un nouveau message. - avec des valeurs par défaut - à partir d'un autre message (pour un transfert, une réponse ou une réponse à tous) - à partir d'un message type
Pour que le message soit envoyé, cette opération a besoin d'être validée : appel à la méthode Validate ou passage de AutoValidate à 1 dans l'opération directement
Requête
Nouveau message en faisant "Répondre"
<SOAP-ENV:Body>
<CreateMessage xmlns="http://www.nout.fr/wsdl/SimaxService.wsdl/">
<CreateType>Forward</CreateType>
<IDMessage></IDMessage>
<IDAnswerType></IDAnswerType>
</CreateMessage>
</SOAP-ENV:Body>
Nouveau message en utilisant un message type pour répondre
<SOAP-ENV:Body>
<CreateMessage xmlns="http://www.nout.fr/wsdl/SimaxService.wsdl/">
<CreateType>Answer Type</CreateType>
<IDMessage>129608430384907</IDMessage>
<IDAnswerType>36268725076464</IDAnswerType>
</CreateMessage>
</SOAP-ENV:Body>
Si vous souhaitez juste créer un nouveau message, aucun paramètre n'est nécessaire. Si vous souhaitez créer un message en réponse à un autre, pour un transfert ou à partir d'un message type, vous devez remplir les paramètres CreateType, IDMessage et/ou IDAnswerType
Elle prend en paramètre :
Paramètre | Type | Valeur par défaut | Description |
---|---|---|---|
IDAnswerType | |||
IDMessage | |||
CreateType |
Les entête de la requête sont :
En-tête | Description | |
---|---|---|
AutoValidate | validation automatique de l'action | |
CustomerInfos | facultatif | |
SessionToken | obligatoire | token de la session |
UsernameToken | obligatoire | information de connexion |
OptionDialogue | facultatif | les options de dialogue |
APIUUID | facultatif | identifiant uuid de l'application |
Réponse
Le service nous renvoie la description du message initialisé avec l'utilisateur connecté ou bien initialisé à partir d'un message type et du message auquel on répond.
<env:Body>
<CreateMessageResponse xmlns="http://www.nout.fr/wsdl/SimaxService.wsdl/">
<xml VERSION="1" VERSION_LECTECRIT="1" VERSION_LECTURE="1" DATEHEURE="2011012415132030" xmlns:simax="http://www.nout.fr/XML/" xmlns:simax-layout="http://www.nout.fr/XML/layout">
<id_16510 simax:id="1927936746...." simax:title="16:13:20 M.Dupont">
<id_16061>1927936...</id_16061>
<id_16062>20110....</id_16062>
<id_16079>Dupont</id_16079>
<id_16080>12</id_16080>
<id_15317/>
......
<id_16082/>
<id_16077>0</id_16077>
<id_16076>16332</id_16076>
<id_16088>16338</id_16088>
<id_16087/>
<id_16070>16324</id_16070>
<id_16078/>
<id_15328>16320</id_15328>
<id_15329>16320</id_15329>
<id_15330>16320</id_15330>
<id_16100/>
</id_16510>
</xml>
</CreateMessageResponse>
</env:Body>
Le service vous renvoie la description du message créé comme demandé, c'est à dire avec les valeurs par défaut ou avec les valeurs récupérées du message d'origine ou du message type. Si le service rencontre des problèmes dans les destinataires ou les pièces jointes, il vous le signalera dans les headers RecipientCheck et PJSizeCheck.
Les entêtes retournées sont :
- ReturnType : toujours égal à List,
- RecipientCheck : toujours égal à List,
- CustomerInfos (si fourni dans l'entête),
- XSDSchema : ,
- PJSizeCheck : vérifie la taille de la piece jointe,
Les valeurs retournée est de type : Xml
DeleteFolder
Cette opération permet de supprimer un dossier de votre messagerie. Dans ce cas, tous les messages contenus dans ce dossier sont reinsérés dans la boîte de reception. Si vous souhaitez supprimer aussi tous les messages du dossier, vous devez envoyer des DeleteMessage pour chaque message renvoyé par GetContentFolder. C'est donc un choix de l'IHM.
Requête
<SOAP-ENV:Body>
<DeleteFolder xmlns="http://www.nout.fr/wsdl/SimaxService.wsdl/">
<IDFolder>27633078928814</IDFolder>
</DeleteFolder>
</SOAP-ENV:Body>
Cette opération a uniquement besoin de l'identifiant de dossier à supprimer.
Elle prend en paramètre :
Paramètre | Type | Valeur par défaut | Description |
---|---|---|---|
IDFolder |
Les entête de la requête sont :
En-tête | Description | |
---|---|---|
CustomerInfos | facultatif | |
SessionToken | obligatoire | token de la session |
UsernameToken | obligatoire | information de connexion |
OptionDialogue | facultatif | les options de dialogue |
APIUUID | facultatif | identifiant uuid de l'application |
Réponse
La validation étant automatique, le service vous renvoie un message vide si la suppression a réussi.
Les entêtes retournées sont :
- ReturnType : toujours égal à List,
- CustomerInfos (si fourni dans l'entête),
DeletePJ
Cette opération vous permet de supprimer une pièce jointe d'un message et de récupérer le message mis à jour
Requête
Vous devez fournir au service le message dans lequel est la pièce jointe que vous souhaitez supprimer ainsi que l'identifiant de la pièce jointe.
Elle prend en paramètre :
Paramètre | Type | Valeur par défaut | Description |
---|---|---|---|
IDMessage | |||
IDPJ |
Les entête de la requête sont :
En-tête | Description | |
---|---|---|
CustomerInfos | facultatif | |
SessionToken | obligatoire | token de la session |
UsernameToken | obligatoire | information de connexion |
OptionDialogue | facultatif | les options de dialogue |
APIUUID | facultatif | identifiant uuid de l'application |
Réponse
Le service vous renvoie le message mis à jour, c'est à dire sans cette pièce jointe. Les destinataires sont recontrôlés ainsi que la taille totale des pièces jointes car on vient d'ne supprimer une.
Les entêtes retournées sont :
- ReturnType : toujours égal à List,
- RecipientCheck : toujours égal à List,
- CustomerInfos (si fourni dans l'entête),
- XSDSchema : ,
- PJSizeCheck : vérifie la taille de la piece jointe,
Les valeurs retournée est de type : Xml
DisplayMessage
GetContentFolder
Cette opération envoie le contenu du dossier et fonctionne aussi bien pour les dossiers communs que les dossiers personnels.
Requête
Demander les 5 premiers messages du dossier 1
<SOAP-ENV:Body>
<GetContentFolder xmlns="http://www.nout.fr/wsdl/SimaxService.wsdl/">
<IDFolder>1</IDFolder>
<SpecialParamList>
<First>0</First>
<Length>5</Length>
</SpecialParamList>
</GetContentFolder>
</SOAP-ENV:Body>
Le service a besoin de l'identifiant du dossier dont vous voulez la liste des messages. Cette opération renvoie une liste, vous pouvez donc faire de la pagination grâce au paramètre SpecialParamList.
Elle prend en paramètre :
Paramètre | Type | Valeur par défaut | Description |
---|---|---|---|
SpecialParamList | |||
IDFolder |
Les entête de la requête sont :
En-tête | Description | |
---|---|---|
AutoValidate | validation automatique de l'action | |
CustomerInfos | facultatif | |
SessionToken | obligatoire | token de la session |
UsernameToken | obligatoire | information de connexion |
OptionDialogue | facultatif | les options de dialogue |
APIUUID | facultatif | identifiant uuid de l'application |
Réponse
Le service renvoie la liste des messages dans les balises
<id_1>
<env:Header>
<ReturnType>MailServiceList</ReturnType>
.......
</env:Header>
<env:Body>
<GetContentFolderResponse xmlns="http://www.nout.fr/wsdl/SimaxService.wsdl/">
<xml VERSION="1" VERSION_LECTECRIT="1" VERSION_LECTURE="1" DATEHEURE="2010110515020863" xmlns:simax="http://www.nout.fr/XML/" xmlns:simax-layout="http://www.nout.fr/XML/layout">
<id_1 simax:id="327529044465680" simax:title="25/10/2010 16:34:41 Message">
<id_16061>327529044465680</id_16061>
<id_16062>25/10/2010 16:34</id_16062>
...........
</id_1>
<id_1 simax:id="327529044458675" simax:title="16/12/2010 12:01::05 Message 2">
<id_16061>327529867476496</id_16061>
<id_16062>16/12/2010 12:01</id_16062>
...........
</id_1>
............. suite des messages
</xml>
</GetContentFolderResponse>
</env:Body>
Le service vous renvoie la description XML de la liste des messages contenus dans le dossier fournit en paramètre. Le contexte d'action renvoyé correspond à l'identifiant du dossier fournit en paramètre de la requête. C'est ce même contexte d'action qui doit être utilisé pour l'annulation ou la validation de la liste.
Les entêtes retournées sont :
- ReturnType : toujours égal à List,
- Count : toujours égal à List,
- CustomerInfos (si fourni dans l'entête),
- XSDSchema : ,
- ActionContext : ,
Les valeurs retournée est de type : Xml
GetFolderList
Cette opération permet de récupérer la liste des dossiers de la messagerie avec leur identifiant. Remarque :appeler cette méthode pour ensuite envoyer une requête GetContentFolder car elle requiert l'identifiant du dossier
Requête
Aucun paramètre n'est demandé.
Les entête de la requête sont :
En-tête | Description | |
---|---|---|
AutoValidate | validation automatique de l'action | |
CustomerInfos | facultatif | |
SessionToken | obligatoire | token de la session |
UsernameToken | obligatoire | information de connexion |
OptionDialogue | facultatif | les options de dialogue |
APIUUID | facultatif | identifiant uuid de l'application |
Réponse
Le service vous renvoie la liste des dossiers au format XML. Il est nécessaire d'annuler ou de valider (même effet) la liste pour que SIMAXService vide son cache sinon la liste reste chargée, en utilisant la méthode Validate/Cancel
Les entêtes retournées sont :
- ReturnType : toujours égal à List,
- Count : toujours égal à List,
- CustomerInfos (si fourni dans l'entête),
- XSDSchema : ,
- ActionContext : ,
Les valeurs retournée est de type : Xml
GetListMessage
GetMailServiceStatus
Cette opération permet de récupérer l'état courant de la messagerie :
- Le nombre de message reçu,
- Le nombre de message non lu
- Le dernier message non lu
Cette opération ne requiert aucun paramètre.
Requête
Requête
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/">
<SOAP-ENV:Header>
....
</SOAP-ENV:Header>
<SOAP-ENV:Body>
<GetMailServiceStatus/>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>
Les entêtes acceptées sont :
- SessionToken (obligatoire),
- UsernameToken (obligatoire),
- CustomerInfos (facultatif),
- OptionDialogue (facultatif),
- APIUUID (facultatif).
Il n'y a pas de paramètres.
Réponse
Reponse
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/">
<SOAP-ENV:Header>
<ReturnType>MailServiceStatus</ReturnType>
...
</SOAP-ENV:Header>
<SOAP-ENV:Body>
<GetMailServiceStatusResponse>
<xml>
<UnRead>1</UnRead>
<Receive>1</Receive>
<LastUnRead>
<xml VERSION="1" VERSION_LECTECRIT="1" VERSION_LECTURE="1" DATEHEURE="2018041614150074"
xmlns:simax="http://www.nout.fr/XML/" xmlns:simax-layout="http://www.nout.fr/XML/layout">
<id_16510 simax:id="51598348173799" simax:title="15/04/2018 17:13:41 > Superviseur: test" simax:xsdLevel="0">
....
</id_16510>
</xml>
</LastUnRead>
</xml>
</GetMailServiceStatusResponse>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>
&
NOUTonline renvoie l'état courant de la messagerie dans une balise <xml>
qui se décompose de la manière suivante :
<UnRead>
nombre de message non lu<Receive>
nombre de message reçu<LastUnRead>
description du dernier message non lu s'il existe
Les entêtes retournées sont :
- ReturnType toujours égal à
MailServiceStatus
, - CustomerInfos (si fourni dans l'entête),
GetPJ
Cette opération permet de demander au service de renvoyer le contenu d'une pièce jointe d'un message
Requête
Le service a seulement besoin du message et de l'identifiant de la pièce jointe dont on veut recevoir le contenu.
Elle prend en paramètre :
Paramètre | Type | Valeur par défaut | Description |
---|---|---|---|
IDPJ | |||
IDMessage |
Les entête de la requête sont :
En-tête | Description | |
---|---|---|
CustomerInfos | facultatif | |
SessionToken | obligatoire | token de la session |
UsernameToken | obligatoire | information de connexion |
OptionDialogue | facultatif | les options de dialogue |
APIUUID | facultatif | identifiant uuid de l'application |
Réponse
Le service renvoie une balise Data avec le contenu de la pièce jointe
Les entêtes retournées sont :
- ReturnType : toujours égal à List,
- CustomerInfos (si fourni dans l'entête),
Les valeurs retournées sont de type : Xml
InitRecordFromAddress
Cette opération vous permet de : - récupérer la représentation XML d'un enregistrement du formulaire de votre choix, initialisé à partir d'une adresse email. - initialiser un enregistrement juste créé à partir d'une adresse email
Requête
Cette opération a besoin du formulaire de l'enregistrement à initialiser, de l'enregistrement lui même s'il existe déjà et de l'adresse email que l'on va utiliser pour l'initialisation
Elle prend en paramètre :
Paramètre | Type | Valeur par défaut | Description |
---|---|---|---|
Table | |||
Address | |||
Record |
Les entête de la requête sont :
En-tête | Description | |
---|---|---|
CustomerInfos | facultatif | |
SessionToken | obligatoire | token de la session |
UsernameToken | obligatoire | information de connexion |
OptionDialogue | facultatif | les options de dialogue |
ActionContext | facultatif | |
APIUUID | facultatif | identifiant uuid de l'application |
Réponse
Si le paramètre RECORD est remplit alors le service va rechercher cet enregistrement pour l'initialiser. Si le parametre RECORD n'est pas remplit, le service va renvoyer la description d'un nouvel enregistrement initialisé. L'initialisation consiste à decouper l'adresse email afin de remplir les informations liées au nom.
Les entêtes retournées sont :
- ReturnType : toujours égal à List,
- CustomerInfos (si fourni dans l'entête),
- XSDSchema : ,
- Element : ,
- Form : ,
- ActionContext : ,
Les valeurs retournées sont de type : Xml
InitRecordFromMessage
Cette opération vous permet de : - récupérer la représentation XML d'un enregistrement du formulaire de votre choix, initialisé à partir d'un message - initialiser un enregistrement juste créé à partir d'un message
Requête
Cette opération a besoin du formulaire de l'enregistrement à initialiser, de l'enregistrement lui même s'il existe déjà et de l'identifiant du message que l'on va utiliser pour l'initialisation
Elle prend en paramètre :
Paramètre | Type | Valeur par défaut | Description |
---|---|---|---|
Table | |||
IDMessage | |||
Record |
Les entête de la requête sont :
En-tête | Description | |
---|---|---|
CustomerInfos | facultatif | |
SessionToken | obligatoire | token de la session |
UsernameToken | obligatoire | information de connexion |
OptionDialogue | facultatif | les options de dialogue |
ActionContext | facultatif | |
APIUUID | facultatif | identifiant uuid de l'application |
Réponse
Si le paramètre RECORD est remplit alors le service va rechercher cet enregistrement pour l'initialiser à partir du message. Si le parametre RECORD n'est pas remplit, le service va renvoyer la description d'un nouvel enregistrement initialisé à partir du message.
Les entêtes retournées sont :
- ReturnType : toujours égal à List,
- CustomerInfos (si fourni dans l'entête),
- XSDSchema : ,
- Element : ,
- Form : ,
- ActionContext : ,
ModifyFolder
Cette opération fonctionne comme un ModifyMessage, c'est à dire qu'il faudra ensuite envoyer des requêtes UpdateFolder puis un validateFolder pour valider les modifications du dossier
Requête
<SOAP-ENV:Body>
<ModifyFolder xmlns="http://www.nout.fr/wsdl/SimaxService.wsdl/">
<IDFolder>32499276868213</IDFolder>
</ModifyFolder>
</SOAP-ENV:Body>
Cette requête a uniquement besoin de l'identifiant du dossier à modifier
Elle prend en paramètre :
Paramètre | Type | Valeur par défaut | Description |
---|---|---|---|
IDFolder |
Les entête de la requête sont :
En-tête | Description | |
---|---|---|
AutoValidate | validation automatique de l'action | |
CustomerInfos | facultatif | |
SessionToken | obligatoire | token de la session |
UsernameToken | obligatoire | information de connexion |
OptionDialogue | facultatif | les options de dialogue |
APIUUID | facultatif | identifiant uuid de l'application |
Réponse
<env:Body>
<ModifyFolderResponse xmlns="http://www.nout.fr/wsdl/SimaxService.wsdl/">
<xml VERSION="1" VERSION_LECTECRIT="1" VERSION_LECTURE="1" DATEHEURE="2011012416253995" xmlns:simax="http://www.nout.fr/XML/" xmlns:simax-layout="http://www.nout.fr/XML/layout">
<id_16511 simax:id="32499276868213" simax:title="Dossier test">
<id_16100>32499276868213</id_16100>
<id_16101/>
<id_16102>Dossier test</id_16102>
</id_16511>
</xml>
</ModifyFolderResponse>
</env:Body>
Cette opération nous renvoie la description d'un enregistrement de messagerie, ici un dossier.
Les entêtes retournées sont :
- ReturnType : toujours égal à List,
- CustomerInfos (si fourni dans l'entête),
- XSDSchema : ,
ModifyMessage
Demander toutes les informations relatives à un message pour pouvoir le modifier si nécessaire
Requête
Demander au service de modifier le message 327529044....
<SOAP-ENV:Body>
<ModifyMessage xmlns="http://www.nout.fr/wsdl/SimaxService.wsdl/">
<IDMessage>327529044....</IDMessage>
</ModifyMessage>
</SOAP-ENV:Body>
Cette requête ouvre le message en modification en attente d'une éventuelle requête UpdateMessage pour, par exemple, passer le message en "traité".
Elle prend en paramètre :
Paramètre | Type | Valeur par défaut | Description |
---|---|---|---|
IDMessage |
Les entête de la requête sont :
En-tête | Description | |
---|---|---|
AutoValidate | validation automatique de l'action | |
CustomerInfos | facultatif | |
SessionToken | obligatoire | token de la session |
UsernameToken | obligatoire | information de connexion |
OptionDialogue | facultatif | les options de dialogue |
ActionContext | facultatif | |
APIUUID | facultatif | identifiant uuid de l'application |
Réponse
<env:Header>
<ReturnType>MailServiceRecord</ReturnType>
</env:Header>
<env:Body>
<ModifyMessageResponse xmlns="http://www.nout.fr/wsdl/SimaxService.wsdl/">
<xml VERSION="1" VERSION_LECTECRIT="1" VERSION_LECTURE="1" DATEHEURE="2010110515021452" xmlns:simax="http://www.nout.fr/XML/" xmlns:simax-layout="http://www.nout.fr/XML/layout">
<id_16510 simax:id="327529044465680" simax:title="25/10/2010 16:34:41 Message">
<id_16061>327529044465680</id_16061>
<id_16062>25/10/2010 16:34</id_16062>
......
</id_16510>
</xml>
</ModifyMessageResponse>
</env:Body>
Le service vous renvoie la description au format XML-SIMAX du message.
Les entêtes retournées sont :
- RecipientCheck : ,
- ReturnType : toujours égal à List,
- CustomerInfos (si fourni dans l'entête),
- XSDSchema : ,
- PJSizeCheck : ,
Les valeurs retournées sont de type : Xml
RequestMessage
Cette opération vous permet de faire une recherche dans votre messagerie.
Requête
<SOAP-ENV:Body>
<RequestMessage xmlns="http://www.nout.fr/wsdl/SimaxService.wsdl/">
<StartDate></StartDate>
<EndDate></EndDate>
<Filter>
<Way>received</Way>
<State>unprocessed</State>
<Inner>1</Inner>
<Email>1</Email>
<Spam>0</Spam>
<Max>0</Max>
<From/>
<Containing/>
</Filter>
<SpecialParamList>
<First>0</First>
<Length>15</Length>
</SpecialParamList>
</RequestMessage>
</SOAP-ENV:Body>
Pour faire cette recherche, vous pouvez indiquer des dates de début et de fin (pour borner votre recherche), des filtres (pour cibler le type de message recherché) et des paramètres de liste (pour décrire le résultat attendu avec de la pagination et des tris). Fournir le contexte d'action reçu à l'appel du précédent RequestMessage si on souhaite travailler sur la même liste résultat pour la pagination.
Elle prend en paramètre :
Paramètre | Type | Valeur par défaut | Description |
---|---|---|---|
EndDate | |||
Filter | |||
SpecialParamList | |||
StartDate |
Les entête de la requête sont :
En-tête | Description | |
---|---|---|
AutoValidate | validation automatique de l'action | |
CustomerInfos | facultatif | |
SessionToken | obligatoire | token de la session |
UsernameToken | obligatoire | information de connexion |
OptionDialogue | facultatif | les options de dialogue |
ActionContext | facultatif | |
APIUUID | facultatif | identifiant uuid de l'application |
Réponse
Le service a trouvé 2 messages
<env:Body>
<RequestMessageResponse xmlns="http://www.nout.fr/wsdl/SimaxService.wsdl/">
<xml VERSION="1" VERSION_LECTECRIT="1" VERSION_LECTURE="1" DATEHEURE="2011012415180556" xmlns:simax="http://www.nout.fr/XML/" xmlns:simax-layout="http://www.nout.fr/XML/layout">
<id_16510 simax:id="27121903188508" simax:title="01/12/2010 17:45:53 Messsage 1">
<id_16061>27121903188508</id_16061>
<id_16062>01/12/2010 17:45</id_16062>
<id_16079>Dupont</id_16079>
<id_16080>1169/41</id_16080>
<id_15317>dupont@hebergeur.com</id_15317>
<id_15318>3/1169</id_15318>
<id_15319/>
<id_15320/>
<id_15321/>
<id_15322/>
<id_15316>Message 1</id_15316>
<id_15325/>
<id_16083/>
<id_16085>1</id_16085>
<id_16084/>
<id_16082/>
<id_16087>16329</id_16087>
<id_16070>16324</id_16070>
<id_16100/>
</id_16510>
<id_16510 simax:id="31846365739229" simax:title="30/11/2010 16:09:01 Message 2">
<id_16061>31846365739229</id_16061>
<id_16062>30/11/2010 16:09</id_16062>
<id_16079>Dupont</id_16079>
<id_16080>1169/7</id_16080>
<id_15317>dupont@hebergeur.com</id_15317>
<id_15318>44/1169</id_15318>
<id_15319></id_15319>
<id_15320>3/1169</id_15320>
<id_15321/>
<id_15322/>
<id_15316>Message 2</id_15316>
<id_15325/>
<id_16083/>
<id_16085>1</id_16085>
<id_16084/>
<id_16082/>
<id_16087>16329</id_16087>
<id_16070>16324</id_16070>
<id_16100/>
</id_16510>
</xml>
</RequestMessageResponse>
Le service renvoie la représentation au format XML-SIMAX de la liste des messages et vous renvoie l'identifiant du contexte d'action créé pour cette action. Remarque : si vous avez envoyé votre requête en autovalidate à 1, vous recevrez la liste des messages résultat mais cette liste ne sera pas gardée dans le cache.
Les entêtes retournées sont :
- ReturnType : toujours égal à List,
- Count : ,
- CustomerInfos (si fourni dans l'entête),
- XSDSchema : ,
- ActionContext : ,
Les valeurs retournées sont de type : Xml
SendMessage
Cette opération vous permet d'envoyer un message créé précedemment. Vous pouvez comparer cette opération à un Validate.
Requête
Demander l'expédition du message 32752904...., créé précedemment
<SOAP-ENV:Body>
<SendMessage xmlns="http://www.nout.fr/wsdl/SimaxService.wsdl/">
<IDMessage>32752904....</IDMessage>
</SendMessage>
</SOAP-ENV:Body>
Cette opération n'a besoin que de l'identifiant du message à envoyer. Cet identifiant doit correspondre à un message que vous avez créé précedemment.
Elle prend en paramètre :
Paramètre | Type | Valeur par défaut | Description |
---|---|---|---|
IDMessage |
Les entête de la requête sont :
En-tête | Description | |
---|---|---|
CustomerInfos | facultatif | |
SessionToken | obligatoire | token de la session |
UsernameToken | obligatoire | information de connexion |
OptionDialogue | facultatif | les options de dialogue |
APIUUID | facultatif | identifiant uuid de l'application |
Réponse
Le service ne renvoie rien sauf en cas d'erreur
<env:Header>
<ReturnType>Empty</ReturnType>
</env:Header>
<env:Body>
<SendMessageResponse xmlns="http://www.nout.fr/wsdl/SimaxService.wsdl/"/>
</env:Body>
Le service vous renvoie un message de compte-rendu vous indiquant le succés ou l'échec d'envoi de votre message
Les entêtes retournées sont :
- ReturnType : toujours égal à List,
- CustomerInfos (si fourni dans l'entête),
Les valeurs retournées sont de type : Xml
UpdateColumnMessageValueInBatch
Requête (pour traiter les messages)
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/">
<SOAP-ENV:Header>
....
</SOAP-ENV:Header>
<SOAP-ENV:Body>
<UpdateColumnMessageValueInBatch>
<IDMessage>37733586761696|52525746905778|....</IDMessage>
<Column>16087</Column>
<Value>16330</Value>
</UpdateColumnMessageValueInBatch>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>
Reponse
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/">
<SOAP-ENV:Header>
<ReturnType>Empty</ReturnType>
</SOAP-ENV:Header>
<SOAP-ENV:Body>
<UpdateColumnMessageValueInBatch>
<xml/>
</UpdateColumnMessageValueInBatch>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>
Cette opération permet de mettre à jour une colonne de plusieurs messages en une seule fois.
Elle prend en paramètre :
IDMessage
: la liste des identifiants des messages à modifierColumn
: l'identifiant de la colonne de message à modifierValue
: la valeur à appliquer à la colonne
Les entêtes suivantes sont obligatoires :
Les entêtes facultatives acceptées sont :
La réponse est toujours vide si succès.
Les entêtes retournées sont :
- ReturnType : toujours égal à Empty,
UpdateFolder
Cette opération est à envoyer juste aprés un CreateFolder ou un ModifyFolder pour modifier les données du dossier.
Requête
Renommer le dossier en "Dossier test 2"
<SOAP-ENV:Body>
<UpdateFolder xmlns="http://www.nout.fr/wsdl/SimaxService.wsdl/">
<IDFolder>32499276868213</IDFolder>
<UpdateData><xml><id_16100 id="32499276868213"><id_16102>Dossier test2</id_16102></id_16100></xml></UpdateData>
</UpdateFolder>
</SOAP-ENV:Body>
Pour cette opération, SIMAXService a besoin de l'identifiant du dossier à mettre à jour.
Elle prend en paramètre :
Paramètre | Type | Valeur par défaut | Description |
---|---|---|---|
UpdateData | |||
IDFolder |
Les entête de la requête sont :
En-tête | Description | |
---|---|---|
AutoValidate | validation automatique de l'action | |
CustomerInfos | facultatif | |
SessionToken | obligatoire | token de la session |
UsernameToken | obligatoire | information de connexion |
OptionDialogue | facultatif | les options de dialogue |
APIUUID | facultatif | identifiant uuid de l'application |
Réponse
<env:Body>
<UpdateFolderResponse xmlns="http://www.nout.fr/wsdl/SimaxService.wsdl/"/>
</env:Body>
Cette opération vous renvoie le dossier mis à jour. Pas question d'un contexte d'action, la messagerie ne se gère pas par contexte.
Les entêtes retournées sont :
- ReturnType : toujours égal à List,
- CustomerInfos (si fourni dans l'entête),
- XSDSchema : toujours égal à List,
Les valeurs retournées sont de type : Xml
UpdateMessage
Cette opération doit être envoyée aprés un ModifyMessage ou un CreateMessage pour modifier des modifications et demander la mise à jour de toutes les informations(colonnes) du message.
Requête
Envoyer les données du message
<SOAP-ENV:Body>
<UpdateMessage >
<IDMessage>1927936746....</IDMessage>
<UpdateData>
<message id="19279367467273">
<id_15317>dupont</id_15317>
<id_15318>0/0</id_15318>
<id_15319></id_15319>
<id_15320></id_15320>
<id_15321></id_15321>
<id_15322></id_15322>
<id_15316>mise à jour message</id_15316>
<id_16078></id_16078>
<id_15328>16320</id_15328>
<id_15329>16320</id_15329>
<id_15330>16320</id_15330>
<id_16070>16324</id_16070>
</message>
</UpdateData>
</UpdateMessage>
</SOAP-ENV:Body>
La requête consiste à envoyer les valeurs des colonnes qui ont changé dans le paramètre UpdateData ainsi que le message concerné. UpdateMessage est équivalent dans son fonctionnement à l'opération Update. Il faut donc envoyer un validate pour que les modifications envoyées soient prises en compte ou mettre Autovalidate à 1.
Elle prend en paramètre :
Paramètre | Type | Valeur par défaut | Description |
---|---|---|---|
UpdateData | |||
IDMessage |
Les entête de la requête sont :
En-tête | Description | |
---|---|---|
AutoValidate | validation automatique de l'action | |
CustomerInfos | facultatif | |
SessionToken | obligatoire | token de la session |
UsernameToken | obligatoire | information de connexion |
OptionDialogue | facultatif | les options de dialogue |
APIUUID | facultatif | identifiant uuid de l'application |
Réponse
<env:Body>
<UpdateMessageResponse xmlns="http://www.nout.fr/wsdl/SimaxService.wsdl/">
<xml VERSION="1" VERSION_LECTECRIT="1" VERSION_LECTURE="1" DATEHEURE="2011012415150246" xmlns:simax="http://www.nout.fr/XML/" xmlns:simax-layout="http://www.nout.fr/XML/layout">
<id_16510 simax:id="19279367467273" simax:title="16:13:20 Dupont Mise à jour message">
<id_15317>dupont@hebergeur.com</id_15317>
<id_15318>19|</id_15318>
<id_15319/>
<id_15320/>
<id_15321/>
<id_15322/>
<id_15316>Mise à jour message</id_15316>
<id_16070>16324</id_16070>
<id_16078/>
<id_15328>16320</id_15328>
<id_15329>16320</id_15329>
<id_15330>16320</id_15330>
</id_16510>
</xml>
</UpdateMessageResponse>
</env:Body>
Le service vous renvoie la description XML du message mis à jour suite aux modifications envoyées. Si le service a rencontré des problèmes lors de la résolution des destinataires ou de l'ajout des pièces jointes, il vous l'indique dans les headers RecipientCheck et PJSizeCheck
Les entêtes retournées sont :
- RecipientCheck :
- ReturnType : toujours égal à List,
- CustomerInfos (si fourni dans l'entête),
- XSDSchema : toujours égal à List,
- PJSizeCheck :
Les valeurs retournées sont de type : Xml
ValidateFolder
Cette opération doit être appelée aprés un ou plusieurs UpdateFolder pour que les modifications soient effectives. Sans cet appel, les modifications ne sont pas envoyées à la base de données.
Requête
Pour valider les modifications, le service a besoin de l'identifiant du dossier concerné.
Elle prend en paramètre :
Paramètre | Type | Valeur par défaut | Description |
---|---|---|---|
IDFolder |
Les entête de la requête sont :
En-tête | Description | |
---|---|---|
CustomerInfos | facultatif | |
SessionToken | obligatoire | token de la session |
UsernameToken | obligatoire | information de connexion |
OptionDialogue | facultatif | les options de dialogue |
APIUUID | facultatif | identifiant uuid de l'application |
Réponse
Cette opération valide les modifications ou la création du dossier et le service renvoie un message vide quand tout s'est bien passé.
Liste des entêtes Entête ReturnType CustomerInfos
WithAutomaticResponse
Cette opération permet de vérifier la présence d'une réponse automatique (accusé de réception, confirmation de lecture, confirmation de validation) et d'envoyer cette réponse.
Requête
<WithAutomaticResponse>
<IDMessage>158....<IDMessage>
<ResponseType>1<ResponseType>
<SendAutomaticResponse>1</SendAutomaticResponse>
</WithAutomaticResponse>
Le cycle est le suivant : - envoyer la requête avec SendAutomaticResponse à 0 pour que le service vous renvoie la question à poser à l'utilisateur s'il y a une réponse automatique demandée, sinon rien à faire - puis envoyer la requête avec SendAutomaticResponse à 1 pour demander au service d'envoyer la réponse automatique si l'utilisateur a répondu oui. Vous devez pour cela préciser de quel message vous souhaitez traiter la réponse automatique et quel type de réponse vous souhaitez traiter (accusé de réception, de lecture ...)
Elle prend en paramètre :
Paramètre | Type | Valeur par défaut | Description |
---|---|---|---|
ResponseType | |||
IDMessage | |||
SendAutomaticResponse |
Les entête de la requête sont :
En-tête | Description | |
---|---|---|
CustomerInfos | facultatif | |
SessionToken | obligatoire | token de la session |
UsernameToken | obligatoire | information de connexion |
OptionDialogue | facultatif | les options de dialogue |
APIUUID | facultatif | identifiant uuid de l'application |
Réponse
Si SendAutomatic à 0 et qu'il y a une reponse automatique, le service vous renvoie la question à poser à l'utilisateur
<WithAutomaticResponse>
<xml>
<MessageBox>
<Message>La question ....</Message>
<ButtonList>
<TypeConfirmation title="Ok">1</TypeConfirmation>
<TypeConfirmation title="No">2</TypeConfirmation>
</ButtonList>
</MessageBox>
</xml>
</WithAutomaticResponse>
Si SendAutomaticResponse est à 0 et qu'il y a une réponse automatique, le service vous renvoie la question à poser à l'utilisateur. Si SendAutomaticResponse est à 1, le service renvoie un body vide.
Les entêtes retournées sont :
- ReturnType : toujours égal à List,
- CustomerInfos (si fourni dans l'entête),
Les valeurs retournées sont de type : Xml
ZipPJ
Cette opération vous permet de compresser les pièces jointes d'un message et de récupérer le message mis à jour.
Requête
Vous devez fournir au service le message pour lequel vous souhaitez compresser les pièces jointes
Elle prend en paramètre :
Paramètre | Type | Valeur par défaut | Description |
---|---|---|---|
IDMessage |
Les entête de la requête sont :
En-tête | Description | |
---|---|---|
CustomerInfos | facultatif | |
SessionToken | obligatoire | token de la session |
UsernameToken | obligatoire | information de connexion |
OptionDialogue | facultatif | les options de dialogue |
APIUUID | facultatif | identifiant uuid de l'application |
Réponse
Le service vous renvoie le message mis à jour, c'est à dire avec les pièces jointes compressées en un fichier zip Les destinataires sont recontrôlés ainsi que la taille totale des pièces jointes car on vient de les compresser
Les entêtes retournées sont :
- RecipientCheck :
- ReturnType : toujours égal à List,
- CustomerInfos (si fourni dans l'entête),
- XSDSchema : toujours égal à List,
- PJSizeCheck :
Les valeurs retournées sont de types : Xml
Entêtes NOUTOnline
Action
<Action simax:title="Créer article" simax:typeAction="2386" simax:typeReturn="Record" userConfirmation="1">156...</Action>
<?php
$oSOAPClient->getSoapHeaderAction();
Ce header a comme valeur l'identifiant de l'action qui a déclenché cette réponse et vous permet donc de savoir à quelle question(requête) le service vous répond. Il a pour attributs :
title
: le libellé de l'action (chaîne de caractère)typeAction
: identifiant du type de l'action (entier)typeReturn
: Obsolète voir header ReturnType. Le type de retour de l'action demandée précédemmentuserConfirmation
: (optionnel)- 0 : (par défaut) pas de confirmation par l'utilisateur
- 1 : l'action doit être confirmée par l'utilisateur. Dans le cas d'une liste, l'utilisateur doit valider les filtres avant que la liste ne soit chargée.
ActionContext
<ActionContext>14585....</ActionContext>
<?php
//donner un contexte d'action à une requête
$oSOAPClient->setSoapHeaderActionContext('14585....');
//récupérer le contexte d'action de la réponse
$actionContext = $oSOAPClient->getSoapHeaderActionContext();
Dans une requête, ActionContext
contient l'identifiant du contexte d'action que l'on souhaite utiliser pour éxécuter l'action.
Ce contexte d'action n'est pas obligatoire pour toutes les requêtes mais s'il est présent, le service se charge de vérifier s'il est compatible avec l'action de la requête. Si oui, le service utilise ce contexte d'action. Sinon, le service se charge d'en générer un nouveau comme dans le cas où aucun contexte d'action n'est fournit. Dans tous les cas, le contexte d'action finalement utilisé sera dans la réponse SOAP du service dans ce même header.
Dans une réponse, ActionContext
contient l'identifiant du contexte d'action utilisé pour éxécuter l'action. Comme vu précédemment, il peut être différent de celui envoyé par le client dans la requête.
Le client est donc responsable de récupérer le contexte d'action de la réponse pour poursuivre le dialogue.
APIUser
<APIUser>1</APIUser>
<?php
$oSOAPClient->setSoapHeaderAPIUser(1);
Le APIUser est une balise pour forcer l'utilisation de l'utilisateur d'application.
- 0 : si on veut l'utilisateur connecté (par défaut)
- 1 : si on veut l'utilisateur d'application
Ce header permet d'utiliser l'utilisateur d'application, qui a souvent plus de droit, pour éxécuter les actions.
APIUUID
<APIUUID>6aff6e77-e6a1-4c6a-b67a-dfe16f98891a</APIUUID>
<?php
$oSOAPClient->setSoapHeaderAPIUUID('6aff6e77-e6a1-4c6a-b67a-dfe16f98891a');
Identifiant de l'application enregistrée dans le site d'administration de NOUTOnline.
AutoValidate
<AutoValidate>1</AutoValidate>
<?php
$oSOAPClient->setSoapHeaderAutoValidate(-1);
Ce header permet de valider ou d'annuler automatiquement l'action courante.
Les valeurs possibles sont les suivantes :
- 0 : (par défaut) comportement standard de l'action, c'est à dire que certaines actions comme Print ou Delete sont automatiquement validées et qu'un Create par exemple a besoin d'un Validate.
- 1 : demander la validation apres l'execution de l'action
- -1 : demander l'annulation de l'action (annulation par l'application)
- -2 : demander l'annulation de l'action (annulation utilisateur)
ConnectedExtranet
<ConnectedExtranet>
<Form title="Client">2564</Form>
<Element title="M.Dupont">1485265</Element>
</ConnectedExtranet>
<?php
$oSOAPClient->getSoapHeaderConnectedExtranet();
Ce header permet au service, dans la réponse du GetTokenSession, de renseigner quel sera l'utilisateur extranet utilisé pour l'éxécution des actions. Il est composée de :
- Form : formulaire réel de l'utilisateur extranet connecté
- Element : enregistrement correspondant à l'utilisateur extranet connecté
ConnectedUser
<ConnectedUser>
<Form title="Utilisateur">1169</Form>
<Element title="superviseur">2</Element>
</ConnectedUser>
<?php
/** @var \NOUT\Soap\StructType\ConnectedUser $oConnectedUser */
$oConnectedUser = $oSOAPClient->getSoapHeaderConnectedUser();
$oConnectedUser->Form;
$oConnectedUser->Element;
Cette balise représente l'utilisateur intranet connecté. Elle est composée de :
- Form : formulaire réel de l'utilisateur connecté
- Element : enregistrement correspondant à l'utilisateur connecté
Count
<Count>
<NbCalculation>5</NbCalculation>
<NbLine>39</NbLine>
<NbFiltered>34</NbFiltered>
<NbTotal>34</NbTotal>
</Count>
<?php
$oSOAPClient->getSoapHeaderCount();
La balise Count
se décompose de la manière suivante :
NbTotal
: le nombre total d'enregistrement dans le formulaire, tient compte du réglage des invalides (Ghost
des OptionDialogue)NbFiltered
: nombre total de lignes (enregistrement, rupture et ligne de calculs de fin de liste)NbLine
: nombre d'enregistrementNbCalculation
: nombre de ligne de calculs de fin de liste
CustomerInfos
<CustomerInfos>{blablabla}</CustomerInfos>
<?php
//mise à jour de l'entête
$oSOAPClient->setSoapHeaderCustomerInfos('un texte qui sera renvoyé tel quel');
//récupération des informations de l'entête
$string = $oSOAPClient->getSoapHeaderCustomerInfos();
Cette balise contient des informations envoyé par le client, elles seront renvoyées tel quel par NOUTOnline.
DefaultDisplayMode
<DefaultDisplayMode>List</DefaultDisplayMode>
La balise DefaultDisplayMode
contient le mode d'affichage par défaut de la liste.
Pour les valeurs possible voir l'entête PossibleDisplayMode.
Element
<Element simax:title="M.Dupont">47654...</Element>
<?php
$oSOAPClient->getSoapHeaderElement();
Ce header contient l'identifiant de l'enregistrement lié à l'action dont on reçoit la réponse. Il a pour attributs :
title
: libellé de l'enregistrement
Filter
<Filter>
<xml>
<id_2654 simax:id="18453496197891" simax:title="">
...
</id_2654>
</xml>
<xs:schema>
<xs:element xs:name="id_2654" simax:name="">
<xs:complexType>
<xs:sequence>
...
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:schema>
</Filter>
<?php
$oSOAPClient->getSoapHeaderFilter();
Ce header contient la description et les valeurs des filtres des listes, vues, tableaux croisés. Il est composée de :
xs:schema
: description des filtres associés à cette listexml
: valeur des filtres
Form
<Form simax:title="Utilisateur" Checksum="638658..." typeForm="2029" sort1="537..." sort1asc="0" withBtnOrderPossible="1">156...</Form>
<?php
$oSOAPClient->getSoapHeaderForm();
Ce header a comme valeur l'identifiant du formulaire lié à la réponse courante. Il a pour attributs :
title
: nom du formulairechecksum
: (entier) valeur qui permet de savoir si le formulaire a changé depuis la dernière action (utile pour la gestion de cache).typeForm
: identifiant du type de formulaire- 2029 : Formulaire
- 9153 : Tableau croisé
- 13615 : Vue
withBtnOrderPossible
: (optionnel)- 0 : (par défaut) il n'est pas possible de réordonner la liste
- 1 : il est possible de réordonner la liste
sort1
,sort2
,sort3
: identifiants des colonnes de tri courant s'il y en a.sort1asc
,sort2asc
,sort3asc
: sens des tri courant s'il y en a0
: tri descendant1
: tri ascendant
NextCall
<NextCall>1000</NextCall>
<?php
$oSOAPClient->getSoapHeaderNextCall();
Ce header est envoyé par le service uniquement en réponse à une requête GetTemporalAutomatism.
Il contient le temps (en ms) à attendre avant le prochain appel à GetTemporalAutomatism.
Si le temps = 0, c'est qu'il n'est pas nécessaire de réenvoyer cette opération.
OptionDialogue
<OptionDialogue>
<Readable>0</Readable>
<EncodingOutput>1</EncodingOutput>
<DisplayValue>1</DisplayValue>
<ReturnValue>0</ReturnValue>
<ReturnXSD>0</ReturnXSD>
<HTTPForceReturn>0</HTTPForceReturn>
<Ghost>0</Ghost>
<DefaultPagination>0</DefaultPagination>
<LanguageCode>12</LanguageCode>
<ListContentAsync>1</ListContentAsync>
<VersionMin>1</VersionMin>
<VersionPref>1</VersionPref>
</OptionDialogue>
<?php
$oOptionDialogue = new \NOUT\Soap\StructType\OptionDialogue(
/* readable */ 0,
/* encodingOutput */ 1,
/* returnValue */ 1,
/* returnXSD */ 0,
/* hTTPForceReturn */ 0,
/* ghost */ 1,
/* defaultPagination */ 0,
/* displayValue */ 0,
/* languageCode */ 12,
/* withFieldStateControl*/ 0,
/* listContentAsync */ 1,
/* versionMin */ 1,
/* versionPref */ 1);
$oSOAPClient->setSoapHeaderOptionDialogue($oOptionDialogue);
Cette structure vous permet de décrire le dialogue SOAP entre le client et NOUTOnline.
Cette balise est composé de :
Readable
(entier) qui donne le format des balises XML- 0 (par défaut) : nom balise = identifiant tableau ou colonne (illisible)
- 1 : nom balise = libellé tableau ou colonne (lisible)
EncodingOutput
(entier) qui indique si on souhaite que les types string soient encodés. (cf tous les elements de type string dans la WSDL).- 0 : pas d'encodage
- 1 (par défaut) : les strings sont encodés
ReturnValue
(entier) qui indique si lors d'une impression avec modèle d'édition ou lors d'un export, on souhaite recevoir le contenu du fichier à imprimer/à exporter.- 0 : ne pas recevoir le fichier résultat
- 1 : recevoir la représentation binaire du fichier résultat (cf balide Data)
ReturnXSD
(entier) pour indiquer si le client souhaite recevoir le XSD qui décrit la structure du XML reçu.- 0 : le xsd n'est pas retourné
- 1 (par défaut) : le xsd est retourné
HTTPForceReturn
qui donne le code de retour HTTP souhaité en cas d'erreur.- 0 (par défaut) : le code de retour est le code HTTP normal ( succès 200, erreur 500)
- autres : 200, 500, 404, etc ...
Ghost
(entier) qui permet de savoir quels enregistrements le client souhaite recevoir- 1 (par défaut) : uniquement les enregistrements valides
- 2 : uniquement les enregistrements invalides (cf bouton fantôme dans SIMAX)
- 3 : tous les enregistrements (valides et invalides)
DefaultPagination
(entier) qui donne le nombre de lignes par défaut pour la pagination. Utile pour l'ouverture de liste par automatisme.- 0 (par défaut) : pas de pagination
- autres valeurs : nombre de lignes par page
DisplayValue
qui donne le format des valeurs des balises XML en entrée et en sortie. Voir Le format des données pour le calcul de la valeur.LanguageCode
qui donne le code langue dans lequel on souhaite recevoir les informations :- 0 (par défaut) : la langue indiqué à l'ouverture de la session par GetTokenSession est utilisée,
- autres valeurs : voir l'opération GetLanguages pour les valeurs possibles.
ListContentAsync
qui indique si on souhaite charger ou non les listes en asynchrone :- 0 (par défaut) : on charge les sous-listes de l'enregistrement en même temps que les autres colonnes et donc le XML contient le détail de chaque enregistrements des sous-listes.
- 1 : le XML ne contient que les identifiants des enregistrements des sous-listes et pas leur description. On demande donc un chargement en asynchrone. Dans ce cas, il sera possible par la suite d'appeler la méthode GetSubListContent sur les colonnes de type liste pour récupérer le contenu de la liste. Remarque : cette sous-balise sera particulièrement utilisée pour des raisons d'optimisation et pour pouvoir gérer des modes d'affichage différents sur les sous-listes. Par exemple, la sous-liste doit s'afficher en graphe, on n'a pas besoin de connaître le détail de chaque enregistrement.
PJSizeCheck
<PJSizeCheck>0</PJSizeCheck>
<?php
$oSOAPClient->getSoapHeaderPJSizeCheck();
Ce header à pour valeur :
- 0 : la taille totale des pièces jointes est ok (accepté)
- 1 : la taille totale des pièces jointes est importante (accepté mais recommandé de zipper)
- 2 : la taille totale des pièces jointes est supérieure à la taille maximale recommandée (mail rejeté car taille trop grande)
PlanningFilter
<PlanningFilter>
<Resource>3258756.....</Resource>
<Table>57856....</Table>
<StartTime>20090120T000000</StartTime>
<EndTime>20090130T000000</EndTime>
</PlanningFilter>
<?php
$oSOAPClient->getSoapHeaderPlanningFilter();
Ce header est renvoyé par le service uniquement dans le cas d'une réponse à un GetPlanningInfo
Il contient l'ensemble des valeurs des filtres du planning fournit dans les paramètres de la requête GetPlanningInfo par le client.
Il est composé de :
Resource
: contient l'identifiant de la ressource dont on liste les événements.Table
: précise à partir de quel formulaire les événements sont recherchés.StartTime
: début de la période de recherche (Format ICS AAAAMMJJ+T+HHMMSS)EndTime
: fin de la période de recherche (Format ICS AAAAMMJJ+T+HHMMSS)
PossibleDisplayMode
<PossibleDisplayMode>List|Chart</PossibleDisplayMode>
La balise PossibleDisplayMode
contient la liste des modes d'affichage disponible pour la liste.
Les valeurs possibles sont :
List
: affichage en mode listePlanning
: affichage en planningThumbnail
: affichage en miniatureDataTree
: affichage en arborescence
RecipientCheck
<RecipientCheck>
<To address="M. Simax" type="multiple">
<To id="../..">Monsieur Simax <m.simax@nout.fr></To>
<To id="../..">Monsieur Simax2 <m.simax2@nout.fr></To>
</To>
</RecipientCheck>
<?php
$oSOAPClient->getSoapHeaderRecipientCheck();
Ce header contient les destinataires qui pose problème lors de la résolution d'adresse (ie lien entre le destinataire indiqué et un enregistrement de la base de données).
Il est composé de trois sous-balises (optionnelles) :
To
Cc
Cci
qui ont pour attributs :
address
: adresse du contact qui pose problèmetype
: type de problème rencontré qui peut avoir les valeurs suivantes :- unknown : impossible de trouvé un destinataire et l'adresse n'est pas exploitable
- unresolved : pas trouvé de destinataire correspondant à l'adresse email
- multiple : plusieurs possibilités pour l'adresse. Dans ce dernier cas, la balise contient des balises filles du même nom avec pour valeur une adresse complète et en attribut id le contact associé.
ReturnType
<ReturnType>Record</ReturnType>
<?php
$oSOAPClient->getSoapHeaderReturnType();
La valeur est une énumération qui permet de savoir quel type de réponse le service vient de renvoyer. Et ainsi savoir comment lire le contenu du Body.
Les valeurs possibles sont :
Valeur | Description |
---|---|
Générique | |
Empty | Réponse vide |
Report | Compte rendu d'une action |
Value | Réponse avec une valeur |
Record | Description d'un enregistrement |
List | Description d'une liste d'enregistrement |
RequestFilter | Retour d'une liste initialisé à partir d'une requête de filtre |
Particulière | |
XSD | Le retour est un XSDSchema |
Identification | Résultat de l'authentification (GetTokenSession) |
Planning | Retour d'une requête de planning (GetPlanningInfo) |
GlobalSearch | Retour de l'action de recherche globale |
ListCalculation | Liste des calculs en bas de liste |
Intermédaire | |
AmbiguousAction | l'action est ambigüe, il faut choisir parmis les formulaires proposés |
MessageBox | Une question à afficher à l'utilisateur |
ValidateAction | Compléter ou valider les paramètres d'une action |
ValidateEnreg | Erreur lors de la validation d'un enregistrement. L'erreur est dans le header ValidateError |
PrintTemplate | Demande de choix de modèle d'édition |
Messagerie | |
MailServiceRecord | Enregistrement provenant de la messagerie |
MailServiceList | Liste provenant de la messagerie |
MailServiceStatus | Status de la messagerie |
WithAutomaticResponse | Réponse au chech de réponse automatique |
SessionLanguageCode
<SessionLanguageCode>10</SessionLanguageCode>
<?php
$langue = $oSOAPClient->getSoapHeaderSessionLanguageCode();
La valeur est en entier qui représente la langue de la session courante. Voir le paramètre DefaultClientLanguageCode pour les valeurs possibles.
SessionToken
<SessionToken>7cec0345-3abb-4353-bfb9-aacc143a2d05</SessionToken>
<?php
$oSOAPClient->setSoapHeaderSessionToken($sessionToken);
Balise qui contient le token de la session courante.
UsernameToken
L'entête UsernameToken
fonctionne est le même que le paramètre que pour la méthode GetTokenSession.
Les balises Nonce
et Created
doivent être régénérer à chaque requête (ce qui implique que Password
doit être aussi recalculé).
ValidateError
<ValidateError>
<Message>La colonne obligatoire 'Date' de 'Affaire' n'a pas été remplie.</Message>
<ListCol>
<Column title="libelle de la colonne">....</Column>
</ListCol>
</ValidateError>
<?php
$oSOAPClient->getSoapHeaderValidateError();
Ce header est présent dans une réponse SOAP quand le service nous renvoie un enregistrement invalide avec un ReturnType de type ValidateEnreg.
Ce header est composé de la manière suivante :
Message
: message d'erreur à l'intention de l'utilisateurListCol
: liste des colonnes concernées :Column
: identifiant de la colonne. L'attributtitle
contient le libellé de la colonne.
XSDSchema
<XSDSchema>
<xs:schema VERSION="1" VERSION_LECTECRIT="1" VERSION_LECTURE="1" DATEHEURE="2008062509404771" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:simax="http://www.nout.fr/XMLSchema">
<xs:element xs:name="Client" simax:name="client">
<xs:complexType>
<xs:sequence>
...
<xs:sequence>
<xs:complexType>
</xs:element>
</xs:schema>
</XSDSchema>
<?php
/** @var string $schema */
$schema = $oSOAPClient->getSoapHeaderXSDSchema();
La balise XSDSchema contient la structure XSD des données envoyées par le service dans le body (enregistrement ou liste) .
Cette balise est présente uniquement si on a demandé le XSD grâce à l'option <ReturnXSD>
à 1 de l'entête OptionDialogue dans le header de la requête.
Paramètres NOUTOnline
Address
<Address>dupont@monsite.fr</Address>
Contient une adresse email
CalculationList
<CalculationList>
<Calculation>{calcul 1}</Calculation>
<Calculation>{calcul 2}</Calculation>
</CalculationList>
<?php
$CalculationList = new \NOUT\Soap\StructType\CalculationListType();
$CalculationList->addToCalculation(\NOUT\Soap\EnumType\CalculationTypeEnum::VALUE_AVERAGE);
$CalculationList->addToCalculation(\NOUT\Soap\EnumType\CalculationTypeEnum::VALUE_SUM);
Liste de type de calcul.
La balise est composé de balise Calculation
. Elle contient autant de balise Calculation
que de calculs voulus.
Les valeurs possibles sont :
Les valeurs possibles sont :
- Sum
pour la somme
- Average
pour la moyenne
- Min
pour le minimum
- Max
pour le maximum
- Count
pour le nombre d'élément pour lesquels la colonne est renseignée
- Percent
pour le pourcentage
CallingColumn
<CallingColumn>STRING</CallingInfo>
Cette balise contient le libellé ou l'identifiant de la colonne à l'origine de la requête courante. Ce paramètre est déprécié et est remplacé par le paramètre CallingInfo
CallingInfo
<CallingInfo>
<Column>STRING</Column>
<Context>STRING</Context>
<Record>STRING</Record>
<Value>STRING</Value>
</CallingInfo>
<?php
$oCallingInfo = new \NOUT\Soap\StructType\CallingInfoType('<idcolonne>', '<idcontexte>', '<record>', '<value>');
Cette balise contient les informations sur l'origine de la requête courante. Elle se décompose de la manière suivante :
Context
: identifiant du contexte origine de l'appelRecord
: enregistrement origine de l'appel si applicableColumn
: libellé ou identifiant de la colonne à l'origine de l'appel si applicableValue
: valeur de la colonne origine si applicable
CheckSum
<Checksum>473437....</Checksum>
Cette balise est utile pour toutes les méthodes qui sont des actions de type liste pour faire de la gestion de cache.
Elle contient le checksum du tableau. Si le checksum envoyé est différent de celui calculé par le serveur, les données du tableau ont changé.
ColList
<ColList>
<Col>{colonne 1}</Col>
<Col>{colonne 2}</Col>
</ColList>
<?php
$ColList = new \NOUT\Soap\StructType\ColListType();
$ColList->addToCol(COL_Ville_Libelle);
Liste de colonnes.
La balise est composé de balise Col
. Elle contient autant de balise Col
que de colonne voulues.
La balise Col
contient le libellé ou l'identifiant de la colonne.
Column
<Col>46716464</Col>
Libellé ou identifiant de la colonne dont on souhaite la valeur
Complete
<Complete>1</Complete>
0 : ne recevoir que les colonnes modifiées,
1 : recevoir toutes les colonnes de l'enregistrement
Context
<Context>1</Context>
0 Annule la dernière action
1 Annule tout le contexte d'action
CondList
<CondList>
<Operator type="AND">
<Condition>
<CondCol>15311</CondCol>
<CondType>BeginWith</CondType>
<CondValue>montb</CondValue>
</Condition>
<Condition>
<CondCol>departement</CondCol>
<CondType>Equal</CondType>
<CondValue>34 Herault</CondValue>
</Condition>
</Operator>
</CondList>
<?php
$clFileNPI = new \NOUT\Soap\Entity\ConditionFileNPI();
$clFileNPI->EmpileCondition('departement', \NOUT\Soap\Entity\ConditionColonne::COND_EQUAL, '34 Herault');
$clFileNPI->EmpileCondition(\NOUT\Soap\Entity\ConditionColonne::COL_GENERIQUE_MINIDESC, \NOUT\Soap\Entity\ConditionColonne::COND_BEGINWITH, 'montb');
$clFileNPI->EmpileOperateur(\NOUT\Soap\Entity\Operator\OperatorType::OP_AND);
$sCondList = $clFileNPI->sToSoap();
Cette balise représente l'arbre des conditions, elle a pour fils soit un Operator
, soit une Condition
.
Operator
Représente un opérateur dans l'arbre de condition. La balise se compose de :
- un attribut
type
obligatoire - d'au minimum 1 fils :
- soit
Operator
- soit
Condition
- soit
Les valeurs possibles pour l'attribut type
sont :
Valeur | Description |
---|---|
AND | opérateur ET ( && ) |
OR | opérateur OU ( || ) |
NOT | opérateur NON ( ! ) |
Condition
Représente une condition. La balise se compose de :
CondCol
: colonne sur laquelle porte la condition (si vide, la condition porte sur le libellé des enregistrement ie les repris dans l'intitulé)CondType
: le type de la conditionCondValue
: la valeur de la condition
Les différents type de condition sont :
Valeur | Description |
---|---|
Equal | Egalité (=) |
Different | Différence (!=) |
Less | Strictement plus petit (<) |
LessOrEqual | Plus petit ou égal (<=) |
Better | Strictement plus grand (>) |
BetterOrEqual | Plus grand ou égal (>=) |
Contain | Contient |
DoNotContain | Ne contient pas |
BeginWith | Commence par |
DoNotBeginWith | Ne commence pas par |
EndWith | Finit par |
DoNoEndWith | Ne finit pas par |
IsWithin | Est contenu par |
BeginWithWordByWord | Commence par mot par mot |
WithRight | Avec droit |
MenuVisible | Menu Visible |
Les conditions WithRight
et MenuVisible
sont particulières.
WithRight
s'applique sur les actions et prend pour valeur0
ou1
MenuVisible
s'applique sur les menus et prend pour valeur0
ou1
CreateType
<CreateType>answer</CreateType>
Type de création : - Empty : nouveau message - Forward : transfert - Answer : réponse - Answer All : réponse à tous - Answer type : réponse type
Valeur par defaut : Empty
DataPJ
<DataPJ>.....</DataPJ>
Correspond au contenu binaire d'une pièce jointe
DefaultClientLanguageCode
<DefaultClientLanguageCode>0</DefaultClientLanguageCode>
code langue par défaut du navigateur
Remarque : Si DefaultClientLanguageCode est à 0, on renvoie dans le header la balise SessionLanguageCode avec le code langue de l'utilisateur
DPI
<DPI>96</DPI>
Résolution de l'afficheur
DisplayMode
<DisplayMode>Graph</DisplayMode>
Dans les opérations SOAP qui renvoient une liste, ce paramètre permet au client de spécifier le mode d'affichage de la liste désiré (une seule valeur dans la balise).
Remarque : si le mode d'affichage demandé n'est pas disponible alors SIMAX renvoie le mode Liste
Les valeurs possibles sont les suivantes :
List
(mode d'affichage par défaut)Chart
Planning
Thumbnail
DataTree
List
Cette le format d'affichage par défaut, affichage en liste avec les mises en forme, les contrôles d'état de champ, les boutons non détail ou affiché en ligne, les ruptures, etc...
Chart
Réponse
<?xml version="1.0" encoding="utf-8"?>
<env:Envelope xmlns:env="http://schemas.xmlsoap.org/soap/envelope/" xmlns:simax="http://www.nout.fr/soap">
<env:Header xmlns="http://www.nout.fr/wsdl/SimaxService.wsdl/">
<ReturnType>NumberOfChart</ReturnType>
...
</env:Header>
<env:Body>
<ListResponse xmlns="http://www.nout.fr/wsdl/SimaxService.wsdl/">
<xml>
<numberOfChart>2</numberOfChart>
</xml>
</ListResponse>
</env:Body>
</env:Envelope>
Affichage des données sous forme de graphes, déterminés automatiquement par SIMAX ou par paramétrage. Dans ce cas, l'opération retourne NumberOfChart dans le header ReturnType. C'est à dire le nombre de graphe à afficher.
Il faut ensuite appelé l'opération GetDescriptionChart avec l'indice du graphe (commence à 1) pour récupérer la description du graphe.
Planning
Affichage sous forme de planning.
Thumbnail
Affichage en mode vignette.
DataTree
Affichage en mode arborescence.
ElemSrc
<ElemSrc>{enregistrement}</ElemSrc>
Libellé ou identifiant de l'élément source.
Encoding
<Encoding>base64</Encoding>
Format d'encodage dans lequel la valeur de la colonne est retournée.
EndDate
<EndDate>20090301</EndDate>
Correspond à la date à laquelle on doit s'arrêter de chercher dans RequestMessage. Si ce paramètre n'est pas remplit, on cherche jusqu'à aujourd'hui
EndTime
<EndTime></EndTime>
date/heure jusqu'à laquelle on doit rechercher les informations (format AAAAMMJJHHMMSS)
Valeur par defaut : dernier jour du mois courant
ExtranetUser
<ExtranetUser>
<UsernameToken>
<Username>Web</Username>
<Password>7eAHpM56Q...=</Password>
<Nonce>147852369azerty</Nonce>
<Created>2008-06-18T17:13:00</Created>
</UsernameToken>
<Form>Client</Form>
</ExtranetUser>
La balise ExtranetUser
se décompose de la manière suivante :
- Une balise UsernameToken : identifiant de connexion de l'utilisateur final
- Une balise
Form
: identifiant ou libellé du formulaire sur lequel porte l'extranet
Filter
<Filter>
<Way>Received</Way>
<State>Unprocessed</State>
<Inner>1</Inner>
<Email>1</Email>
<Spam>0</Spam>
<Max>0</Max>
<From/>
<Containing/>
</Filter>
Filter regroupe tous les filtres pouvant être utilisés lors d'une recherche de messages. - Way (type Enum) pour rechercher les messages reçus, envoyés ou tous. Les valeurs possibles sont : received, sent , all - State (type Enum) précise dans quel état doivent être les emails : traités, non traités ou tous. Les valeurs possibles sont : processed , unprocessed , all - Inner : messages interne ? (0 ou 1) - Email : email ? (0 ou 1) - Spam : spam ? (0 ou 1) - Max : messages de Max ? (0 ou 1) - From : Expéditeur des messages sous forme d'un libellé ou d'un identifiant (type Texte) - Containing : Texte qui doit apparaître dans le corps du message (type Texte)
Form
<Form>24356.....</Form>
Identifiant du formulaire de l'enregistrement à créer
Heigth
<Height>400</Height>
(à partir de la version 05.00.1026.01 ) Taille verticale en pixel. Si le paramètre Width n'est pas présent, il est calculé de manière à conserver les proportions de l'image.
ID
<ID>14.....</ID>
identifiant de l'action à éxécuter
IDAnswerType
<IDAnswerType>75348....</IDAnswerType>
(ignoré si
IDFolder
<IDFolder>764343....</IDFolder>
Identifiant d'un dossier de la messagerie
IDList
<IDList>65485.....</IDList>
Identifiant d'une liste de dossier ou de message
IDMessage
<IDMessage>543754....</IDMessage>
Correspond à l'identifiant du message dans le cas où on souhaite créer un élément lié à un message de la messagerie
IDPJ
<IDPJ>7637643...</IDPJ>
Contient l'identifiant d'une mièce jointe
Index
<Index>5</Index>
Indice numérique pour permettre d'indiquer un n-ièm élément
Items
<items>36543434|5743574|36874354354|368754357|735435787|</items>
Ce paramètre contient une liste d'identifiant d'enregistrement séparés par le caractère '|'. Il est le paramètre de l'action SelectItems qui permet d'envoyer à SIMAXOnline la selection que l'utilisateur a fait sur une liste.
ListMode
<ListMode>1</ListMode>
Ce paramètre permet de dire si c'est une impression fiche ou liste car il y a une différence pour les modèles d'édition . En effet les modèles d'édition peuvent des modèles pour liste. Ce paramètre permet de différencier l'impression de plusieurs fiches et l'impression d'une liste. Par défaut, l'impression est une impression mode fiche
Valeur par defaut : 0
Login
<Login>dupont</Login>
Login du compte utilisateur
MaxResult
<MaxResult>10</MaxResult>
nombre maximum de resultats souhaités
Message
<Message>74374.....</Message>
Identifiant du message lié à l'opération de messagerie
MessageType
<MessageType>Email</MessageType>
Pour indiquer si on souhaite lister les emails ou les messages d'annulation. Les valeurs possibles sont : Annulation (ou Cancellation), Email
MineType
<MineType>image/png</MineType>
Type mine de la valeur de la colonne renvoyée.
MoveType
<moveType>First</moveType>
Direction pour le ré ordonnancement
les valeurs possible sont : - First : place les éléments sélectionnés en premier - Up : conjuré avec Scale permet de monter les éléments de x position - Down : conjuré avec Scale permet de descendre les éléments de x position - Last : place les éléments sélectionnés en fin de liste
Valeur par defaut : First
Offset
<offset>10</offset>
Paramètre qui indique la position du bloc d'enregistrements dans la liste.
Valeur par defaut : 0
OnlyData
<OnlyData>1</OnlyData>
Ce paramètre indique si on souhaite recevoir les données du graphe ou sa représentation binaire (c.a.d. l'image directement)
Valeur par defaut : 1 (vrai)
ParamXML
<CondList>
<Operator type="AND">
<Condition>
<CondCol>15311</CondCol>
<CondType>BeginWith</CondType>
<CondValue>montb</CondValue>
</Condition>
<Condition>
<CondCol>departement</CondCol>
<CondType>Equal</CondType>
<CondValue>34 Herault</CondValue>
</Condition>
</Operator>
</CondList>
<?php
$clFileNPI = new \NOUT\Soap\Entity\ConditionFileNPI();
$clFileNPI->EmpileCondition('departement', \NOUT\Soap\Entity\ConditionColonne::COND_EQUAL, '34 Herault');
$clFileNPI->EmpileCondition(\NOUT\Soap\Entity\ConditionColonne::COL_GENERIQUE_MINIDESC, \NOUT\Soap\Entity\ConditionColonne::COND_BEGINWITH, 'montb');
$clFileNPI->EmpileOperateur(\NOUT\Soap\Entity\Operator\OperatorType::OP_AND);
$sCondList = $clFileNPI->sToSoap();
ReadOnly
<ReadOnly>1</ReadOnly>
Pour l'operation GetTableChild.
- 1 : uniquement les tableaux abstraits
- 0 : tous les formulaires fils
Valeur par defaut : 0
Record
<Record>448522445214</Record>
Identifiant de l'enregistrement dont on veut la valeur de la colonne
Recursive
<Recursive>1</Recursive>
Pour l'operation GetTableChild. 1 : recherche récursive (de fils en fils) 0 : recherche non récursive, uniquement les fils directs
Valeur par defaut : 0
Resource
<Resource>330224...</Resource>
identifiant de la ressource dont on souhaite les évenements
ResponseType
<ResponseType>0</ResponseType>
Type de réponse automatique demandée 0 : accusé de reception 1 : confirmation de lecture 2 : confirmation de validation
Scale
<scale>1</scale>
échelle de déplacement
Valeur par defaut : 0
SendAutomaticResponse
<SendAutomaticResponse>0</SendAutomaticResponse>
- 0 si on veut juste recevoir la question à afficher à l'utilisateur si il y a une réponse automatique
- 1 si on veut envoyer la réponse automatique
Valeur par defaut : 0
Sentence
<Sentence>Créer contact</Sentence>
Phrase correspondant à l'action à éxécuter
Sort
<Sort{X} asc="1">{colonne de tri}</Sort{X}>
<?php
$oSort = new \NOUT\Soap\StructType\SortType(COL_Ville_Libelle, 1);
Les balises Sort1
, Sort2
, Sort3
sont des balises qui permettent de spécifier un tri.
Sort1
première colonne de triSort2
deuxième colonne de triSort3
troisième colonne de tri
La valeur de la balise est le libellé ou l'identifiant de la colonne.
Elle a aussi un attribut facultatif asc
qui permet de spécifier le sens :
- 1 tri ascendant (par défaut)
- 0 tri descendant
SpecialParamList
<SpecialParamList>
<First>0</First>
<Length>10</Length>
<WithBreakRow>1</WithBreakRow>
<WithEndCalculation>1</WithEndCalculation>
<Sort1 asc="1">Nom</Sort1>
<Sort2 asc="0">Prenom</Sort2>
</SpecialParamList>
<?php
$stSpecialParamList = new \NOUT\Soap\StructType\SpecialParamListType(
0,
10,
1,
1,
new \NOUT\Soap\StructType\SortType('Nom', 1),
new \NOUT\Soap\StructType\SortType('Prenom', 0)
);
La balise SpecialParamList
est une balise complexe qui peut contenir les balises filles suivantes :
First
: indice du 1er élément à envoyer. Si absent, on commence à l'indice 0 (optionnel)Length
: nombre d'enregistrements à envoyer en commençant parFirst
. Si absent, on retourne les résultats jusqu'au dernier. (optionnel)WithBreakRow
: (optionnel)1
: avec les ruptures0
: sans les ruptures (par défaut)
WithEndCalculation
: (optionnel)1
avec les calculs de fin de liste2
sans les calculs de fin de liste (par défaut)
ChangePage
: (optionnel)0
: rechargement de la liste ; à mettre si c'est la première demande ou si il y a eu un changement quelconque comme une modification des filtres par exemple ou si l'utilisateur veut rafraichir.1
: changement de page (pagination), on utilise la liste chargée dans le cache sans la recharger.
Sort1
,Sort2
etSort3
: identifiants ou libellés des colonnes sur lesquelles on souhaite trier un attributasc
permet de préciser le sens du tri (1
par défaut: tri ascendant,0
: tri descendant).
StartDate
<StartDate>20090301</StartDate>
Correspond à la date à laquelle on commence la recherche RequestMessage
StartTime
<StartTime></StartTime>
date/heure à partir de laquelle on souhaite les informations (format AAAAMMJJHHMMSS)
Valeur par defaut : dernier jour du mois courant
Table
<Table>{formulaire}</Table>
Libellé ou identifiant du formulaire sur lequel porte l'opération.
TableSrc
<TableSrc>{formulaire}</TableSrc>
Libellé ou identifiant du formulaire de l'élément source.
Template
<Template>24356.....</Template>
Identifiant du modèle d'édition
TransColor
<TransColor>...</TransColor>
Couleur qui fait office de couleur transparente dans le cas où on récupère la valeur d'une colonne de type image (ex: magenta dans une BMP)
TypeConfirmation
<TypeConfirmation>{réponse}</TypeConfirmation>
Les valeurs possibles sont :
1
: OK2
: Annuler3
: Abandonner4
: Réessayer5
: Ignorer6
: Oui7
: Non
UpdateData
<UpdateData>
<xml>
<client_particulier simax:id="269961792..." simax:title="Client particulier">
<nom>Dupont</nom>
<prenom>Pierre</prenom>
<telephone>0612....</telephone>
</client_particulier>
</xml>
</UpdateData>
Contient la valeur des colonnes/champs modifiés de l'enregistement.
UserMessagerie
<UserMessagerie>Eric</UserMessagerie>
Pour indiquer la personne à laquelle doivent appartenir les messages (propriétaire de la messagerie). On peut utiliser le libellé de la personne ou son identifiant
UsernameToken
<UsernameToken>
<Username>Web</Username>
<Password Type="wsse:PasswordDigest">7eAHpM56Q...=</Password>
<Nonce>147852369azerty</Nonce>
<Created>2008-06-18T17:13:00</Created>
</UsernameToken>
Calcul du mot de passe
<?php
$secret = !empty($password) ? base64_encode(md5($password, true)) : 'AAAAAAAAAAAAAAAAAAAAAA==';
$encoded = base64_encode(sha1($nonce.$created.$secret, true));
?>
Ce paramètre permet de renseigner les informations nécessaire à l'identification suivant le standart OASIS WS-Security 1.1. La balise se décompose de la manière suivante :
Username
: identifiant SIMAXPassword
: mot de passe encodéNonce
: chaîne générée de manière aléatoireCreated
: date et heure de création duNonce
Les informations dans le UsernameToken
doivent être conformes au standart OASIS excepté pour l'information de session propre à SIMAX.
WantContent
<WantContent>1</WantContent>
La valeur 1 est à utiliser pour les modèles de colonne suivantes : - lien vers un fichier : 1 si on souhaite récupérer le contenu du fichier au lieu du chemin du fichier - liste : 1 si on souhaite récupérer le détail de chaque enregistrement de la sous-liste plutôt que seulement la liste des identifiants.
Valeur par defaut : 0
Width
<Width>200</Width>
(à partir de la version 05.00.1026.01)
Taille horizontale en pixel. Si le paramètre Height n'est pas présent, il est calculé de manière à conserver les proportions de l'image.
Documentation de l'API REST
Format général d'url
Le format de l'url est le suivant :
[<paramètres formulaire>/]<action>?[<paramètre d'action>][;<options>][!<chaîne d'identification>
]
Les paramètre d'action
et les options
sont au format :
<paramètre ou option>=<valeur>
séparé par des &
.
Opérations NOUTOnline
Opérations d'utilisation générale
Ces opérations n'ont pas besoin d'authentification.
Opérations | Usage |
---|---|
GetBDD | Récupération des informations sur la bdd |
GetExtranetUserList | Récupération de la liste des utilisateurs extranet |
GetLanguages | Récupération de la liste des langues disponibles dans le paramétrage |
GetListElemList | Récupération de la liste des colonnes de type liste |
GetTableChild | Récupération des formulaire fils d'un autre formulaire |
GetTableList | Récupération de la liste des formulaire |
GetUserExists | Teste si un utilisateur existe |
GetUserGroupList | Récupération de la liste des groupes d'utilisateurs |
GetUserList | Récupération de la liste des utilisateurs |
GetVersion | Récupération du numéro de version du NOUTOnline |
GetWSDL | Récupération de la WSDL |
ResetPasswordFailed | Régénérer un mot de passe pour résoudre un problème de de perte de mot de passe |
Ces opérations ont besoin d'une authentification.
Opérations | Usage |
---|---|
GetCentralIcon | Récupération des informations sur la zone d'accueil |
GetChecksum | Récupération de la version d'un formulaire |
GetLangageVersion | Récupération de la version du langage de la session |
GetMenu | Récupération des informations sur le menu |
GetNbElement | Récupération du nombre d'élément d'une liste avec application de filtre |
GetToolbar | Récupération des informations sur la barre d'outils |
Request | Requête sur un formulaire |
Restart | Redémarrage de NOUTOnline |
Opérations de gestion de session
Opérations | Usage |
---|---|
Disconnect | Fermeture de la session |
GetTokenSession | Ouverture d'une session sécurisée |
Opérations de consultation
Ces méthodes s'appuie sur les actions paramétrées dans SIMAX.
Opérations | Usage |
---|---|
Display | Consulter un enregistrement |
List | Lister des enregistrement |
Search | Rechercher des enregistrement |
Opérations de récupération d'informations diverses
Opérations | Usage |
---|---|
AutoComplete | Récupération d'élément avec condition sur le titre |
GetColInRecord | Récupéreration de la valeur d'une colonne d'un enregistrement |
HasChanged | Demande si l'enregistrement a été modifié |
Request | Faire un requête sur un formulaire |
RequestParam | Faire un requête sur un paramètre |
AutoComplete
/<formulaire>/AutoComplete?<liste des conditions>;<options>!<chaine d'identification>
/<formulaire>/<condition commence par>/AutoComplete?<paramètres>;<options>!<chaine d'identification>
Cette opération permet de filtrer sur le titre les éléments d'un formulaire ; sert pour l'aide à la saisie.
Cette opération nécessite une authentification.
Requête
Requête sans chaîne de recherche
<?php
/** @var \SimpleXMLElement $xml */
$xml = $oREST->AutoComplete(
'ville',
''
);
http://noutonline:8052/ville//autocomplete?!Username=superviseur&Password=JPvnd
Requête avec chaîne de recherche
<?php
/** @var \SimpleXMLElement $xml */
$xml = $oREST->AutoComplete(
'ville',
'montp'
);
http://noutonline:8052/ville/montp/autocomplete?!Username=superviseur&Password=JPvnd
- Elle prend en paramètre de formulaire :
Paramètre | Type | Description | |
---|---|---|---|
formulaire |
string | obligatoire | formulaire sur lequel porte la recherche. |
condition commence par |
string | facultatif | valeur de la condition commence par (pour la recherche sur le titre) |
- Elle prend en paramètre d'action :
Paramètre | Type | Description | |
---|---|---|---|
callingColumn |
string | facultatif | colonne appelante |
Réponse
Réponse d'une requête sur les villes de l'hérault qui commence par 'montp'
HTTP/1.1 200 OK
Content-Type: application/json ;charset=utf-8
Content-Length: 916
[
{
"idnout": "72229169062643",
"title": "Montpascal",
"idicon": "0",
"idcolimage": null
},
{
"idnout": "83748271346990",
"title": "Montpellier",
"idicon": "0",
"idcolimage": null
},
...
]
Cette opération renvoi la liste des éléments du formulaire qui correspondent aux conditions.
Disconnect
PHP
<?php
$oREST->bDisconnect();
Requête
http://localhost:8052/Disconnect?!Username=superviseur&Password=Yd062cQFVga7fRdraeoVitjF0xY%3D&nonce=MC4xMjU2NDMwMCAxNTIwMDAwMDc3&created=Fri%2C+02+Mar+2018+14%3A14%3A37+%2B0000&SessionToken=09df1afd-c8b2-4ad7-a381-f96f5a9815c7
Reponse
HTTP/1.1 200 OK
Content-Length: 0
/Disconnect?!<chaine d'identification>
Cette méthode permet de fermer la session ouverte par GetTokenSession.
Cette opération nécessite une identification.
Cette opération ne requiert aucun paramètres.
Le retour est vide.
Display
Requête
http://noutonline:8052/utilisateur/2/?;readable=0!Username=superviseur&Password=sn7XpF...
Réponse
HTTP/1.1 200 OK
Content-Type: application/xml ;charset=utf-8
Content-Length: 501
<xml VERSION="1" VERSION_LECTECRIT="1" VERSION_LECTURE="1" DATEHEURE="2018030808273777" xmlns:simax="http://www.nout.fr/XML/" xmlns:simax-layout="http://www.nout.fr/XML/layout">
<id_1169 simax:id="2" simax:title="Superviseur" simax:xsdLevel="0">
<id_1171>Superviseur</id_1171>
<id_1172>Super</id_1172>
<id_1173>Viseur</id_1173>
<id_1174>florian@nout.fr</id_1174>
<id_7623>city hunter - ryo couleur 027.jpg</id_7623>
<id_7624>1</id_7624>
<id_9424/>
<id_10545>0</id_10545>
</id_1169>
</xml>
PHP
<?php
$oREST->Display('utilisateur', '2', array(NOUT\Rest\Service::OPTION_Readable => 0));
/<formulaire>/<enregistrement>/?;<options>!<chaîne d'identification>
(l'action peut être omise)
Cette opération permet d'ouvrir un enregistrement de formulaire en consultation.
Cette opération nécessite une authentification.
Elle prend en paramètres de formulaire :
Paramètre | Type | Description | |
---|---|---|---|
formulaire |
string | obligatoire | formulaire sur lequel porte la requête |
enregistrement |
string | obligatoire | enregistrement qu'on veut consulter |
Elle prend en option :
Option | Type | Défaut | Description | |
---|---|---|---|---|
readable |
int (0|1) | facultatif | 1 |
|
displayvalue |
int | facultatif | 0 | format d'affichage des données |
languagecode |
int | facultatif | 0 | code langue pour le retour |
GetBDD
PHP
<?php
$sRet = $oREST->sGetBDD();
Requête
http://noutonline:8052/GetBDD?
Réponse
HTTP/1.1 200 OK
Content-Type: text/plain
Content-Length: 32
mysql - root@localhost(simaxv12)
/GetBDD?
Cette opération permet d'avoir une information sur la bdd à laquelle NOUTOnline est connecté.
Cette opération ne requiert aucune authentification, ni paramètres ou options.
GetCalculation
GetColInRecord
PHP
<?php
$Ret=$oREST->GetColInRecord('utilisateur', '2', 'photo', array(NOUT\Rest\Service::OPTION_WantContent => 1));
Requête
http://noutonline:8052/utilisateur/2/7623/?;wantcontent=1!Username=superviseur&Password=sn7XpF...
Réponse
HTTP/1.1 200 OK
Content-Disposition: inline;filename="cityhunter-ryocouleur027.jpg";size=112066
Content-Type: image/jpeg
Content-Length: 112066
ÿØÿàJFIFXXÿÛC
...
/<formulaire>/<enregistrement>/<colonne>/?;<options>!<chaine d'identification>
Cette opération permet d'optenir la valeur d'une colonne d'un enregistrement.
Cette opération nécessite une authentification.
Elle prend en paramètre :
Paramètre | Type | Description | |
---|---|---|---|
formulaire |
string | obligatoire | formulaire sur lequel porte la requête |
enregistrement |
string | obligatoire | enregistrement qu'on veut consulter |
colonne |
string | obligatoire | colonne du formulaire |
Les options possibles sont :
- Options pour les colonnes autres que fichier et nom de fichier avec répertoire :
Option | Type | Défaut | Description | |
---|---|---|---|---|
displayvalue |
int | facultatif | 0 | format d'affichage des données |
languagecode |
int | facultatif | 0 | Code langue pour le retour |
- Options pour les colonnes fichiers :
Option | Type | Défaut | Description | |
---|---|---|---|---|
WantContent |
int (0|1) | facultatif | 0 |
|
encoding |
string | facultatif | plaintext | encoding pour le retour quand WantContent=1 :
|
- Options de transformation pour les contenus de type image (
WantContent=1
) :
Option | Type | Défaut | Description | |
---|---|---|---|---|
MineType |
string | facultatif | Mimetype voulu quand on retourne le contenu d'une image | |
TransColor |
string | facultatif | Couleur à transformer en transparent | |
ColorFrom |
string | facultatif | Couleur ou liste de couleur de départ de transformation de couleur | |
ColorTo |
string | facultatif | Couleur ou liste de couleur d'arrivé pour la transformation de couleur | |
Width |
int | facultatif | Largeur voulu de l'image | |
Height |
int | facultatif | Hauteur voulu de l'image |
Transformation des images
Cette opération prend des options pour transformer les images quand la colonne est un fichier image.
Il est possible de :
Changer le mime type
Option MineType
Transformer une couleur en transparence si le mime type demandé le supporte
Option TransColor
Transformer une liste de couleurs en une autre liste de couleurs
Option ColorFrom
et ColorTo
Changer le taille de l'image
Option Width
et Height
GetCentralIcon
PHP
<?php
/** @var mixed $json */
$json = $oREST->oGetCentralIcon();
Requête
http://localhost:8052/GetCentralIcon?!Username=superviseur&Password=IrfBeBW6d3LJAVX...
Réponse
HTTP/1.1 200 OK
Content-Type: application/json
Content-Length: 19875
[
{
"title":"Agenda partagé",
"id":"45377974602931",
"is_separator":0,
"is_menu_option":1,
"is_root":0,
"tab_options":[
],
"idaction":"8483",
"command":"",
"icon_big":"0",
"icon_small":"41260063042337",
"home_withimg":1,
"home_desc":"",
"home_title":"AGENDA PARTAGE",
"home_width":178,
"home_height":338
},
...
]
/GetCentralIcon?!<chaine d'identification>
Cette opération permet de récupérer les informations de la zone d'accueil.
Cette opération nécessite une identification.
Cette opération ne requiert aucun paramètres ou options.
Le retour est un json qui décrit les icones de l'accueil. Ce dernier est un tableau d'option de menu.
Un option de menu est décrit par la structure suivante :
{
"title":"Agenda partagé", // nom de l'option ou du menu
"id":"45377974602931", // identifiant simax de l'option ou menu
"is_separator":0, // si c'est un séparateur
"is_menu_option":1, // si c'est une option de menu
"is_root":0, // si c'est un menu racine
"tab_options":[], // liste des options de menu si menu
//information sur l'action
"idaction":"8483", // identifiant de l'action SIMAX
"command":"", // commande à lancer
//gestion de l'icône assiocé
"icon_big":"0", // identifiant SIMAX de l'icône si grande image renseignée
"icon_small":"41260063042337", // identifiant SIMAX de l'icône si grande image renseignée
//information sur l'accueil
"home_withimg":1, // si l'option à une image d'accueil associée
"home_desc":"", // description de l'image d'accueil
"home_title":"AGENDA PARTAGE", // titre de l'image d'accueil
"home_width":178, // largeur de l'image d'accueil
"home_height":338 // hauteur de l'image d'accueil
}
GetChecksum
PHP
<?php
/** @var string $res */
$res = $oREST->sGetChecksum('utilisateur');
Requête
http://noutonline:8052/utilisateur/GetChecksum?!Username=superviseur&Password=IrfBeBW6d3LJAVX...
Réponse
HTTP/1.1 200 OK
Content-Type: text/plain
Content-Length: 10
3388357533
/<formulaire>/GetChecksum?!<chaine d'identification>
Cette opération permet d'avoir la version du formulaire en paramètre.
Cette opération nécessite une identification.
Elle prend en paramètre de formulaire :
Paramètre | Type | Description | |
---|---|---|---|
formulaire |
string | obligatoire | identifiant ou libellé du formulaire dont on veut la version |
GetExtranetUserList
PHP
<?php
/** @var \SimpleXMLElemen $xml */
$xml = $oREST->GetExtranetUserList('client', array(NOUT\Rest\Service::OPTION_Readable => 0));
Requête
http://noutonline:8052/client/GetExtranetUserList?;readable=0
Réponse
HTTP/1.1 200 OK
Content-Type: application/xml ;charset=utf-8
Content-Length: 278
<xml VERSION="1" VERSION_LECTECRIT="1" VERSION_LECTURE="1" DATEHEURE="2018030108241638" xmlns:simax="http://www.nout.fr/XML/" xmlns:simax-layout="http://www.nout.fr/XML/layout">
<id_2564 simax:id="46611576938508" simax:title="290341 AMB & ST" simax:xsdLevel="1"/>
...
</xml>
/<formulaire extranet>/GetExtranetUserList?<paramètre d'action>
Cette opération renvoi la liste des utilisateurs disponibles pour l'extranet.
Cette opération ne requiert aucune authentification.
Elle prend en paramètre de formulaire :
Paramètre | Type | Description | |
---|---|---|---|
formulaire extranet |
string | obligatoire | identifiant ou libellé du formulaire qui contient les éléments sur lequel se fait l'extranet. |
Elle prend en paramètre d'action :
Paramètre | Type | Défaut | Description | |
---|---|---|---|---|
readable |
int (0|1) | facultatif | 1 |
|
ghost |
int | facultatif | 1 | lecture dans les invalides
|
displayvalue |
int | facultatif | 0 | format d'affichage des données |
languagecode |
int | facultatif | 0 | code langue pour le retour |
GetLangageVersion
PHP
<?php
/** @var string $res */
$res = $oREST->sGetLangageVersion();
Requête
http://noutonline:8052/GetLangageVersion?!Username=superviseur&Password=IrfBeBW6d3LJAVX...
Réponse
HTTP/1.1 200 OK
Content-Type: text/plain
Content-Length: 9
976600700
/GetLangageVersion?!<chaine d'identification>
Cette opération permet d'avoir la version du paramétrage de la session.
Cette opération nécessite une identification.
Cette opération ne requiert aucun paramètres.
GetLanguages
PHP
<?php
/** @var \SimpleXMLElemen $xml */
$xml = $oREST->GetLanguages();
Requête
http://localhost:8052/GetLanguages?
Reponse
HTTP/1.1 200 OK
Content-Type: application/xml ;charset=utf-8
Content-Length: 145
<GetLanguagesResponse>
<xml>
<LanguageCode>9</LanguageCode>
<LanguageCode>12</LanguageCode>
</xml>
</GetLanguagesResponse>
/GetLanguages?
Cette opération permet de récupérer la liste des langues disponibles dans le paramétrage SIMAX lié au NOUTOnline utilisé.
Cette opération ne requiert aucune authentification, ni aucun paramètre. Vous pouvez l'appeler juste avant d'afficher la fenêtre de login et mot de passe afin que l'utilisateur choisisse sa langue.
NOUTonline renvoie la liste des langues disponibles dans des balises <LanguageCode>
Les valeurs possibles sont :
Langue | Code |
---|---|
Anglais | 9 |
Espagnol | 10 |
Français | 12 |
Allemand | 19 |
GetListElemList
PHP
<?php
/** @var \SimpleXMLElemen $xml */
$xml = $oREST->GetListElemList(array(NOUT\Rest\Service::OPTION_Readable => 0));
Requête
http://noutonline:8052/GetListElemList?readable=0
Réponse
HTTP/1.1 200 OK
Content-Type: application/xml ;charset=utf-8
Content-Length: 99634
<xml VERSION="1" VERSION_LECTECRIT="1" VERSION_LECTURE="1" DATEHEURE="2018022817071640" xmlns:simax="http://www.nout.fr/XML/" xmlns:simax-layout="http://www.nout.fr/XML/layout">
<id_3068 simax:id="8694" simax:title="Phrases qui déclenchent l'action Action classique" simax:xsdLevel="1" simax-layout:italic="1"/>
<id_3068 simax:id="8715" simax:title="Paramètres Action de lancement de programme" simax:xsdLevel="1" simax-layout:italic="1"/>
<id_3068 simax:id="2430" simax:title="Liste de choix Modèle liste déroulante" simax:xsdLevel="1" simax-layout:bold="1"/>
<id_3068 simax:id="10245" simax:title="Conditions de filtre Modèle élément" simax:xsdLevel="1" simax-layout:italic="1"/>
<id_3068 simax:id="52216625330407" simax:title="Remplacement pieces de rechange Réparation Atelier" simax:xsdLevel="1" simax-layout:italic="1"/>
...
</xml>
/GetListElemList?<options>
Cette opération renvoit la liste des colonnes de type liste présentent dans le paramétrage.
Elle prend en paramètre d'action :
Paramètre | Type | Défaut | Description | |
---|---|---|---|---|
readable |
int (0|1) | facultatif | 1 |
|
ghost |
int | facultatif | 1 | lecture dans les invalides
|
displayvalue |
int | facultatif | 0 | format d'affichage des données |
languagecode |
int | facultatif | 0 | code langue pour le retour |
GetMenu
PHP
<?php
/** @var mixed $json */
$json = $oREST->oGetMenu();
Requête
http://localhost:8052/GetMenu?!Username=superviseur&Password=IrfBeBW6d3LJAVX...
Réponse
HTTP/1.1 200 OK
Content-Type: application/json
Content-Length: 177098
[
{
"title":"Général",
"id":"47572362849623",
"is_separator":0,
"is_menu_option":0,
"is_root":1,
"tab_options":[
{
"title":"Annuler",
"id":"52108126174231",
"is_separator":0,
"is_menu_option":1,
"is_root":0,
"tab_options":[],
"idaction":"10850",
"command":"",
"icon_big":"0",
"icon_small":"52087675652246",
"home_withimg":0,
"home_desc":"",
"home_title":"",
"home_width":0,
"home_height":0
},
...
],
"idaction":"0",
"command":"",
"icon_big":"0",
"icon_small":"0",
"home_withimg":0,
"home_desc":"",
"home_title":"",
"home_width":0,
"home_height":0
},
...
]
/GetMenu?!<chaine d'identification>
Cette opération permet de récupérer les informations du menu.
Cette opération nécessite une identification.
Cette opération ne requiert aucun paramètres.
Le retour est un json qui décrit la structure du menu. Cet dernier est un tableau d'option de menu.
Une option de menu est décrit par la structure suivante :
{
"title":"Annuler", // nom de l'option ou du menu
"id":"52108126174231", // identifiant simax de l'option ou menu
"is_separator":0, // si c'est un séparateur
"is_menu_option":1, // si c'est une option de menu
"is_root":0, // si c'est un menu racine
"tab_options":[], // liste des options de menu si menu
//information sur l'action
"idaction":"10850", // identifiant de l'action SIMAX
"command":"", // commande à lancer
//gestion de l'icône assiocé
"icon_big":"0", // identifiant SIMAX de l'icône si grande image renseignée
"icon_small":"52087675652246", // identifiant SIMAX de l'icône si grande image renseignée
//information sur l'accueil
"home_withimg":0, // si l'option à une image d'accueil associée
"home_desc":"", // description de l'image d'accueil
"home_title":"", // titre de l'image d'accueil
"home_width":0, // largeur de l'image d'accueil
"home_height":0 // hauteur de l'image d'accueil
}
GetNbElement
PHP
<?php
$oREST->GetNbElement('ville', 'montb', array('departement'=>'34 Herault'));
Requête avec condition sur le titre des enregistrements
http://noutonline:8052/ville/montb/GetNbElement?departement=34+Herault;!Username=superviseur&Password=JPvnd
Réponse
HTTP/1.1 200 OK
Content-Type: text/plain
Content-Length: 1
2
/<formulaire>/GetNbElement?<liste des conditions>;<options>!<chaine d'identification>
/<formulaire>/<condition commence par>/GetNbElement?<liste des conditions>;<options>!<chaine d'identification>
Cette opération permet de compter le nombre d'élément d'un formulaire, avec potentiellement des filtres.
Cette opération nécessite une authentification.
- Elle prend en paramètre de formulaire :
Paramètre | Type | Description | |
---|---|---|---|
formulaire |
string | obligatoire | formulaire sur lequel porte la requête. |
condition commence par |
string | facultatif | valeur de la condition commence par |
- Elle prend en paramètre d'action :
Paramètre | Type | Description | |
---|---|---|---|
colonne |
string | facultatif | paramètre de l'action SIMAX |
- Elle prend en option :
Option | Type | Défaut | Description | |
---|---|---|---|---|
ghost |
int | facultatif | 1 | lecture dans les invalides
|
GetTableChild
PHP
<?php
/** @var \SimpleXMLElemen $xml */
$xml = $oREST->GetTableChild('client', array(NOUT\Rest\Service::OPTION_Readable => 0));
Requête
http://noutonline:8052/client/GetTableChild?readable=0
Réponse
HTTP/1.1 200 OK
Content-Type: application/xml ;charset=utf-8
Content-Length: 503
<xml VERSION="1" VERSION_LECTECRIT="1" VERSION_LECTURE="1" DATEHEURE="2018022817390560" xmlns:simax="http://www.nout.fr/XML/" xmlns:simax-layout="http://www.nout.fr/XML/layout">
<id_9268 simax:id="2564" simax:title="Client" simax:xsdLevel="1"/>
<id_9268 simax:id="2566" simax:title="Client particulier" simax:xsdLevel="1"/>
<id_9268 simax:id="47964170787823" simax:title="Établissement" simax:xsdLevel="1"/>
<id_9268 simax:id="2568" simax:title="Client professionnel" simax:xsdLevel="1"/>
</xml>
/<formulaire père>/GetTableChild?<options>
Cette opération renvoi la liste des fils du formulaire fourni en paramètre. Les formulaires retournés sont ceux qui ne sont pas du type Regroupement de formulaire.
Cette opération ne requiert aucune authentification.
Elle prend en paramètre de formulaire :
Paramètre | Type | Description | |
---|---|---|---|
formulaire père |
string | obligatoire | identifiant ou libellé du formulaire dont on veut les fils. |
Elle prend en paramètre d'action :
Paramètre | Type | Défaut | Description | |
---|---|---|---|---|
readable |
int (0|1) | facultatif | 1 |
|
ghost |
int | facultatif | 1 | lecture dans les invalides
|
displayvalue |
int | facultatif | 0 | format d'affichage des données |
languagecode |
int | facultatif | 0 | code langue pour le retour |
GetTableList
PHP
<?php
/** @var \SimpleXMLElemen $xml */
$xml = $oREST->GetTableList(array(NOUT\Rest\Service::OPTION_Readable => 0));
Requête
http://noutonline:8052/GetTableList?readable=0
Réponse
HTTP/1.1 200 OK
Content-Type: application/xml ;charset=utf-8
Content-Length: 109054
<xml VERSION="1" VERSION_LECTECRIT="1" VERSION_LECTURE="1" DATEHEURE="2018022817232824" xmlns:simax="http://www.nout.fr/XML/" xmlns:simax-layout="http://www.nout.fr/XML/layout">
<id_2029 simax:id="15641" simax:title="Rupture" simax:xsdLevel="1"/>
<id_2029 simax:id="1003" simax:title="Contact" simax:xsdLevel="1"/>
<id_2029 simax:id="46473840825120" simax:title="Ligne de facture ou avoir" simax:xsdLevel="1"/>
<id_2029 simax:id="42043835639283" simax:title="Scan Inventaire" simax:xsdLevel="1"/>
...
</xml>
/GetTableList?<paramètre d'action>
Cette opération renvoi la liste des formulaires.
Cette opération ne requiert aucune authentification, ni paramètres de formulaire.
Elle prend en paramètre d'action :
Paramètre | Type | Défaut | Description | |
---|---|---|---|---|
readable |
int (0|1) | facultatif | 1 |
|
ghost |
int | facultatif | 1 | lecture dans les invalides
|
displayvalue |
int | facultatif | 0 | format d'affichage des données |
languagecode |
int | facultatif | 0 | code langue pour le retour |
GetTokenSession
PHP
<?php
$usernameToken = new \NOUT\Entity\UsernameToken('superviseur', '');
$oREST = new \NOUT\Rest\Service("http://localhost:8052", $usernameToken);
$oREST->bConnecte()
Cette opération permet de s'authentifier auprès de NOUTOnline et de récupérer un token de session, à utiliser jusqu'à la déconnexion. C'est une étape obligatoire pour dialoguer avec NOUTOnline car cela permet d'ouvrir une session. Pour cela, il faut demander son identifiant et son mot de passe à l'utilisateur pour pouvoir calculer le UsernameToken.
Le token de session récolté devra être passé dans la partie identification des requêtes REST jusqu'a la fermeture de la session.
Cette fonction s'appuie sur les spécifications d'OASIS Web Service Security UserNameToken.
Plus d'information dans le tutoriel Ouvrir et Fermer une session.
Mode intranet
Requête intranet
http://noutonline:8052/GetTokenSession?Username=superviseur&Password=X3WmzrQFDaAtBvHTnoLSg6vyFuE%3D&nonce=MC4wNTc4NTEwMCAxMzc2NDczMTM2&created=Wed%2C+14+Aug+2013+09%3A38%3A56+%2B0000
Réponse
7cec0345-3abb-4353-bfb9-aacc143a2d05
Les paramètres d'action sont les composantes de UsernameToken :
Paramètre | Type | Défaut | Description | |
---|---|---|---|---|
Username |
string | obligatoire | identifiant utilisateur SIMAX | |
Password |
string | obligatoire | mot de passe encodé | |
Nonce |
string | obligatoire | chaîne générée de manière aléatoire | |
Created |
string | obligatoire | date et heure de création du Nonce | |
LanguageCode |
int | facultatif | 0 | Code langue pour la session |
NOUTOnline renvoit un token de session.
Le token retourné est à conserver car il permet d'identifier la session courante de l'utilisateur et il devra être ajouté dans le header de toutes les requêtes jusqu'à la déconnexion.
Échec de l'identification
Réponse
HTTP/1.1 500 Internal Server Error
Content-Type: text/html ;charset=utf-8
Content-Length: 385
849347963(12|1403)<br/>
L'identifiant ou le mot de passe utilisateur sont incorrects.
<ul>
<li>Paramètre 1169(Utilisateur) ; Valeur superviseur(2)</li>
<li>Paramètre 1(Password) ; Valeur uNt1Arc5ZY7Z/pRZUoK+X+8UKX0=</li>
<li>Paramètre 2(Nonce) ; Valeur MC4xNDU5ODAwMCAxNTE5OTk3Njkw</li>
<li>Paramètre 3(Created) ; Valeur Fri, 02 Mar 2018 13:34:50 +0000</li>
</ul>
<br/>
Si l'identification échoue, une erreur d'identification est retournée. Les erreurs possibles sont :
- UTIL_NONRESOLU : le pseudo fourni n'a pas permis de retrouvé l'utilisateur
- UTIL_TROPCHOIX : le pseudo fourni correspond à plus d'un utilisateur
- UTIL_INCONNU : l'identifiant d'utilisateur fourni est inconnu
- UTIL_PASSERRINTRA : le mot de passe intranet est incorrect
- UTIL_FORM_NONAUTORISE : le formulaire n'est pas configuré pour l'extranet
- UTIL_NONAUTORISE : l'utilisateur n'est pas autorisé à se connecter
D'autres erreurs ayant traits à la sécurité peuvent être retournées (configuration de NOUTOnline) :
- APPLI_NONAUTORISE : l'application n'est pas autorisée à se connecter
- SOAP_DESACTIVE : le protocole SOAP est désactivé
- EXTRANET_NONACTIVE : l'extranet est désactivé
- CONNEXION_NONAUTORISE : les connexions ne sont pas autorisées
Mode Extranet
Requête extranet
http://localhost:8052/GetTokenSession?Username=extranet&Password=7KstEaJ8zuyyGV%2Fj56PwUdZN8gw%3D&nonce=MC4zMDIyNDUwMCAxNTE5OTk4NDMw&created=Fri%2C+02+Mar+2018+13%3A47%3A10+%2B0000;Username=conan2&Password=EsHfS%2BSnXSqziGJdwWUW90eGvXA%3D&nonce=MC4zMDIxOTkwMCAxNTE5OTk4NDMw&created=Fri%2C+02+Mar+2018+13%3A47%3A10+%2B0000&form=client
Pour une identification en mode extranet, l'identifiant et le mot de passe récoltés permettent de calculer le les composantes de UsernameToken qui seront données en options :
Paramètre | Type | Défaut | Description | |
---|---|---|---|---|
Username |
string | obligatoire | identifiant de l'utilisateur extranet | |
Password |
string | obligatoire | mot de passe encodé | |
Nonce |
string | obligatoire | chaîne générée de manière aléatoire | |
Created |
string | obligatoire | date et heure de création du Nonce | |
Form |
string | obligatoire | 0 | identifiant ou libellé du formulaire qui contient les éléments sur lequel se fait l'extranet |
Les composantes de UsernameToken qui sont données en paramètre de l'action sont calculées à partir de l'identifiant et du mot de passe de l'utilisateur SIMAX auquel est associé l'extranet et qui donne les droits d'accès.
Ces dernières informations (formulaire, identifiant, mot de passe) peuvent être stockées dans un fichier de configuration.
GetToolbar
PHP
<?php
/** @var mixed $json */
$json = $oREST->oGetToolbar();
Requête
http://localhost:8052/GetToolbar?!Username=superviseur&Password=IrfBeBW6d3LJAVX...
Réponse
HTTP/1.1 200 OK
Content-Type: application/json
Content-Length: 19875
[
{
"title":"Annuler",
"id":"52108126174231",
"is_separator":0,
"is_menu_option":1,
"is_root":0,
"tab_options":[
],
"idaction":"10850",
"command":"",
"icon_big":"0",
"icon_small":"52087675652246",
"home_withimg":0,
"home_desc":"",
"home_title":"",
"home_width":0,
"home_height":0
},
...
]
/GetToolbar?!<chaine d'identification>
Cette opération permet de récupérer les informations de la barre d'outils.
Cette opération nécessite une identification.
Cette opération ne requiert aucun paramètres.
Le retour est un json qui décrit la barre d'outils. Cette dernière est un tableau d'option de menu.
Un option de menu est décrit par la structure suivante :
{
"title":"Annuler", // nom de l'option ou du menu
"id":"52108126174231", // identifiant simax de l'option ou menu
"is_separator":0, // si c'est un séparateur
"is_menu_option":1, // si c'est une option de menu
"is_root":0, // si c'est un menu racine
"tab_options":[], // liste des options de menu si menu
//information sur l'action
"idaction":"10850", // identifiant de l'action SIMAX
"command":"", // commande à lancer
//gestion de l'icône assiocé
"icon_big":"0", // identifiant SIMAX de l'icône si grande image renseignée
"icon_small":"52087675652246", // identifiant SIMAX de l'icône si grande image renseignée
//information sur l'accueil
"home_withimg":0, // si l'option à une image d'accueil associée
"home_desc":"", // description de l'image d'accueil
"home_title":"", // titre de l'image d'accueil
"home_width":0, // largeur de l'image d'accueil
"home_height":0 // hauteur de l'image d'accueil
}
GetUserExists
PHP
<?php
/** @var bool $bExists */
$bExists = $oREST->bGetUserExists('superviseur');
Requête
http://localhost:8052/GetUserExists?login=superviseur
Réponse
HTTP/1.1 200 OK
Content-Type: text/plain
Content-Length: 1
2
/GetUserExists?login=<utilisateur à tester>
Cette opération permet de tester si un utilisateur SIMAX (intranet) existe.
Cette opération ne requiert aucune authentification.
Elle prend en paramètre d'action :
Paramètre | Type | Description | |
---|---|---|---|
utilisateur à tester |
string | obligatoire | Utilisateur à tester |
Les valeurs de retour possibles sont :
Code | Explication |
---|---|
0 | L'utilisateur n'existe pas ou est invalide |
1 | L'utilisateur existe et n'est pas superviseur |
2 | L'utilisateur existe et est superviseur |
GetUserGroupList
PHP
<?php
/** @var \SimpleXMLElemen $xml */
$xml = $oREST->GetUserGroupList(array(NOUT\Rest\Service::OPTION_Readable => 0));
Requête
http://noutonline:8052/GetUserGroupList?readable=0
Réponse
HTTP/1.1 200 OK
Content-Type: application/xml ;charset=utf-8
Content-Length: 2357
<xml VERSION="1" VERSION_LECTECRIT="1" VERSION_LECTURE="1" DATEHEURE="2018022816532233" xmlns:simax="http://www.nout.fr/XML/" xmlns:simax-layout="http://www.nout.fr/XML/layout">
<id_1175 simax:id="75885754573260" simax:title="Administratif" simax:xsdLevel="1">
<id_43136076441334>
<id_1972/>
</id_43136076441334>
</id_1175>
...
<id_1175 simax:id="115232286220902" simax:title="Achat" simax:xsdLevel="1">
<id_43136076441334>
<id_1972>
<id_1169>4</id_1169>
</id_1972>
</id_43136076441334>
</id_1175>
...
<id_1169 simax:id="4" simax:title="Acheteur" simax:xsdLevel="2"/>
</xml>
/GetUserGroupList?<paramètre d'action>
Cette opération renvoit la liste des groupes d'utilisateur SIMAX.
Cette opération ne requiert aucune authentification, ni paramètres de formulaire.
Elle prend en paramètre d'action :
Paramètre | Type | Défaut | Description | |
---|---|---|---|---|
readable |
int (0|1) | facultatif | 1 |
|
ghost |
int | facultatif | 1 | lecture dans les invalides
|
displayvalue |
int | facultatif | 0 | format d'affichage des données |
languagecode |
int | facultatif | 0 | code langue pour le retour |
GetUserList
PHP
<?php
/** @var \SimpleXMLElemen $xml */
$xml = $oREST->GetUserList(array(NOUT\Rest\Service::OPTION_Readable => 0));
Requête
http://noutonline:8052/GetUserList?readable=0
Réponse
HTTP/1.1 200 OK
Content-Type: application/xml ;charset=utf-8
Content-Length: 522
<xml VERSION="1" VERSION_LECTECRIT="1" VERSION_LECTURE="1" DATEHEURE="2018022817124670" xmlns:simax="http://www.nout.fr/XML/" xmlns:simax-layout="http://www.nout.fr/XML/layout">
<id_1169 simax:id="2" simax:title="Superviseur" simax:xsdLevel="1"/>
<id_1169 simax:id="3" simax:title="Test" simax:xsdLevel="1"/>
<id_1169 simax:id="4" simax:title="Acheteur" simax:xsdLevel="1"/>
<id_1169 simax:id="5" simax:title="client" simax:xsdLevel="1"/>
<id_1169 simax:id="6" simax:title="fournisseur" simax:xsdLevel="1"/>
</xml>
/GetUserList?<paramètres d'action>
Cette opération renvoi la liste des utilisateurs disponibles.
Cette opération ne requiert aucune authentification, ni paramètres de formulaire.
Elle prend en paramètre d'action :
Paramètre | Type | Défaut | Description | |
---|---|---|---|---|
readable |
int (0|1) | facultatif | 1 |
|
ghost |
int | facultatif | 1 | lecture dans les invalides
|
displayvalue |
int | facultatif | 0 | format d'affichage des données |
languagecode |
int | facultatif | 0 | code langue pour le retour |
GetVersion
PHP
<?php
$sVersion = $oREST->sGetVersion();
Requête
http://noutonline:8052/GetVersion?
Réponse
HTTP/1.1 200 OK
Content-Type: text/plain
Content-Length: 13
09.00.1804.01
/GetVersion?
Cette opération renvoit la version du NOUTOnline.
Cette opération ne requiert aucune authentification, ni paramètres.
GetWSDL
PHP
<?php
/** @var HTTPResponse $oHttpResponse */
$oHttpResponse = $oREST->oGetWSDL();
Requête
http://noutonline:8052/GetWSDL?
Réponse
HTTP/1.1 200 OK
Content-Type: application/wsdl+xml
Content-Length: 263409
<?xml version="1.0" encoding="UTF-8"?>
<definitions name="Service" targetNamespace="http://www.nout.fr/wsdl/SimaxService.wsdl/" xmlns:serviceversion="http://www.nout.fr/wsdl/noutonline/1751.01" xmlns="http://schemas.xmlsoap.org/wsdl/"
xmlns:encoding="http://schemas.xmlsoap.org/soap/encoding/" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:tns="http://www.nout.fr/wsdl/SimaxService.wsdl/" xmlns:servicexsd="http://www.nout.fr/xsd" xmlns:servicesoap="http://www.nout.fr/soap" xmlns:types="http://www.nout.fr/types"
xmlns:loc="http://www.nout.fr/location">
...
</definitions>
/GetWSDL?
Cette opération renvoit le fichier WSDL.
Cette opération ne requiert aucune authentification, ni paramètres.
HasChanged
List
/<formulaire>/List?<liste des paramètres>;<options>!<chaine d'identification>
/<formulaire>/<paramètre recherche>/List?<liste des paramètres>;<options>!<chaine d'identification>
Cette opération effectue une action de liste sur un formulaire. L'action utilisée est la première action trouvée de type Liste applicable au formulaire.
Cette opération nécessite un authentification.
Requête
Requête sans condition sur le titre des enregistrement
<?php
/** @var \SimpleXMLElement $xml */
$xml = $oREST->Search(
'ville',
'montb',
array('departement'=>'34 Herault'),
array(\NOUT\Rest\Service::OPTION_Readable => '0'
);
http://noutonline:8052/ville/List?departement=34+Herault;readable=0!Username=superviseur&Password=JPvnd
Requête avec condition sur le titre des enregistrements
<?php
/** @var \SimpleXMLElement $xml */
$xml = $oREST->Search(
'ville',
'montb',
array('departement'=>'34 Herault'),
array(\NOUT\Rest\Service::OPTION_Readable => '0'
);
http://noutonline:8052/ville/montb/List?departement=34+Herault;readable=0!Username=superviseur&Password=JPvnd
- Elle prend en paramètre de formulaire :
Paramètre | Type | Description | |
---|---|---|---|
formulaire |
string | obligatoire | formulaire sur lequel porte la requête. |
paramètre recherche |
string | facultatif | valeur du paramètre Recherche, si le paramètre n'existe pas, cette valeur est ignorée |
- Elle prend en paramètre d'action :
Paramètre | Type | Description | |
---|---|---|---|
colonne ou paramètre |
string | facultatif | paramètre de l'action SIMAX |
- Elle prend en option :
Option | Type | Défaut | Description | |
---|---|---|---|---|
readable |
int (0|1) | facultatif | 1 |
|
ghost |
int | facultatif | 1 | lecture dans les invalides
|
displayvalue |
int | facultatif | 0 | format d'affichage des données |
languagecode |
int | facultatif | 0 | code langue pour le retour |
Réponse
Réponse de liste ville avec Département=34 Hérault (montb est ignoré car l'action n'a pas de paramètre Recherche)
HTTP/1.1 200 OK
Content-Type: application/xml ;charset=utf-8
Content-Length: 916
<xml VERSION="1" VERSION_LECTECRIT="1" VERSION_LECTURE="1" DATEHEURE="2018030708290121" xmlns:simax="http://www.nout.fr/XML/" xmlns:simax-layout="http://www.nout.fr/XML/layout">
<id_9494 simax:id="44356469251961" simax:title="ABEILHAN" simax:xsdLevel="1">
<id_15910/>
<id_9489>ABEILHAN</id_9489>
<id_9490>34290</id_9490>
<id_52176367525111>70790356397240</id_52176367525111>
<id_45957764764076>47997784314920</id_45957764764076>
<id_35577931141252/>
</id_9494>
<id_9494 simax:id="46478183096180" simax:title="ADISSAN" simax:xsdLevel="1">
<id_15910/>
<id_9489>ADISSAN</id_9489>
<id_9490>34230</id_9490>
<id_52176367525111>70790356397240</id_52176367525111>
<id_45957764764076>47997784314920</id_45957764764076>
<id_35577931141252/>
</id_9494>
...
</xml>
Cette opération renvoi la liste des éléments du formulaire qui correspondent aux conditions.
Request
/<formulaire>/?<liste des conditions>;<options>!<chaine d'identification>
/<formulaire>/<condition commence par>/Request?<liste des conditions>;<options>!<chaine d'identification>
Cette opération permet de filtrer les éléments d'un formulaire.
Cette opération nécessite une authentification.
Requête
Requête sans condition sur le titre des enregistrement
<?php
/** @var \SimpleXMLElement $xml */
$xml = $oREST->Request(
'ville',
null,
array('departement'=>'34 Herault'),
array(\NOUT\Rest\Service::OPTION_Readable => '0')
);
http://noutonline:8052/ville/?departement=34+Herault;readable=0!Username=superviseur&Password=JPvnd
Requête avec condition sur le titre des enregistrements
<?php
/** @var \SimpleXMLElement $xml */
$xml = $oREST->Request(
'ville',
'montb',
array('departement'=>'34 Herault'),
array(\NOUT\Rest\Service::OPTION_Readable => '0')
);
http://noutonline:8052/ville/montb/Request?departement=34+Herault;readable=0!Username=superviseur&Password=JPvnd
- Elle prend en paramètre de formulaire :
Paramètre | Type | Description | |
---|---|---|---|
formulaire |
string | obligatoire | formulaire sur lequel porte la requête. |
condition commence par |
string | facultatif | valeur de la condition commence par |
- Elle prend en paramètre d'action :
Paramètre | Type | Description | |
---|---|---|---|
colonne |
string | facultatif | paramètre de l'action SIMAX |
- Elle prend en option :
Option | Type | Défaut | Description | |
---|---|---|---|---|
readable |
int (0|1) | facultatif | 1 |
|
ghost |
int | facultatif | 1 | lecture dans les invalides
|
displayvalue |
int | facultatif | 0 | format d'affichage des données |
languagecode |
int | facultatif | 0 | code langue pour le retour |
Réponse
Réponse d'une requête sur les villes de l'hérault qui commence par 'montb'
HTTP/1.1 200 OK
Content-Type: application/xml ;charset=utf-8
Content-Length: 916
<xml VERSION="1" VERSION_LECTECRIT="1" VERSION_LECTURE="1" DATEHEURE="2018030708290121" xmlns:simax="http://www.nout.fr/XML/" xmlns:simax-layout="http://www.nout.fr/XML/layout">
<id_9494 simax:id="36075772305282" simax:title="MONTBAZIN" simax:xsdLevel="1">
<id_9489>MONTBAZIN</id_9489>
<id_9490>34560</id_9490>
<id_52176367525111>70790356397240</id_52176367525111>
<id_45957764764076>47997784314920</id_45957764764076>
<id_35577931141252/>
</id_9494>
<id_9494 simax:id="48806055370617" simax:title="MONTBLANC" simax:xsdLevel="1">
<id_9489>MONTBLANC</id_9489>
<id_9490>34290</id_9490>
<id_52176367525111>70790356397240</id_52176367525111>
<id_45957764764076>47997784314920</id_45957764764076>
<id_35577931141252/>
</id_9494>
<id_9495 simax:id="70790356397240" simax:title="France" simax:xsdLevel="2"/>
<id_40619030499034 simax:id="47997784314920" simax:title="34 Hérault" simax:xsdLevel="2"/>
</xml>
Cette opération renvoi la liste des éléments du formulaire qui correspondent aux conditions.
RequestParam
ResetPasswordFailed
Restart
PHP
<?php
$bOk = $oREST->bReStart(); //test
if ($bOk) {
$oREST->bReStart(true); //demande un redemarrage
}
Requête
http://noutonline:8052/ReStart?TestRestart=1!Username=superviseur&Password=IrfBeBW6d3LJAVX...
Réponse
HTTP/1.1 200 OK
Content-Type: text/plain
Content-Length: 1
1
/ReStart?<paramètres d'action>!<chaine d'identification>
Cette opération permet :
- de tester si l'utilisateur de la session à le droit de redémarrer NOUTOnline
- de redémarrer NOUTOnline
Cette opération nécessite une identification.
Elle prend en paramètre d'action :
Paramètre | Type | Défaut | Description | |
---|---|---|---|---|
TestRestart |
int (0|1) | facultatif | 1 |
|
Search
/<formulaire>/Search?<liste des paramètres>;<options>!<chaine d'identification>
/<formulaire>/<paramètre recherche>/Search?<liste des paramètres>;<options>!<chaine d'identification>
Cette opération effectue une action de recherche sur un formulaire. L'action utilisée est la première action trouvée de type Recherche applicable au formulaire.
Cette opération nécessite un authentification.
Requête
Requête sans condition sur le titre des enregistrement
<?php
/** @var \SimpleXMLElement $xml */
$xml = $oREST->Search(
'ville',
'montb',
array('departement'=>'34 Herault'),
array(\NOUT\Rest\Service::OPTION_Readable => '0'
);
http://noutonline:8052/ville/Search?departement=34+Herault;readable=0!Username=superviseur&Password=JPvnd
Requête avec condition sur le titre des enregistrements
<?php
/** @var \SimpleXMLElement $xml */
$xml = $oREST->Search(
'ville',
'montb',
array('departement'=>'34 Herault'),
array(\NOUT\Rest\Service::OPTION_Readable => '0'
);
http://noutonline:8052/ville/montb/Search?departement=34+Herault;readable=0!Username=superviseur&Password=JPvnd
- Elle prend en paramètre de formulaire :
Paramètre | Type | Description | |
---|---|---|---|
formulaire |
string | obligatoire | formulaire sur lequel porte la requête. |
paramètre recherche |
string | facultatif | valeur du paramètre Recherche, si le paramètre n'existe pas, cette valeur est ignorée |
- Elle prend en paramètre d'action :
Paramètre | Type | Description | |
---|---|---|---|
colonne ou paramètre |
string | facultatif | paramètre de l'action SIMAX |
- Elle prend en option :
Option | Type | Défaut | Description | |
---|---|---|---|---|
readable |
int (0|1) | facultatif | 1 |
|
ghost |
int | facultatif | 1 | lecture dans les invalides
|
displayvalue |
int | facultatif | 0 | format d'affichage des données |
languagecode |
int | facultatif | 0 | code langue pour le retour |
Réponse
Réponse de la recherche de villes de l'hérault qui commence par 'montb'
HTTP/1.1 200 OK
Content-Type: application/xml ;charset=utf-8
Content-Length: 916
<xml VERSION="1" VERSION_LECTECRIT="1" VERSION_LECTURE="1" DATEHEURE="2018030708290121" xmlns:simax="http://www.nout.fr/XML/" xmlns:simax-layout="http://www.nout.fr/XML/layout">
<id_9494 simax:id="36075772305282" simax:title="MONTBAZIN" simax:xsdLevel="1">
<id_9489>MONTBAZIN</id_9489>
<id_9490>34560</id_9490>
<id_52176367525111>70790356397240</id_52176367525111>
<id_45957764764076>47997784314920</id_45957764764076>
<id_35577931141252/>
</id_9494>
<id_9494 simax:id="48806055370617" simax:title="MONTBLANC" simax:xsdLevel="1">
<id_9489>MONTBLANC</id_9489>
<id_9490>34290</id_9490>
<id_52176367525111>70790356397240</id_52176367525111>
<id_45957764764076>47997784314920</id_45957764764076>
<id_35577931141252/>
</id_9494>
<id_9495 simax:id="70790356397240" simax:title="France" simax:xsdLevel="2"/>
<id_40619030499034 simax:id="47997784314920" simax:title="34 Hérault" simax:xsdLevel="2"/>
</xml>
Cette opération renvoi la liste des éléments du formulaire qui correspondent aux conditions.
Opérations de messagerie
Opérations sur les messages
Opérations | Usage |
---|---|
PrintMessage | Impression d'un message |
Opérations sur les dossiers
Opérations | Usage |
---|---|
GetLastModifiedMessage | Récupère les messages modifiés d'un dossier depuis une date (heure) |
GetLastModifiedMessage
Requête
GET http://localhost:8052/50506617638924/getlastmodifiedmessage?StartDate=20180320!Username=superviseur&Password=IrfBeBW6d3LJAVX... HTTP/1.1
Accept: application/json
Réponse
HTTP/1.1 200 OK
Content-Type: application/json
Content-Length: 19875
{
result: [
"39515796372527"
],
values: {
elements: {
39515796372527: {
title: "2016-07-24 14:09:58 > 3MCK-UC: Vacances Aventure jeunes: canoë-kayak et jeux de p...",
id: "39515796372527",
columns: {
15317: {
unit: "",
displayValue: "support@nout.fr",
value: "support@nout.fr"
},
15318: {
unit: "",
displayValue: "1169/2",
value: [
{
id: "2",
table: "1169"
}
]
},
...
}
}
}
},
structure: {
table: {
id: "16510",
name: "",
tableType: "list",
columns: [
"15317",
"15318",
...
]
},
columns: {
15317: {
id: "15317",
name: "Destinataires",
typeElement: "string"
},
15318: {
id: "15318",
name: "Identifiant destinataire",
restriction: {
base: "string",
maxLength: "100"
},
typeElement: "string"
},
...
}
}
}
Cette opération permet de récupérer les derniers messages modifiés depuis une date (heure). Ils peuvent être optionnelement filtrés avec un identifiant de dossier.
Cette opération nécessite une identification.
Elle prend en paramètre :
StartDate
: (obligatoire) date (heure) de début de comparaison avec la date heure de dernière modification des messages.
Le format est :
[/<identifiant du dossier>]/getlastmodifiedmessage?StartDate=<date(heure) de début>!<chaine d'identification>
Le retour est disponible au format XML et JSON. Il est possible de demander le format explicitement via l'entete HTTP Accept
:
* XML
: Accept: application/xml
,
* JSON
: Accept: application/json
.
Si aucun format n'est spécifié ou si les deux sont disponibles, alors c'est le format JSON qui est retourné.
PrintMessage
Requête
GET http://localhost:8052/39515796372527/printmessage?!Username=superviseur&Password=IrfBeBW6d3LJAVX... HTTP/1.1
Accept: application/json
Cette opération permet de récupérer l'impression d'un message.
Cette opération nécessite une identification.
Cette opération ne requiert aucun paramètres.
Le format est :
/<identifiant du message>/printmessage?!<chaine d'identification>
Équivalent en-têtes SOAP
Les entêtes SOAP sont renseignées d'une manière différente en REST quand applicable.
OptionDialogue
;readable=1&ghost=1&displayvalue=0&languagecode=12
<?php
$oREST->setCommonOptions(array(
NOUT\Rest\Service::OPTION_Readable => 0,
NOUT\Rest\Service::OPTION_Ghost => 1,
NOUT\Rest\Service::OPTION_DisplayValue => 0,
NOUT\Rest\Service::OPTION_LanguageCode => 12,
));
En REST, les options de dialogue sont traduites en options. Les options supportées sont :
Readable
(entier) qui donne le format des balises XML :- 0 (par défaut) : nom balise = identifiant tableau ou colonne (illisible)
- 1 : nom balise = libellé tableau ou colonne (lisible)
Ghost
(entier) qui permet de savoir quels enregistrements le client souhaite recevoir- 1 (par défaut) : uniquement les enregistrements valides
- 2 : uniquement les enregistrements invalides (cf bouton fantôme dans SIMAX)
- 3 : tous les enregistrements (valides et invalides)
DisplayValue
qui donne le format des valeurs des balises XML en entrée et en sortie. Voir Le format des données pour le calcul de la valeur.LanguageCode
qui donne le code langue dans lequel on souhaite recevoir les informations :- 0 (par défaut) : la langue indiqué à l'ouverture de la session par GetTokenSession est utilisée,
- autres valeurs : voir l'opération GetLanguages pour les valeurs possibles.
Tutoriaux
Instanciation du client PHP
<?php
$nPort = 8052;
$sHost = '127.0.0.1';
//autoload des classes
spl_autoload_extensions(".php"); // comma-separated list
spl_autoload_register();
use \NOUT\Soap\PackageBase\AbstractSoapClientBase;
//définition des options pour le client SOAP
$options = array(
AbstractSoapClientBase::WSDL_TRACE=>1,
AbstractSoapClientBase::WSDL_EXCEPTIONS=>1, //optional parameters for debugging
AbstractSoapClientBase::WSDL_STREAM_CONTEXT => stream_context_create(array(
'http' => array(
'header' => "x-SIMAXService-Client: Proxy-SOAPClient\nx-SIMAXService-Client-Version: 01.1631.01\nx-SIMAXService-Client-IP: ".$_SERVER["REMOTE_ADDR"],
))),
AbstractSoapClientBase::WSDL_URL => "http://$sHost:$nPort/getwsdl",
AbstractSoapClientBase::WSDL_PROXY_HOST => $sHost,
AbstractSoapClientBase::WSDL_PROXY_PORT => "$nPort",
AbstractSoapClientBase::WSDL_CLASSMAP => \NOUT\Soap\ClassMap::get(),
AbstractSoapClientBase::WSDL_SOAP_VERSION => SOAP_1_1,
);
// on crée le client SOAP
$oSOAPClient = new \NOUT\Soap\ServiceType\Service($options);
?>
<?php
$nPort = 8052;
$sHost = '127.0.0.1';
//autoload des classes
spl_autoload_extensions(".php"); // comma-separated list
spl_autoload_register();
$usernameToken = new \NOUT\Entity\UsernameToken('superviseur', '');
$oREST = new \NOUT\Rest\Service("http://$sHost:$nPort", $usernameToken);
?>
Avant de lire les différents tutoriaux, veuillez lire la partie Dialoguer avec NOUTOnline, en particulier les concepts clés.
Les tutoriaux disponible sont :
- Ouvrir et fermer une session
- Créer un enregistrement
- Modifier un enregistrement
- Supprimer un enregistrement
- Afficher une liste
- Faire une recherche
- Faire une requête
Fonctionnement général
Toutes les actions de manipulations de données se sont font pendant une session authentifiée. Cette dernière est ouverte au début avant les manipulations et fermée à la fin des manipulations.
Il y a 2 utilisateurs dans une session :
- L'utilisateur qui rentre ses informations de connexion sur la page de connexion
- L'utilisateur de l'application qui est configuré dans NOUTOnline. Lorsque que l'application fait une action qui a besoin de droit supérieur à l'utilisateur connecté (exemple : récupération des icones du menu), elle utilise l'entête APIUser pour indiquer que l'action est faite par l'application et non pas par l'utilisateur.
Afin de sécuriser le service, il est possible de filtrer les applications qui y accèdent. Ces dernières doivent alors ajouter l'entête APIUUID avec l'identifiant qui leur a été attribuée.
L'ensemble des actions sont regroupés en contexte d'action quand les actions ont un lien entre elles. Par exemple : les actions de création d'une commande et de ses lignes de commandes apartiennent au même contexte.
Après la phase d'idenfication, le UsernameToken de l'utilisateur SIMAX doit être recalculé et insérer dans le header SOAP à chaque requête.
Il est recommander d'utiliser les identifiants numérique dans le dialogue SOAP car cela garantie l'exactitude de la recherche des éléments (voir la documenation du XML et du XSD).
L'entête OptionDialogue permet de configurer le dialogue avec NOUTOnline.
Entêtes HTTP nécessaire à ajouter
Il faut ajouter l'obligatoirement 3 entêtes HTTP aux requêtes SOAP :
x-SIMAXService-Client
: Le nom du client qui execute la requêtex-SIMAXService-Client-IP
: L'adresse IP de l'utilisateur final. Cette entête est obligatoire.x-SIMAXService-Client-Version
: La version du client qui execute la requête
Ouvrir et Fermer une session
A l'exception de quelques unes, toutes les méthodes (SOAP ou REST) requière une session.
Pour ouvrir une session, il faut utiliser l'opération GetTokenSession.
Le token de session récolté devra être passé dans le Header de toutes les requêtes jusqu'à la fermeture de la session. L'entête à utiliser est SessionToken.
Ouvrir une session en mode intranet
Authentification en intranet
<?php
//-------------------------------------------------------------
//ETAPE DE CONNEXION
/** @var \NOUT\Soap\ServiceType\Service $oSOAPClient */
$sLogin = 'superviseur';
$sMdp = '';
$usernameToken = new \NOUT\Entity\UsernameToken($sLogin, $sMdp);
$usernameToken->ComputeCryptedPassword();//calcule le UsernameToken
//instantiation de la structure qui correspond aux paramètres la méthode GetTokenSession
$stGetTokenSessionParam = new \NOUT\Soap\StructType\GetTokenSession($usernameToken);
// appel de la méthode
$result = $oSOAPClient->GetTokenSession($stGetTokenSessionParam);
$oSOAPClient->log('GetTokenSession'); //affiche le log
//on a le token de session qui va nous servir par la suite
$sessionToken = $result->SessionToken;
//on le donne au service ici, pas besoin de le faire après pour cette instance du service
$oSOAPClient->setSoapHeaderSessionToken($sessionToken);
//on est prêt pour les actions
?>
Pour calculer le paramètre UsernameToken, il faut demander à l'utilisateur sont identifiant et son mot de passe.
Ouvrir une session en mode extranet
Authentification en extranet
<?php
//information de connexion de l'utilisateur SIMAX (depuis fichier de config)
$sLogin = 'Extranet';
$sMdp = 'extranet';
// formulaire sur lequel se fait l'extranet (depuis fichier de config)
$sFormExtra = 'Client'; //ou l'identitifant du formulaire
//information de connexion de l'utilisateur Extranet (demandé à l'utilisateur final)
$sLoginExtra = 'Client Dupond';
$sMdpExtra = 'mon mot de passe';
//-------------------------------------------------------------
//ETAPE DE CONNEXION
/** @var \NOUT\Soap\ServiceType\Service $oSOAPClient */
//identification de l'utilisateur SIMAX
//c'est cet objet qu'on garde pour recalculer l'entête UsernameToken pour les requetes suivantes.
$usernameToken = new \NOUT\Entity\UsernameToken($sLogin, $sMdp);
$usernameToken->ComputeCryptedPassword();//calcule le UsernameToken
//identification extranet
$usernameTokenExtranet = new \NOUT\Entity\UsernameToken($sLoginExtra, $sMdpExtra);
$usernameTokenExtranet->ComputeCryptedPassword();//calcule le UsernameToken
$extranetUser = new \NOUT\Soap\StructType\ExtranetUserType($usernameTokenExtranet, $sFormExtra);
//-------------------------------------------------------------
//ETAPE DE CONNEXION
$stGetTokenSessionParam = new \NOUT\Soap\StructType\GetTokenSession($usernameToken, $extranetUser);
$result = $oSOAPClient->GetTokenSession($stGetTokenSessionParam);
$oSOAPClient->log('GetTokenSession');
//on a le token de session qui va nous servir par la suite
$sessionToken = $result->SessionToken;
$oSOAPClient->setSoapHeaderSessionToken($sessionToken);
//on est prêt pour les actions
?>
Pour une identification en mode extranet, l'identifiant et le mot de passe récoltés permettent de calculer le UsernameToken fils de ExtranetUser.
Le paramètre Form
de ExtranetUser contient l'identifiant ou le libellé du formulaire qui contient les éléments sur lequel se fait l'extranet (exemple: client professionnel).
Le paramètre UsernameToken (fils de la balise GetTokenSession
) est calculé à partir de l'identifiant et du mot de passe de l'utilisateur SIMAX auquel est associé l'extranet et qui donne les droits d'accès.
Ces dernières informations (formulaire, identifiant, mot de passe) peuvent être stockées dans un fichier de configuration.
Fermer la session
Fermer la session
<?php
//-------------------------------------------------------------
//ETAPE de DECONNEXION
$oSOAPClient->setSoapHeaderActionContext(null);
$oSOAPClient->setSoapHeaderAutoValidate(null);
//on recalcule le username token
$usernameToken->ComputeCryptedPassword();
$oSOAPClient->setSoapHeaderUsernameToken($usernameToken);
$result = $oSOAPClient->Disconnect(null);
$oSOAPClient->log('Disconnect');
?>
Pour la deconnexion, il faut utiliser la méthode Disconnect.
Créer un enregistrement
La création d'un enregistrement se fait en 3 (ou 4) étapes :
- l'initialisation de l'action,
- la sélection du formulaire réel (si le formulaire en paramètre à des fils) ; cette étape dépend du paramétrage,
- l'envoi des données,
- la validation
1. Initialisation de l'action
L'initialisation de l'action se fait via l'opération Create. Cette opération prend en paramètre l'identifiant du formulaire à créer.
Si le formulaire donné en paramètre à des fils, alors le serveur renvoi une question intermédiaire (ReturnType AmbiguousAction). Il s'agit de la liste des formulaires possible pour la création ; cette liste se parse de la même manière qu'un ReturnType List. Voir l'étape 2 pour la réponse à faire pour finir l'initialisation de l'action.
Le serveur renvoi la description de l'enregistrement (ReturnType Record). Les informations à traiter dans le Header sont :
- ActionContext : nécessaire pour toutes les étapes suivantes
- Form : le formulaire courant (identifiant et libellé)
- Element : l'élément courant (identifiant et libellé)
- XSDSchema : la description de la structure de l'élément ; les valeurs sont dans le xml contentu dans le Body de la réponse
Il y a aussi :
- Action : l'action courante (identifiant et libellé)
2. Sélection du formulaire réel [Étape facultative en fonction du paramétrage]
Réponse SOAP intermédiaire
<?xml version="1.0" encoding="utf-8"?>
<env:Envelope xmlns:env="http://schemas.xmlsoap.org/soap/envelope/" xmlns:simax="http://www.nout.fr/soap">
<env:Header xmlns="http://www.nout.fr/wsdl/SimaxService.wsdl/">
<ReturnType>AmbiguousAction</ReturnType>
<ConnectedUser>...</ConnectedUser>
<XSDSchema>...</XSDSchema>
<ActionContext>30982336504289</ActionContext>
<Action title="Créer Client" typeReturn="AmbiguousAction" typeAction="2386" actionForm="8685">2639</Action>
<Form title="Formulaire" typeForm="2029" checksum="0" sort1="2100" sort1asc="1">2029</Form>
<Count>
<NbCalculation>0</NbCalculation>
<NbLine>3</NbLine>
<NbFiltered>3</NbFiltered>
<NbTotal>849</NbTotal>
</Count>
<Title>Plus précisément, vous voulez créer un :</Title>
</env:Header>
<env:Body>
<CreateResponse xmlns="http://www.nout.fr/wsdl/SimaxService.wsdl/">
<xml>
<xml VERSION="1" VERSION_LECTECRIT="1" VERSION_LECTURE="1" DATEHEURE="2017121415175073" xmlns:simax="http://www.nout.fr/XML/" xmlns:simax-layout="http://www.nout.fr/XML/layout">
<id_2029 simax:id="2566" simax:title="Client particulier" simax:xsdLevel="1" simax:recordIconID="45975937193383" simax:recordColor="37FFC8">
<id_2100>Client particulier</id_2100>
...
</id_2029>
<id_2029 simax:id="47964170787823" simax:title="Établissement" simax:xsdLevel="1" simax:recordIconID="37587866061142" simax:recordColor="916E5C">
<id_2100>Établissement</id_2100>
...
</id_2029>
<id_2029 simax:id="2568" simax:title="Client professionnel" simax:xsdLevel="1" simax:recordIconID="36380980070557" simax:recordColor="FF4F6D">
<id_2100>Client professionnel</id_2100>
...
</id_2029>
...
</xml>
</xml>
</CreateResponse>
</env:Body>
</env:Envelope>
Requête SOAP
<SOAP-ENV:Envelope
xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:ns0="http://www.nout.fr/wsdl/SimaxService.wsdl/">
<SOAP-ENV:Header>
<ns0:UsernameToken>...</ns0:UsernameToken>
<ns0:SessionToken>...</ns0:SessionToken>
<ns0:ActionContext>[identifiant de contexte retourné à l'étape 1]</ns0:ActionContext>
<ns0:OptionDialogue>...</ns0:OptionDialogue>
</SOAP-ENV:Header>
<SOAP-ENV:Body>
<ns0:SelectForm>
<ns0:Form>2568</ns0:Form>
</ns0:SelectForm>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>
Cette étape est nécessaire quand le serveur renvoi un ReturnType AmbiguousAction (uniquement si le formulaire demandé à des fils). Il faut
utiliser l'opération SelectForm pour répondre. Cette opération prend en paramètre Form
, l'identifiant du formulaire choisi par l'utilisateur parmis
ceux proposé dans la réponse du serveur.