Création devis travaux (V10.7) (JSON)

Création de devis travaux

L'action pour la création de devis travaux : integration_dtr

Balise de paramètres (parameters)

Niveau

Contenu

Obligatoire

Remarques

Balise de paramètres (parameters)

Niveau

Contenu

Obligatoire

Remarques

dos

1

Dossier achat-vente

NON

Par défaut selon utilisateur

worktreemode

1

Complétion automatique*

auto =>oui

(toute autre valeur) => non

NON

Si on souhaite une complétion automatique des éléments de l’ouvrage en ne renseignant qu’une ligne de type ouvrage avec le code ouvrage OU avec un code ouvrage à espace (dans ce cas c’est l’ouvrage par défaut du dossier devis travaux qui sera inséré)

 

Balise du corps (data)

Niveau

Contenu

Obligatoire

Remarques

Balise du corps (data)

Niveau

Contenu

Obligatoire

Remarques

head

1

Ouverture de l’entête de la demande

OUI

 

dtrent

2

Balise ouverture champs de l’entête

OUI

Données de l’entête devis travaux

{“nomChamp1”:”valeur1”,”nomChamp2”:valeur2”}

3

Liste des champs DTRENT avec leur nom de champ et la valeur

OUI

 

txttb

2

Balise ouverture des zones de texte

NON

Données de textes et notes

txt

3

Détails d’une zone texte sous la forme

