如何在字段级别运行自定义操作方法

时间:2019-01-29 02:00:23

标签: c# ibm-datacap

我在datacap中有一个项目,可以读取图像,pdf和csv,识别表并以JSON格式导出这些表。

为此,我执行了一个自定义操作,该操作是使用Datacap Template for C#编写的。

此自定义操作中的第一个方法用于加载CSV,并且因为它从批处理级别开始而工作良好,所以直到后来我才意识到我的问题。

这是原型

public bool XLSToJPG(string filePath);

一切都很好,直到我编写了第二种方法为数据帽中识别的每个字段写一些日志,例如字符的置信度。意识到我不能调用其他级别,而不能调用诸如文档,页面,字段或字符级别之类的批处理。

第二种方法的原型

public bool getFieldInfo();

调用该方法进行测试时,将打印当前级别的日志。如果打印0,则表示批次级别, 1、2、3、4分别是文档,页面,字段和字符

我写了日志,试图查看该方法是否在任何级别都被调用。 在规则集中,我设置“从...开始运行”,然后选择“任何对象”而不是字段。这意味着应该在所有级别上调用它​​。没用。

我尝试的级别无关紧要,它始终将0打印为当前级别。

首先,将方法(操作)在内部函数上获取后立即在函数内部调用,然后我尝试使用其自己的Rule,然后在其自己的Ruleset中尝试0运气;´(。

这是我要运行的方法

    public bool getFieldInfo() {
        bool response = false;

        WriteLog("Getting field confidence...");
        WriteLog("Current Level: " + DCO.ObjectType());

        string confidence = DCO.AltConfidenceString[0];

        WriteLog("The current field confidence is: " + confidence);

        response = true;

        //switch (DCO.ObjectType()) {
        //    case Level.Field:
        //        break;
        //    default:    
        //        WriteLog("getFieldInfo should run on the field level.");
        //        break;
        //}


        return response;
    }

您可以看到我是如何用尽选项并删除开关以在每次调用时打印日志的,它总是打印“ getFieldInfo应该在字段级别运行。”

当我在“规则”的属性中设置操作时,应仅在字段级别调用该操作。

此刻我让它在“任何对象”上运行

enter image description here

1 个答案:

答案 0 :(得分:0)

好..所以我假设该dll是用各种功能创建的,并且您想在字段级使用第二个功能。 -如果您使用的是datacap studio(当然会使用),则左侧将是第一个带有文档层次结构的框。 -您可以从显示在最右边的dll中添加的规则集(中间)设置函数。 -您可以将该函数添加到doc层次结构内的字段中,该字段仅在规则集中执行该字段以检查任何内容时才运行。

我将在回家时尝试获得一些屏保。

希望这会有所帮助