CAH debugVerrou-fr

De BlueWiki

L'objectif de cet outil est de vous permettre de déterminé les verrouillages d’enregistrements mal gérés dans une base 4D.

Pour ce faire le CAH va installer avant ou après l'appel de commandes enregistrant des données une méthode qui va contrôler si l'enregistrement c'est bien déroulé. Si ce n'est pas le cas la méthode va inscrire dans le log (LockingRecordLog.txt) qui sera créer dans le dossier des logs de la base l'heure et le problème rencontré.


Les commandes suivies sont les suivantes :

  1. Appliquer à sélection
  2. Stocker enregistrement
  3. Supprimer enregistrement
  4. Supprimer sélection
  5. Tableau vers sélection
  6. JSON vers sélection
  7. Vider table

Pour utiliser insertion ou le retrait, vous devez avoir effectué l'analyse de la structure au préalable.

Si vous demandez au composant d'insérer a nouveau le code, il n'ajoutera bien sur le code que pour les nouveaux appels aux commandes.Dans le cas ou vous avez beaucoup modifié votre code, vous pouvez demander une nouvelle insertion, cela mettra les N° de ligne à jour.

Le retrait retire TOUS les appels à la méthode de contôle.

Exemple de log :

2018-12-15T13:09:05Z : Création du log
2018-12-15T13:09:05Z : [Société] LockedSet (3 records) - Method : Test_Lock (Line 11)
2018-12-15T13:09:05Z : [Société] Record Lock - Method : Test_Lock (Line 16)
2018-12-15T13:09:05Z : [Société] Record Lock - Method : Test_Lock (Line 16)
2018-12-15T13:09:05Z : [Société] Record Lock - Method : Test_Lock (Line 16)

Le code avant les insertions de contrôle

TOUT SÉLECTIONNER([Société])

APPLIQUER À SÉLECTION([Société];[Société]Nom:=[Société]Nom)

DÉBUT SELECTION([Société])
Tant que (Non(Fin de sélection([Société])))
	[Société]Nom:=[Société]Nom
	
	STOCKER ENREGISTREMENT([Société])
	ENREGISTREMENT SUIVANT([Société])
Fin tant que 

Le code après les insertions de contrôle

TOUT SÉLECTIONNER([Société])

APPLIQUER À SÉLECTION([Société];[Société]Nom:=[Société]Nom)
ANACAH_DebugLockingRecord ("Selection";"Test_Lock (Line 11)";->[Société])  // insert by CAH 2018-12-04

DÉBUT SELECTION([Société])
Tant que (Non(Fin de sélection([Société])))
	[Société]Nom:=[Société]Nom
	
	STOCKER ENREGISTREMENT([Société])
	ANACAH_DebugLockingRecord ("record";"Test_Lock (Line 16)";->[Société])  // insert by CAH 2018-12-04
	ENREGISTREMENT SUIVANT([Société])
Fin tant que 

le CAH vous permet bien sur de retirer tout ce code de contrôle.

Il vous permet également d'obtenir des statistiques sur les enregistrements dans votre base.