NAV
Documentation pour version NOUTOnline 1901.01 ou supérieure
Généré le 18/09/2023 08:25 UTC

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 :

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éesValeur du flagsValeur Affichée demandée
Texte0x0001
Texte multi-ligne0x0002
Entier0x0004
Réel0x0008
Monétaire0x0010
Date0x0020
Heure0x0040
Date Heure0x0080
Booléen0x0100
Identifiant0x0200
Fichier0x0400
Liste déroulante0x0800
Élément de tableau0x1000
Liste d'élément de tableau0x2000
Durée0x4000
Flags Calculée0x400716391

Les identifiants

Les identifiants doivent être dans un des formats suivants :

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 :

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 :

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:

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 :

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 :

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 :

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 :

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é :

Une code d'erreur (sur 32 bits) se décompose de la manière suivante (poids fort vers poids faible):

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 :

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 :

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
print 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

NomDescriptionValeur par défault
idActionIdentifiant de l'action du bouton0
withValidation1 si l'enregistrement courant à besoin d'être validé avant de déclencher l'action0
actionType Type de l'action parmis les valeurs suivantes :
  • Ajouter
  • Créer
  • Détail
  • Modifier
  • Supprimer
  • Enlever
  • Imprimer
0
typeSelection
0
aucune sélection nécessaire
1
mono-sélection demandée
multi
sélection multiple autorisée au moins 1 nécessaire

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.

NomDescriptionValeur par défault
iconIdentifiant de l'icône du séparateur
sectionComputed1 si le séparateur contient des calculs de fin de ligne (tableau croisé)0
sectionLevel
1
séparateur principal (onglet)
2
séparateur secondaire
3
séquence de de champs
multicolonne
1
pas de multicolonne
2
sur 2 colonnes
3
sur 3 colonnes
4
sur 4 colonnes
5
sur 5 colonnes
direction
1
multicolonne horizontal
2
multicolonne vertical

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

NomDescriptionValeur par défault
phoneNumber1 si la colonne est un numéro de téléphone0
directory1 si la colonne est un répertoire ou un chemin de fichier complet0
postalCode1 si la colonne est un code postal0
city1 si la colonne est une ville0
inputMaskmasque de saisie pour les réels et les monétaires
transform
url
site web, adresse email, url
uppercase
tout en majuscule
firstUppercase
première lettre en majuscule
colorRGB
couleur
secret
mot de passe, masquer l'information

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
Print 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é :
  • 0 : annuler uniquement la dernière action
  • 1 : annule le contexte d'action dans sa totalité
ByUser entier 1 indique si l'annulation est une action utilisateur :
  • 0 : origine logicielle (indépendante de l'utilisateur)
  • 1 : origine 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>&lt;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"&gt;
&lt;id_1169 simax:id="2" simax:title="Superviseur" simax:xsdLevel="0"&gt;
&lt;id_1171&gt;Superviseur&lt;/id_1171&gt;
&lt;id_1172&gt;Super&lt;/id_1172&gt;
&lt;id_1173&gt;Viseur&lt;/id_1173&gt;
&lt;id_1174&gt;florian@nout.fr&lt;/id_1174&gt;
&lt;id_7623&gt;city hunter - ryo couleur 027.jpg&lt;/id_7623&gt;
&lt;id_7624&gt;1&lt;/id_7624&gt;
&lt;id_9424/&gt;
&lt;id_10545&gt;0&lt;/id_10545&gt;
&lt;/id_1169&gt;
&lt;/xml&gt;
</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>&lt;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"&gt;
&lt;id_1169 simax:id="2" simax:title="Superviseur" simax:xsdLevel="0"&gt;
&lt;id_1171&gt;Superviseur&lt;/id_1171&gt;
&lt;id_1172&gt;Super&lt;/id_1172&gt;
&lt;id_1173&gt;Viseur&lt;/id_1173&gt;
&lt;id_1174&gt;florian@nout.fr&lt;/id_1174&gt;
&lt;id_7623&gt;city hunter - ryo couleur 027.jpg&lt;/id_7623&gt;
&lt;id_7624&gt;1&lt;/id_7624&gt;
&lt;id_9424/&gt;
&lt;id_10545&gt;0&lt;/id_10545&gt;
&lt;/id_1169&gt;
&lt;/xml&gt;
</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>&lt;id_1169&gt;2&lt;/id_1169&gt;</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>&lt;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"&gt;
&lt;id_1169 simax:id="2" simax:title="Superviseur" simax:xsdLevel="0"&gt;
&lt;id_1171&gt;Superviseur&lt;/id_1171&gt;
&lt;id_1172&gt;Super&lt;/id_1172&gt;
&lt;id_1173&gt;Viseur&lt;/id_1173&gt;
&lt;id_1174&gt;florian@nout.fr&lt;/id_1174&gt;
&lt;id_7623&gt;city hunter - ryo couleur 027.jpg&lt;/id_7623&gt;
&lt;id_7624&gt;1&lt;/id_7624&gt;
&lt;id_9424/&gt;
&lt;id_10545&gt;0&lt;/id_10545&gt;
&lt;/id_1169&gt;
&lt;/xml&gt;
</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 :

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 :
  • un nom de fichier avec répertoire ou un fichier : on récupère le contenu du fichier
  • une liste : on récupère le détail de chaque enregistrement à la place de la liste des identifiants

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&apos;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 principaleSous-langueCode Langue
FrançaisStandard1036
Canadien3084
EspagnolStandard1034
Américain21514
AnglaisAméricain1033
Britanique2057
Canadien4105
AllemandStandard1031
ItalienStandard1040

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 :

D'autres erreurs ayant traits à la sécurité peuvent être retournées (configuration de NOUTOnline) :

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 :

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>&lt;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"&gt;
&lt;id_1169 simax:id="2" simax:title="Superviseur" simax:xsdLevel="0"&gt;
&lt;id_1171&gt;Superviseur&lt;/id_1171&gt;
&lt;id_1172&gt;Super&lt;/id_1172&gt;
&lt;id_1173&gt;Viseur&lt;/id_1173&gt;
&lt;id_1174&gt;florian@nout.fr&lt;/id_1174&gt;
&lt;id_7623&gt;city hunter - ryo couleur 027.jpg&lt;/id_7623&gt;
&lt;id_7624&gt;1&lt;/id_7624&gt;
&lt;id_9424/&gt;
&lt;id_10545&gt;0&lt;/id_10545&gt;
&lt;/id_1169&gt;
&lt;/xml&gt;
</xml>
    </ListResponse>
  </env:Body>
</env:Envelope>

Le type de retour dépend du DisplayMode :

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>&lt;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"&gt;
&lt;id_1169 simax:id="2" simax:title="Superviseur" simax:xsdLevel="0"&gt;
&lt;id_1171&gt;Superviseur&lt;/id_1171&gt;
&lt;id_1172&gt;Super&lt;/id_1172&gt;
&lt;id_1173&gt;Viseur&lt;/id_1173&gt;
&lt;id_1174&gt;florian@nout.fr&lt;/id_1174&gt;
&lt;id_7623&gt;city hunter - ryo couleur 027.jpg&lt;/id_7623&gt;
&lt;id_7624&gt;1&lt;/id_7624&gt;
&lt;id_9424/&gt;
&lt;id_10545&gt;0&lt;/id_10545&gt;
&lt;/id_1169&gt;
&lt;/xml&gt;
</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).

