LogError () в KfxReleaseScript - PullRequest
       8

LogError () в KfxReleaseScript

0 голосов
/ 28 ноября 2018

При создании сценария выпуска 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 года: 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)

Ответы [ 2 ]

0 голосов
/ 03 декабря 2018

Хотя параметры не являются обязательными, вы можете просто использовать любое значение (которое вы уже выяснили).Кроме того, здесь описано, как регистрировать весь стек вместе с номером строки, что поможет определить основную причину проблемы.Обратите внимание, что вам нужно будет включить файл 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())
    );            
}
0 голосов
/ 30 ноября 2018

Кажется, что 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");

Я думаю, что это хорошо для моего случая.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...