0

我们有一个应用程序可以在 Orbeon 中创建新的表单运行器表单。这是通过打开表单运行器表单的 URL 来完成的。示例:http://server.com/orbeon/fr/[APP_NAME]/[FORM_NAME]/new/[new id]

在 3.8 和 3.9 中,我们可以提供 [new id],而 Orbeon 将使用给定的 ID 创建一个新表单。然而,在 4.3 中,它似乎不再接受 [new id] 了。我们在浏览器中收到此消息:您无权访问此页面。

它确实允许我们使用以下 url 生成新表单:http://server.com/orbeon/fr/[APP_NAME]/[FORM_NAME]/new 但这不再让我们控制 ID。

我们使用标准的 Exist 持久层。

4

1 回答 1

0

我不确定 3.4 和 4.3 之间的区别,但在 4.3 中,可以将 id 作为 URL 参数传递,然后使用操作进行设置。

例如:

http://server.com/orbeon/fr/[APP_NAME]/[FORM_NAME]/new?document-id=[new id]

并在表单定义中包含一个动作:

<xf:model>
    ...
    <xf:action id="populate-document-id-binding">
        <xf:action ev:event="xforms-ready" ev:observer="fr-form-model" if="($fr-mode='new') and (xxf:get-request-parameter('document-id')!='')">
            <xf:setvalue model="fr-parameters-model" ref="instance('fr-parameters-instance')/document" value="xxf:get-request-parameter('document-id')"/>
        </xf:action>
    </xf:action>
    ...
</xf:model>

这假设您对编辑表单定义源感到满意。

免责声明:我不知道文档参数的路线图,所以不能说这在未来有多大的支持性。

于 2013-09-12T11:05:01.767 回答