Modèle Conceptuel des Données


Vocabulaire utilisé
  • Un Objet K est une entité. On peut également faire l'amalgame entre un objet et une table de données.
  • Une instance correspond à un enregistrement dans une table physique.
  • Une fiche s'appelle également un formulaire, un écran de saisie.
Tableau de bord > Modèle Conceptuel des Données

MCD = Objet et relations
Depuis cette liste, vous devez créer vos objets et modifier leurs propriétés suivantes :
  • Ico : Icone de Font Awesome représentant l'objet concerné.
  • Nom objet : Nom court, simple et reconnaissable par les utilisateurs.
  • Sans fiche : Si coché, la saisie se fera directement dans une liste (sans passer par une fiche/formulaire). Convient uniquement aux objets sans fils.
  • IsVirtuel : L'objet est virtuel : un autre objet pourra ainsi hériter de l'ensemble de ses attributs
    Dans notre exemple l'objet ENTITE est virtuel tandis que les objets Fournisseurs et Etablissements héritent.
    Cela permet de partager des attributs communs tels que le nom, l'adrese, le téléphone, l'email, .... mais également des traitements.
    Afficher les données d'un objet virtuel revient à afficher toutes les instances des objets héritants.
  • Hérite de : L'objet héritera de l'objet virtuel concerné. (informations, process, workflow ... )
  • Père 1 : relation forte (1-1) par convention est le D1 dans les filtres/critères. Un objet virtuel peut avoir également des Pères pour ses objets héritants.
  • Pos 1 : Position de l'onglet des données fils dans la fiche du Père 1.
  • Statut ini : Premier état (ou statut) que prend une instance lorsque l'objet comporte un cycle de vie.
  • Chrono : Dernier numéro de chrono utilisé
  • Actif : Critère permettant de définir les instances qui ne seront plus proposées (dans une liste de chox) car devenues obsolètes.
  • JSValid : Fonction Javascript (à mettre dans le fichier js/specifique.js) appelée pour valider une conformité spécifique de la saisie.
  • Layer : Nom donné à une famille d'objets
  • Duplicable : Précise à l'utilisateur qu'il peut dupliquer une fiche existante (génère un CLONE)
  • Histo : Permet l'historique des modifications de chaque instance (Heure, Valeurs, Utilisateur).
  • FilterUnicité : Impose un contrôle d'unicité (mono ou multi champs séparés par $).
    Exemples D2;D1|L|$D1|L| ou I|133|L|$I|134|L| ou I|191|egal ou I|391|egal $I|475|egal ou I|210|egal $D1|L|
  • Axes : Définis des axes d'intérêts sur l'objet utilisés par certains outils comme la vue arborescente
  • Filtercalculagrégat : Critère de condition portant sur l'instance pour effectuer le recalcul de ses aggrégats.
  • Couleur : Chemin relatif vers une information de type couleur pour imposer la couleur de chaque ligne dans les listes
  • Hauteur Variable : indique que la hauteur des lignes en mode liste varie en fonction du contenu
  • NbCar : Nombre minimal de caractères à frapper pour commencer la recherche dans une liste déroulante
  • Aide : lien URI de la page html d'aide proposée à l'utilisateur pour cet objet (=support formation)
Le click droit sur les lignes de cette liste ouvre un menu avec :
  • Liste des données : Ouvrir la liste de toutes les instances de l'objet
  • Importer des données : Importe des données au format excel (voir k-Import.pdf)
  • Exporter des données : Exporte les données au format excel
  • Administrer cet objet : Ouvre la fiche de paramétrage de l'objet
  • Relation X : Permet de paramétrer la relation avec le Pere X
  • Correction des données : Lance un contrôle et une correction automatique des données non viables structurellement
  • Transformer en Classique : Isole les instances de cet objet dans une table physique optimisée. (à faire au délà de 10000 instances)

Dans la gestion des droits, chaque objet pourra être :
  • visible ou non selon le profil de l'utilisateur
  • modificable ou non selon le profil de l'utilisateur
  • restreint (par un filtre) pour certains profil

Relations

Tableau de Bord > MCD -SI > Clic droit sur objet > Relation X

