Siebel 接口日志报文文件生成

本文介绍Siebel接口日志中处理命名空间的重要参数。GenerateNamespaceDecl应设置为true,确保命名空间在报文传递时正确显示,防止因命名空间不一致导致的解析问题。同时,UseSiebelMessageEnvelope默认值为true,但在生成报文时应设为false,以避免<SiebelMessage>标签包裹影响报文结构。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

EAI接口开发中,有时候为了方便扯皮,需要将发送给外系统或者外系统发送过来的报文打成xml文件保存。这时BS:EAI XML Write to File就派上用场。BS中三个方法都可以使用。

以Account对应的IO的为例,IO结构:

Account
      AccField1
      AccField2
      AccField3
   Contact
          ConField1
          ConField2
          ConField3  

WritePropSet方法和WriteXMLHier方法生成的xml结构中,将field放在了属性中:

<Account AccField1="value" AccField2="value" AccField3="value">
     <Contact ConField1="value" ConField1="value" ConField1="value">
<Account>
注:报文中意在讲方法生成报文结构的区别,ListOf虽然也是其中一项,但太烦,就不写了。。

WriteEAIMsg方法生成的xml跟接收和请求的报文比较相似,field放在元素中:

<Account>
     <AccField1>value</AccField1>
     <AccField2>value</AccField2>
     <AccField3>value</AccField3>
     <Contact>
          <ConField1>value</ConField1>
          <ConField2>value</ConField2>
          <ConField3>value</ConField3>
     </Contact>
</Account>

之前由于WriteEAIMsg方法的方法名起的有些奇葩,以为不是写XML形式的,所以只关注了前两个方法,结果是想搞个测试报文都要从属性里一个一个抓值。。

WriteEAIMsg方法除了必填的参数FileName和SiebelMessage之外,加上另外个可选参数就可以直接作为发送报文拷到soap信封里了:
  • GenerateNamespaceDecl:显示命名空间,在发送报文中,如果收发双方命名空间不一致,接收方就会解析不出来相应信息。默认为false,应设置为true。
  • UseSiebelMessageEnvelope:如果为true,报文的头尾会被<SiebelMessage>包起来,默认为true,应设为false。
设置后的报文(命名空间视IO和IC的userproperty而定):

<Account xmlns="xxxx">
     <AccField1 xmlns="xxxx">value</AccField1>
     <AccField2 xmlns="xxxx">value</AccField2>
     <AccField3 xmlns="xxxx">value</AccField3>
     <Contact xmlns="xxxx">
          <ConField1 xmlns="xxxx">value</ConField1>
          <ConField2 xmlns="xxxx">value</ConField2>
          <ConField3 xmlns="xxxx">value</ConField3>
     </Contact>
</Account>

这样生成的日志文件就可以直接拷到soap中测试和查错了,搞定!\(^o^)/
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值