0

私はいくつかのフィールド検証を行っているSSJSのコードブロックを持っています: thisDoc is a NoteXspDocument fld = the name of a field

var thisValue = thisDoc.getValue(fld);
print("Check Text = " + thisValue);
print("Is is a Date " + (thisValue === Date))

実行すると、ログに次のように表示されます。

Check Text = 09/10/15 12:00 PM
Is is a Date false

このコードでは、フィールド名である fld のデータ型が何であるかわかりません。バックエンド ドキュメントをチェックして NotesItem.Type() を取得すると、このフィールドはバックエンドでテキスト 1280 型ですが、NotesXspDocument には日付が含まれています。データ型が何であるかを判断する必要があります thisValue 確かに NotesDateTime オブジェクトのように機能しますが、どこかで何か間違っています。問題は NotesDateTime と java.util.Date の違いかもしれないと思いますが、それらは私を壁に押し上げます。

さらに編集 - 問題は、フィールド名の配列 var Fields:Array を持っていることです。これをループして取得fld = Fields[n]するので、フィールドの値を取得すると、テキスト、日付、数値のいずれかになる可能性があるため、いつでもvar thisValue = thisDoc.getValue(fld) or thisDoc.getItemValue(fld)必要です自分がどんな価値を持っているかを知るために。機能するものが見つかるまで内部を試してみることができると思いgetItem.....ますが、それは最適な解決策ではないようです.

4

3 に答える 3

0

を使用.getItemValue()してベクトル配列を返し、データ型をテストします。.getItemValueString()テキスト文字列を返す.getItemValueDate().getItemValueDateTime()、日付/時刻を返すこともできます。

配列を返すためgetItemValue()、添字を使用して最初の要素を取得します。

var thisValue = thisDoc.getItemValue(fld);
var thisIsDate = (thisValue[0] instanceof Date);
print("Check Text = " + thisValue[0]);
print("Is this a Date ? " + thisIsDate;
于 2015-09-19T05:15:21.247 に答える