Print

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 :

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 :

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 :

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>&lt;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"&gt;
&lt;id_1169 simax:id="2" simax:title="Superviseur" simax:xsdLevel="0"&gt;
&lt;id_1171&gt;Superviseur&lt;/id_1171&gt;
&lt;id_1172&gt;Super&lt;/id_1172&gt;
&lt;id_1173&gt;Viseur&lt;/id_1173&gt;
&lt;id_1174&gt;florian@nout.fr&lt;/id_1174&gt;
&lt;id_7623&gt;city hunter - ryo couleur 027.jpg&lt;/id_7623&gt;
&lt;id_7624&gt;1&lt;/id_7624&gt;
&lt;id_9424/&gt;
&lt;id_10545&gt;0&lt;/id_10545&gt;
&lt;/id_1169&gt;
&lt;/xml&gt;
</xml>
    </SearchResponse>
  </env:Body>
</env:Envelope>

Le type de retour dépend du DisplayMode :

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 :

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 :

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 :

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 :

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 :

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 :

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 :

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 :

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>&lt;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"&gt;
&lt;id_1169 simax:id="2" simax:title="Superviseur" simax:xsdLevel="0"&gt;
&lt;id_1171&gt;Superviseur&lt;/id_1171&gt;
&lt;id_1172&gt;Super&lt;/id_1172&gt;
&lt;id_1173&gt;Viseur&lt;/id_1173&gt;
&lt;id_1174&gt;florian@nout.fr&lt;/id_1174&gt;
&lt;id_7623&gt;city hunter - ryo couleur 027.jpg&lt;/id_7623&gt;
&lt;id_7624&gt;1&lt;/id_7624&gt;
&lt;id_9424/&gt;
&lt;id_10545&gt;0&lt;/id_10545&gt;
&lt;/id_1169&gt;
&lt;/xml&gt;
</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 :

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&apos;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 :

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 :

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 :

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 :

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 :

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 :

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 :

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 :

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 :

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 :

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 :

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 :

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 :

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 :

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 :

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 :

Les valeurs retournée est de type : Xml

GetListMessage

GetMailServiceStatus

Cette opération permet de récupérer l'état courant de la messagerie :

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 :

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 &gt; 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 :

Les entêtes retournées sont :

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 :

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 :

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 :

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 :

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 :

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 :

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 :

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 :

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 :

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>&lt;xml&gt;&lt;id_16100 id=&quot;32499276868213&quot;&gt;&lt;id_16102&gt;Dossier test2&lt;/id_16102&gt;&lt;/id_16100&gt;&lt;/xml&gt;</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 :

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 :

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 :

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 :

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 :

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.

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 :

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 :

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 :

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 :

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 :

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 :

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 :

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 :

PJSizeCheck

