datahub:使用具有不同值的相同idoc属性

2020-09-26 18:07发布

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

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


大家好,

我们正在根据BillTo/shipTo/soldTo等场景映射一些ORDERS05 iDoc字段。 在我们的自定义原始扩展程序中,我们将如下映射shipTo和biilTo字段:表达式将基于Partner Function值(billTo或shipTo

)评估关联的Partner。
    E1EDKA1-PARVW   <!-合作伙伴功能->
                     E1EDKA1-PARTN   <!-合作伙伴->
 
   <属性>
                       shipTo 
                      <转换>
                          <转换>
                               RawORDERS 
                              ('WE'.equals(#root.getField('E1EDKA1-PARVW'))?#root.getField('E1EDKA1-PARTN'):#root.getField('E1EDKA1-PARTN'  ))
                          
                      
                  
                   <属性>
                       billTo 
                      <转换>
                          <转换>
                               RawORDERS 
                              ('RE'.equals(#root.getField('E1EDKA1-PARVW'))?#root.getField('E1EDKA1-PARTN'):#root.getField('E1EDKA1-PARTN'  ))
                          
                      
                  

  

根据上述映射,两个表达式的发布过程中,E1EDKA1-PARTN的值相同。 而应该有各自的值。

我们如何使用原始表达式来操纵正确的合作伙伴值?

谢谢, 矢天

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

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


大家好,

我们正在根据BillTo/shipTo/soldTo等场景映射一些ORDERS05 iDoc字段。 在我们的自定义原始扩展程序中,我们将如下映射shipTo和biilTo字段:表达式将基于Partner Function值(billTo或shipTo

)评估关联的Partner。
    E1EDKA1-PARVW   <!-合作伙伴功能->
                     E1EDKA1-PARTN   <!-合作伙伴->
 
   <属性>
                       shipTo 
                      <转换>
                          <转换>
                               RawORDERS 
                              ('WE'.equals(#root.getField('E1EDKA1-PARVW'))?#root.getField('E1EDKA1-PARTN'):#root.getField('E1EDKA1-PARTN'  ))
                          
                      
                  
                   <属性>
                       billTo 
                      <转换>
                          <转换>
                               RawORDERS 
                              ('RE'.equals(#root.getField('E1EDKA1-PARVW'))?#root.getField('E1EDKA1-PARTN'):#root.getField('E1EDKA1-PARTN'  ))
                          
                      
                  

  

根据上述映射,两个表达式的发布过程中,E1EDKA1-PARTN的值相同。 而应该有各自的值。

我们如何使用原始表达式来操纵正确的合作伙伴值?

谢谢, 矢天

付费偷看设置
发送
3条回答
昵称总是被占用
1楼 · 2020-09-26 18:43.采纳回答

if else值语句之一应为 null

  'WE'.equals(#root.getField('E1EDKA1-PARVW'))吗?  #root.getField('E1EDKA1-PARTN'):null 
  'RE'.equals(#root.getField('E1EDKA1-PARVW'))吗?  #root.getField('E1EDKA1-PARTN'):null 
  
合成期间会忽略

null 值。 目的是忽略具有不正确匹配的PARVW代码的行中的PARTN值。

Nir深蓝
2楼-- · 2020-09-26 18:42

出版物转换与构成转换不同。 组成由映射/归约驱动,以将多个原始转换为单个规范项。 该出版物只是从规范到目标进行了1到1的转换。
而且,规范模型中不应有IDOC字段命名。

Violet凡
3楼-- · 2020-09-26 18:42

感谢罗宾。 我尝试遵循与saponvoice-raw * .xml中提供的映射相同的映射,并在自定义DH原始扩展中的以下代码中提供了映射。 但是在发布期间,这两个表达式之一返回" E1EDKA1-PARTN"值null,即显示" ignore"

原始映射:

  
                       shipTo 
                      <转换>
                          <转换>
                               RawORDERS 
                              #root.getField('E1EDKA1-PARVW')=='WE'吗?  #root.getField('E1EDKA1-PARTN'):null 
                          
                      
                  
                  <属性>
                       billTo 
                      <转换>
                          <转换>
                               RawORDERS 
                              #root.getField('E1EDKA1-PARVW')=='RE'吗?  #root.getField('E1EDKA1-PARTN'):null 
                          
                      
                  

  

规范外部映射:

  
                       shipTo 
                      <型号>
                          字符串
                      
                  
                   <属性>
                       billTo 
                      <型号>
                          字符串
                      
                  
  

一周热门 更多>