Kofax导出连接器-从IndexField获取值

时间:2018-10-29 14:20:25

标签: c# kofax

我为Kofax导出连接器创建了一个映射。该连接器使用Web服务与外部应用程序进行交互。

我想将索引字段值连接到外部应用程序的字段ID。目前,我有一本包含外部应用程序ID和索引字段ID的字典。

Dictionary<double, double?> // external fieldID <-> indexfieldID

该键可为空,因为可能未分配字段。我不想将indexfieldID传递给外部应用程序,而是希望传递此indexfield的值。

目前我有这个

releaseSetupData.CustomProperties.Add("MetaFieldID", "IndexFieldID");

期望的结果将是

releaseSetupData.CustomProperties.Add("MetaFieldID", "IndexFieldValue");

如何获取索引字段的值?索引字段本身没有“值”属性,并且Kofax用户可以使用自定义dataType设置自定义字段。那么值会是什么样子?

我没有从 Kofax Capture导出类型库API参考指南

中获取它。

1 个答案:

答案 0 :(得分:1)

通常来说,Kofax将任何类型的映射数据组织为所谓的Links。但是,它并不会自行映射任何内容,这就是我们的工作(出于某种原因)。您会发现两个不同的对象供您使用:

  1. 您的设置脚本将包含对ReleaseSetupData对象的引用,该对象通常名为SetupData
  2. 您的发布脚本还引用了ReleaseData对象DocumentData

现在,在设置时间内建立的所有链接将在发布时间内可用。所述链接可以包含不同种类的数据,例如索引字段,批处理字段,Kofax值或自定义属性。现在,假设您在文档类上具有索引字段“ FirstName”,并且您确实想在发布期间访问其值-这就是您需要做的。

安装脚本

setupData.Links.Add(
        setupData.IndexFields["FirstName"].Name, 
        KfxLinkSourceType.KFX_REL_INDEXFIELD,
        setupData.IndexFields["FirstName"].Name);
setupData.Apply();

请记住,这些链接类似于词典条目,因此您不能两次链接同一项目。我通常喜欢在安装脚本加载时删除所有链接,并在再次卸载时再次添加它们(请注意,您可以安全地循环遍历setupData.Indefields集合以添加所有字段,而不仅仅是单个字段)。

发布(运行)时间

在发布期间,所有链接都将在DocumentData.Values集合中提供。要访问索引字段及其值,这是您需要做的。以下内容假设您已经设置了名为Dictionary<string, string>的{​​{1}},并且它进一步向您展示了如何访问所有其他类型的链接(批处理字段,自定义属性等):

IndexFields

如果要将Kofax索引字段映射到某些外部ID,可以使用“自定义属性”安全地这样做。示例:您可以在安装过程中将ID 42分配给FirstName(只需使用自定义类创建属性网格),在安装过程中添加“自定义属性”,然后在发布期间访问其值。这样,您可以通过设置表单来维护ID,而无需重新构建解决方案。