Skip to content

infra

Description

Gestion de l'infrastructure.

Cette action fournit les outils permettant d'éditer les tables d'infrastructure de l'application. L'action attend un paramètre function décrivant le comportement à adopter. Le paramètre function peut prendre les valeurs suivantes:

Énumération des tables d'infrastructure existantes. C'est la fonction par défaut lorsque infra est invoqué sans paramètre function.

Les paramètres suivants sont reconnus:

style string
Feuille de style à utiliser pour la transformation de l'arbre de sortie

Charge ou recharge le contenu d'une table en vue de l'éditer.

Les paramètres suivants sont reconnus:

table string
Nom de table
offset number
Offset des données à charger. Par défaut: 0
limit number
Nombre de lignes à charger. Par défaut, c'est la valeur limit définie au niveau de la description de la table d'infrastructure qui s'applique, ou 200 si aucune limite n'est spécifiée.
ignoreData boolean
Flag indiquant de ne pas extraire de données. Dans ce cas, seule la structure de la table est reprise dans l'arbre de sortie. Ce flag est utile lorsque le chargement des données est réalisé au moyen d'une requête ajax.
style string
Feuille de style à utiliser pour la transformation de l'arbre de sortie

Sauvegarde les modifications. Cette opération prend en charge

  • les modifications de valeurs
  • les ajouts de lignes
  • les suppressions de lignes

Le principe de gestion de l'infrastructure est le suivant:

L'arbre XML de sortie du moteur fournit un élément <infrastructure> ayant la forme suivante:

<infrastructure>
    <content table="ListeStatut" offset="0">
        <head>
            <column name="Col1" identifier="true"/>
            <column name="Col2" identifier="true"/>
            <column name="Col3"/>
            <column name="Col4"/>
        </head>
        <body count="27">
            <row reference="534f2b99-8c5b-4204-b5a2-bbdfb11862ec">
                <col reference="057759f7-9503-4122-a311-313250ae8d3c" identifier="true">ID-A1</col>
                <col reference="96eebafd-8907-4eb4-a09a-b8b8f4615819" identifier="true">ID-A2</col>
                <col reference="2737dedc-ceb3-49ed-bcf7-85346b70e66e">Valeur 1</col>
                <col reference="1d22ca3c-b381-48c4-9ad8-4f819d456baf">Valeur 2</col>
            </row>
            <row reference="81290287-72b0-4670-b183-2bafa8d79d22">
                <col reference="1766f815-39f2-4292-b272-44626facad5f" identifier="true">ID-B1</col>
                <col reference="8a0465a3-2e07-496c-a95d-6b92c5038ed7" identifier="true">ID-B2</col>
                <col reference="cc854320-f331-4e71-9f93-828530888f5f">Valeur 3</col>
                <col reference="1d6e53d8-826b-4ede-9a90-33d558b143c5">Valeur 4</col>
            </row>
            <!-- ... -->
        </body>
    </content>
</infrastructure>

Les attributs reference sont des identifiants à reprendre dans les noms de champs du formulaire envoyé pour l'action infra. Les noms de champs doivent être formés selon la convention suivante:

EWT:INFRA-<reference>

<reference> reprend la valeur de l'attribut reference.

Lorsqu'il reçoit un champ de formulaire ayant cette forme, le moteur détermine si le champ désigne une ligne ou une valeur de la table d'infastructure.

Dans le cas d'une ligne: si le champ contient la valeur del, le moteur l'interprète comme une suppression de ligne : la ligne sera retirée de la table d'infrastructure.

Dans le cas d'une valeur : si la référence est valide, le moteur traite la modification de valeur, à condition que la valeur du champ diffère de celle lue par le moteur au moment de la génération de la référence, la valeur est mise à jour dans la table d'infrastructure.

Le cas des ajouts de lignes s'appuie sur un forme de nom de champ légèrement différent:

EWT:INFRA-NEWROW-<colonne>[#]

colonne est le nom de la colonne et # est un numéro permettant de regrouper les valeurs par ligne (il est possible d'ajouter plusieurs nouvelles lignes à la fois). Le moteur se chargera alors de créer des nouvelles lignes dans la table d'infrastructure et d'y enregistrer les valeurs reçues. Attention: si la table d'infrastructure contient une clé primaire, il faut que les éléments de la clé respectent les contraintes liées à la clé primaire.

ignoreData boolean
Flag indiquant de ne pas extraire de données. Dans ce cas, seule la structure de la table est reprise dans l'arbre de sortie. Ce flag est utile lorsque le chargement des données est réalisé au moyen d'une requête ajax.

Quitte la gestion d'infrastructure et revient sur le mode de fonctionnement standard

Schéma

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
{
    "$id": "https://ewt.epilogic.ch/action.infra.schema.json",
    "$schema": "https://json-schema.org/draft/2020-12/schema",
    "title": "Action infra",
    "description": "This json schema gives prototype of action infra",
    "type": "object",
    "properties": {
        "action": {
            "description": "Name of the action",
            "type": "string",
            "const": "infra"
        },
        "params": {
            "description": "Parameters of current action",
            "type": "object",
            "oneOf": [
                {
                    "properties": {
                        "function": { 
                            "description": "Charge table content",
                            "const": "load"
                        },
                        "table": {
                            "description": "Table name",
                            "type": "string"
                        },
                        "offset": { 
                            "description": "Data loading offset",
                            "type": "integer",
                            "minimum": 0
                        },
                        "limit": { 
                            "description": "Data loading limit",
                            "type": "integer",
                            "minimum": 0
                        },
                        "ignoreData": { 
                            "description": "Indicate wether data should be loaded immediately. 
                                Enable this flag only if you plan to load data by chunks.",
                            "type": "boolean"
                        },
                        "style": { 
                            "description": "Style used for output transformation",
                            "type": "string"
                        }
                    },
                    "required": [
                        "function",
                        "table"
                    ]
                },
                {
                    "properties": {
                        "function": {
                            "description": "Save table modifications",
                            "const": "save"
                        },
                        "style": {
                            "description": "Style used for output transformation",
                            "type": "string"
                        },
                        "ignoreData": {
                            "description": "Indicate wether data should be loaded immediately. 
                                Enable this flag only if you plan to load data by chunks.",
                            "type": "boolean"
                        }
                    },
                    "required": [
                        "function"
                    ]
                },
                {
                    "properties": {
                        "function": {
                            "description": "Exit infrastructure table edition",
                            "const": "exit"
                        },
                        "style": {
                            "description": "Style used for output transformation",
                            "type": "string"
                        }
                    },
                    "required": [
                        "function"
                    ]
                }
            ]
        }
    },
    "required": [
        "action",
        "params"
    ]
}