在执行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
?