6 La navigation dans le manuel de Kentika est réservée aux utilisateurs identifiés
Méthodes de création et mise à jour d'enregistrements
La création d'enregistrements par programmation nécessite de très bonnes connaissances sur la structure des données de l'application. Le logiciel effectue les mises à jour de toutes les données en en assurant l'intégrité et calcule tous les index. Par contre, il ne vérifie pas la validité de ce qui est saisi. Ainsi, il est possible de créer un document sans titre, même si cette rubrique a été déclarée "obligatoire". Il est donc de la responsabilité du programmeur de s'assurer de la pertinence de ce qui est écrit.
Lors du chargement d'un enregistrement en vue de sa modification ou lors de la préparation en mémoire d'un nouvel enregistrement, les variables et tableaux suivants sont alimentés :
Variable Type Contenu
Données d'entête
eList_FileNum entier Numéro de table
LForm_Record_num entier long Record_num
AForm_Record_Type alpha Type
AForm_Record_Site alpha Code du site d'appartenance
Rubriques
ETForm_numField tableau entier Numéros de rubriques
TTForm_Lib tableau texte Libellé des rubriques
TTForm_Att tableau texte Attributs
Valeurs
TTForm_Val_code tableau texte (2 dimensions) Code des valeurs
TTForm_Val_lib tableau texte (2 dimensions) Libellés des valeurs
Ces informations sont fournies à titre indicatif. A part les données d'en-tête, elles ne sont pas manipulées en direct par les programmes d'alimentation.
Record_Load ( table ; mode ; Record_Num ;"Type")
Paramètres Type Description
Table entier Numéro de la table
1 : personne
3 : document
6 : auteur
19 : reference
8 : revue
Mode entier 2
Record_Num entier 0
Type alpha Type d'enregistrement à créer
Site
Dans le cas d'une application en multi-site, la variable contenant le code du site d'appartenance doit être alimentée avant d'enregistrer les valeurs dans la base de données.
Exemple
AForm_Record_Site:="$1"
Record_Num
Le numéro d'enregistrement doit être alimenté grâce à la fonction x_GetRecordNum qui reçoit le numéro de table en paramètre. L'appel de cette fonction met à jour le paramètre "0_NR" qui contient le compteur générique de numéro d'enregistrement.
Paramètres Type Description
Table entier Numéro de la table
1 : personne
3 : document
6 : auteur
19 : reference
8 : revue
Mode entier 1
Record_Num entier Numéro d'enregistrement
Les variables AForm_Record_Type et AForm_Record_Site prendront les valeurs trouvées sur la fiche chargée.
Cette fonction est appelée pour mettre à jour les valeurs des rubriques de la fiche chargée lors du dernier appel à Record_Load.
Field_Set ( "Rubrique" ; "code valeur" ; "libellé valeur" )
ou
Field_Set ( "Rubrique" ; "libellé valeur" )
Paramètres Type Description
Rubrique alpha Code ou étiquette de la rubrique
Code valeur texte Suivi la nature de la rubrique, cf. ci-dessous
Libellé valeur texte idem
Paramètre : rubrique
Ce paramètre peut contenir indifféremment : le signe égal suivi du numéro de rubrique, le numéro de la rubrique ou l'étiquette de la rubrique.
Paramètres : code / libellé valeur par nature
Code : code de la valeur (exemple : "FR" pour "Français"), le libellé peut être indiqué mais à titre indicatif uniquement. En effet, seul le code est stocké dans la base de données.
Exemple
Record_Load (3;1;2223103)
Field_Set ("LA";"FR")
Record_Save (2223103)
affecte la valeur "FR" (Français) à la rubrique dont l'étiquette est "LA" (Langue).
Thesaurus ou lien : le code doit contenir le Record_Num du descripteur ou de la table liée.
Exemple
Record_Load (3;1;2223103)
Select ("5";"";"Logiciel";"x9;a")
Field_Set ("=141";Chaine (Record_num (5));[Thesaurus]Descripteur)
Record_Save (2223103)
Recherche le descripteur intitulé "Logiciel" et l'affecte à la rubrique "141".
Format libre ou URL ou email : libellé de la valeur, le code est ignoré.
Date ou nombre : libellé de la valeur. Pour les dates, les bornes sont déterminées lors de l'enregistrement, pour les nombres, la valeur est transformée en numérique.
Exemple
Record_Load (3;2;0;"Ouvrage")
LForm_Record_num:=x_GetRecordNum (3)
Field_Set ("=21";"Voici le titre de mon nouvel ouvrage")
Field_Set ("=41";"2005-2007")
Record_Save (LForm_Record_num)
Crée un nouvel enregistrement en affectant le titre et "2005-2007" à la rubrique "date de parution".
Adresse : l'intervention se fait directement au niveau des éléments XML de l'adresse.
Exemple
Record_Load (1;1;72101)
TCom:=Field_Get ("=154";"val=code")
Si (x_GetParam ("Ville";"";TCom)="Paris 11")
x_SetParam ("CP";"75011";->TCom)
Field_Set ("=154";TCom)
Record_Save (72101)
Fin de si
Affecte le code postal "75011" si la ville est égale à "Paris 11"
Cette fonction ne peut s'appliquer que dans le cadre d'un processus de mise à jour. Dans les autres cas, il faut utiliser la fonction Valeur_Rubrique.
TCom:=Field_Get ( "code rubrique" ; "attribut" )
Paramètres Type Description
Rubrique alpha Code ou étiquette de la rubrique
Attribut texte Optionnel, valeurs possibles cf. ci-dessous
-> texte Valeur trouvée dans la rubrique en mémoire
Paramètre : Attributs
Attributs Commentaire
val=code Fournit les codes, les libellés sinon
val=RN Fournit les Record_Num, le libellé des fiches liées sinon
occ=nb Fournit le nombre d'occurrences d'une rubrique
occ=... Précise le n° occurrence pour lequel on demande la valeur
sep=... Séparateur entre les valeurs (valeur par défaut : " ; ")
indiquer ^p pour un retour, ^t pour une tabulation et ^s pour le signe ;
NB : plusieurs attributs peuvent être passés en paramètres, ils doivent être séparés entre eux par des ;
Exemple
Record_Load (3;1;2223103)
Ex:=Num (Field_Get ("141";"occ=nb"))
Si (Ex>0)
Boucle (Ce1;1;Ex)
Lx:=Num (Field_Get ("141";"val=RN;occ="+Chaine (Ce1)))
TCom:=Field_Get ("141";"occ="+Chaine (Ce1))
...
Fin de boucle
Fin de si
boucle sur les valeurs de la rubrique "141" (descripteur), pour chaque occurrence, le Record_Num est fourni dans la variable Lx et son intitulé dans la variable TCom.
Record_Save ( Record_Num )
Enregistre la fiche chargée à l'aide de Record_Load.
Attention : cette méthode ne crée pas l'enregistrement au log. Pour ce faire, vous devez utiliser la méthode AS_Log. De même, elle n'ajoute pas automatiquement l'enregistrement à l'ensemble des enregistrements autorisés. Pour provoquer un rafraichissement de ce dernier, vous devez appeler :"Folder_AUT_erase", pour que la fiche soit immédiatement accessible, vous devez l'adjoindre à l'ensemble des enregistrements autorisés.
Exemple
Record_Load (3;2;0;"Ouvrage")
LForm_Record_num:=x_GetRecordNum (3)
Field_Set ("=21";"Voici le titre de mon nouvel ouvrage")
Field_Set ("=41";"2005-2007")
Record_Save (LForm_Record_num)
AS_Log (3;1;"Ajout par script")
Folder_AUT_erase
ADJOINDRE ELEMENT ([Document];"<>EAutorize03")
NB : les contextes de création d'enregistrement peuvent être très variés. C'est pourquoi, il conviendra de considérer chaque cas de figure et tous les cas ne se verront pas forcément appliquées les mêmes règles.
Cette méthode permet de créer une nouvelle archive attachée à une fiche existante.
Ex:=AR_Archive_File ( Record_Num ; n° archive ; Fichier ; nom ; commentaire)
Paramètres Type Description
Record_Num entier long si 0, prend le numéro de record de l'enregistrement courant
N° archive entier long si différent de 0 : met à jour l'archive, sinon, créé une nouvelle
Fichier texte Chemin d'accès au fichier à archiver
Nom texte (optionnel) Nom à donner à l'archive, sera le nom du fichier si absent
Commentaire texte (optionnel) Commentaire sur l'archive
Powered by KENTIKA Atomic - © Kentika 2025 tous droits réservés - Mentions légales