Chaque relation Père défini dans le MCD doit être paramétrée en utilisant un clic droit sur la ligne de l'objet Fils pour sélectionner la relation avec l'objet Père voulu.
Propriétés d'une relation forte entre deux objets :
MCD = Objet et relations
  • N° d'onglet : identitique à [Pos X] : c'est la position de l'onglet dans la fiche Père (qui affiche la liste de l'objet fils concerné). Il peut rester vide.
  • Droits : l'utilisateur en cours a les mêmes droits sur les fils que sur l'objet Père.(ajout, suppression, modification, export)
    Le fils hérite des droits de l'utilisateur sur l'objet Père. Cet héritage fonctionne en cascade à l'infini.
  • Restrictions : L'utilisateur ne pourra visualiser que les instances fils dont il peut visualiser leurs pères. Cette restriction fonctionne en cascade.
  • hors null : Les instances n'ayant pas de père connu (null) seront alors visibles malgré la restriction préalable.
  • Préservation : La suppression d'un Père n'est possible que s'il n'existe pas ou plus d'éléments fils.
  • Destruction en cascade : La suppression d'un Père provoque la suppression automatique des éléments fils (si eux mêmes sont supprimables en cascade).
  • Obligatoire : Impose que chaque fils soit toujours créé en connaissance du Père.

Administration d'un objet

Tableau de Bord > MCD -SI > Clic droit sur objet > Administrer cet objet

Chaque objet sera administrable depuis cet écran :

MCD = Objet et relations
  • Informations K : Ensemble des informations de l'objet ( donnée saisie, calculée, affichée,.. )
  • Process : Ensemble des actions utilisateurs possibles depuis cet objet
  • Workflow : Liste des états/statuts possibles pour chaque instance de l'objet
  • Kchart : Liste des données étudiées graphiquement
  • Embed : Ensemble des améliorations visuelles à porter sur la fiche
  • Sélection : Liste des pré-sélections partagées ou non par tous les utilisateurs.
  • IA : Actions (javascript) à déclencher sur évènement (Sauvegarde, fermeture,création,impression...)
  • IA : Comportements applicables entre cet objet et les autres

Information K


