API : Ajouter des annexes

Chargement des annexes du contrat

HTTP POST 

https://cloud.sellandsign.com/calinda/hub/selling/do?m=uploadPicture&option_id=[option_id]

[Avec l'annexe en HTTP Part (multipart/form-data)]

Exemple sur le CLOUD SELL&SIGN

Pour charger une annexe sur l'option dont l'id est 1866.

https://cloud.sellandsign.com/calinda/hub/selling/do?m=uploadPicture&option_id=1866
Content-Length 54164	 	
Content-Type multipart/form-data; 
boundary=---------------------------17051144681837078108139936823737

[le fichier Image "Annexe.png"]

Retour :

[{"id":63,"optionId":1866,"lastModificationDate":1575304327455,"imageToken":"MTU3NTMwNDMyNzQ1NV8xODY2XzEyMjIz","lastModificationPlace":"SERVER","name":"20190913_143820.jpg","contentType":"image\/jpeg"}]

Mais comment trouver l'option_id?

Un modèle de contrat SELL&SIGN peut comporter plusieurs options et plusieurs annexes, qui peuvent avoir des types et une sémantique. Afin d'ajouter une annexe à votre contrat, vous devez au préalable, créer une option dépendante du contrat et de la définition d'élément.

Voici les étapes à effectuer :

  1. récupérer l'id de la définition de l'option "hub.selling.contract.default.picture.option" grâce à getOptionDefinitionByName
  2. récupérer ensuite la liste des définitions d'éléments associés à cette option à l'aide getElementDefinitionByName en passant l'id de la définition d'option précédente
  3. créer ensuite l' option à l'aide de GetOrCreateOption en passant l'id de la première définition d'élément de la liste précédente
  4. comme vu ci-dessus : appeler uploadPicture en passant l'id de l'option qui vient d'être créée

1) trouver l'OptionDefinitionId de la définition d'option qui va accueillir l'annexe

Si vous travaillez sur un modèle de contrat particulier, vous devez connaître l'optionDefinitionId à utiliser. Mais la plupart des gens démarrent avec un contrat PDF ADHOC (contrat PDF générique). Si c'est votre cas, notre équipe vous a fourni le ContractDefinitionId du contrat PDF générique de votre licence, et vous pouvez récupérer l'optionDefinitionId à partir de là :

Si vous voulez plus d'information sur les options, veuillez vous référer à la documentation préalable, en cliquant sur le lien rouge ci-dessous :
Définition des valeurs des options et Smartfields

https://cloud.sellandsign.com/calinda/hub/selling/model/optiondefinition/read?action=getOptionDefinitionByName

Input JSON dans le Body :
{
    "option_definition_name": "hub.selling.contract.default.picture.option",
    "contract_definition_id": [ContractDefinitionId]
}

Résultat :

{"id":281021,"name":"hub.selling.contract.default.picture.option","type":"PICTURE","description":"","pageId":18243,"optionDefGroupId":0,"syncTimer":1589462203181,"helpId":1,"userIdentifier":"","lastModificationPlace":"SERVER","required":false,"page_id":18243}

Dans cet exemple l'id de l'option definition qui nous intéresse est "281021".

2) trouver l'ElementDefinitionId de l'élément de l'option qui va accueillir l'annexe

Pour des raisons qui seraient trop longues à expliquer, il faut maintenant trouver l'id de l'élément de l'option qui va accueillir l'annexe.

https://cloud.sellandsign.com/calinda/hub/selling/model/elementdefinition/read?action=getElementDefinitionByName

Input JSON dans le Body :
{
    "option_definition_id": 281021,
    "element_definition_name": ""
}

Résultat :

{"id":419401,"name":"","type":"PICTURE","description":"","optionDefinitionId":281021,"syncTimer":1589462203184,"lastModificationPlace":"SERVER","value":"","range":"","imageToken":"","image_token":"","sync_timer":1589462203184,"option_definition_id":281021}

Dans cet exemple l'id de l'élément definition qui nous intéresse est "419401".

3) créer l'Option qui va porter la ou les annexes

Ouf! Nous avons l'identifiant qu'il nous faut pour créer l'option qui va porter la ou les annexes (et qui aura le fameux option_id).

https://[host]/calinda/hub/selling/model/option/update?action=getOrCreateOption

input json:
{
  "contract_id" : [ContractId],
  "element_definition_id": [identifiant de l'element pour notre option, soit 419401],
  "value": [la valeur que nous voulons donner à notre option]
}

Résultat :

{
    "id": 555555,
    "contractId": [ContractId],
    "elementDefinitionId": 419401,
    "syncTimer": 1589462203184,
    "value": "",
    "lastModificationPlace": "SERVER"
}

Ca y est !!! L'id de l'option est donc "555555". Plus qu'à le passer en paramètre de l'appel "uploadPicture" en haut de la page pour arriver à vos fins et ajouter une annexe !

En cas d'erreur HTTP

Une erreur HTTP 400 peut indiquer l'absence d'un paramètre requis, ou une valeur inappropriée. Le message joint à l'erreur vous permettra de trouver sa cause.
En cas d'erreur HTTP 500, vous pouvez contacter le support sur notre portail support en envoyant votre requête pour que nous vous assistions.