を使用しています。元のNotesビューの日付値に基づいて文字列を計算しようとしています。ビューの最初の2つの列はそれぞれStartDateとEndDateです。日付比較のためのODAのisBeforeメソッドとisAfterメソッドの使用XPageリピートコントロールで
私のコード(下記参照)では、printステートメントはうまく動作し、素敵な日付けをコンソールに表示します。それが日付比較になるとすぐに、それはいくつかの恐ろしい誤りを投げます。コンソールへ
var vReturn = "unknown";
try {
var vNow = new java.util.Date();
var vDateToday:org.openntf.domino.DateTime = session.createDateTime(vNow);
print("Today=" + vDateToday);
var vStartDate:org.openntf.domino.DateTime = row.getColumnValues()[0];
print("vStartDate=" + vStartDate);
var vEndDate:org.openntf.domino.DateTime = row.getColumnValues()[1];
print("vEndDate=" + vEndDate);
if (vDateToday.isBefore(vStartDate)) {
vReturn = "Forthcoming";
}
if (vDateToday.isAfter(vStartDate) && vDateToday.isBefore(vEndDate)) {
vReturn = "Current";
}
if (vDateToday.isAfter(vEndDate)) {
vReturn = "Completed";
}
}catch(e){
print("Travellog: " + e.toString());
}
return vReturn;
最初のダースかそこらのライン出力は次のようになります。
19/12/2016 11:25:45 HTTP JVM: Today=19/12/2016 11:25:45 GMT
19/12/2016 11:25:45 HTTP JVM: vStartDate=19/12/2016 00:00:00 GMT
19/12/2016 11:25:45 HTTP JVM: vEndDate=27/12/2016 00:00:00 GMT
19/12/2016 11:25:45 HTTP JVM: java.lang.NullPointerException
19/12/2016 11:25:45 HTTP JVM: at org.openntf.domino.xsp.script.WrapperOpenDomino$OpenFunction.call(WrapperOpenDomino.java:400)
19/12/2016 11:25:45 HTTP JVM: at com.ibm.jscript.types.BuiltinFunction.call(BuiltinFunction.java:75)
19/12/2016 11:25:45 HTTP JVM: at com.ibm.jscript.types.FBSObject.call(FBSObject.java:161)
19/12/2016 11:25:45 HTTP JVM: at com.ibm.jscript.ASTTree.ASTCall.interpret(ASTCall.java:197)
19/12/2016 11:25:45 HTTP JVM: at com.ibm.jscript.ASTTree.ASTIf.interpret(ASTIf.java:79)
19/12/2016 11:25:45 HTTP JVM: at com.ibm.jscript.ASTTree.ASTBlock.interpret(ASTBlock.java:100)
19/12/2016 11:25:45 HTTP JVM: at com.ibm.jscript.ASTTree.ASTTry.interpret(ASTTry.java:109)
19/12/2016 11:25:45 HTTP JVM: at com.ibm.jscript.ASTTree.ASTProgram.interpret(ASTProgram.java:119)
19/12/2016 11:25:45 HTTP JVM: at com.ibm.jscript.ASTTree.ASTProgram.interpretEx(ASTProgram.java:139)
...
私はそうのようなsession.CreateDateTimeでgetColumnValuesをラップ試してみました:
var vStartDate:org.openntf.domino.DateTime = session.createDateTime(row.getColumnValues()[0])
それはスローエラーもあります。
誰でも正しい方向に向けることができますか?私は考えることのできるあらゆるバリエーションを試しました!
P.S. OpenNTF Dominoのサンプルデータベースの例はシンプルに見えますが、現在のシステム日付のみを使用し、ドキュメントや表示項目の日付は使用しません。
アプリケーションで 'org.openntf.domino.xsp = godmode'を有効にしましたか?また、 'getColumnValues()'の結果に '.getClass()。getName()'を出力する価値があります。 –
はい、私はgodmodeを有効にしました。 '.getClass()。getName()'を出力するprint文をいくつか追加し、両方のカラムに 'lotus.domino.localDateTime'を返します。 – Rob
' row'はどうですか?それは 'NotesViewEntry'か' NotesXspViewEntry'ですか?列を 'org.openntf.domino.DateTime'として取得するには、バックエンド' NotesViewEntry'を取得する必要があります。これは私たちが拡張したものであり、 'NotesXspViewEntry'ではありません。 –