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

时间:2016-06-24 08:29:41

标签: siebel

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

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

  • 如果我将数据从DTYPE_ATTACHMENT转换为DTYPE_TEXT,则不会引发任何错误,但附件base64数据会丢失,我只会在生成的XML中获取row_id。 / LI>
  • 如果我将数据从DTYPE_TEXT转换为DTYPE_ATTACHMENT,我会收到以下错误:
      

    源表达式生成附件ID' MDEyMzQ1Njc [...] DEy8 / W3CDCys7U2w =='但无法找到相应的附件。 (SBL-EAI-04058)

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

1 个答案:

答案 0 :(得分:2)

我放弃了。它无法完成。这是不可能的,任何进一步解决它的尝试都会导致已知的宇宙崩溃。谢谢,Siebel!

...然而

我找到了一个非常简单的解决方法来解决我的问题。事实上,它如此简单,我无法相信我花了4天才弄明白。

我没有尝试将DTYPE_TEXT字段强制转换为DTYPE_ATTACHMENT字段,反之亦然,而是在输出集成对象中创建了两个版本的字段:content (DTYPE_ATTACHMENT)和{{ 1}}。现在,这两个字段具有不同的名称,但它们共享contentText (DTYPE_TEXT)External Name属性(XMLTag)。对于Siebel来说,他们是不同的领域,我可以在数据映射中以不同的方式解决它们;但是,一旦执行了数据转换,它们都变为content,因此Web服务另一端的外部系统不会发现任何差异。完成!