Tags

Comment créer une relation N-N dans Planisware ?

Les développeurs qui travaillent depuis un certain temps avec Planisware savent que créer une relation N-N peut s’avérer fastidieux. En effet, dans les anciennes versions de Planisware, il était nécessaire de coder manuellement le mapping entre les différentes tables. C’est pourquoi, depuis la P5SP2, Planisware a mis à disposition une méthode de création simplifiée de relation N-N. Cette méthode se base sur la création en script d’un champ de type ring attribute qui va s’occuper de créer automatiquement les lignes de la relation N-N.

Lire la suite…



Android: Qu’est ce qu’une AsyncTask ?

Qu’est-ce qu’une AsyncTask? Les AsyncTask permettent une utilisation correcte et facile du ThreadUI. Cette classe permet d’effectuer des tâches de fond et de publier des résultats sans manipuler des threads et/ou des handlers. Une tâche asynchrone est définie par un calcul qui fonctionne sur un thread en arrière-plan et dont le résultat est publié sur le ThreadUI. Une tâche asynchrone est définie par 3 types génériques, appelés : le paramètre, la progression et le résultat ainsi que 4 étapes, appelées OnPreExecute, doInBackground, onProgressUpdate et onPostExecute.

Lire la suite…



Talend et MySql GROUP_CONCAT
Talend et MySql GROUP_CONCAT


Introduction Lors d’une mission récente, je me suis retrouvé confronté à un problème de configuration Mysql avec Talend : la limite du nombre de caractères de la fonction GROUP_CONCAT. De quoi s’agit t-il ? Comment augmenter cette taille maximale ? Quelle est la bonne pratique ? C’est ce que nous allons voir rapidement dans cet article. Rappel sur la fonction GROUP_CONCAT de MySql La fonction GROUP_CONCAT() permet de regrouper les valeurs non nulles d’un groupe en une chaîne de caractère.

Lire la suite…



Comment fonctionne l’avancement standard dans Planisware ?
Comment fonctionne l’avancement standard dans Planisware ?


Les utilisateurs chevronnés de Planisware savent que le logiciel permet, souvent par du développement spécifique, de mettre en place une quasi-infinité de méthodes de gestion de l’avancement. Cependant, peu connaissent le fonctionnement standard d’un Planisware « nu », sans aucune surcouche. Cet article a pour but de faire un retour aux bases et de redécouvrir le fonctionnement natif de Planisware en ce qui concerne l’avancement (ici en prenant le cas des affectations).

Lire la suite…



Relation inverse : quelle syntaxe en OJS sous Planisware  ?
Relation inverse : quelle syntaxe en OJS sous Planisware ?


Problématique Les relations inverses permettent de « récupérer » facilement et de manière optimisée tous les objets qui possèdent une relation avec un objet donné. Par exemple une relation inverse permettra de parcourir la liste des affectations portant sur une activité donnée. Cet article apporte un éclairage sur la manière d’utiliser une relation inverse et complète un précédent billet sur ce sujet. Comme vous pourrez le voir le nommage est loin d’être unique… et pour une même relation inverse on pourra avoir plusieurs possibilités.

Lire la suite…



Planisware : comment afficher la table des projets en client lourd ?
Planisware : comment afficher la table des projets en client lourd ?


Affichage des objets d’une classe – cas général Planisware Pro permet de consulter les objets Planisware d’une classe donnée (affectations, formules nommées, etc..). Par exemple on peut ouvrir une fenêtre affichant un tableau d’activités via le menu Données > Afficher tâches & sous-projets.   Exemple de tableau d’activités : Ces tableaux sont très utiles pour créer des styles personnalisés (styles de paramétrage) qui permettront de définir l’affichage des tableaux de données dans les rapports par exemple.

Lire la suite…



Bonnes pratiques relatives à la gestion des scripts

L’objectif de cette article est de partager des bonnes pratiques relatives la gestion des scripts dans Planisware. Cet article se concentre sur l’agencement général des scripts et ne traite pas des règles de nommage ou des bonnes pratiques concernant le code en lui même. Ces bonnes pratiques sont issues de mon expérience et de celle de mes collègues. Elles ont pour but de : Retrouver rapidement les modifications effectuées dans une version.

Lire la suite…



Planisware : focus sur les bonnes pratiques de nommage
Planisware : focus sur les bonnes pratiques de nommage


Problématique Lorsque l’on s’attache à mettre en œuvre des bonnes pratiques de nommage sous Planisware, 2 grandes familles d’objets sont à prendre en compte : les objets d’environnement Planisware (formules nommées, tables, champs supplémentaires…) les variables, fonctions et méthodes définies en script OJS Le respect de normes dans le développement est fondamental car il permet la maintenabilité du code au cours de la vide d’une application. Le non respect de conventions pour le nommage des objets et l’écriture du code rendra les corrections et évolutions plus couteuses (en temps et en énergie) et augmentera les risques de régression (dus en général à une mauvaise compréhension du paramétrage).

Lire la suite…



Planisware : comment optimiser le parcours d’une classe avec la relation inverse ?
Planisware : comment optimiser le parcours d’une classe avec la relation inverse ?


Problématique Il est fréquent en script Planisware (OJS) d’avoir à rechercher des éléments dans une classe donnée (affectations, tâches, dépenses etc…). La performance de cette recherche dépend principalement de deux facteurs : La volumétrie totale des objets de la classe parcourue La manière dont les objets de la classe sont parcourus Pour optimiser ce deuxième point, Planisware met à disposition un outil permettant de parcourir des ensembles d’objets restreints : les relations inverses.

Lire la suite…



Inspect() : afficher les attributs d’un objet en OJS
Inspect() : afficher les attributs d’un objet en OJS


Problématique Lorsque l’on développe en langage script Planisware (OJS), il peut être utile d’afficher les attributs d’un objet ainsi que leur valeur à un instant donné. Pour ce faire nous pouvons utiliser les fonctions alert(), writeln() et inspect(). Une première solution basique consiste à afficher la valeur d’un champ en utilisant les instructions alert (pour un affichage en popup à l’écran) et writeln (pour un affichage dans le fichier de log ou dans la console Planisware selon si l’on est connecté en client léger ou en client lourd).

Lire la suite…