互联网+企业内容管理

为中小企业提供基于云计算的企业内容管理平台

  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

AC中因为使用了 SBL 的脚本引擎,比如 验证脚本,识别脚本。
而平时我们使用最多的应该就是验证脚本啦,因为验证脚本可以对索引数据做很多操作。有个项目我使用校验模块实现了自动录入索引功能,并且带数据库校验。小提示:SendKeys 函数可是一个好功能哦!可以在脚本中操作主程序,虽然是通过间接方式。如 SendKeys "^r" 可以拒绝当前对象。
我结合一张图片来分析一下验证脚本的执行流程:

此图是一个完整的验证脚本在检验或者验证模块中执行的事件流程,我按照箭头方向一个个解释
1)OCXEvent,批次成功打开
2)OCXEvent,文档成功打开
3)ScriptProduce,加载脚本。需要注意KfxLoadValidation在每个批次打开只执行一次,而且是在第一个文档成功打开后执行一次,只有一次。一般我们在这里维护一些批次级别的数据,如一个数组,维护每个文档的OrderNumber,并记录文档的关键索引,这样可以用来比较不同文档的数据
4)ScriptProduce,文档预处理。一般在这里对所有字段进行一个初步处理,比如根据关键索引到数据库查找数据然后填充其他索引。如果成功,可以使用SaveAndSkipDocument返回,这样就可以自动处理文档啦
5)OCXEvent,上下文改变
6)OCXEvent,索引字段获取焦点
7)ScriptProduce,字段预处理。可以为这个索引设置一个初始值或者默认值
--用户操作,进行数据输入--
8)ScriptProduce,提交字段数据。一般需要设置数据的格式可以在这里处理。如果这个是关键索引,会根据这个索引的数据去查询数据库获取其他字段的数据。字段校验成功,会将字段设置成已经验证。
9)OCXEvent,索引字段失去焦点。接下来处理下一个字段,重复6到9
10)OCXEvent,文档校验中事件。注意,这里是验证完所有需要验证索引字段后才能抛出这个事件
11)ScriptProduce,索引字段预处理。处理未验证字段?
12)ScriptProduce,提交索引字段。接下来循环处理未验证字段,重复11到12
13)ScriptProduce,提交文档。这里可以做一些总计的功能,比如:统计几个字段的和,或者添加一些数据数值判断。AC文档说次函数内不能访问索引字段,但是我发现可以。接下来验证下一个文档,循环2到13
14)OCXEvent,关闭文档事件。
15)OCXEvent,关闭批次
16)OCXEvent,拒绝批次
17)OCXEvent,挂起批次
18)OCXEvent,删除批次
19)ScriptProcduce,卸载脚本资源
验证脚本的变量:
const RejectAndSkipDocument= -4
const ValidationError      = -3
const ValidationErrorNoMsg = -2
const FatalError           = -1
const NoError              = 0
const SaveAndSkipDocument  = 1
const SaveAndSkipField     = 2
const NoOperation          = 3
Global const KfxLoadAllProcessedValues = "NO"
Global KfxOperation As String
Dim KfxBatchName As String
Dim KfxBatchId As String
Dim KfxBatchClassId As String
Dim KfxClassName As String
Dim KfxDocClassId As String
Dim KfxPageFile As String
Dim KfxErrorMessage As String
Dim KfxAcmDocument As Object      '这个对象和COMDocument一样,可以访问很多对象
http://www.capturesolution.com/

posted on 2007-07-05 23:41  workjie  阅读(438)  评论(0编辑  收藏  举报