B1if SQL步骤-XPath问题?

2020-08-22 04:28发布

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)


大家好,

我真的很难在B1if方案中运行SQL查询步骤。

我正在尝试通过添加新的销售订单(文档条目)来获取操作结果,并使用SQL步骤查询数据库以获取创建的文档编号。

问题似乎是我无法从上一步访问文档条目,并且该变量从未实例化,因此查询失败。

在IPO日志中,我收到错误消息:

尝试调用从局部变量'inMsg'加载的空对象的com.sap.b1i.bizprocessor.BizProcMessage.setProperty(java.lang.String,java.lang.String)方法

场景如下:

PrepareSQL xlt看起来像这样:

 <?bpc.pltype.out bpm.pltype = xml?> 
 <?prodver 1.0.0?>
     
     
    
     
         
             
                 
                 
                     
                 
             
         
     
     
         <!-您的编码-使用/vpf:Msg/vpf:Body/vpf:Payload访问智能入站消息....-->
         
         
             
                 
                     从ORDR WHERE DocEntry = 中选择DocNum
                 
             
         
     
 
 

传入的消息看起来像这样:

 
 <身体>
 
 <信封xmlns ="">
 <标题>
 添加
 
 
 <身体>
 <物料清单>
 
 
  17 
 <版本> 2 
 
 
 
 
 <文件>
 <行>
  XXXXXXXX 
  XXXXXXXX 
  XXXXXXXX 
  GBP 
  1 
  20200313 
  20200313 
  20200313 
  tYES 
  psNo 
 <地址>
 XXXXXXXX
 
 
 
 
 <行>
  XXXXXXXX 
  1 
  41.67 
 
  0 
 
 <行>
  XXXXXXXX 
  1 
  16.66 
 
  0 
 
 
 
 <行>
  1 
  7.99 
  O1 
 
 
 
 
 
 
 
 <有效负载角色=" C" id =" CallB1">
 <信封xmlns ="">
 <标题>
 成功
  XXXXXXXX 
 
  XXXXXXXX 
 
 
 
 
 
 
 

我是xlt和xpath的新手,但是我一生无法理解为什么我没有选择ActionMessage并将其插入到SQL步骤中,因为我已经检查了xpath,并且可以在在线xpath工具中使用它。

感谢所有可以提供的支持!

马丁

(111.9 kB)

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)


大家好,

我真的很难在B1if方案中运行SQL查询步骤。

我正在尝试通过添加新的销售订单(文档条目)来获取操作结果,并使用SQL步骤查询数据库以获取创建的文档编号。

问题似乎是我无法从上一步访问文档条目,并且该变量从未实例化,因此查询失败。

在IPO日志中,我收到错误消息:

尝试调用从局部变量'inMsg'加载的空对象的com.sap.b1i.bizprocessor.BizProcMessage.setProperty(java.lang.String,java.lang.String)方法

场景如下:

PrepareSQL xlt看起来像这样:

 <?bpc.pltype.out bpm.pltype = xml?> 
 <?prodver 1.0.0?>
     
     
    
     
         
             
                 
                 
                     
                 
             
         
     
     
         <!-您的编码-使用/vpf:Msg/vpf:Body/vpf:Payload访问智能入站消息....-->
         
         
             
                 
                     从ORDR WHERE DocEntry = 中选择DocNum
                 
             
         
     
 
 

传入的消息看起来像这样:

 
 <身体>
 
 <信封xmlns ="">
 <标题>
 添加
 
 
 <身体>
 <物料清单>
 
 
  17 
 <版本> 2 
 
 
 
 
 <文件>
 <行>
  XXXXXXXX 
  XXXXXXXX 
  XXXXXXXX 
  GBP 
  1 
  20200313 
  20200313 
  20200313 
  tYES 
  psNo 
 <地址>
 XXXXXXXX
 
 
 
 
 <行>
  XXXXXXXX 
  1 
  41.67 
 
  0 
 
 <行>
  XXXXXXXX 
  1 
  16.66 
 
  0 
 
 
 
 <行>
  1 
  7.99 
  O1 
 
 
 
 
 
 
 
 <有效负载角色=" C" id =" CallB1">
 <信封xmlns ="">
 <标题>
 成功
  XXXXXXXX 
 
  XXXXXXXX 
 
 
 
 
 
 
 

我是xlt和xpath的新手,但是我一生无法理解为什么我没有选择ActionMessage并将其插入到SQL步骤中,因为我已经检查了xpath,并且可以在在线xpath工具中使用它。

感谢所有可以提供的支持!

马丁

(111.9 kB)
付费偷看设置
发送
2条回答
愤怒的猪头君
1楼-- · 2020-08-22 05:00

尝试以下

 
                     从ORDR WHERE DocEntry = 中选择DocNum
                  

致谢,

巴拉

半个程序猿
2楼-- · 2020-08-22 05:12

感谢您回复前会员。 头部有些划痕后,我已经开始工作了

这是两个问题的结合。

1)在SQL步骤中未正确设置XPath表达式以引用我在先前xlt中定义的有效负载

2)并且在所有对有效负载的引用中也未引用vpf命名空间。 这很令人困惑,因为在调试器中,上一步的输出文档在输出中没有vpf命名空间。

但是我现在有另一个问题是否可以提供帮助?

一周热门 更多>