我的文档处于初始状态(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操作模块?
答案 0 :(得分:3)
CPF处理有一些代码可以阻止它在已经激活时重新触发。如果您将日志级别设置为“debug”,您将看到有关“check-transition cause skip”的消息,向您显示此消息。
因此,您还需要将处理状态设置为“活动”(与状态更改处于同一事务中):
cpf:document-set-processing-status("/myDocs/example.xml", "active")