Lotus Notes - Bucle

 
Vista:

Bucle

Publicado por Sara (3 intervenciones) el 10/11/2006 12:05:31
He creado un script que busca en una vista los documentos que están duplicados y si los encuentra los elimina... esto funciona pero me genera un bucle y se queda "tostado".
Este es el script...... gracias de antemano.
Sub Initialize
On Error Goto MensajeError
Dim session As New NotesSession
Dim dbactual As NotesDatabase
Set dbactual = session.CurrentDatabase
' Mensaje de Log.
Call Mensaje_PROInicio ( "1.1.(1)" , dbactual.Server , dbactual.FileName )
' Mensaje de Log.
Call Mensaje_MSJComentario ( "Iniciando proceso de eliminar clientes repetidos" )
' Cogemos vista ordenada ascendentemente
Dim vCliRep As NotesView
Set vCliRep=dbactual.GetView("ClientesRepetidos")
' Para coger id del doc y formar clave de busqueda
Dim UnidDoc As String
Dim VarKey As String
Dim Var2Key As String
Dim docCli As NotesDocument
Set docCli=vCliRep.GetFirstDocument
Dim docCli2 As NotesDocument
While Not docCli Is Nothing
VarKey = Lcase$ ( docCli.CIFCliente ( 0 ) + docCli.EjecutivoResponsable ( 0 ) )
UnidDoc = docCli.UniversalID
' Cogemos siguiente doc para comparar
Set docCli2 = VCliRep.GetNextDocument ( docCli )
If Not docCli2 Is Nothing Then
' Cogemos clave tras instanciar el siguiente
Var2Key = Lcase$(docCli2.CIFCliente ( 0 ) + docCli2.EjecutivoResponsable ( 0 ) )
' Si las 2 claves son IGUALES
If Var2Key=VarKey Then
' BORRAMOS doc siguiente
Call docCli2.Remove(True)
Call VCliRep.Refresh
Set docCli2=VCliRep.GetNextDocument(docCli)
Else
Set docCli=docCli2
End If
Else
Set docCli=VCliRep.GetNextDocument(docCli)
End If
Wend
' Mensaje de Log.
Call Mensaje_PROFinal
Exit Sub
MensajeError:
If Error = "" Then
' Mensaje de Log.
Call Mensaje_ERRBaseDatos ( Cstr ( Err ) , "Desconocido" , "linea:" + Cstr ( Erl ) + " " + "Desconocido" )
Call Mensaje_ERRBaseDatos ( Cstr ( Err ) , "Cliente" , "linea:" + Cstr ( VarKey ) + " " + "" )
Call Mensaje_ERRBaseDatos ( Cstr ( Err ) , "Cliente" , "linea:" + Cstr (UnidDoc ) + " " + "" )
Else
' Mensaje de Log.
Call Mensaje_ERRBaseDatos ( Cstr(Err) , Error , "linea:" + Cstr ( Erl ) + " " + Error )
Call Mensaje_ERRBaseDatos ( Cstr ( Err ) , "Cliente" , "linea:" + Cstr ( VarKey ) + " " + "" )
Call Mensaje_ERRBaseDatos ( Cstr ( Err ) , "Cliente" , "linea:" + Cstr (UnidDoc ) + " " + "" )
End If
' Mensaje de Log.
Call Mensaje_PROError ( "Error en Initialize" )
Exit Sub
End Sub
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder