Webhook Text Block
Résumé
Manipulation de l'entité TextBlock (Blocs de textes) en lecture/écriture/suppression via un objet métier depuis une application externe.
Tables
Les tables utilisées sont :
sw_data_textblockheader : Table des entêtes de blocs de textes
sw_data_textblockdetail : Table des détails de blocs de textes
Les tables liées sont :
sw_data_textblockdetaildocument : Table des pièces jointes d'un bloc de texte
Critères d'activation
WHK_TextBlock est défini dans la gestion des webhooks du studio.
Règles métier
verb: PUT
La date de début de validité est mise par défaut à la date du jour (validityStartDate) si non fournie lors d'une création
Si le code entête de bloc de texte fourni n’existe pas (textblockheader_ID), on créé automatiquement une nouvelle entête de bloc texte (sw_data_textblockheader)
Fonctionnement
verb: GET
resultType: simple
"textblockdetail": {
"codetextblockdetail": "ADR_BUREAU-FR",
"textblockheader_ID": "ADR_BUREAU",
"name": "Adresse bureau",
"validityStartDate": "2022-02-01 00:00:00",
"validityEndDate": "",
"baseculture_ID": "FR-FR"
}
verb: GET
resultType: extended
"textblockdetail": {
"codetextblockdetail": "ADR_BUREAU-FR",
"textblockheader_ID": "ADR_BUREAU",
"name": "Adresse bureau"
"validityStartDate": "2022-02-01 00:00:00",
"validityEndDate": "",
"baseculture_ID": "FR-FR",
"description": "",
"body": "<html><head><meta http-equiv=\"Content-Type\" content=\"text/html; charset=utf-8\" /></head><body><p><strong><u>Coordonnées :</u></strong></p><p>Divalto<br />11 rue Icare<br />67960 ENTZHEIM</p><p>Tél : +33 (0)3 88 64 50 60<br />Fax : +33 (0)3 88 64 50 70<br />Email : info@divalto.com</p></body></html>"
}
verb: GET
resultType: extendedRelated
en complément du résultat pour resultType: extended on aura le détail pour les tables textblockheader et baseculture
verb: PUT
"textblockdetail": {
"codetextblockdetail": "ADR_BUREAU-FR", /* Code globalement unique du détail du bloc texte. Si non fourni code=ID (Varchar (255))*/
"textblockheader_ID": "ADR_BUREAU", /* Code entête de bloc texte (ForeignKey () - sw_data_textblockheader.codetextblockheader)*/
"name": "Adresse bureau" /* Nom (Varchar (255))*/
"validityStartDate": "2022-02-01 00:00:00", /* Date de début de validité (Datetime())*/
"validityEndDate": "", /* Date de fin de validité (Datetime())*/
"baseculture_ID": "FR-FR", /* Culture (ForeignKey () - sw_data_baseculture.codebaseculture)*/
"description": "", /* Description (Text (65535))*/
"body": "<html><head><meta http-equiv=\"Content-Type\" content=\"text/html; charset=utf-8\" />..." /* Contenu du bloc texte en HTML (Text (65535))*/
}
Possibilité d’utiliser des tags dans le body pour faire référence à des champs de la base qui seront interprétés lors de l’utilisation du bloc texte.
La liste complète est disponible dans le web (Paramétrage → Général → Blocs texte puis bouton “Tags”).
Exemples : [customer.address1], [baseuser.firstName], [customer.address1], …
Pour ajouter une ou plusieurs pièces jointes à un bloc texte il suffira d'appeler le webhook file autant de fois que voulu.
Exemple :
"action":
{
"verb": "PUT",
"parameters":
{
"entity": "textblockdetail",
"extension": "document"
}
},
"data":
{
"file": {
"codefile": "", /* Code globalement unique pour entity/extension. Si non fourni code=ID (Varchar (255))*/
"parent_ID": "xxxxx", /* Code du parent. Ici il faut utiliser le code bloc texte qui est retourné après la création du bloc texte (soit celui qui a été fourni manuellement dans le json du bloc texte ou celui qui été attribué automatiquement). (ForeignKey () - sw_data_textblockdetail.codetextblockdetail)*/
"fileName": "adrbureau_gpx.gpx", /* Nom du fichier (Varchar (255))*/
"description": "", /* Description (Text (65535))*/
"fileBase64": "PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNv ....", /* Fichier encodé en base 64 (MediumBlob ())*/
}
}
verb: LIST
resultType: simple, extended reprendre les définitions du GET
Ce mode ne retourne pas le champ "body" pour une question de performances.
A la suite du résultat recherché il suffira de lancer le webhook en mode GET sur le "codeTextBlockDetail" voulu pour récupérer le "body".
"filters:" {
"codeTextBlockDetail": "value", filter is equal
"name": "value", filter is contains
"description": "value", filter is contains
"validityActive": "value", filter is equal (if value = "1" return only text block active today)
"validityStartDate": "value", filter is greater or equal to
"validityEndDateDate": "value", filter is less or equal to
"codeCulture": "value", filter is equal
"codeTextBlockHeader": "value", filter is equal
"codeTextBlockType": "value" filter is equal
},
"orderBy": "value"
Valeurs possibles pour le tri "orderBy" :
nameAsc : par nom ascendant
verb: DELETE
Une suppression d'un bloc texte (sw_data_textblockdetail) va supprimer en cascade les éléments dans la table liée sw_data_textblockdetaildocument.