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 |
---|---|---|---|---|
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 |
---|---|---|---|---|
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
| 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
| 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
| 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 |
---|---|
error | Anomalie technique de l’appel du service web 0 = pas n’anomalie, autre valeur = anomalie Dans ce cas la balise |
result | Détail du résultat fonctionnel de l’appel du service web
Le |
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": ""
}