2017-01-27 15 views
2

蓮の中に私は注文書を見ることができます。 私は過去25分間に変更されたすべての注文を検索するエージェントを構築しています。最後の25分の書類とlotusscriptを入手する

私はのようなコードを行っている。このため

:それは11.00であるならば、それは10.35

から今日に変更されている注文を取る必要があるので、

strFormule = "Form=""Order"" & @Modified >= @Adjust(@Today;0;0;0;0;-25;0) & Deleted !=""J""" 

Set ndcOrder = currentDB.Search(strFormule, Nothing, 0) 
If ndcOrder.Count <> 0 Then 
Set doc = ndcOrder.GetFirstDocument 
While Not doc Is Nothing 

しかし、デバッガでは、私はまた、どこの受注を得ます2時間早く改造されました。

これはどのように可能ですか?

答えて

6

時間要素を持たない@todayを使用している可能性があると思います。代わりに@Nowを試してみてください。

+1

ので、私は最後の日から注文をしたい場合は、私が今日使用して、私は最後の時間か分からたいならば、私は今、右でしょうか? – YdB

+0

はい、そうです。@Date(@Modified)= @Yesterday(タイムスタンプの日付部分を比較する)を使って、昨日の修正を行うことができます。あなたが言うように、時刻がある場合、@ Modified = @ Adjust(@Now; 0; 0; 0; -25; 0)を使用してください。 – user2808054

+1

@bboniカーテンの後ろに、ロータスノーツは特定の日付/時刻を数字、バックステージ@Today = @Integer(@Now)、今日の正午は@Today + 0.5です。 (式言語でそれを試してはいけませんが、それはうまくいきませんが、ロータススクリプトで遊んでも構いません。)@今日は今朝深夜です。したがって、あなたがそれをやっている時間に関係なく、 '@Adjust(@Today; 0; 0; 0; 0; -25; 0)は前夜の11:35 PMになります。 – JSmart523

3

以前はLotusScriptのGetModifiedDocumentsメソッドを使用していました。これによりNotesDateTimeオブジェクトを指定して以降変更されたドキュメントを取得できます。 あなたのコードは次のようになります。この方法では

Dim session As New NotesSession 
Dim db As NotesDatabase 
Dim dc As notesdocumentcollection 
Dim since As New NotesDateTime("") 

Set db = session.CurrentDatabase 
Call since.SetNow() 
Call since.AdjustMinute(-25) 
Set dc = db.GetModifiedDocuments(since) 

私の経験では、これまでのところ非常に良好でした。 GetModifiedDocumentsの詳細情報

+0

良い点。あるいは、db.Searchの変数 'since'を使用することもできます。それは、**多くの**高速検索のようになります。 – JSmart523

0

なぜフォーミュラを使用するのですか? 私は隠しビューを作成します。最初の列は最後に変更された日時で、降順でソートされます。 それから、25分前の日付/時刻の値が出現するまで、LotusScriptのコードを先頭から始めて作業を進めます。このような

何か:

Dim docs List As NotesDocument 
Set dt25 = New NotesDateEntry(Now()) 
Call dt25.AdjustMinutes(-25) 
Dim col as NotesViewEntryCollection 
Dim entry as NotesViewEntry 
Set col = view.AllEntries 
Set entry = col.GetFirstEntry 
Do Until entry Is Nothing 
    If Cdat(entry.ColumnValues(0))<Cdat(dt25.LSLocalTime) Then 
     Exit Loop 
    End If 
    Set docs(entry.Document.UniversalID) = entry.Document 
Loop 
' Now you have a list of documents created in the last 25 minutes. 
関連する問題