Orbeon升级,从3.9到4.5:定制提交保存形式(Orbeon upgrade from 3.9

2019-11-03 05:45发布

我们正在升级,从3.9到4.5。

在大约390 Orbeon形式,我们使用自定义的保存提交按钮。

这不是在4.5 Orbeon形式工作。 当我点击“提交”,它不保存表单到orbeon_form_data表。

下面是“提交”部分的源代码,

<xhtml:head>
    <xforms:bind id="eoisave-btn-bind" ref="eoisave-btn" name="eoisave-btn" type="xforms:string"
                 relevant="$Bidlist_IsBidding != ''"/>
</xhtml:head>
<xhtml:body>
    <fr:button id="eoisave-btn-control" bind="eoisave-btn-bind">
        <xforms:label ref="$form-resources/eoisave-btn/label"/>
        <xforms:hint ref="$form-resources/eoisave-btn/hint"/>
        <xforms:alert ref="$fr-resources/detail/labels/alert"/>
    </fr:button>
    <xforms:action ev:event="DOMActivate" ev:observer="eoisave-btn-control">
        <xforms:setvalue if="xxforms:instance('fr-error-summary-instance')/valid = 'true'"
                         ref="./EOISaved"
                         value="1"/>
        <xforms:setvalue ref="./user-action">submit eoi</xforms:setvalue>
        <xforms:dispatch name="fr-save-action" target="fr-persistence-model">
            <xxforms:context name="fr:check-data-valid" select="true()"/>
        </xforms:dispatch>
    </xforms:action>
</xhtml:body>

而在orbeon日志,我可以找到以下。

+----------------------------------------------------------------------------------------------------------------------+
|An Error has Occurred                                                                                                 |
|----------------------------------------------------------------------------------------------------------------------|
|Cannot compare xs:boolean to xs:string                                                                                |
|----------------------------------------------------------------------------------------------------------------------|
|Application Call Stack                                                                                                |
|----------------------------------------------------------------------------------------------------------------------|
|----------------------------------------------------------------------------------------------------------------------|
|Exception: org.orbeon.saxon.trans.XPathException                                                                      |
|----------------------------------------------------------------------------------------------------------------------|

Answer 1:

Orbeon窗体4.5具有工艺简单,你可以用按钮关联。 见表格亚军:按钮和进程 。 使用这些的好处是,你不靠形式亚军的内部,你有没有3.9。 现在,我不知道流程让你做你想做的那一刻做,如设置值的一切,但我想我会提到它们。

这就是说,作为第一步,尝试改变:

xxforms:instance('fr-error-summary-instance')/valid = 'true'

至:

xxforms:instance('fr-error-summary-instance')/valid = true()

二, fr-save-action已经一去不复返了。 这是一个内部形式亚军事件。 尝试改为:

<xf:action type="xpath" xmlns:process="java:org.orbeon.oxf.fr.process.SimpleProcess">
    process:runProcessByName('oxf.fr.detail.process', 'save-final')
</xf:action>

请注意,我没有测试过这一点。



文章来源: Orbeon upgrade from 3.9 to 4.5 : Customized submit for saving forms
标签: forms orbeon