<PJSizeCheck>0</PJSizeCheck>
<?php
$oSOAPClient->getSoapHeaderPJSizeCheck();

Ce header à pour valeur :

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 :

PossibleDisplayMode

<PossibleDisplayMode>List|Chart</PossibleDisplayMode>

La balise PossibleDisplayMode contient la liste des modes d'affichage disponible pour la liste. Les valeurs possibles sont :

RecipientCheck

<RecipientCheck>
    <To address="M. Simax" type="multiple">
        <To id="../..">Monsieur Simax &lt;m.simax@nout.fr&gt;</To>
        <To id="../..">Monsieur Simax2 &lt;m.simax2@nout.fr&gt;</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) :

qui ont pour attributs :

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 :

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 :

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 :

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 :

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.

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

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 :

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 différent de AnswerType) Correspond à l'identifiant du message type à utiliser pour créer le message

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.

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>

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.

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 :

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 :

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 :

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 :

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érérale 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

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
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)
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
  • 1 renvoi le xml en lisible
  • 0 renvoi le xml avec les identifiants
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 :

Option Type Défaut Description
displayvalue int facultatif 0 format d'affichage des données
languagecode int facultatif 0 Code langue pour le retour
Option Type Défaut Description
WantContent int (0|1) facultatif 0
  • 0 retourne le nom ( et chemin quand applicable) du fichier
  • 1 retourne le contenu
encoding string facultatif plaintext encoding pour le retour quand WantContent=1:
  • plaintext : le contenu du fichier tel quel
  • base64 : encodage du fichier en base64
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 &amp; 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
  • 1 renvoi le xml en lisible
  • 0 renvoi le xml avec les identifiants
ghost int facultatif 1 lecture dans les invalides
  • 1 valide uniquement
  • 2 invalide uniquement
  • 3 valide et invalide
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&apos;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
  • 1 renvoi le xml en lisible
  • 0 renvoi le xml avec les identifiants
ghost int facultatif 1 lecture dans les invalides
  • 1 valide uniquement
  • 2 invalide uniquement
  • 3 valide et invalide
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

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.

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
Paramètre Type Description
colonne string facultatif paramètre de l'action SIMAX
Option Type Défaut Description
ghost int facultatif 1 lecture dans les invalides
  • 1 valide uniquement
  • 2 invalide uniquement
  • 3 valide et invalide

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
  • 1 renvoi le xml en lisible
  • 0 renvoi le xml avec les identifiants
ghost int facultatif 1 lecture dans les invalides
  • 1 valide uniquement
  • 2 invalide uniquement
  • 3 valide et invalide
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
  • 1 renvoi le xml en lisible
  • 0 renvoi le xml avec les identifiants
ghost int facultatif 1 lecture dans les invalides
  • 1 valide uniquement
  • 2 invalide uniquement
  • 3 valide et invalide
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 :

D'autres erreurs ayant traits à la sécurité peuvent être retournées (configuration de NOUTOnline) :

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
  • 1 renvoi le xml en lisible
  • 0 renvoi le xml avec les identifiants
ghost int facultatif 1 lecture dans les invalides
  • 1 valide uniquement
  • 2 invalide uniquement
  • 3 valide et invalide
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
  • 1 renvoi le xml en lisible
  • 0 renvoi le xml avec les identifiants
ghost int facultatif 1 lecture dans les invalides
  • 1 valide uniquement
  • 2 invalide uniquement
  • 3 valide et invalide
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

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
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
Paramètre Type Description
colonne ou paramètre string facultatif paramètre de l'action SIMAX
Option Type Défaut Description
readable int (0|1) facultatif 1
  • 1 renvoi le xml en lisible
  • 0 renvoi le xml avec les identifiants
ghost int facultatif 1 lecture dans les invalides
  • 1 valide uniquement
  • 2 invalide uniquement
  • 3 valide et invalide
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.

Print

Request

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
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
Paramètre Type Description
colonne string facultatif paramètre de l'action SIMAX
Option Type Défaut Description
readable int (0|1) facultatif 1
  • 1 renvoi le xml en lisible
  • 0 renvoi le xml avec les identifiants
ghost int facultatif 1 lecture dans les invalides
  • 1 valide uniquement
  • 2 invalide uniquement
  • 3 valide et invalide
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 :

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
  • 0 : redémarre NOUTOnline
  • 1 : Teste si l'utilisateur de la session à le droit de redémarrer NOUTOnline

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
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
Paramètre Type Description
colonne ou paramètre string facultatif paramètre de l'action SIMAX
Option Type Défaut Description
readable int (0|1) facultatif 1
  • 1 renvoi le xml en lisible
  • 0 renvoi le xml avec les identifiants
ghost int facultatif 1 lecture dans les invalides
  • 1 valide uniquement
  • 2 invalide uniquement
  • 3 valide et invalide
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 :

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 :

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 :

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 :

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 :

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 :

  1. l'initialisation de l'action,
  2. la sélection du formulaire réel (si le formulaire en paramètre à des fils) ; cette étape dépend du paramétrage,
  3. l'envoi des données,
  4. 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 :

Il y a aussi :

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.

3. Envoi des données

4. Validation