6 La navigation dans le manuel de Kentika est réservée aux utilisateurs identifiés
Saisir un script
Ce dialogue est proposé dans tous les cas où la création d'un script est proposée. Prenez connaissance de tout ce qui est dit à ce sujet avant de vous lancer dans l'écriture d'un script. Travaillez toujours sur une copie de votre base de données (et jamais en direct sur une base en exploitation) et recopiez votre script lorsqu'il aura passé avec succès une série de tests.
Cet outil n'a pas pour ambition de rivaliser avec les vrais éditeurs de programmation qu'un programmeur a l'habitude d'utiliser. Aussi, vous y trouverez un assistant de composition des formules les plus courantes mais la vérification syntaxique n'est pas aussi poussée que dans un logiciel dédié.
Dialogue de création d'un script
La partie haute propose une série d'assistants permettant d'éviter (et donc de faire des erreurs) de taper les instructions les plus courantes.
Provoque l'affichage de l'assistant de sélection de champ.
Insère, après sélection du champ, la formule Valeur_Rubrique correspondant à la place du point d'insertion.
Exemple
Valeur_rubrique ("=141/(Documents)Descripteurs";"title=Mots clés;t_s= : ;v_x=<b> ;sep=^s ;end=^p ;encode=H")
Après sélection dans le pop-up de la table, propose la liste des requêtes enregistrées pour cette table. Après sélection, insère la formule permettant de provoquer l'exécution de la requête.
Exemple
Folder_Load (56;"=Documents : Documents du mois")
Après sélection dans le pop-up de la table, propose la liste des rubriques de type lien pouvant être invoquées afin de provoquer une propagation des liens sélectionnés.
Sélection des liens à propager.
Exemple
Select_Xs ("3:=31;19;Référence (->Références)\=151;6;Auteurs (->Auteurs)")
Propose la liste des maquettes par type afin de générer la syntaxe de l'ordre d'exécution de la maquette sélectionnée.
Sélection de la maquette et du type de sortie
Exemple
Tx:=Template_Exec ("LPER2";"Imprimante (print)")
Propose l'ensemble des méthodes proposées par le langage 4D.
En début de liste : les mots clés.
En cliquant sur ce bouton tout en maintenant la touche Alt enfoncée, à la place des méthodes 4D c'est la liste de tous les champs de la base données qui est affichée. A n'utiliser qu'en connaissance de cause car vous pouvez provoquer une perte d'intégrité des données si vous intervenez directement au niveau de ces champs.
Propose la liste des ressources scripts.
Liste des ressources scripts
Exemple
u_Exec4D ("AScript_Analyseur XML")
Propose le dialogue de création d'une formule de tri multi-critères.
Exemple
TRIER PAR FORMULE (Table(eList_FileNum)->;x80 (Valeur_Rubrique ("=41";"sort=on;conf=off"));<;x80 (Valeur_Rubrique ("=21";"sort=on;conf=off"));>)
En cliquant sur cette puce, des options vous sont proposées.
Choix de la taille et option de remplacement
Si les caractères sont de petite taille, il arrive que l'on confonde des caractères. Augmenter la taille permet une meilleure lisibilité.
En cours de rédaction d'un script, une vérification de premier niveau vous est proposée. Si une erreur est détectée, un bip vous en avertit et l'expression douteuse est entourée par des puces.
Un script saisi dans une version utilise la syntaxe du langage dans la langue correspondant. Ce script ne peut être exécuté tel quel dans une autre langue si la syntaxe est différente. Lors de l'export et réimport de ce script, il passe par une traduction intermédiaire (opcode) qui lui assure une portabilité. Cette traduction en opcode est également disponible à partir de cet écran. Pour cela, il suffit de cliquer sur le bouton caché situé le premier mot en haut à gauche :
En cliquant sur ce bouton
Le script
Tcom1:=Selectionner dossier("Dossier PDF")
Si (OK=1)
TCom1:="Folder="+TCom1+";Template=PDF;archive"
CONFIRMER(TCom1)
Si (OK=1)
Imp_Folder(TCom1)
Fin de si
Fin de si
Devient
Tcom1:=XCD4D670("Dossier PDF")
XCM4D001(OK=1)
TCom1:="Folder="+TCom1+";Template=PDF;archive"
XCD4D162(TCom1)
XCM4D001(OK=1)
Imp_Folder(TCom1)
XCM4D003
XCM4D003
Copier coller = le meilleur ami et le pire ennemi. Lorsque l'on colle une portion de code prise dans un autre script, on a tendance à être moins attentif à son contenu et il se peut que l'on introduise une erreur car le contexte d'exécution va être différent.
Lorsque l'on ouvre une condition, on peut oublier de la refermer ou de mal la refermer si l'on a des imbrications complexes. Aussi, dès que l'on tape le début d'une séquence, il est conseillé de taper tout de suite la fin.
Si ( condition à tester )
sinon
Fin de si
Les scripts sont traités par un interpréteur et ce dernier ne connait pas les variables locales. Il ne faut donc pas les utiliser. Une variable locale a son nom qui commence par $ (exemple : $Ident).
Au sein d'un script, aucune autorisation n'est contrôlée : on peut tout faire... et tout casser.
Le logiciel utilise une structure virtuelle plaquée sur une structure physique. Aussi, n'utilisez pas les champs physiques des tables documents, personnes, auteurs, références, revues, thesaurus car il y a de gros risques de perte d'intégrité. Il y a des méthodes spécifiques pour manipuler les données.
Inspirez-vous des exemples fournis sur le centre de ressources, ils sont tous vérifiés et validés. Si vous détectez une erreur ou une imprécision, n'hésitez pas à nous le faire remarquer.
Par rapport au langage 4D, voici quelques différences majeures :
ne pas écrire de longues lignes (limitez vous à 80 caractères),
évitez des imbrications d'appel trop importantes (utilisez des variables intermédiaires),
pas de support des variables locales,
l'instruction "sinon" n'est pas supportée au sein d'un "Au cas ou",
éviter d'utiliser les méthodes permettant d'accéder en direct aux enregistrements, préférez toujours les méthodes propres à l'application quand elles existent,
New process en début de ligne n'est pas un ordre 4D, il indique à l'application que le script doit s'exécuter dans un nouveau process (et donc rendre immédiatement la main au process dans lequel il s'exécute),
Num en début de ligne n'est pas un ordre 4D, il indique à l'application que le résultat fourni en $0 doit être une valeur numérique et non une valeur alpha-numérique.
Powered by KENTIKA Atomic - © Kentika 2025 tous droits réservés - Mentions légales