Kofax - 自定义导出连接器 - 方法顺序

时间:2018-04-03 12:09:59

标签: kofax

我们已经为我们的目的编写了一个自定义导出连接器,似乎没有像预期的那样工作,只有少数情况。

根据Kofax Capture 10.0开发人员指南,导出模块加载导出连接器并执行以下操作:

1. Fills in the general batch class and document class properties in the ReleaseData variable.
2. Calls the OpenScript method. You should use this method to perform any initialization required for the connector.
3. Fills in the properties specific to the first document to be exported in the ReleaseData variable and calls the ReleaseDoc method for the document. You should use this method to save the document data in the external database and copy the image files and full text OCR files to the selected export folders.
4. Repeats the process described in Step 3 for each remaining document to be exported.
5. Calls the CloseScript method after the last ReleaseDoc method is completed and the connector is about to be unloaded. You should use this method to perform any cleanup required for the connector.

因此,如果我理解正确,首先调用OpenScript方法,只有在通过ReleaseDoc方法发布每个文档后才调用CloseScript方法。

但是,通过在Visual Studio中设置断点,我们发现在少数特定情况下,我们的连接器不是这种情况,即当我们有文档类A的文档和文档类B的文档时,两者都属于到同一批次类。会发生什么:

Document A: OpenScript --> ReleaseDoc --> CloseScript
Document B: OpenScript --> ReleaseDoc --> CloseScript

我们希望发生的事情(如果可能的话)是:

OpenScript --> ReleaseDoc for Document A --> ReleaseDoc for Document B --> CloseScript

我们用于导出连接器注册的INF文件包含(以及其他行)以下行:

SupportsMultipleInstances=False

因此,我的问题如下:是否有任何方法可以更改Export模块的行为,以便在调用CloseScript之前释放同一批次中的所有文档?

1 个答案:

答案 0 :(得分:0)

在Export阶段首次遇到类时,将为每个Document Class触发OpenScript。由于导出连接器不依赖于批次类,而是文档类批次类,因此总会发生这种情况。

要完成您的需要,您必须设置一个文件或注册表项,该项是在批处理首次运行OpenScript时设置的,并且在该批次关闭之前将跳过该函数的任何后续运行。