Bonjour
j'ai besoin de lire, le delay d'un agent schédullé. c'est a dire de savoir tous le combien de temps il tourne. et ça via du LS
et j'ai rien trouvé dans l'aide en ligne ou en regardant le design de l'agent
Public Function AgentGetInfo_API(wAgentName As String,wDBTarget As NotesDatabase) As Variant
Dim info As AssistInfo
Dim DBTarget As NotesDatabase
Dim Doc As NotesDocument
Dim lstRetour List As String
Dim nmServer As NotesName
Dim PathFile As String
Dim Server As String
Dim fullPath As String*256
Dim Texte As String
Dim nbReturn As Long
Dim nbHandleDB As Long
Dim nbHandleNote As Long
Dim AgentName As String
Dim ErrorText As String
Dim nbIDAgent As Long
Dim nbDT As Integer
Dim nbNV As Long
Dim nbV As Long
Dim nbNT As Integer
Dim BlockA As BlockID
Dim BlockB As BlockID
Const NOTE_CLASS_FILTER = &H0200
%REM
Type AssistInfo
Version As Integer
TriggerType As Integer
rem 0 none, 1 schedule, 2 new mail, 3 paste, 4 manual, 5 update, 6 router
SearchType As Integer
rem 0 none, 1 all, 2 new, 3 new/mod, 4 selected, 5 view, 6 unread, 7 prompt, 8 UI
IntervalType As Integer
rem 0 none, 1 minutes, 2 days, 3 weeks, 4 months
Interval As Integer
Time1 As Variant
rem Start time (ms since midnight)
Time2 As Variant
rem Long (weekday or day of month) or end time (ms since midnight)
StartTime As Variant
rem Time/Date
EndTime As Variant
rem Time/Date
Flags As Long
rem 1 hidden, 2 no weekends, 4 store highlights, 8 mail/paste, 16 choose server
Spare(15) As Long
End Type
Type BlockID
hPool As Long
Block As Integer
End Type
Declare Function W32_OSPathNetConstruct Lib "nnotes.dll" Alias "OSPathNetConstruct"(ByVal portName As Integer, ByVal serverName As String, ByVal fileName As String,ByVal pathName As String) As Integer
Declare Function W32_NSFDbOpen Lib "nnotes.dll" Alias "NSFDbOpen"(ByVal dbName As String, hDb As Long) As Integer
Declare Function W32_NSFDbClose Lib "nnotes.dll" Alias "NSFDbClose" (ByVal hDb As Long) As Integer
Declare Private Function OSLockObject Lib "NNOTES" Alias "OSLockObject" ( ByVal H As Long) As Long
Declare Private Sub OSUnlockObject Lib "NNOTES" Alias "OSUnlockObject" ( ByVal H As Long)
Declare Private Function NIFFindDesignNote Lib "NNOTES" Alias "NIFFindDesignNote" ( ByVal hDB As Long, ByVal S As String, ByVal C As Integer, N As Long) As Integer
Declare Function NSFItemInfo Lib "NNOTES" Alias "NSFItemInfo" ( ByVal hNT As Long, ByVal N As String, ByVal nN As Integer, iB As BlockID, D As Integer, vB As BlockID, nV As Long) As Integer
Declare Private Function NSFNoteOpen Lib "NNOTES" Alias "NSFNoteOpen" ( ByVal hDB As Long, ByVal NoteID As Long, ByVal F As Integer, hNT As Long) As Integer
Declare Private Sub Peek Lib "MSVCRT" Alias "memcpy" ( D As Any, ByVal P As Long, ByVal N As Long)
Declare Function ConvertTIMEDATEToText2 Lib "NNOTES" Alias "ConvertTIMEDATEToText"( ByVal zI As Long, ByVal zT As Long, ByVal T As Long, ByVal S As String, ByVal nS As Integer, nT As Integer) As Integer
%END REM
On Error GoTo CatchError
lstRetour("ERROR") = ""
AgentGetInfo_API = lstRetour
If Trim(wAgentName) = "" Then
Error 9999,"wAgentName is Empty"
Exit Function
End If
If Session Is Nothing Then
Set Session = New NotesSession
End If
If wDBTarget Is Nothing Then
Set DBTarget = Session.CurrentDatabase
Else
Set DBTarget = wDBTarget
End If
Set nmServer = New NotesName(Trim(DBTarget.Server))
PathFile = Trim(DBTarget.FilePath)
ErrorText = " ("+ nmServer.Abbreviated+"!!"+Trim(PathFile)+")"
lstRetour("DATABASE SERVER") = nmServer.Canonical
REM Open the target database
On Error Resume Next
Call W32_OSPathNetConstruct(0, nmServer.Abbreviated,Trim(PathFile), fullPath)
On Error GoTo CatchError
nbReturn = W32_NSFDbOpen(fullPath, nbHandleDB)
If nbReturn <> 0 Then
Error 9999,"Couldn't open database"
Exit Function
End If
If InStr(wAgentName,"|") > 0 Then
AgentName = Trim(StrLeft(wAgentName,"|"))
Else
AgentName = Trim(wAgentName)
End If
lstRetour("DATABASE PATHFILE") = Trim(PathFile)
lstRetour("DATABASE TITLE") = Trim(DBTarget.Title)
lstRetour("NAME") = Trim(AgentName)
Call NIFFindDesignNote (nbHandleDB, AgentName, NOTE_CLASS_FILTER, nbIDAgent)
If nbIDAgent = 0 Then
Error 9999,"Can not find agent : "+Trim(AgentName)
Exit Function
End If
Call NSFNoteOpen (nbHandleDB, nbIDAgent, 0, nbHandleNote)
On Error Resume Next
Set Doc = DBTarget.GetDocumentByID(Hex$(nbIDAgent))
On Error GoTo CatchError
If Doc Is Nothing Then
Error 9999,Trim(AgentName)+" is not an agent"
Exit Function
Else
If InStr(CStr(Doc.Getitemvalue("$Flags")(0)),"f") = 0 Then
Set Doc = Nothing
Error 9999,Trim(AgentName)+" is not an agent"
Exit Function
End If
Set Doc = Nothing
End If
Call NSFItemInfo (nbHandleNote, "$AssistInfo", 11, BlockA, nbDT, BlockB, nbNV)
lstRetour("VERSION") = ""
lstRetour("TRIGGERTYPE") = ""
lstRetour("SEARCHTYPE") = ""
lstRetour("INTERVALTYPE") = ""
lstRetour("INTERVAL") = ""
lstRetour("TIME1") = ""
lstRetour("TIME2") = ""
lstRetour("STARTTIME") = ""
lstRetour("ENDTIME") = ""
lstRetour("FLAGS") = ""
If Not BlockB.hPool = 0 Then
nbReturn = OSLockObject(BlockB.hPool) + BlockB.Block
Peek info.Version, nbReturn + 2, 2
Peek info.TriggerType, nbReturn + 4, 2
Peek info.SearchType, nbReturn + 6, 2
Peek info.IntervalType, nbReturn + 8, 2
Peek info.Interval, nbReturn + 10, 2
Peek nbV, nbReturn + 12, 4
If nbV <= 31 Then
info.Time1 = nbV
Else
info.Time1 = CDat(nbV/100/60/60/24)
End If
Peek nbV, nbReturn + 16, 4
If nbV <= 31 Then
info.Time2 = nbV
Else
info.Time2 = CDat(nbV/100/60/60/24)
End If
Texte = Space(81)
Call ConvertTIMEDATEToText2 (0, 0, nbReturn + 20, Texte, 80, nbNT)
If Not nbNT = 0 Then
info.StartTime = CDat(Left$(Texte, nbNT))
End If
Texte = Space(81)
Call ConvertTIMEDATEToText2 (0, 0, nbReturn + 28, Texte, 80, nbNT)
If Not nbNT = 0 Then
info.EndTime = CDat(Left$(Texte, nbNT))
End If
Peek info.Flags, nbReturn + 36, 4
Call OSUnlockObject (BlockB.hPool)
lstRetour("VERSION") = Trim(CStr(info.Version))
lstRetour("TRIGGERTYPE") = Trim(CStr(info.TriggerType))
lstRetour("SEARCHTYPE") = Trim(CStr(info.SearchType))
lstRetour("INTERVALTYPE") = Trim(CStr(info.IntervalType))
lstRetour("INTERVAL") = Trim(CStr(info.Interval))
lstRetour("TIME1") = Trim(CStr(info.Time1))
lstRetour("TIME2") = Trim(CStr(info.Time2))
lstRetour("STARTTIME") = Trim(CStr(info.StartTime ))
lstRetour("ENDTIME") = Trim(CStr(info.EndTime ))
lstRetour("FLAGS") = Trim(CStr(info.Flags ))
End If
nbReturn = W32_NSFDbClose(nbHandleDB)
If nbReturn <> 0 Then
REM ErrorText = APIError_Log(CInt(nbReturn))
Error 9999,"Couldn't close database (return code : "+CStr(nbReturn)+") : "+ErrorText
Exit Function
End If
Set nmServer = Nothing
Set DBTarget = Nothing
lstRetour("ERROR") = ""
AgentGetInfo_API = lstRetour
Erase lstRetour
Exit Function
CatchError:
If Trim(ErrorText) <> "" Then
ErrorText = " "+Trim(ErrorText)
End If
MsgBox "("+Cstr(GetThreadInfo (1))+" Call by "+Cstr(GetThreadInfo(10))+")"+Chr(10)+"Error " + CStr(Err) + " : "+Chr(10) + CStr(Error)+". "+Chr(10)+"Line # "+Cstr(Erl),16," ERROR !"
Erase lstRetour
lstRetour("ERROR") = CStr(Error)+" ("+CStr(Err)+")"
AgentGetInfo_API = lstRetour
If nbHandleDB <> 0 Then
nbReturn = W32_NSFDbClose(nbHandleDB)
End If
Erase lstRetour
Exit Function
End Function