导航到Orbeon按钮的PDF操作

时间:2016-01-08 13:22:05

标签: orbeon

我已在部分表单上为提交按钮设置了自定义流程,如下所示:

<property as="xs:string" name="oxf.fr.detail.process.submit.App.*">
  require-valid
  then confirm(message = "Are you sure you would like to submit the form?")
  then suspend
  then review
</property>

我不想进入评论页面,而是希望它导航到表单的pdf副本(就像使用pdf按钮一样)。我已经查看了文档,但没有找到针对此的操作。我找到了pdf-url,但不知道如何使用它来做我想要的。

我找到了用于为pdf按钮生成pdf网址的xbl,但是卡在$ app和$ form上未定义。

<fr:href-button
        xmlns:frf="java:org.orbeon.oxf.fr.FormRunner"
        model="fr-persistence-model"
        ref="instance('fr-triggers-instance')/pdf"
        href=
            "/fr/service/{
                $app
            }/{
                $form
            }/pdf/{{
                string-join(
                    (
                        xxf:instance('fr-parameters-instance')/document/string(),
                        xxf:document-id(),
                        frf:filenameOrNull('pdf')[. != '']
                    ),
                    '/'
                )
            }}.pdf">


<property as="xs:string" name="oxf.fr.detail.process.submit.App.*">
  require-valid
  then confirm(message = "Are you sure you would like to submit the form?")
  then suspend
  then navigate(uri = "/fr/service/{ $app }/{ $form }/pdf/{ string-join( ( xxf:instance('fr-parameters-instance')/document/string(), xxf:document-id()) , '/' ) }.pdf")
</property>

我也注意到它试图确认你想要在重定向到pdf的404时离开页面。

我将用then review代替什么来转到pdf?

2 个答案:

答案 0 :(得分:0)

使用:

navigate(
    uri =
        "/fr/service/{
        xxf:instance('fr-parameters-instance')/app}/{
        xxf:instance('fr-parameters-instance')/form}/pdf/{
        string-join(
            (
                xxf:instance('fr-parameters-instance')/document/string(),
                xxf:document-id()
            ),
            '/')
        }.pdf"
)

应该有内置函数来访问应用名称,表单名称和文档ID。但是现在您可以从fr-parameters-instance实例访问它们。 fr-parameters-instance包含:

<app></app>
<form></form>
<form-version></form-version>
<document></document>
<mode>new</mode>
<uuid/>

您可以使用set-data-status操作将数据状态强制为safe

答案 1 :(得分:0)

为我工作

 uri =
        "/fr/{
        xxf:instance('fr-parameters-instance')/app}/{
        xxf:instance('fr-parameters-instance')/form}/pdf/{
        xxf:instance('fr-parameters-instance')/document/string()} "
    )