Une information K représente une zone de saisie ou de calcul qui est généralement affichée dans une fiche et/ou une liste. Elle peut être utilisée lors des recherches, des regroupements, dans un rapport, une statistique, un calcul, etc...
Information K = Zone de donnée, attribut Chaque information est paramétrée selon les éléments suivants :
  • Objet : Objet K contenant l'information.
  • Libellé info : Nom court, simple et non ambigüe de l'information. c'est l'étiquette dans une fiche et le titre de la colonne dans une liste.
  • Type : Type de donnée à saisir ou afficher, dans le doute utilisez Texte.
  • Nature : Uniquement en complément du Type Texte, la nature permet d'influencer le mode de saisie et/ou l'affichage de l'information:
    • Compteur : zone numérique dont la valeur évolue dans le temps avec RAZ possible. Les évolutions sont préservées.
    • Relevé : zone numérique dont la valeur évolue dans le temps. Les évolutions sont préservées.
    • Couleur : La saisie attendue est une couleur conforme html
    • Combo Fixe : La saisie est un choix limité de valeurs préfixées
    • Sans Etiquette : N'affichera pas d'étiquette de ce texte
    • Régime : Permet la saisie d''un cycle de temps hebdomadaire
    • Editeur html : Zone de saisie au format HTML
    • Base de connaissance : Assistant de saisie par utilisation d'une base de connaissance (jeux de questions réponses)
    • Liste Instances : liste d'instances (stockée sous la forme id1;id2;id3) modifiable via un panier
    • Icone : Choix d'un Icone FA pour
    • Tel : Permet d'utiliser un CallTo sur cette zone en double cliquant (Voice IP)
    • Instance : Donnée stockée sous la forme IdObjet-IdInstance, permettant une liaison vers n'importe quoi (anciennement géniteur)
  • Combo sur : Liste déroulante à un choix unique d'un autre objet K.
  • Relation D : précise qu'il s'agit d'un Pere à afficher et potentiellement à saisir/modifier. Choisir le type Texte.
  • Filtre : Filtre à appliquer sur les instances du Combo ou de la Relation D (dans le cas d'un combo Fixe c'est l'event onupdate à appeler).
    On peut mettre des variables sous la forme @chemin (ou @@chemin si ce critère n'est pas obligatoire) ex : D1|L|@D1 ou I|503|HAS|@102
  • Formule : chemin relatif ou calcul, ce dernier commence par le signe =
  • Validation : Expression régulière qui permet de valider la saisie
  • PosX - PosY : Coordonnées de la position X Y en pixel de la zone
  • Largeur : Largeur en Pixel de la zone
  • Hauteur : Hauteur en Pixel de la zone : chaque multiple de 15 represente une ligne de saisie
  • Focus : Numéro d'ordre de la tabulation (passage d'une zone à une autre avec le clavier en mode Fiche)
  • Titre : L'information fait partie du Titre. En général, cette information a une Validation de saisie obligatoire.
  • Pos Liste : Position de la colonne dans la liste. Laissez vide pour ne pas afficher cette information dans la liste.
  • Vue : une lettre par vue, cumulable : * affichage normal, C pour Combo , P pour Panier. La vue peut être imposée en fonction du rôle (registre gridvue)
  • Section : Numéro de section dans la page (uniquement si la fiche utilise l'affichage par sections ).
  • Op. Pied Liste : Calcul affiché en pied de colonne : SUM AVG MIN MAX
  • RGPD : La donnée est une donnée à caractère personnel soumis aux règles RGPD
  • Pos. Virtuel : La donnée est affichée dans l'onglet correspondant d'un Sous Formulaire .
  • Info Bulle : Texte explicatif affiché au passage de la souris
  • Etiq Up : La zone de saisie est située sous l'étiquette.
  • Crypté : la donnée est stockée cryptée dans la base
  • Calcul stocké : Impose de stocker le résultat de la Formule pour éviter un recalcul à chaque affichage, filtrage, traitement.
  • Attributs : si nature Fixe : précise les choix fixes possibles séparés par un point virgule : Libellé 1|Valeur 1;Libellé 2|Valeur2;...
    si nature Liste Instance : précise l'objet source des instances et (en option) le filtre à appliquer séparés par un double point : Objet:Filtre
    sinon précise des évenements ou style à appliquer sur la zone (séparés par [|]) : onchange,alert('Bravo !')[|]style.color,red[|]style.font-size,15px
  • Format : Format spécifique d'affichage de l'information.
    Dans le cas d'un type URI, il peut contenir un sous répertoire spécifique de stockage composé d'une partie fixe et d'un chemin exemple : Client:D1#ID
  • Couleur : Couleur de fond de la colonne dans les listes.
  • Valeur Auto : Valeur automatique (généralement non modifiable).
    • Pour la date d'échéance à partir d'un objet Conditions (NbJours+finDeMois+LeJour) : EDATE;IdInfoDateDépart;IdComboObjetConditions;IdInfoNbJours;IdInfoFinDeMois;IdInfoLeJour;FormatDate ex:EDATE;301;882;1211;1212;1213;dd/MM/yyy
    • Pour une valeur aléatoire fait de paquets de NbCar séparés par un tiret :RANDOM;NbPaquet;NbCarInPaquet ex:RANDOM;2;3
    • Pour une date à X jours de la date du jour :NOW ex:NOW;+30
    • Dernière date de consultation :LASTSEE
    • Dernière date de modification :LASTCHANGE
    • Dernier utilisateur ayant modifié:USERCHANGE
    • Utilisateur créateur de l'instance :USER
    • Date de création de l'instance :DATE
    • Pour le prochain chrono de l'objet :CHRONO
    • Pour le prochain chrono mensuel de l'objet :CHRONORAZMM
    • Pour une clef composée du type F2002-1234 : F;YY;MM;-;CHRONO
    • Jour de création de l'instance :DD
    • Mois de création de l'instance :MM
    • Année de création de l'instance :YY
    • Année complète de création de l'instance :YYYY
  • Par défaut : Valeur par défaut de la donnée lors de sa création. Pour initialisez un combo ou une relation D, utilisez l'ID de l'instance.
    • Pour la valeur d'une clef du fichier web.config : config;clef
    • Pour la valeur du Père (depuis onglet fils) : peredata
    • Pour la valeur à partir d'un chemin dépendant du Père : *IdObjetPere#CheminAsuivre*autreIdObjetPere#autreCheminAsuivre
    • Pour une valeur imposée : asit;Valeur
    • Pour obtenir une valeur réservée par mot clef: eval;MotClef avec comme MotClef possibles : now,time,year,lastyear,month,user,moi,ressource
    • Pour une valeur d'un Combo FixeValeur|Libellé
  • Recalcul père : Précise les objets pères dont les agrégats stockés doivent être recalculés en cas de modification
  • Champ : Nom du champ physique dans la table de stockage (si Objet classique)
Dans la gestion des Droits, chaque information peut, en fonction du profil de l'utilisateur, être
  • visible ou non avec ou sans critère
  • modificable ou non avec ou sans critère
  • obligatoire ou non
  • filtrée (pour un combo) en fonction d'une autre information

Les process

Fiche Objet > Onglet Process

Les process sont liés à un objet (virtuel ou non). Il servent à lancer un traitement ou une fonction javascript. C'est généralement le cas d'une impression.

Process du Progiciel K
  • Intitulé : Le libellé du Menu proposant l'exécution du Process
  • Condition : Filtre de condition pour pouvoir exécuter le Process.
  • Lien href : url à lancer
  • Commande Java : fonction javascript à exécuter
  • Par Lot : permet d'exécuter ce process sur un ensemble de lignes de la liste de l'objet
  • Sur Liste : permet d'exécuter ce process depuis un click droit sur une liste
  • Sur Fiche : permet d'exécuter ce process depuis le menu d'une fiche
  • Icône : image symbolisant le Process
  • Blank : Ouvre le process dans une nouvelle fenêtre du navigateur ( PDF, Export, ... )
Il faut choisir soit un [lien href] à ouvrir soit une [commande javas] à exécuter.

Envoi manuel d'un email depuis un Process


Pour un mode par LOT utiliser Lien Href :
k_ajax.aspx?type=sendmails&IdCurrent=55&IdPubCorps=100&IdPubPJ=86&CheminCorps=&CheminPJ=D1&IdDest=D1#ID&From=info@monentreprise.fr&CheminTo=R644#329&IdGed=267&
Pour un mode sur fiche ou liste utilisez Command Java :
Wait('sendmails&IdCurrent=55&IdPubCorps=100&IdPubPJ=86&CheminPJ=D1&IdDest=D1#ID&From=info@monentreprise.fr&CheminTo=R644#329&IdGed=267&IdInstance=
avec :
  • IdCurrent = id de l'objet sélectionné
  • IdPubCorps = id modele du corps (avec ou sans Source de rapport)
  • IdPubPJ = Rapport à intégrer en PJ du mail
  • CheminCorps = chemin relatif entre IdPubCorps et IdCurrent (ne mettre ce parametre que si le corps de l'email contient des champs de fusion)
  • CheminPJ = Chemin vers objet de fusion de IdPubPJ
  • IdDest = Chemin vers ID de l'entité destinataire
  • CheminTo = Chemin depuis IdPubPJ vers l'email destinataire
  • IdGed = précise (en cas de IdPubPJ) publipostage en PJ
  • MailCc = Email en Cc
  • MailFrom = Email en dur OU chemin relatif depuis IdCurrent vers une Kinfo email
  • ListInstances = Instances de l'objet IdCurrent à traiter

Les chemins relatifs

La métabase descriptive du MCD permet d'utiliser des chemins relatifs dans les requêtes, recherches, exports, calculs, dons,...
Un chemin relatif permet d'accéder aux pères Durables (relation 1-1) ainsi qu'aux données Combo (relation 0-1).
Par convention pour atteindre la valeur d'une information relative on utilise DX#IdInfo (X est le numéro du Père) pour l'un et R#IdInfo pour l'autre
Exemples
I|456Valeur de l'information id N°456
D2#122Valeur de l'information N°122 située sur le Père N°2
D2;D1#850Valeur de l'information N°850 située sur le Père N°1 du Père N°2
R341#741Valeur de l'information N°741 située sur l'objet du combo N°341
D1;R341;D2#73Valeur de l'information N°73 située sur le Père N°2 du combo N°341 du père N°1
Mots réservés
IDIdentifiant unique de l'instance dans l'objet
GENRELibellé de l'objet (non virtuel)
TITLELibellé de l'instance (composé d'une ou plusieurs Info)
WLibellé du Workflow
W|IDIdentifiant Workflow
Exemple avec mots réservés
D2#TITLELibellé du père N°2
D2;D3#IDIdentifiant du père N°3 du père N°2
...;RXXX#ZZZPour atteindre l'information ZZZ depuis une Kinfo XXXX de type Utilisateur
Dans la programmation, la méthode GetView utilise un chemin relatif par colonne à retourner séparés par [ET].
.GetView("ID[ET]I|984[ET]I|978[ET]I|979[ET]D2#ID[ET]D3#763[ET]D3#532[ET]D2;D1#490[ET]D2;D1;D1#637"

Les Filtres - Critères

Pour définir un filtre (ou un critère), il faut un chemin, un comparateur et une valeur séparés par un pipe |.
Les comparateurs possibles sont : [inf ],[infe],[sup ],[supe],[diff],[egal],[like].
Le comparateur L est utilisé pour une appartenance à une liste d'ID tandis que NOTL sera utilisé pour obtenir ceux qui ne sont pas dans la liste d'ID
Le comparateur HAS est utilisé pour tester si une donnée de type listeinst contient un code donné (HASN autorise les null) et NHAS est son inverse.
Une recherche portant sur un fils est également possible :
FILSIN|CHEMINVERSPERE$OBJET$FILTRE* // si plusieurs arguments dans le filtre, les séparer par le signe [+]
Exemples
D3#374|L|1instances dont la valeur 374 du Pere 3 est 1
NOTL|401252;454;421;411;instances qui n'ont pas les identifiants 401252,454,421 et 411
I|1061|egal NULLinstances pour lesquelles la valeur 1061 est NULL
FILSIN|D1$60$I|826|diff [+]D2;D1|L|44;46instances dont les fils (objet 60 lié par la relation D1) ont une valeur 826 non vide et dont le père D1 du père D2 a pour identifiant 44 ou 46
I|877|HASN|411instances dont la donnée (de type liste d''instanceq) 877 contient l'identifiant 411 ou est null
I|1013|fmto now;-1M;c
D1|I|375|fmto now;-3D;c
I|633|inf now+30
I|633|supe 21/12/2023
I|697|fmto now;-1Y
I|584|entr NOW+1 et NOW+7
Les critères applicables sur une date peuvent être fixes (I|633|supe 21/12/2023) ou relatif à la date du jour notée NOW (I|633|inf now+30).
On peut préciser une période fixe (I|584|entr 01/01/2023 et 01/01/2024) ou relative (I|584|entr NOW et NOW+365)
Le critère fmto permet de préciser une notion de période civile (I|1013|fmto now;-1M;c) ou glissante (I|1013|fmto now;-1M) D (day),W (week),M (month),Q (quarter=trimestre),H (heure),Y (year)

Vous pouvez utiliser l'écran de recherche pour générer et obtenir la syntaxe d'un Filtre : Filtre du Progiciel K

Les données calculées

Une donnée calculée est une formule qui peut utiliser un chemin relatif, des données propres ou de ses fils ou encore des fonctions SQL
Par convention on place entre crochet les chemins, les Fonctions F: (SUM, COUNT, MIN, MAX), les valeurs d'Historique H:
Le double signe == signifie que la formule ne contient que des membres physiquement sur le même objet (sans chemin ni groupement... )
F est un calcul qui porte sur les Fils (comme R)
Exemples
==[I|353]+[I|354]Addition des valeurs des informations 353 et 354
=[F:SUM:D1#270:I|233|egal true]Somme des valeurs de l'information 270 de l'objet fils par D1 limité aux fils ayant l'info 233 a True
=[I|264]-[F:SUM:D1#271:]
==CASE WHEN [I|285] IS NOT NULL THEN DATEADD(m,[I|382],[I|285]) END
=CASE WHEN [I|749] IS NULL THEN DATEDIFF(m,[I|285],{fn NOW()}) ELSE DATEDIFF(m,[I|285],[I|749]) END
==DATEDIFF(hh,[I|341],[I|390])
=[R:MAX:D1#696:]
=CAST((CASE WHEN [F:COUNT:D1#447:I|447|L|1]>0 THEN 0 ELSE 1 END) AS BIT)Pour renvoyer une info de type booléen
=[R:MAX:D1#434:]R au lieu de F impose de prendre en compte les Restrictions de l'utilisateur'
=[R:SUM:D1#332:]Somme des 332 dans l'objet fils m'ayant comme D1
=[F:SUM:D3#520:]+([D3#317]*[I|342])+([R450#317]*[I|809])
=[F:MAX:D1#367:R443;R372¨L¨14;13;]Valeur max de l'information 367 de l'objet fils par D1 ayant 14 ou 13 dans la valeur du combo 443
=[H:date:champ_k_histo='id_k_workflow_c_73' and value_k_histo=17:]Recherche d'une date (ou value) dand Historique selon critère en dur
==ROUND([I|444]*[I|929],2)
==DATEDIFF(m, [I|487], { fn NOW() }) -1
==YEAR([I|842])
==datepart(ISO_WEEK,[I|842])
=CASE WHEN [I|446]=0 THEN ROUND([I|453],[D2#928]) ELSE ROUND([I|446]*[I|453],[D2#928]) END
==DATEADD(d,-1, [I|542])
==(CASE [I|479] WHEN '1' THEN 'Activer' WHEN '2' THEN 'Désactiver' WHEN '3' THEN 'Réactiver' ELSE 'Annulé' END)
=(CASE [I|646] WHEN 6 THEN DATEDIFF(hh,[R:MAX:D1#705:],getdate()) ELSE 0 END)
==(CASE WHEN ([I|419]='4' OR [I|419]='6') THEN [I|414] ELSE [I|413] END)
=[CONCAT-INFO-FILS:Info:séparateurr:critère]Concaténation de l'Info d'un Fils D avec ou sans critère
=[CONCAT-TITLE:Info:séparateurr] Concaténation des TITLE d'une Info de nature Liste Instances
=[CONCAT-INFO-LIENFILS:objetLien:Info:séparateur]Concaténation de l'Info du fils lié depuis un objet (classique) de lien pere-fils

Cycle de vie = Workflow

Lorsque les instances d'un objet suivent un cycle de vie déterminé par les modes opératoires en place au sein de l'entreprise ou bien si les instances ont un statut/état qui détermine leur couleur et comportement, on utilisera le workflow.

Cycle du Progiciel K
  • Libellé : libellé du statut/état
  • Visible : indique si les instances ayant ce statut sont visibles ou non.
  • Modifiable : indique si les instances ayant ce statut sont modifiables ou non.
  • Supprimable : indique si les instances ayant ce statut sont supprimables ou non.
  • Couleur : couleur de la ligne dans les listes
  • OnEnter : Mot clef pour exécuter du code spécifique coté serveur
  • Ordre : Ordre d'affichage dans la liste de choix

Il est possible de préciser les transitions autorisées entre les différents statuts/états.
Chaque transition peut faire l'objet d'une condition (commencant par *), d'un message spécfique si la condition n'est pas remplie.
On peut paramétrer le passage automatique (condition ne commencant pas par *) d'une transition selon un délai en jours.
Transition entre statut

Les analyses graphiques

Consultez le document Kchart.pdf

Embed : Les éléments additionnels

Dans un écran, on peut intégrer des éléments pour des raisons visuelles, pratiques, rapides pour traiter certaines informations de l'objet.
L'embed s'active majoritairement lorsque que la fiche est enregistrée.
  • Titre : Titre de l'élément.
  • Objet : Objet K à impacter.
  • Type : voir tableau ci dessous
  • Vue : Seules les fiches/listes ayant cette vue seront concernées.
  • Critères : Seules les instances répondant à ce critère seront impactées.
  • Langue : Seuls les utilisateurs utilisant cette langue seront concernés.
  • Rôles : Seuls les utilisateurs connectés avec ce profil seront concernés.
Chaque type d'embed utilise ou non les 5 paramètres possibles.
TypeUtilitéPos./TailleParamètres
Sections S'il y a trop de données à afficher, vous pouvez éclater une fiche en sections (pavés) ouvrables ou fermables individuellement. Titre : Titre section1;Titre section2;...
Param1 : Hauteur-largeur;Hauteur-Largeur;... (290px-99%;250px-99%)
Initform Lance un code javascript à l'ouverture Param1 : Fonction javascript à éxécuter, ID est remplacé par l'identifiant de la fiche.
Pièce Jointe Emplacement d'accès rapide aux pièces jointes XYLH Param1 (Option): Si vide alors la classe utilisée est Cadre, si commence par # alors cela correspond à une couleur de fond sinon cela indiquera la classe à utiliser.
Param2 (Option): En notant PREVIEW, il apparaitra un cadre affichant les pièces sinon un simple bouton d'accès aux pièces jointes.
Param3 (Option): Impose un seul type de document (=ID d'un objet K héritant de Document)
Param4 (Option): Si C alors les utilisateurs peuvent ajouter une pièce jointe (au delà de leurs droits).
Param5 (Option): N° de Section
Sous formulaire Permet d'afficher un ou plusieurs onglets au creux de la fiche. Le titre des onglets est séparé par le signe ¨ dans Titre XYLH Param1 : (séparer chaque onglet par le signe ¨) pour afficher une liste de fils = FXX.D (instances de l'objet XX ayant comme père durable D la fiche concernée)
pour afficher une liste indépendante = SXX.Filter (instances de l'objet XX répondant à Filter)
sinon contient le [Pos. Virtuel] des k_info à afficher
Param2 (Option): Options des sous listes Vue-ToolBar-Filtre;... (R-false-;E-true-D1|@D1;...)
Param3 : Critère d'affichage de chaque onglet séparé par le signe ¨
GraphiqueAffiche un KchartXYLHParam1: Valeur du Filtre (ID Instance)
Cadre Affiche un cadre en fond pour présentation. XYLH Param1 (Option): Si vide alors la classe utilisée est Cadre, si commence par # alors cela correspond à une couleur de fond sinon cela indiquera la classe à utiliser.
Si H=15 alors le Titre est affiché avec le style du Param1.
Param2 :
Param4 : (option) Fonction (de refresh/recalcule) appelée en cas de click sur fond, this est remplacé par l'Id de l'embed.
Param5 : N° de section
BoutonAffiche un boutonXYLHParam1 : Fonction javascript appelée.
Param2 : (Option) image à préciser.
Param3 : Texte du bouton
Param4 (option) : ONNEW pour afficher également le bouton en mode création
Param5 : N° de section
Bouton GridAjoute un bouton sur la toolbar de la ListeParam1 : Fonction javascript appelée (IDGRID est remplacé par l'Id de la liste).
Param2 : Info bulle du bouton
Boite MailAffiche un bouton d'accès à l'outil Kmails.XYW
JaugeAffiche une jauge en mode listeLParam1 : InfosPos ou NOW
Param2 : Liste d'infos dates séparées par [ET]
Param3 : Liste de couleurs correspondantes séparées par [ET]
Param4 : décalage|backcolor|curseurFix|infoBulle
Param5 : Filtre¤cols¤couleurs Si filtre ok alors on prend les cols et couleurs de param5 au lieu de param2 et param3
ex : I|578|diff [ET]I|659|diff [ET]I|439|egal VN¤I|578[ET]I|660[ET]I|661¤#FF0011[ET]#FF0011[ET]#000000
Formulaire lié Affiche un formulaire lié bijectivement avec changement possible du choix de la fiche liée. XYLH Param1 : Les chemins séparés par le signe [|]
Param2 : Filtres sur infos séparés par le signe [|]
Param3 (Option) : Nom de la classe
Param 5 (Option): N° de Section

Pré-sélections

L'administrateur peut définir des pré-sélections pour l'ensemble des utilisateurs dans le but de faciliter leurs recherches récurrentes.
  • Nom : Nom de la sélection/veille.
  • Utilisateur : Sélection réalisée pour et par un utilisateur unique.
  • Objet : Objet sur lequel porte la sélection
  • Critères : Seules les instances répondant à ce critère seront obtenues.
Pour afficher des veilles automatiques dans le tableau de bord, on ajoute :
  • Groupe TDB : Nom du regroupement de veilles
  • Veille TDB : Priorité d'affichage (si plusieurs fois le même Nom)
  • Couleur Veille : Couleur du bouton dans le tableau de bord.

IA: Comportement entre objets

Type et UtilitéExplications
Panier
Affiche un bouton type caddy pour création de lignes en regard des données d'un autre objet (son ID sera récupéré dans un D) avec en option une donnée à saisir.
Ex : Choix des articles dans une facture, une commande, un catalogue fournisseur, inventaire
Libellé : nom libre pour ce panier
Objet 1 : Objet donneur
Objet 2 : Objet receveur
Filtre 1 : Filtre sur l'objet 1 (données proposées). Ce filtre accepte une variable portant sur l'objet père de l'objet 2 Dx|L|@Dx;Dx
Filtre 2 : Condition que doit respecter le peredata du receveur (permet aussi de conditionner le panier à utiliser s'il y en a plusieurs)
Param 1 : Donnée à saisir en regard des données sélectionnées de l'objet 1 (ex: *;199-) Vue;IdInfoASaisir-
Param 2 : Permet de limiter la saisie à une valeur max (ex: 0-I199)
preinfo_k_ia : Impose une pré-saisie avant l'ouverture du panier (ex: 199)
openmode_k_ia : Mode du panier (2 n'autorise l'ajout qu'avec le panier, pas de bouton [+] )
Sur modifier :
Partie gauche : Les info sources depuis Objet 1
Partie droite : Les infos de destination dans Objet 2

Trigger: déclencheur (de javascript) sur évènement

Nom : libellé libre
Concerne : Objet (ou objet hérité) sur lequel le trigger est déclenché
Condition : Filtre optionnel (sur l'objet concerné) de déclenchement
Actions : appel javascript (sauf exception ci dessous*), IDFICHE est remplacé par l'ID de l'instance modifiée.
exemple: Wait('qc_closeservice&IdService=IDFICHE')
Type et UtilitéExplications
Sauvegarde Fiche (1) Appelé après un Save.
Fermeture Fiche (2) Equivalent de OnClose (du container). Si IsNew alors la Condition n'est pas testée
Création fiche (3) Equivalent de AfterCreate sur création instance.
IDOBJET est remplacé par l'IdObjet et IDK par l'IdInstance'
Permet par exemple l'ajout automatique de Fils : Wait('AddFilsOnCreate&ListeIa=4-5-10-14-24&Instance=IDFICHE');
Impression (4) Equivalent de OnPrint. La condition est juste un IdPublipostage.
*Déclenche l'appel de : Special.OnTrigger("4",Concerne, KIA, Instance, param2)
Ce déclencheur est appelé avant et après génération physique du PDF.
AVANT : param2 est vide, APRES : param2 contient le nom du fichier physique du PDF
Ceci permet, par exemple, de fusionner un PDF avec celui généré.
Création depuis (5) Equivalent de OnCreateFrom.
Ce déclencheur est appelé sur une création ayant une instance d'origine.
*Déclenche l'appel de : Special.OnTrigger("5", ObjetToCreate, IAK, IdNewInstance, ObjetFrom + "-" + InstanceFrom);
Ceci permet d'agir sur l'instance générée ou génitrice.
CritereOnUpdateImport (6) *Provoque l'arrêt complet d'une importation si l'instance à modifier ne répond pas à la Condition.
GridOnAnyChange (7) Déclenche un appel sur toute modification ou suppression dans une sous liste.
Pas de Condition possible
PEREDATA est remplacé par l'IdInstance du container de la sous liste Exemple : WaitSpec('test_simple&Service=PEREDATA');
CreateKmail (8) *Déclenche l'appel de Special.OnTrigger(Action, IdObjetMail, KIA, IdInstanceMail, IdPublipostage);
Pas de Condition possible

Rapports, états, PDF, email,

Outil Kmails, client messagerie

L'outil Kmail permet la création, la prévisualisation, l'envoi et l'historisation d'emails (ou de courriers) échangés.
Le message est un rapport et peut donc contenir des champs de fusion, sous rapport, etc...
L'emetteur From est un email
Le destinataire To est de type multi-instance dont l'objet contient une info de type email (paramétrer Attribut)
Le destinataire en Copie Carbone CC est de type multi-instance dont l'objet contient une info de type email (paramétrer Attribut)
Les Pièces jointes PJ est de type multi-instance dont l'objet contient une info de type uri (généralement l'objet Document Ged) (paramétrer Attribut)
Chaque instance de Kmail est liée à une instance souvent le Client (paramétrer D1)
Les info de l'objet Kmail ne sont pas modifiés par les mises à jour Kupdate

Registre

Role : si non vide, ce registre ne concerne que ce role. Utilisateur : Si non vide, ce registre ne concerne que cet utilisateur.
NameUtilitéValeur
ShowOngletFilsRestriction d'affichage d'un objet fils à certains pères ?Objet=IdObjetFils
Valeur=Liste des pères autorisés séparés par des ;
OngletFiltreXXAffichage onglet fils conditionné par un critère portant sur l'objet père XXObjet=IdObjetFils
Valeur=Critère/filtre sur objet XX
ClassInfoXXXImpose une classe spécifique pour l'affichage de l'info XXX en mode liste (pour éviter de tronquer ou d'avoir une taille plus petite..)Objet=null
Valeur=Nom de la classe
srcjsLoad un fichier js spécifique (externe ou local)Objet=null
Valeur=https://maps.googleapis.com/maps/api/js?key=xxxxx
gridvueImpose une vue dans l'affichage des listes/fiches pour un rôleune lettre majuscule

RGPD

Consultez le document Krgpd.pdf

Les expressions régulières

Si vous n'êtes pas habitué à écrire une expression régulière, le plus simple est encore de chercher sur le web l'expression déjà faite...
Une des plus courante est celle qui impose une saisie obligatoire : /^.+$/