我有UID时访问文档

时间:2015-06-01 12:25:57

标签: xpages

我的表单上有一个组合框,它使用格式" name |来加载视图中的客户端名称UID" - 这将在表单上显示客户端名称,但将UID保存在字段中。

我现在想使用UID查找客户端的名称,并将其保存在XPage上使用以下代码不可见的字段中:

// ignore when UID is null
if (getComponent("parentUID").getValue() == null) 
    return false;

var UID:string = getComponent("parentUID").getValue();
var doc:NotesDocument = database.getDocumentByUNID(UID);

// now set your fields 
document1.setValue("nachname", doc.getItemValueString ("nachname"));
document1.setValue("vorname", doc.getItemValueString ("vorname"));

我通过附加到按钮的简单操作执行此操作。下一个简单的动作是Save。

代码因以下错误而崩溃:

执行JavaScript动作表达式时出错 脚本解释器错误,line = 8,col = 42:[TypeError]发生异常调用方法NotesDatabase.getDocumentByUNID(java.lang.String)null

我已将parentUID复制到文档中的某个字段,并且我获得了正确的UID并且该文档存在于数据库中?

有什么想法吗?

PS:我将此添加到现有应用程序中,当前文档不是响应文档 - 不幸的是无法更改:o(

2 个答案:

答案 0 :(得分:1)

好的,我发现了我的问题 - XPages返回了UID,但它包含了一个领先的空间。当我连接这些值时,我执行了以下操作:“name | UID”,即我在管道符号中添加了一个前导和尾随空格,以使代码清晰可见 - 这导致了问题。

答案 1 :(得分:0)

看起来你错过了getComponent行中的get.Value()

尝试getComponent("parentUID").getValue() == null

我的猜测是,这导致代码在UID为空时运行。这意味着当代码确实为空时代码正在运行,并且您检查该代码的工作是否正常。

感谢您查看。

  • 您可以输入print()语句并确保var UID中有值。
  • 另一件事,请大写“#34; String"因为java类是大写的。
相关问题