При выполнении метода OpenScript
моего сценария выпуска я хочу сохранить индексные поля, поля команд и переменные в списках.Я создал фрагмент для этого
Dictionary<string, string> indexFields = new Dictionary<string, string>();
Dictionary<string, string> batchFields = new Dictionary<string, string>();
Dictionary<string, string> kofaxValues = 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:
kofaxValues.Add(sourceName, sourceValue);
break;
case KfxLinkSourceType.KFX_REL_BATCHFIELD:
batchFields.Add(sourceName, sourceValue);
break;
}
}
}
Я хочу сделать это, потому что мне нужно значение поля.Каждое имя поля уникально, поэтому я могу использовать его в качестве ключа.
При сохранении своих пользовательских свойств в ReleaseSetupData
я могу прочитать их из ReleaseData
.Допустим, два пользовательских свойства вернули бы мне имя поля и тип поля, поэтому я знаю, что это поле IndexField
, а его имя - "MyIndexField".
Я могу использовать эту информацию для доступа к Dictionary<string, string> indexFields
и получить значение из этого Indexfield
.
В настоящее время я настраиваю ReleaseSetupData
с этим кодом
releaseSetupData.CustomProperties.RemoveAll();
// Save all custom properties here
releaseSetupData.CustomProperties.Add("myCustomProperty", "fooBar");
releaseSetupData.Links.RemoveAll();
foreach (IndexField indexField in releaseSetupData.IndexFields) // Save all IndexFields
{
releaseSetupData.Links.Add(indexField.Name, KfxLinkSourceType.KFX_REL_INDEXFIELD, indexField.Name);
}
foreach (BatchField batchField in releaseSetupData.BatchFields) // Save all BatchFields
{
releaseSetupData.Links.Add(batchField.Name, KfxLinkSourceType.KFX_REL_BATCHFIELD, batchField.Name);
}
foreach (dynamic batchVariable in releaseSetupData.BatchVariableNames) // Save all Variables
{
releaseSetupData.Links.Add(batchVariable, KfxLinkSourceType.KFX_REL_VARIABLE, batchVariable);
}
Когда выполняется метод OpenScript
моего сценария выпуска,словари (показанные в первом фрагменте) остаются пустыми.Это потому что documentData.Values
пусто.
Как мне заполнить documentData.Values
?