Когда вызывается 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);
}
Важно:
Данные сохраняются во время установки, потому что при повторном открытии конфигурации я могу получить доступ к данным из предыдущих конфигураций.При загрузке моей формы я мог сделать
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.,
Что-то не так или отсутствует?