Précédent   Forum du club des développeurs et IT Pro > Logiciels > Solutions d'entreprise > Lotus Notes
Lotus Notes Forum d'entraide sur le logiciel de travail collaboratif Lotus Notes
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse
 
Outils de la discussion
Publicité
'
Vieux 07/10/2012, 20h42   #1
archiifk
Candidat au titre de Membre du Club
 
Inscription : janvier 2009
Messages : 23
Détails du profil
Informations forums :
Inscription : janvier 2009
Messages : 23
Points : 14
Points : 14
Par défaut Agent Script de correction de categories des document d'une vue

Bonjour,
J'utilise les catégories de documents combiné à un classement dans des dossiers de ces derniers. Pour designer une m^me catégorie, j'avais utilisé deux orthographes. Aussi j'ai écrit un Agent pour les aligner sur une seule et même valeur. Ci-dessous le src.

Question: Comment, au lieu de parcourir tout les documents de la vue, comment ne parcourrir que les documents séléctionnés de la vue ?

(Options)
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
'  AGENT   : 'Ept Doc boucle de substitution de categories'	
'
'Description: 'Substitue une mauvaise orthographe de catégories par une autre'
'
' exemple remplacement toutes les valeur de categories "argh!!!" des documents de la vue courante par la nouvelle valeur "RIO"
'
' type d'agent : prive
' selection de l'agent depuis le menu: Actions / Autres ... puis boite à liste "Execution Agent..."
' travaille sur la vue ou dossier courant (vue ouverte, ou dossier ouvert)
' comporte une boucle de lecture de documents
'
Option Public
Option Explicit
'pour la gestion des boites de dialogues ou messagebox
%INCLUDE "LSCONST.LSS" 
(Déclarations)
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
'(Declarations)

'Constante
Const Dbg	= False
Const Fbase = {SELECT @IsNotMember("A"; ExcludeFromView) & IsMailStationery != 1 & Form != "Group" & Form != "Person"}
Const CatBeuuuh = "argh!!!"	
Const CatOUAIIS = "RIO"	

'autres variables globales
Dim Msg	   As String
Dim i	   As Integer	'indice d'ncrementation de la boucke de lecture maitre (exemple parcours des documents)
Dim j	   As Integer	'indice de parour d'une boucle secondaire (exemple parcours des destinataires d'un document)
Dim nblu   As Integer	'Nombre de documents lus
Dim nb	   As Integer	'Nombre de documents traités
Initialize
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
Sub Initialize
	
'Constantes declarées dans (Déclarations)
	'Dbg 		: Mode debug (true), ou mode normal (False)
	'FBase		: Formule de séléction de la vue MyToutDoc détaillé
	'CatBeuuuh 	: Catégorie d'origine erronée
	'CatOUAIIS 	: Catégorie cible avec la bonne orthographe
	
'Base courante
	Dim s As New notessession	'Session Courante
	Dim db As notesdatabase		'Base courante
	
'Vue courante
	Dim ws  As New NotesUIWorkspace	'Espaces de travail du client lotus
	Dim uiview  As NotesUIView	'vecteur graphique de la vue
	Dim nv	    As NotesView	'contenu de la vue
	
'Document
	Dim doc As NotesDocument	'Document surlequel on travail
	
'Variables
	Dim F As String			'Formule de selection de la vue
	Dim confirme	As Boolean	'Confirmatuion du lancement du traitement ou abandon
	Dim actualCat As String		'Catégorie du document surlequel on travail avant modification
	
'Instanciations	
	Set db=s.CurrentDatabase	'Recuperation de la base courante
	Set uiview = ws.CurrentView     'Récupération de la vue courante : vecteur graphique
	Set nv      = uiview.View	'Récupération de la vue courante : contenu
	F = nv.Selectionformula		'Récupération de la formule de selection de la vue courante
	Set doc = s.DocumentContext     'Récupération du Document courant
	nblu = 0			'Indice d'incrémentation de la boucle de lecture des documents (ou nblu)
	nb = 0				'nombre de documents traités
	
'Confirmation de l'execution de l'Agent ou Abandon ?
	
	'Préparation du message à afficher pour demander confirmation	
	Msg = "Script de substitution d'une catégorie par une autre pour chaque document de la vue repondant à cette catégorie d'origine."
	Msg = Msg + Chr(13) + Chr(10) + "Les valeurs du champ categories à modifier et la valeur cible sont des constantes du pavé (Declarations)"
	Msg = Msg + Chr(13) + Chr(10) + "     - Catégorie à changer : " + CatBeuuuh
	Msg = Msg + Chr(13) + Chr(10) + "     -  Nouvelle  Catégorie : " + CatOUAIIS
	Msg = Msg + Chr(13) + Chr(10) + "Ce traitement peut prendre du temps en particulier s'il y a beaucoup de document dans la vue."
	
	'Appel de la fonction demandant confirmation, qui retourne un boolean avec pour valeur False 	en cas d'abandon
	confirme = confirm_chx(Msg  & Chr(13) & Chr(10)  & " ****  Voulez vous continuer ? ****")
	
	'Préparation du message à afficher en fin de traitement (par la procedure termitae)	
	Msg =  "uiview.ViewName : " + Cstr(uiview.ViewName) + Chr(13)+Chr(10)
	Msg = Msg + "Formule de selection de la vue : " + Chr(13)+Chr(10) + F       + Chr(13)+Chr(10)
	Msg = Msg + "formule de base (ou reference): " + Chr(13)+Chr(10) + Fbase + Chr(13)+Chr(10)
	If Dbg Then Messagebox Msg
	
'*** TRAITEMENT DES DOCUMENTS DE LA VUE ***	
	If confirme Then
		If Dbg Then 	Messagebox("Choix confirme !")
		
'initialisation de la boucle de lecture des documents
		Set doc = nv.GetFirstDocument	'Positionnement sur le premier document de la vue
		nblu = 0			'Indice d'incrémentation de la boucle de lecture des documents (ou nblu)
		nb = 0				'nombre de documents traités
		
' boucle de lecture des documents : Tant qu'il y a un document
		Do While Not doc Is Nothing
			actualCat = Cstr(doc.GetItemValue("Categories")(0) )	'Lecture de la categorie du document courant
			If nblu < 5 Then  	
				If Dbg Then Messagebox (actualCat)
			End If
			
			If actualCat = CatBeuuuh Then			'Test s'il y a erreur de frappe sur la catégorie
				doc.Categories = CatOUAIIS	 	'Correction de la categorie
				Call doc.Save(True, False, False) 	'Recriture du document
				nb = nb + 1
			End If	
			
			nblu = nblu + 1					'Incrémentation de la boucle de lecture (ou nombre de document lus)
			
			Set doc = nv.GetNextDocument(doc)		'on passe au mail suivant
			
			Loop	'Fin de boucle de lecture des documents		
			
'Rafraichissement de la vue (enfin normalement cela devrai fonctionnern, et ce n'est pas le cas !!!)		
			Msg = Msg + Chr(13)+Chr(10) +   " ***** FIN TRAITEMENT *****" + Chr(13)+Chr(10) 
			'Call nv.Refresh
			nv.Refresh
			'Call ws.ViewRefresh
			ws.ViewRefresh
		Else
			Msg = Msg + Chr(13)+Chr(10) +   " ***** TRAITEMENT ABANDONNE. *****" + Chr(13)+Chr(10) 
			If Dbg Then Messagebox("Choix abandonné !")		
		End If 'fsi Confirme
				
