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



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

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

  • 如果我转换数据从DTYPE_ATTACHMENTDTYPE_TEXT,它不会引起任何错误,但附件base64数据丢失,我只得到row_id在结果XML。
  • 如果我转换数据从DTYPE_TEXTDTYPE_ATTACHMENT,我得到这个错误:

    源表达式生成的附件ID ' mdeymzq1ncc[…]] DEy8/W3CDCys7U2w==',但无法找到相应的附件。(sbl - eai - 04058)

是否有任何方法可以将数据从一个集成对象转换为另一个,而不会丢失base64数据?我不在乎转换是"附件到文本"还是"文本到附件",我可以构建我需要的任何一种方式。我不能更改集成对象的定义,但是如果需要,我可以创建一个新对象作为中间步骤使用。

我放弃。这是不可能的。这是不可能的,任何进一步的尝试都会导致已知宇宙的内爆。谢谢,Siebel !

然而…

我已经为我的需求找到了一个相当简单的解决方案。事实上,它是如此简单,我简直不敢相信我花了4天时间才弄明白。

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

相关内容

  • 没有找到相关文章

最新更新