потеря данных между настройкой и выпуском - PullRequest
0 голосов
/ 21 декабря 2018

Когда вызывается OpenScript() релиза kofax, я считываю все Indexfields, BatchFields и BatchVariables из объекта ReleaseData и сохраняю их в словарях.

        Dictionary<string, string> indexFields = new Dictionary<string, string>();
        Dictionary<string, string> batchFields = new Dictionary<string, string>();
        Dictionary<string, string> batchVariables = new Dictionary<string, string>();

        foreach (Value val in documentData.Values)
        {
            if (val.TableName.IsEmpty())
            {
                string sourceName = val.SourceName;
                string sourceValue = val.Value;

                switch (val.SourceType)
                {
                    case KfxLinkSourceType.KFX_REL_INDEXFIELD:
                        indexFields.Add(sourceName, sourceValue);
                        break;

                    case KfxLinkSourceType.KFX_REL_VARIABLE:
                        batchVariables.Add(sourceName, sourceValue);
                        break;

                    case KfxLinkSourceType.KFX_REL_BATCHFIELD:
                        batchFields.Add(sourceName, sourceValue);
                        break;
                }
            }
        }

documentData.Values пусто.При отладке с циклом

        documentData.LogError("-------- SAVED VALUES --------");

        foreach (Value val in documentData.Values)
        {
            documentData.LogError("######");

            documentData.LogError(val.SourceName);
            documentData.LogError(val.Value);

            documentData.LogError("######");
        }

я не получаю запись в журнале.Перед вызовом метода настройки Apply я сохраняю все данные, к которым я хочу получить доступ в выпуске.

        releaseSetupData.CustomProperties.RemoveAll();

        releaseSetupData.CustomProperties.Add("username", cobraService.Username);
        releaseSetupData.CustomProperties.Add("password", cobraService.Password);
        releaseSetupData.CustomProperties.Add("webserviceRootUrl", cobraService.WebserviceRootUrl);
        releaseSetupData.CustomProperties.Add("templateId", selectedTemplateID.ToString());

        releaseSetupData.Links.RemoveAll();

        foreach (IndexField indexField in releaseSetupData.IndexFields)
        {
            releaseSetupData.Links.Add(indexField.Name, KfxLinkSourceType.KFX_REL_INDEXFIELD, indexField.Name);
        }

        foreach (BatchField batchField in releaseSetupData.BatchFields)
        {
            releaseSetupData.Links.Add(batchField.Name, KfxLinkSourceType.KFX_REL_BATCHFIELD, batchField.Name);
        }

        foreach (dynamic batchVariable in releaseSetupData.BatchVariableNames)
        {
            releaseSetupData.Links.Add(batchVariable, KfxLinkSourceType.KFX_REL_VARIABLE, batchVariable);
        }

Важно:

  1. Данные сохраняются во время установки, потому что при повторном открытии конфигурации я могу получить доступ к данным из предыдущих конфигураций.При загрузке моей формы я мог сделать

        CustomProperties props = releaseSetupData.CustomProperties;
    
        if (props.TryGetValue("username", out string username))
        {
            edtUsername.Text = username;
        }
    

и получить предыдущее настроенное значение.

Каждый раз, когда я получаю доступ к своему сценарию экспорта в модуле администрирования, я получаю эту ошибку

2018-12-21 08:54:20, 0x00000018, 0, 0x00000000, 0x00000000, 0x00000000,C: \ Program Files (x86) \ Kofax \ CaptureSS \ ServLib \ Bin, Admin, WINPQQ02E45HKM: Sess 2, 11.0.0.0.0.397,, 130, Объект SetupData не может быть освобожден при закрытии сценария.ScriptName = пользовательский сценарий экспорта, версия = 10.2, счетчик ссылок = 3.,

Что-то не так или отсутствует?

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