首页 > 解决方案 > 如何在字段级别运行自定义操作方法

问题描述

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

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

此自定义操作中的第一种方法用于加载 CSV,它工作正常,因为它从批处理级别开始,因此我直到后来才意识到我的问题。

这是原型

public bool XLSToJPG(string filePath);

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

第二种方法的原型

public bool getFieldInfo();

我在调用该方法进行测试时打印当前级别的日志。如果打印 0 则为 Batch 级别,1、2、3、4 分别为 Document、Page、Field 和 Character

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

我尝试什么级别并不重要,它总是打印 0 作为当前级别。

首先,在获得前一个函数的字段后立即在函数内部调用方法(动作),然后我尝试使用自己的规则,然后在自己的规则集中尝试,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 应该在字段级别运行”。

当我在规则的属性中将其设置为执行此操作时,应仅在字段级别调用该操作。

目前我让它在“任何对象”上运行

在此处输入图像描述

标签: c#ibm-datacap

解决方案


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

我会在回家时尝试获得一些屏幕固定..

希望这可以帮助


推荐阅读