0

创建 Kofax 发行脚本时可能会出现错误。目前我在我的 catch 语句中显示错误消息框。

public KfxReturnValue OpenScript(){
    try{
        // ...
        return KfxReturnValue.KFX_REL_SUCCESS;
    }catch (Exception e){
        // Show Error Messagebox
        return KfxReturnValue.KFX_REL_ERROR;
    }
}

public KfxReturnValue ReleaseDoc(){
    try{
        // ... 
        return KfxReturnValue.KFX_REL_SUCCESS;
    }catch (Exception e){
        // Show Error Messagebox
        return KfxReturnValue.KFX_REL_ERROR;
    }
}

public KfxReturnValue CloseScript(){
    try{
        GC.Collect();
        GC.WaitForPendingFinalizers();
        return KfxReturnValue.KFX_REL_SUCCESS;
    }catch (Exception e){
        // Show Error Messagebox
        return KfxReturnValue.KFX_REL_ERROR;
    }
}

ReleaseData对象有一个名为 的方法LogError。此方法执行以下操作

在 Kofax Capture 错误日志中记录错误。每个月都会创建一个新的错误日志,文件名表示月份和年份。例如,2008 年 1 月的错误日志是 ERR_0108.txt。

它采用以下参数

Err1 as long 
Err2 as long 
Err3 as long 
ErrorMessage as string
CodeModule as string 
LineNumber as long

这些参数都不是可选的。我在文档中找不到关于这些参数的任何信息,那么我需要在那里传递什么?(ErrorMessage 很明显,CodeModule 可能是 Kofax Capture Export Connector)

4

2 回答 2

1

虽然参数不是可选的,但您可以使用任何值(您已经知道)。此外,这里介绍了如何记录整个堆栈以及行号,这将有助于确定问题的根本原因。请注意,您必须将 pdb 文件与二进制文件一起包含在内。

private void LogCaptureError(Exception e)
{
    // make sure to provide the pdb file, otherwise we can not access the line number
    DocumentData.LogError(0, 0, 0, 
      e.ToString(), 
      e.Source, 
      (new StackTrace(e, true).GetFrame(0).GetFileLineNumber())
    );            
}
于 2018-12-03T20:24:35.817 回答
0

看来LogError可以随心所欲地使用。我创建了两个扩展方法

    public static void LogError(this ReleaseSetupData setupData, string errorMessage)
    {
        setupData.LogError(0, 0, 0, errorMessage, "Kofax Capture Custom Export Connector", 0);
    }

    public static void LogError(this ReleaseData releaseData, string errorMessage)
    {
        releaseData.LogError(0, 0, 0, errorMessage, "Kofax Capture Custom Export Connector", 0);
    }

现在可以执行

setupData.LogError("Error Message goes here");

releaseData.LogError("Error Message goes here");

我认为这对我的情况应该没问题。

于 2018-11-30T14:38:15.923 回答