首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何将数据表附加到数据代理的密钥生成操作?

如何将数据表附加到数据代理的密钥生成操作?
EN

Stack Overflow用户
提问于 2012-10-02 00:56:58
回答 1查看 54关注 0票数 1

我有一个Workflow SQL数据库器,其中ID字段是一个带有附加字符填充的顺序编号,即P001TM234

我将ID生成的查询定义为:

代码语言:javascript
复制
<key-generation field="id" query="queries/asset-patent-get-id" />

它只是根据提供的参数检索下一个序列值。因此,对于创建的每一条记录,我都需要确保ID存储在数据库中时,它已经按照所需的规则填充,并且存储为字符串,而不仅仅是数字。

EN

回答 1

Stack Overflow用户

发布于 2012-10-09 09:50:22

首先要注意的是:数据规则不是绑定到操作,而是绑定到字段。因此,在这种情况下,只需将密钥生成操作想象为检索序列中的下一个数字,仅此而已。一旦检索到序列值,适当的绑定数据规则应该能够在序列值持久化之前对其进行格式化。

您应该能够定义如下所示的数据规则:

代码语言:javascript
复制
<!-- datarules/format-asset-patent-id/definition.xml -->
<data-rule name="format-asset-patent-id"
           factory-class="com.aviarc.framework.datarule.xml.DefaultXMLDataRuleProviderFactoryImpl"
           datarule-class="com.aviarc.framework.datarule.workflow.WorkflowDataRule">
    <parameters>
        <parameter name="field" mandatory="y"/>
    </parameters>
    <event name="onBeforeDatasetPersisted" workflow="workflows/format-asset-patent-id" field="{@field}"/>
</data-rule>

然后,在格式-资产-专利- id工作流中,您可以负责格式化id。(注意:我还没有机会测试onBeforeDatasetPersisted事件是在执行密钥生成操作之前还是之后触发。)

然后可以使用数据绑定绑定它,例如:

代码语言:javascript
复制
<!-- databindings/asset-patent.xml -->
<databinding databroker="asset-patent"
             factory-class="com.aviarc.framework.databinding.basic.BasicDataBindingFactoryImpl">
    <on-dataset-bound>
        <data-rules>
            <format-asset-patent-id field="id"/>
        </data-rules>
    </on-dataset-bound>
</databinding>
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12683171

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档