Chapitre 8 Annexe

Ce chapitre contient différent éléments de références qui sont applicables pour tous les tutoriels.

8.1 CSV

Le format standard de CSV de Dynacase est :

  • encodage : UTF8,
  • délimiteur de cellule : ;,
  • délimiteur de texte : `` (chaîne vide).

Ce format est valide pour l'import et pour l'export des documents et des familles avec l'action importDocuments.

8.2 Conventions de nommage

Module :

├── API/
├── <APPLICATION>
│   ├── <APPLICATION>.app
│   ├── <APPLICATION>_init.php
│   ├── Familles/
│   ├── Images/
│   ├── Layout/
├── EXTERNALS/
├── locale/
├── STYLE/
├── info.xml

Avec les éléments suivants :

  • API contient les scripts,
  • EXTERNALS contient les aide à la saisie,
  • STYLE contient les styles,
  • locale contient les traduction,
  • info.xml contient les instructions pour la mise à jour et l'upgrade,
  • <APPLICATION> contient les fichiers associés à une application :
    • <APPLICATION>/Familles contient les fichiers définissant les familles, avec pour chaque famille :
      • <APPLICATION>/Familles/<FAMILY_NAME>__STRUCT.csv : Structure de la famille,
      • <APPLICATION>/Familles/<FAMILY_NAME>__CLASS.php : Classe contenant le code métier de la famille,
      • <APPLICATION>/Familles/<FAMILY_NAME>__PARAM.csv : Paramétrage de la famille,
      • <APPLICATION>/Familles/<FAMILY_NAME>__DATA.csv : Documents de paramétrage de la famille (profils, masques, contrôles de vue, etc.),
      • <APPLICATION>/Familles/<FAMILY_NAME>__INIT_DATA.csv : Documents d'initialisation appartenant à la famille <FAMILY_NAME>.
    • <APPLICATION>/action.<action_name>.php : Fichier de contrôleur d'une action,
    • <APPLICATION>/Layout/<action_name.html : Template HTML d'une action.

8.3 Script open office

Il existe un ensemble de scripts Libre Office / OpenOffice pour faciliter le développement d'une famille.

Vous pouvez le trouver ici.

Le script s'intègre en passant par le menu Macro sous partie Libre office basic.

Ajout d'un script

Figure 133. Ajout d'un script

Ensuite la fenêtre suivante s'ouvre :

Ajout d'un script

Figure 134. Ajout d'un script

Vous sélectionnez le module1 et le bouton éditer. L'écran suivant est affiché :

Ajout d'un script

Figure 135. Ajout d'un script

Vous copiez le contenu du fichier référencé ci-dessus à la place du script existant.

Vous pouvez ensuite ajouter les scripts en modifiant les menus : faites un clic droit sur la barre d'outils et sélectionnez l'option Personnaliser la barre d'outil.

Ce script intègre plusieurs macros :

  • color,
  • autoReset,
setDefaultOption

Permet de remplir automatiquement les valeurs des colonnes - E (utilisé pour composer le titre), par défaut à N ; - F (affiché dans la fiche résumé), par défaut à N ; - I (visibilité), par défaut à W ; - O (options), avec des valeurs par défaut en fonction du type d'attribut : - htmltext : toolbar=Basic|toolbarexpand=no, - enum : bmenu=no|eunset=yes|system=yes, - array : vlabel=up, - longtext : editheight=4em.

Le script n'opère que sur les attributs pour lesquels cette colonne est vide.

autoNum

Permet de remplir automatiquement la colonne H (l'ordre d'affichage) des attributs Le script remplace l'ordre de tous les attributs, y compris ceux pour lesquels cette valeur est déjà définie. Il sépare

  • les attributs non structurants d'un pas de 10,
  • les tableaux d'un pas de 10,
  • les cadres d'un pas de 100,
  • les onglets d'un pas de 1000.

Dans certains cas, il peut être nécessaire de forcer l'ordre d'un attribut (par exemple, dans le cas d'un héritage, pour positionner un attribut entre 2 attributs de la famille parente). Cela peut se faire en indiquant la valeur souhaitée dans la colonne R. La numérotation automatique poursuivra alors à partir de cette nouvelle valeur.

setParent
Permet de remplir automatiquement la colonne C (l'attribut encadrant) des attributs. Le script n'opère que sur les attributs pour lesquels cette colonne est vide. Le script se base sur l'ordre des attributs pour effectuer cette opération (il utilise le dernier encadrant rencontré comme parent).

Vous pouvez voir ci-dessous un exemple d'utilisation de ces scripts :

Exemple de construction

Figure 136. Exemple de construction

8.4 Développement rapide

Vous avez sûrement remarqué que le déploiement systématique des sources via le webinst est une action consommatrice en temps. Vous pouvez lors des phases de développement passer outre pour déployer de manière unitaire les différents fichiers :

  • pour les fichiers .csv, vous devez :
    • déplacer le fichier sur le contexte d’exécution, le path où déposer le fichier est composé de la manière suivante :
      • le path du contexte,
      • le path du fichier dans les sources du module. Par exemple, si vous souhaitez déplacer le fichier ./COGIP_AUDIT/COGIP_AUDIT_REFERENTIEL__PARAM.csv et que le path de votre contexte est /var/www/dynacase/ vous devez déposer le fichier à l'emplacement /var/www/dynacase/COGIP_AUDIT/COGIP_AUDIT_REFERENTIEL__PARAM.csv
    • vous connecter en SSH sur la machine virtuelle,
    • vous connecter en wiff,
    • lancer la commande ./wsh.php --api=importDocuments --csv-enclosure='"' --file=<path_vers_le_fichier>, ce qui donne en reprenant l'exemple ci-dessus ./wsh.php --api=importDocuments --csv-enclosure='"' --file=./COGIP_AUDIT/COGIP_AUDIT_REFERENTIEL__PARAM.csv
  • pour les fichiers .php, .js, .css, vous devez :
    • déplacer le fichier sur le contexte d’exécution (en suivant la règle exposée ci-dessus),
    • pour les fichiers .php, .html, etc. le changement est immédiat,
    • pour les fichiers .js, .css : attention Dynacase met en place du cache HTTP, vous devez donc vider le cache au niveau de votre navigateur, ou le désactiver,
  • pour les fichiers .po : vous devez :
    • déplacer le fichier sur le contexte d’exécution (en suivant la règle exposée ci-dessus),
    • vous connecter en SSH sur la machine virtuelle,
    • vous connecter en wiff,
    • lancer la commande suivante : programs/update_catalog,
  • pour les fichiers de définition d'application .app : ces fichiers nécessitent un re-déploiement.

Attention, ce mode de fonctionnement est strictement à prohiber en production et à réserver uniquement au développement de votre application.

×