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.

...

Bloc de code
languagenone
WebhookDefinitionOverload_xxx

// WebhookDefinitionOverload_xxx
// @Description             =>  Overload webhook definition

languageCode     = VARGET_SHELL( "languageCode", "WebhookDefinition" )

specificOverload = TRANSLATE( "
  {
    'extendedFieldsListToExclude': '',
    'simpleFieldsList': '',
    'relatedTablesCount': '',
    'relatedTables': [],
    'authorizedTables': [],
    'cascadeDeleteTables': [],
    'fieldsList': {
    
    },
    strictFilters: [
      
    ],
    'strictOrderBy': [
      
    ],
    'outOfMainTableFields': [
      
    ]
  }
" )
RETURN( "<varscript>specificOverload</varscript>" )

...

Bloc de code
languagenone
'relatedTablesCount': xx,
'relatedTables': [ 'fieldFK1', 'fieldFK2', '...' ]

Exemple

Le standard liste les champs generictype_ID_customerFamily, baseuser_ID et generictype_ID_country.

...

Bloc de code
languagenone
'relatedTablesCount': 4,
'relatedTables': [ 'generictype_ID_customerFamily', 'baseuser_ID', 'generictype_ID_country', 'final_pricecategory_ID_tarCod' ]

La liste proposée par le standard ne me convient pas et je ne veux afficher que les valeurs liées pour generictype_ID_customerFamily complété par le champ final_pricecategory_ID_tarCod.

Bloc de code
languagenone
'relatedTablesCount': 2,
'relatedTables': [ 'generictype_ID_customerFamily', 'final_pricecategory_ID_tarCod' ]

Liste des tables autorisées pour mise à jour additionnelle

...

Bloc de code
languagenone
'authorizedTables': [{'tableName':'mainTableName'}, {'tableName':'additionalTableName1'}, {'tableName':'additionalTableName2'}, {'tableName':'....'}]

Exemple

Pour le webhook des interventions, le standard autorise les table suivantes : intervention, interventionequipment et interventionpart.

...

Bloc de code
languagenone
'authorizedTables': [{'tableName':'intervention'}, {'tableName':'interventionequipment'}, {'tableName':'interventionpart'}, {'tableName':'interventionoperationrange'}]

Liste des tables pour suppression en cascade

...

Bloc de code
'strictOrderBy': [
{
    'name': '...',
    'fields': [
    {
        'table': '...'
        'field': '...',
        'order': '...'
    },
    {
        'table': '...'
        'field': '...',
        'order': '...'
    },
    {
        ...
    }]
},
{
    'name': '...',
    'fields': [
    {
        'fieldtable': '...',
        'orderfield': '...',
    },     {'order': '...'
    },
    {
        ...
    }]        
}]

Description syntaxe

...

Ordre

Description

asc

tri ascendant

desc

tri descendant

Les tris ne sont possibles que sur les champs de la table principale du webhooktable (optionnel) : nom de la table liée sur laquelle on veut faire le tri. Ne pas utiliser si le tri est effectué sur un champ de la table principale. Ne peut être utilisé que si un champ est déjà lu dans la table liée (selon type “simple” ou “extended”). Pour le type “simple”, les tris sur des tables liées ne seront donc pas forcément tous disponibles.

Exemples

  • Je veux trier mes clients sur les champs standards « Code postal » (postalCode) et « Ville » (city) de manière ascendante :

Bloc de code
'strictOrderBy': [
{
    'name': 'postalCodeAscCityAsc',
    'fields': [
    {
        'field': 'postalCode',
        'order': 'asc'
    },
    {
        'field': 'city',
        'order': 'asc'
    }]
}]

-> Appel webhook avec le tri :

...

Bloc de code
'strictOrderBy': [
{
    'name': 'vacationEndDescNameASc',
    'fields': [
    {
        'field': 'vacationEnd',
        'order': 'desc'
    },
    {
        'field': 'name',
        'order': 'asc'
    }]
}]

-> Appel webhook avec le tri :

...

Bloc de code
'strictOrderBy': [
{
    'name': 'CapitalDesc',
    'fields': [
    {
        'field': 'v_A101',
        'order': 'desc'
    }]
}]

-> Appel webhook avec le filtre :

Bloc de code
languagejson
"orderBy": "CapitalDesc"
  • Je veux trier mes clients sur un champ d’une autre table « Catégorie client » (codepricecategory) ascendant et sur le « Nom » (name) ascendant :

Info

Attention ici ce tri ne peut être utilisé que si l’interrogation est effectué pour un type “extended”

Pour une utilisation pour un type “simple”, il faudrait ajouter le champ “pricecategory_ID” dans la propriété simpleFieldsList

Bloc de code
 'strictOrderBy': [
{
    'name': 'codePriceCategoryAscNameAsc',
    'fields': [
    {
        'table': 'pricecategory',
        'field': 'codepricecategory',
        'order': 'asc'
    },
    {
        'field': 'name',
        'order': 'asc'
    }]
}

-> Appel webhook avec le filtre :

Bloc de code
languagejson
"orderBy": "codePriceCategoryAscNameAsc"
  • Je veux trier mes clients sur champ d’une autre table « Type générique - Pays » (originalCode) ascendant et sur le « Nom » (name) ascendant :

Bloc de code
 'strictOrderBy': [
{
    'name': 'codeCountryAscNameAsc',
    'fields': [
    {
        'table': 'generictype_country',
        'field': 'originalCode',
        'order': 'asc'
    },
    {
        'field': 'name',
        'order': 'asc'
    }]
}

-> Appel webhook avec le filtre :

Bloc de code
languagejson
"orderBy": "codeCountryAscNameAsc"

Surcharge des règles métier

...