2011-10-07 6 views

답변

5

업데이트 : LotusScript만으로는 불가능하지만 Lotus Notes C API를 통해이 정보를 얻을 수 있습니다.

NSFDbGetUserActivity 메서드는 사용자 활동 정보 (대화 상자에 표시됨)를 반환하거나 요약 정보가없는 경우 ERR_SPECIAL_ID을 반환합니다. 이것은 레코드 활동 플래그가 선택되었는지 여부를 판별하는 정확한 방법은 아니지만 메소드의 결과에서 플래그의 상태를 유추 할 수 있습니다. 물론

은 여전히 ​​플래그 체크있는 기회가있다, 그러나 활동은 아직 기록되지 않은, 또는 반대로 플래그 하지이 선택하지만 활동이 이전에 데이터베이스에 기록 된 것입니다.

다른 솔루션은 일반적으로 사용자 작업에 기록되는 작업을 프로그래밍 방식으로 수행하는 것일 수 있습니다. 그런 활동이 실제로 기록되었는지 확인한 다음 해당 플래그가 활성 상태인지 여부를 알 수 있습니다. 이 코드를 실행하기 위해 특별한 Notes 사용자에게 헌신하는 경우 정상적인 최종 사용자 활동으로 인한 위양성을 피하는 활동 목록에서 해당 사용자를 선택하는 것이 더 쉽습니다.

'Structures used by Notes C API 
Type TIMEDATE 
    Innards(1) As Long 'DWORD 
End Type 

Const MAXALPHATIMEDATE = 80 

Type DBACTIVITY 
    First As TIMEDATE  'TIMEDATE /* Beginning of reporting period */ 
    Last As TIMEDATE  'TIMEDATE /* End of reporting period */ 
    Uses As Long   'DWORD /* # of uses in reporting period */ 
    Reads As Long   'DWORD /* # of reads in reporting period */ 
    Writes As Long   'DWORD /* # of writes in reporting period */ 
    PrevDayUses As Long  'DWORD /* # of uses in previous 24 hours */ 
    PrevDayReads As Long 'DWORD /* # of reads in previous 24 hours */ 
    PrevDayWrites As Long 'DWORD /* # of writes in previous 24 hours */ 
    PrevWeekUses As Long 'DWORD /* # of uses in previous week */ 
    PrevWeekReads As Long 'DWORD /* # of reads in previous week */ 
    PrevWeekWrites As Long 'DWORD /* # of writes in previous week */ 
    PrevMonthUses As Long 'DWORD /* # of uses in previous month */ 
    PrevMonthReads As Long 'DWORD /* # of reads in previous month */ 
    PrevMonthWrites As Long 'DWORD /* # of writes in previous month */ 
End Type 

'STATUS LNPUBLIC NSFDbGetUserActivity(DBHANDLE hDB, DWORD Flags, DBACTIVITY far *retDbActivity, HANDLE far *rethUserInfo, WORD far *retUserCount); 
Declare Function NSFDbGetUserActivity Lib "nnotes.dll" (Byval hDB As Long, Byval Flags As Long, retDbActivity As DBACTIVITY, rethUserInfo As Long, retUserCount As Integer) As Integer 

'STATUS LNPUBLIC NSFDbClose(DBHANDLE hDB); 
Declare Function NSFDbClose Lib "nnotes.dll" (Byval hDB As Long) As Integer 

'STATUS LNPUBLIC NSFDbOpen(char far *PathName, DBHANDLE far *rethDB); 
Declare Function NSFDbOpen Lib "nnotes.dll" (Byval filepath As String, DB As Long) As Integer 

'STATUS LNPUBLIC ConvertTIMEDATEToText(const void far *IntlFormat, const TFMT far *TextFormat, const TIMEDATE far *InputTime, char far *retTextBuffer, WORD TextBufferLength, WORD far *retTextLength); 
Declare Function ConvertTIMEDATEToText Lib "nnotes.dll" (Byval IntlFormat As Integer, Byval TextFormat As Integer, InputTime As TIMEDATE, Byval retTextBuffer As String, Byval TextBufferLength As Integer, retTextLength As Integer) As Integer 

http://www.triplewhitefox.com/tech-calling-c-api-from-lotusscript

(선언) :

아래의 코드는 방법이 튜토리얼 페이지에서 예 # 3에서 가져온 C API를 통해 사용자 활동 정보를 얻을 방법을 보여줍니다 초기화

+0

사용자 활동이 아닌 Lotus Notes 데이터베이스의 "활동 기록"플래그를 검색하고 싶습니다. –

+0

API에 대한 제 연구에서 플래그에 액세스 할 때 가장 가까운 API 일 수 있습니다. 그래도 위의 내 업데이트를 참조하십시오. 최선의 선택은 사용자 활동 요약에 대한 업데이트를 실행하는 작업을 수행 한 다음 요약을 확인하여 작업이 기록되었는지 확인하는 것입니다. –

+0

네, 그게 유일한 선택이라고 생각합니다. 해당 플래그를 직접 검색 할 수있는 방법이없는 것 같습니다. –

0

NotesUser Activit y 클래스 (CLASSUserActivity) 응용 프로그램은 AGECOM에서 무료로 사용할 수 있습니다. Daniel Alvers가 작성한 수업을 완전히 검토하고 업데이트했습니다. Release 2x

개선 포함 일본어 코드

  • 많은 수정 및 개선.

  • LotusScript에서 Lotus C-API 코드를 호출 할 때 데이터 유형 및 메모리 정렬에 대한 수정.

  • 코드 전체에서 오류 처리 구현.

  • 검색된 사용자 활동 정보를 수집하고 표시하기위한 샘플 에이전트가 향상되었습니다.

  • 모든 또는 선택한 데이터베이스에서 사용자 작업을 검사하는 새 옵션입니다.

  • 사용자 활동 정보 보고서를 보여주는 새로운보기. 응용 프로그램은 표준 로터스 노츠 응용 프로그램이며 Lotus Notes 클라이언트에서 바로 실행할 수 있습니다 http://www.agecom.com.au/useractivity

    :

당신은에서 AGECOM 웹 사이트에서 업데이트를 다운로드 할 수 있습니다.

관련 문제