'*** FIN TRAITEMENT DES DOCUMENTS DE LA VUE ***			
' la procedure terminate affiche le nombre de document lus et traités	
End Sub
Terminate
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
Sub Terminate
	Msg = Msg + "."  + Chr(13)+Chr(10)
	Msg = Msg + "Nombre de documents lus ......: "  + Cstr(nblu) + Chr(13)+Chr(10)
	Msg = Msg + "Nombre de documents Traités : "  + Cstr(nb) + Chr(13)+Chr(10)
	Messagebox Msg
	
'	
'exemple de Résultat (lorsque l'on a cliquer sur [non] dans la boite de dialogue de onfirmation :
'
'	---------------------------
'
'	uiview.ViewName : ERROR
'	Formule de selection de la vue : 
'
'	formule de base (ou reference): 
'	SELECT @IsNotMember("A"; ExcludeFromView) & IsMailStationery != 1 & Form != "Group" & Form != "Person"
'
'	 ***** FIN TRAITEMENT *****
'	.
'	Nombre de documents lus ......: 10
'	Nombre de documents Traités : 3
'
'		[OK]   
'	---------------------------	
End Sub
Fonction de confirmation du choix
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
Function confirm_chx(q As String) As Boolean
	
	Dim boxType As Long, answer As Integer
	Dim a
	boxType = MB_YESNO + MB_ICONQUESTION
	answer = Messagebox(q, MB_YESNO + MB_ICONQUESTION, "Continue?")
	If answer = IDYES Then 
		confirm_chx = True
	Else 
		confirm_chx = False
	End If	
	
'Exemple :
'	---------------------------
'	Continue?
'	---------------------------
'	Script de substitution d'une catégorie par une autre pour chaque document de la vue repondant à cette catégorie d'origine.
'	Les valeurs du champ categories à modifier et la valeur cible sont des constantes du pavé (Declarations)
'	     - Catégorie à changer : argh!!!
'	     -  Nouvelle  Catégorie : RIO
'	Ce traitement peut prendre du temps en particulier s'il y a beaucoup de document dans la vue.
'	 ****  Voulez vous continuer ? ****
'	---------------------------
'	       [Oui]   [Non]   
'	---------------------------
End Function
cdlt
archiifk est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/10/2012, 17h40   #2
lolo_92
Membre actif
 
Homme Laurent
Conseil - Consultant en systèmes d'information
Inscription : janvier 2007
Messages : 144
Détails du profil
Informations personnelles :
Nom : Homme Laurent
Localisation : France, Hauts de Seine (Île de France)

Informations professionnelles :
Activité : Conseil - Consultant en systèmes d'information

Informations forums :
Inscription : janvier 2007
Messages : 144
Points : 152
Points : 152
Par défaut documents sélectionnés

Dans "quels documents cet agent doit il traiter", tu mets "les documents sélectionnés" et ça n'appliquera l'agent que sur... les documents sélectionnés.
lolo_92 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse
Outils de la discussion

Navigation rapide


Fuseau horaire GMT +2. Il est actuellement 10h03.


 
 
 
 
Partenaires

Hébergement Web