如何管理 Siebel 数据映射中的附件?

How to manage attachments in Siebel data mappings?

我们有一个带有两个集成对象的 Siebel 7.8 应用程序,并且都有一个用于附件的集成组件。其中一个将附件字段定义为 DTYPE_ATTACHMENT,而另一个将其定义为 DTYPE_TEXT(它用于入站 Web 服务,该服务读取 base64 数据字符串并将其写入磁盘上的文件)。

我正在尝试使用 UI 数据映射和 EAI Data Transformation Engine 服务将数据从一个 IO 转换为另一个 IO,但到目前为止我一直没有成功:

有什么方法可以在不丢失 base64 数据的情况下将数据从一个集成对象转换到另一个集成对象?我不在乎转换是 "attachment to text" 还是 "text to attachment",我可以用任何一种方式构建我需要的东西。我无法更改集成对象的定义,但如果需要,我可以创建一个新对象用作中间步骤。

我放弃了。这是不可能的。这是不可能的,任何进一步解决它的尝试都会导致已知的宇宙内爆。谢谢,西贝尔!

然而...

我找到了一个非常简单的解决方法来满足我的要求。事实上,它是如此简单,我简直不敢相信我花了 4 天时间才弄明白。

我没有尝试将 DTYPE_TEXT 字段强制转换为 DTYPE_ATTACHMENT 字段,反之亦然,我在输出集成对象中创建了该字段的两个版本:content (DTYPE_ATTACHMENT),以及contentText (DTYPE_TEXT)。现在,这两个字段具有不同的名称,但它们共享 External NameXMLTag 属性 (content)。对于 Siebel,它们是不同的字段,我可以在数据映射中对它们进行不同的处理;然而,一旦执行了数据转换,它们都变成了 <content>,因此 Web 服务另一端的外部系统不会注意到任何差异。完成!