起步软件技术论坛-X3

 找回密码
 立即注册
搜索
查看: 912|回复: 2

[分享]环境相关错误的分析与解决

[复制链接]
发表于 2007-11-8 10:24:40 | 显示全部楼层 |阅读模式
回复

使用道具 举报

 楼主| 发表于 2007-11-8 10:37:43 | 显示全部楼层

当前环境链中,隔离级为[PERSON]的不存在

[B]错误信息[/B]:当前环境链中,隔离级为[PERSON]的不存在
[B]错误原因[/B]:凡是需要取当前操作者ID时候,都是通过取环境链中的人员环境,然后通过人员环境来获取人员ID等信息的,在全局环境用到以下情况都会出现这个错误
1  表达式中用到了Operator()
2  用到了业务参数 系统空间\系统参数组\组织机构参数\操作者编号
                  系统空间\系统参数组\组织机构参数\操作者姓名
3  通过TContextCurrent获取Operator
[B]解决方法[/B]:
凡是在全局隔离级上,不要定义有关人员的自动填充,避免上述情况的调用,如果需要知道当前操作者信息了,可以通过 SystemCore.TSystemCore.Operator 来获取。

类似的错误还有:当前环境链中,隔离级为[POSITION]的不存在
回复 支持 反对

使用道具 举报

 楼主| 发表于 2007-11-8 10:49:38 | 显示全部楼层

找不到属于元素"Biz:\xxx\xxx.DATABASE\xxx.Table\xxx.Field&quot

[B]错误信息[/B]:找不到属于元素"Biz:\xxx\xxx.DATABASE\xxx.Table\xxx.Field"的字段
[B]错误原因[/B]:在流程入口环节,当启动流程实例时候,会在流程环境以及流程环境的子环境中查找流程字段,把这个流程字段的值作为流程ID。如果信息的隔离级设置为全局、人员、岗位等流程环境以上时候,在流程环境中就找不到流程字段了。
[B]解决方法[/B]:
1  设置信息的隔离级为功能或者未定义
2  在流程BeforeFlowStartup事件中,代码对Command.FlowValue.IDs赋值,比如:
procedure TMAINFORM.FlowBroker1BeforeFlowStartup(Sender: TObject; Command: TFlowStartupCommand);
begin
 Command.FlowValue.IDs.Clear;
 DataSetBroker1.DataSet.First;
 while not DataSetBroker1.DataSet.Eof do
 begin
  Command.FlowValue.IDs.Add(DataSetBroker1.DataSet.FieldByName('PRODUCTID').AsString);
  DataSetBroker1.DataSet.Next;
 end;
end;

类似的错误还有:找不到属于元素"Biz:\xxx\xxx.ElementGroup\xxx.Element"的字段
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Justep Inc.

GMT+8, 2025-6-29 23:40 , Processed in 0.047728 second(s), 15 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表