我有两种形式,组织和联系。联系人是对Org的回复,每个表单都有一个XPage,表单可以填写,保存等。直接打开edit_contact.xsp并创建文档(不作为对组织的响应),一切正常。
在edit_org.xsp上,我有一个包含2个事件的按钮。第一个将一些值复制到sessionScope中,因此我可以将它们继承到Contact中。第二个是“创建响应文档”事件,它创建一个新的响应,其父ID是当前的组织文档,并将用户发送到edit_contact.xsp。按下按钮正确更改XPage并且字段继承工作正常,但是在联系表单上按“提交”不会保存任何内容,也不会创建任何文档。
这个完全相同的设置在另一个数据库中按需要100%工作,我不知道为什么它在这里不能正常工作。在我遗失的地方有一个模糊的设置吗?
<xp:button value="Create Contact" id="button1" rendered="#{javascript:!document1.isEditable()}">
<xp:eventHandler event="onclick" submit="true" refreshMode="complete">
<xp:this.action>
<xp:actionGroup>
<xp:executeScript>
<xp:this.script>
<![CDATA[#{javascript:var doc = document1.getDocument();
sessionScope.PFirstName = doc.getFirstItem("P_Firstname").getValueString();
sessionScope.PSurname = doc.getFirstItem("P_Surname").getValueString();
sessionScope.PFamily = doc.getFirstItem("P_Family").getValueString();
sessionScope.PDOB = doc.getFirstItem("P_DOB")
sessionScope.PAGE = doc.getFirstItem("P_Age").getValueString();}]]
</xp:this.script>
</xp:executeScript>
<xp:createResponse name="/edit_contact.xsp" parentId="#{javascript:document1.getNoteID()}">
</xp:createResponse>
</xp:actionGroup>
</xp:this.action>
</xp:eventHandler>
</xp:button>`
这是一个链接,显示我想要做的事情(减去字段继承):
目前表单和视图都有效,但使用“响应”表单创建的文档似乎不是响应文档 - 它没有$ REF字段。这个设置在不同的数据库中完美运行 - 发生了什么?
答案 0 :(得分:0)
如果没有看到任何代码,很难说出可能会发生什么。既然它适用于另一个数据库,它可能是ACL问题吗?您以[可能 - 匿名]登录的用户无法创建文档?
答案 1 :(得分:0)
而不是&#34;推&#34;方法去&#34;拉&#34; - 只需打开包含父文档url参数的响应页面。在其postNewDocument事件中,从中初始化字段值。
答案 2 :(得分:0)
获取其他人提出的两个关键点的更新是有用的:
答案 3 :(得分:0)
有两个可能的问题:
首先使用getFirstItem(“x”)不是最佳做法。所以:
sessionScope.PDOB = doc.getFirstItem("P_DOB")
将在sessionScope中存储一个不起作用的NotesItem。建议使用:
sessionScope.PDOB = doc.getItemValueString("P_DOB");
其次,使用getNoteID()可能无法返回您想要的内容(文档的UNID)。改为使用.getDocument()。getUniversalID()。
<xp:createResponse
name="/edit_contact.xsp"
parentId="#{javascript:document1.getDocument().getUniversalID()}">
</xp:createResponse>
-edited- / Newbs