Comparaison des versions

Légende

  • Ces lignes ont été ajoutées. Ce mot a été ajouté.
  • Ces lignes ont été supprimées. Ce mot a été supprimé.
  • La mise en forme a été modifiée.

...

Modification d’une intervention

L'action pour la (description du SW) modification d’une intervention : integration_intervention

...

Balise du corps (data)

Niveau

Contenu

Obligatoire

Remarques

entityintervention

1Nom de la table

Détail d’une intervention à modifier

OUI

DOCUMENT_TYPE et RECORD_NUMBER

ou

INTERVENTION_CODE

2

Champs d’identification de l’intervention à modifier.

Deux méthode pour trouver l’intervention.

  • soit par type PiTyp et numéro EnrNo

  • soit par InterCod

OUI

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

2

Liste des champs avec leur nom de champ et la valeur

OUI

filename

1

Nom du fichier à joindre

OUI

entity

1

Nom de la table

OUI

Texte complémentaire

.

Les champs modifiables sont précisés plus bas

NON

Ce service web permet de mettre à jour certains champs des interventions IM (table DtrInter).Il est possible d’appeler ce service web des 2 façons suivantes :

·         Soit on passe le champ « intervention_code » (=DTRINTER.InterCod)

·         Soit on passe les champs « document_type » (DTRINTER.PiTyp) et « record_number » (=DTRINTER.EnrNo).

...

{

    "action": "WEB_SERVICE_INFINITY",

    "access_token": "{{TOKEN}}",

    "param": "{'header':{'caller': 'infinity','callerVersion': '6.107029','languageCode': 'FR','userCode': 'X6','callDateTime': '2020-12-12 14:30:00.943'},'action':{'swinfinity': 'integration_intervention','parameters':{'withlog': '1','dos': '998','actiontyp': 'update'}},'data':{'intervention':{'INTERVENTION_CODE': 'testsiv0002', 'INTERVENTION_STATE': 'FORECASTED', 'PLANNED_START_DATE': '20210910120001', 'PLANNED_END_DATE': '20210911120000', 'PLANNED_DURATION': '60', 'REMAINING_DURATION': '30', 'ESTIMATED_DURATION': '100', 'EFFECTIVE_DURATION': '41'}}}"

}

 

{

    "action": "WEB_SERVICE_INFINITY",

    "access_token": "{{TOKEN}}",

...

Un mapping existe entre les noms de champs du dictionnaire les les noms de balise à utiliser

Table DTRINTER(=intervention)

Nom de balise

Nom de champ

Version

Remarque

DOCUMENT_TYPE

PiTyp

10.7

Champ clé pour la méthode par Type+Numéro

RECORD_NUMBER

EnrNo

Champ clé pour la méthode par Type+Numéro

INTERVENTION_CODE

InterCod

Champ clé pour la méthode par CodeIntervention

INTERVENTION_STATE

Etat

CLOSED=1,BILLED=2,TO_BE_BILLED=3,FORECASTED=4,PLANNED=5,READY_TO_PLAN=6,STARTED=7,TO_VALIDATE=8

PLANNED_START_DATE

PrevDebDh

PLANNED_END_DATE

PrevFinDh

PLANNED_DURATION

DureePrev

REMAINING_DURATION

DureePrevRest

ESTIMATED_DURATION

DureeEsti

EFFECTIVE_DURATION

DureeEff


Exemple de corps, utilisation de la méthode Type+Numéro pour identifier l’intervention

Bloc de code
'data':
    {'intervention':
        {
        'DOCUMENT_TYPE': '2',

...


        'RECORD_NUMBER': '

...

72',

...


        'INTERVENTION_STATE': 'CLOSED',

...


        'PLANNED_START_DATE': '20210910120002',

...


        'PLANNED_END_DATE': '20210911120000',

...


        'PLANNED_DURATION': '60',

...


        'REMAINING_DURATION': '31',

...


        'ESTIMATED_DURATION': '100',

...


        'EFFECTIVE_DURATION': '40'}
        }
    }

...

}

 

 

b.      Vue générale de la chaine JSON en entrée

Le contrôle du retour se fait via la lecture du champ « resultcode » :

·         0 : OK

·         1 : Erreur, requête non conforme

·         2 : Erreur, intervention inexistante

3 : Rejet suite à un contrôle de l’objet métier non satisfait

(Ici des exemples prêts à copier. Exemple = que la zone data, complet= tout)

Exemple de corps
Bloc de code
languagejson

Exemple de corps, utilisation de la méthode CodeIntervention pour identifier l’intervention

Bloc de code
'data':
    {'intervention':
        {
        'entityINTERVENTION_CODE': 'ENTtest001',
     'key':{'TICOD':'C', 'PICOD':'2', 'PREFPINO':'', 'PINO':'10000029'},   'INTERVENTION_STATE': 'CLOSED',
        'PLANNED_START_DATE': '20210910120002',
        'PLANNED_END_DATE': '20210911120000',
        'PLANNED_DURATION': '60',
        'REMAINING_DURATION': '31',
        'filenameESTIMATED_DURATION': 'commande10000029.pdf100',
     'filedata   'EFFECTIVE_DURATION': 'JVBERi0xLjQKJeLjz9MKMSAwIG9iago8PAovUGFnZXMgMi40'}
        }
    }

Exemple complet flux JSON
Bloc de code
languagejson
{ 

        "action":"WEB_SERVICE_INFINITY",
        "access_token":"{{TOKEN}}",
        "param":"
        {
                {
        'action':  {'swinfinity':  'associerintegration_fichierintervention'},
        'parameters': 
            {
            'dos': '998'
                 },
        'data':
            {
            'entity':'ENT',
            'key':{'TICOD':'C', 'PICOD':'2', 'PREFPINO':'', 'PINO':'10000029'},
            'filename':'commande10000029.pdf',
            'filedata':'JVBERi0xLjQKJ'
            }
        }"
}            {'intervention':
                {
                'DOCUMENT_TYPE': '2',
                'RECORD_NUMBER': '72',
                'INTERVENTION_STATE': 'CLOSED',
                'PLANNED_START_DATE': '20210910120002',
                'PLANNED_END_DATE': '20210911120000',
                'PLANNED_DURATION': '60',
                'REMAINING_DURATION': '31',
                'ESTIMATED_DURATION': '100',
                'EFFECTIVE_DURATION': '40'}
                }
            }"
        }            
    }"
}

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

  • resultcode=1 : Erreur, requête non conforme

  • resultcode=2 : Erreur, intervention inexistante

  • resultcode=3 : Rejet suite à un contrôle de l’objet métier non satisfait


Exemple de réponse

Bloc de code
languagejson
{
        "error": 0 0,
        "result":  "{\"label\":  \"infinity\",\"codeScript\":  \"associerintegration_fichierintervention\",\"result\":{\"common\":{\"resultcode\":  \"0\",\"errormessage\":  \"\"},\"response\":\"\"}}",
        "txterr":  "",
        "infos":  ""
}