'txt':{'TXTTYP':'1', 'TXTFORMAT':'1', 'TXTVAL':'Ceci est la note entete'

NON

Valeurs TXTTYP

1                    note en-tête ou ligne

2                    texte en-tête ou ligne

3                    texte pied

Valeurs TXTFORMAT

1                    texte

2                    Rich text encodé en base 64

filetb

2

Balise ouverture des fichiers joints

NON

Données de fichiers joints

mjoint

3

Détail d’un fichier joint sous la forme

'mjoint':{'CHEMIN':'nomFichier.txt'

NON

 

bodytb

1

Balise ouverture du corps de la demande (tableau)

OUI

 

2

Ligne de demande

OUI

 

treelevel

3

Niveau dans l'arborescence mouvement

OUI

 

dtrmouv

3

Balise ouverture mouvement devis travaux

OUI

 

{“nomChamp1”:”valeur1”,”nomChamp2”:valeur2”}

4

Liste des champs DTRMOUV avec leur nom de champ et la valeur

OUI

 

txttb

3

Détails d’une zone texte sous la forme

'txt':{'TXTTYP':'1', 'TXTFORMAT':'1', 'TXTVAL':'Ceci est la note ligne CHAPITRE NIVEAU 1'

NON

 

equiptb

3

Balise ouverture détail équipement

NON

 

dtrmouvmat

4

Balise ouverture détail matériel

NON

 

{“nomChamp1”:”valeur1”,”nomChamp2”:valeur2”}

4

Liste des champs DTRMOUVMAT avec leur nom de champ et la valeur

OUI

 

Notes et textes (facultatif)

La section txttb est un tableau contenant des éléments itxt (détail de cette table en annexe).

La section txt est une collection de champs et leurs valeurs (type de texte et contenu texte).

Fichiers joints (facultatif)

La section filetb est un tableau contenant « n » éléments mjoint (détail de cette table en annexe).

La section mjoint est une collection de champs et leurs valeurs.

! Les fichiers doivent être présents sur le serveur, le chemin est lu en mode local.

Séquence head minimale

"head" :{

      "dtrent" :{

                         "TICOD":"C",

                         "TIERS":"C0000001",

                         "OP":"CTR",

                         "ETB":"1"

                      }

                 } 

 

 

Exemple de corps
'data': { 'head': { 'dtrent': { 'ETATDTR':'1', 'TYPETIERS':'C', 'TIERS':'C0000001', 'OP':'CTR', 'DEPOT':'1', 'SITECOD':'DTR', 'PIREF':'Test caractères accentués', 'DEMANDECOD':'00000000002', 'INTERCOD':'0000000042', 'ETB':'1' }, 'txttb': [ {'txt':{'TXTTYP':'1', 'TXTFORMAT':'1', 'TXTVAL':'Ceci est la note entete'}}, {'txt':{'TXTTYP':'2', 'TXTFORMAT':'2', 'TXTVAL':'e1xydGYxXGFuc2lcYW5zaWNwZzEyNTJcdWMxXGh0bWF1dHNwXGRlZmYye1xmb250dGJse1xmMFxmY2hhcnNldDAgVGltZXMgTmV3IFJvbWFuO317XGYyXGZjaGFyc2V0MCBBcmlhbDt9e1xmM1xmY2hhcnNldDAgVHJlYnVjaGV0IE1TO319e1xjb2xvcnRibFxyZWQwXGdyZWVuMFxibHVlMDtccmVkMjU1XGdyZWVuMjU1XGJsdWUyNTU7XHJlZDI1NVxncmVlbjBcYmx1ZTA7XHJlZDBcZ3JlZW4wXGJsdWUyNTU7fVxsb2NoXGhpY2hcZGJjaFxwYXJkXHBsYWluXGx0cnBhclxpdGFwMHtcbGFuZzEwMzZcZnMyMFxmMlxjZjAgXGNmMFxxbHtcZjIge1xiXGx0cmNoIFRleHRlIGVudFwnZWF0ZSBkZSBwaVwnZThjZX1cbGkwXHJpMFxzYTBcc2IwXGZpMFxxbFxwYXJ9DQp7XGYyIHtcbHRyY2ggZHUgfXtcYlxmczQwXGNmMlxsdHJjaCBEVFIgNTkgKFwnZTAgbCdvcmlnaW5lKX1cbGkwXHJpMFxzYTBcc2IwXGZpMFxxbFxwYXJ9DQp7XGZzMzZcZjMge1xjZjNcbHRyY2ggcG91ciB0ZXN0IGludFwnZTlncmF0aW9uIGVuIG1vZGUgUlRGfVxsaTBccmkwXHNhMFxzYjBcZmkwXHFsXHBhcn0NCn0NCn0='}} ], 'filetb': [ {'mjoint':{'CHEMIN':'joint1.txt'}}, {'mjoint':{'CHEMIN':'joint2.txt'}} ] }, 'bodytb': [ { 'treelevel':'1', 'dtrmouv': { 'TYPELIGNEDTR':'2', 'DES':'CHAPITRE NIVEAU 1' }, 'txttb': [ {'txt':{'TXTTYP':'1','TXTVAL':'Ceci est la note ligne CHAPITRE NIVEAU 1'}}, {'txt':{'TXTTYP':'2','TXTVAL':'Ceci est le texte ligne CHAPITRE NIVEAU 1'}} ] }, { 'treelevel':'2', 'dtrmouv': { 'CE2':'3', 'OUVCOD':'OUV2', 'CODEMATERIEL':'OUV', 'QTE':'2' }, 'equiptb': [ {'dtrmouvmat':{'CODEMATERIEL':'OUV_0002'}}, {'dtrmouvmat':{'CODEMATERIEL':'OUV_0003'}} ] }, { 'treelevel':'3', 'dtrmouv': { 'CE2':'1', 'REF':'ALB0001', 'QTE':'1' } }, { 'treelevel':'3', 'dtrmouv': { 'CE2':'1', 'REF':'ALB0003', 'QTE':'3' } }, { 'treelevel':'1', 'dtrmouv': { 'CE2':'2' } }, { 'treelevel':'2', 'dtrmouv': { 'CE2':'2' } }, { 'treelevel':'3', 'dtrmouv': { 'TYPELIGNEDTR':'2' } } ] }



Exemple complet flux JSON
{ "action":"WEB_SERVICE_INFINITY", "access_token":"{{TOKEN}}", "param":" { 'action': {'swinfinity': 'integration_dtr'}, 'parameters': { 'dos': '998', 'worktreemode':'auto' }, 'data': { 'head': { 'dtrent': { 'ETATDTR':'1', 'TYPETIERS':'C', 'TIERS':'C0000001', 'OP':'CTR', 'DEPOT':'1', 'SITECOD':'DTR', 'PIREF':'Test caractères accentués', 'DEMANDECOD':'00000000002', 'INTERCOD':'0000000042', 'ETB':'1' }, 'txttb': [ {'txt':{'TXTTYP':'1', 'TXTFORMAT':'1', 'TXTVAL':'Ceci est la note entete'}}, {'txt':{'TXTTYP':'2', 'TXTFORMAT':'2', 'TXTVAL':'e1xydGYxXGFuc2lcYW5zaWNwZzEyNTJcdWMxXGh0bWF1dHNwXGRlZmYye1xmb250dGJse1xmMFxmY2hhcnNldDAgVGltZXMgTmV3IFJvbWFuO317XGYyXGZjaGFyc2V0MCBBcmlhbDt9e1xmM1xmY2hhcnNldDAgVHJlYnVjaGV0IE1TO319e1xjb2xvcnRibFxyZWQwXGdyZWVuMFxibHVlMDtccmVkMjU1XGdyZWVuMjU1XGJsdWUyNTU7XHJlZDI1NVxncmVlbjBcYmx1ZTA7XHJlZDBcZ3JlZW4wXGJsdWUyNTU7fVxsb2NoXGhpY2hcZGJjaFxwYXJkXHBsYWluXGx0cnBhclxpdGFwMHtcbGFuZzEwMzZcZnMyMFxmMlxjZjAgXGNmMFxxbHtcZjIge1xiXGx0cmNoIFRleHRlIGVudFwnZWF0ZSBkZSBwaVwnZThjZX1cbGkwXHJpMFxzYTBcc2IwXGZpMFxxbFxwYXJ9DQp7XGYyIHtcbHRyY2ggZHUgfXtcYlxmczQwXGNmMlxsdHJjaCBEVFIgNTkgKFwnZTAgbCdvcmlnaW5lKX1cbGkwXHJpMFxzYTBcc2IwXGZpMFxxbFxwYXJ9DQp7XGZzMzZcZjMge1xjZjNcbHRyY2ggcG91ciB0ZXN0IGludFwnZTlncmF0aW9uIGVuIG1vZGUgUlRGfVxsaTBccmkwXHNhMFxzYjBcZmkwXHFsXHBhcn0NCn0NCn0='}} ], 'filetb': [ {'mjoint':{'CHEMIN':'joint1.txt'}}, {'mjoint':{'CHEMIN':'joint2.txt'}} ] }, 'bodytb': [ { 'treelevel':'1', 'dtrmouv': { 'TYPELIGNEDTR':'2', 'DES':'CHAPITRE NIVEAU 1' }, 'txttb': [ {'txt':{'TXTTYP':'1','TXTVAL':'Ceci est la note ligne CHAPITRE NIVEAU 1'}}, {'txt':{'TXTTYP':'2','TXTVAL':'Ceci est le texte ligne CHAPITRE NIVEAU 1'}} ] }, { 'treelevel':'2', 'dtrmouv': { 'CE2':'3', 'OUVCOD':'OUV2', 'CODEMATERIEL':'OUV', 'QTE':'2' }, 'equiptb': [ {'dtrmouvmat':{'CODEMATERIEL':'OUV_0002'}}, {'dtrmouvmat':{'CODEMATERIEL':'OUV_0003'}} ] }, { 'treelevel':'3', 'dtrmouv': { 'CE2':'1', 'REF':'ALB0001', 'QTE':'1' } }, { 'treelevel':'3', 'dtrmouv': { 'CE2':'1', 'REF':'ALB0003', 'QTE':'3' } }, { 'treelevel':'1', 'dtrmouv': { 'CE2':'2' } }, { 'treelevel':'2', 'dtrmouv': { 'CE2':'2' } }, { 'treelevel':'3', 'dtrmouv': { 'TYPELIGNEDTR':'2' } } ] } }" }



Format de la réponse :

Balise

Contenu

Balise

Contenu

error

Anomalie technique de l’appel du service web

0 = pas n’anomalie, autre valeur = anomalie

Dans ce cas la balise txterr indique le message d’erreur

result

Détail du résultat fonctionnel de l’appel du service web

resultcode= 0 => pas d’anomalie fonctionnelle la demande est bien traitée

resultcode<>0 => anomalie fonctionnelle/métier dont la raison est indiquée dans errormessage

Le response contient notamment le numéro de pièce dans pino et prefpino


Exemple de réponse

{ "error": 0, "result": "{\"label\": \"infinity\",\"codeScript\": \"integration_dtr\",\"result\":{\"common\":{\"resultcode\": \"1\",\"errormessage\": \"dtrent - Erreur check:CODESITE - Site DTR inexistant\"},\"response\":{\"pino\": \"0\",\"prefpino\": \" \"}}}", "txterr": "", "infos": "" }