我有一个处于初始状态的文档(http://marklogic.com/states/initial ),并将我的CPF管道配置为:
<state-transition>
<annotation>ready</annotation>
<state>http://marklogic.com/states/ready</state>
<on-success>http://marklogic.com/states/completed</on-success>
<on-failure>http://marklogic.com/states/error</on-failure>
<execute>
<condition>
<module>/MarkLogic/cpf/actions/namespace-condition.xqy</module>
<options xmlns="/MarkLogic/cpf/actions/namespace-condition.xqy">
<namespace/>
</options>
</condition>
<action>
<module>action.xqy</module>
</action>
</execute>
</state-transition>现在,当我使用以下方法更改文档的状态时:
cpf:document-set-state("/myDocs/example.xml","http://marklogic.com/states/ready")不执行CPF动作模块action.xqy。
是否有任何方法可以显式地更改文档的状态并触发为该状态配置的CPF操作模块?
发布于 2014-11-10 21:17:36
CPF处理有一些代码可以防止它在已经处于活动状态时重新触发。如果您将日志级别设置为"debug“,您将看到有关”检查转换导致的跳过“的消息,这些消息显示了以下内容。
因此,您还需要将处理状态设置为"active“(在与状态更改相同的事务中):
cpf:document-set-processing-status("/myDocs/example.xml", "active")https://stackoverflow.com/questions/26850320
复制相似问题