Workflow 在表达式中获取转换属性

Workflow 在表达式中获取转换属性,workflow,plone,Workflow,Plone,我已经在Plone中使用Products.DCWorkflow创建了一个自定义工作流。我已经将转换描述设置为对刚刚发生的事情进行更详细的描述,并试图在状态消息中显示它们。我以为我可以使用工作流变量来实现这一点,但我遇到了权限问题,不明白为什么 我的工作流程基于simple\u publication\u workflow,它提供了一组变量。我尝试复制操作变量所使用的方法,该变量的默认表达式为transition/getId | nothing。我创建了一个action\u description

我已经在Plone中使用Products.DCWorkflow创建了一个自定义工作流。我已经将转换描述设置为对刚刚发生的事情进行更详细的描述,并试图在状态消息中显示它们。我以为我可以使用工作流变量来实现这一点,但我遇到了权限问题,不明白为什么

我的工作流程基于
simple\u publication\u workflow
,它提供了一组变量。我尝试复制
操作
变量所使用的方法,该变量的默认表达式为
transition/getId | nothing
。我创建了一个
action\u description
变量,并添加了
transition/description | nothing
。这样,我得到一个
None
返回值。如果没有
| nothing
选项,页面将重定向到
https
,表示用户没有当前操作所需的权限

我在
Products/DCWorkflow/Expression.py
中的
createExprContext
中设置了一个断点,作为同一个用户,我可以在
sci.transition.description
中看到我想要的信息。因此,我尝试用
python:transition.description
替换以前的默认表达式,但我遇到了同样明显的权限问题


我想知道为什么会这样?为什么
transition/getId
是工作流变量的有效表达式,而
transition/description
不是?

不是100%确定,但我担心您在受限环境中会遇到一些问题。如果您查看
转换
类定义,您将看到有一个define方法
getId
,但是
description
没有访问器。您还可以看到一个
declareObjectProtected
调用。我担心对所有属性的访问都会受到限制。@keul谢谢,这是我进一步浏览DCWorkflow后的想法。为自定义变量提供一个系统,然后严格限制使用它可以做什么,这似乎真的很奇怪。我最终只是通过视图中的工作流工具获取描述,我只是希望我不必双击工作流数据。