我已在部分表单上为提交按钮设置了自定义流程,如下所示:
<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?
答案 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()} "
)