Impex导入会创建不需要的重复条目

2020-09-25 03:11发布

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

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


亲爱的Hybris-专家,

此问题与这些 post-1 post-2 。 由于将近一年或半年没有考虑它们,因此我参考了它们创建了一个新的变量。

如标题中所述,我的以下impex方案存在问题:

 #测试交付地址
  INSERT_UPDATE Address;&deliveryAddressItem; firstname; lastname; town; shippingAddress [allownull = true]; owner(ContactUser.uid)[unique = true]
  ; deliveryAddressItem1; FirstName; LastName; Muenchen; true; userId123;
 
  #测试(借项)付款信息
  INSERT_UPDATE DebitPaymentInfo;&debitPaymentInfoItem; code [unique = true]; accountNumber; baOwner; bankIDNumber; bank; user(uid)[unique = true];
  ; debitPaymentInfoItem1; testPayment1;" 34434";" Me";" 1111112";" MyBank"; userId123;
 
  #测试订单
  INSERT_UPDATE命令;  &orderItem; 代码[unique = true]; 账户(uid); 网站(uid); 商店(uid);  deliveryAddress(&deliveryAddressItem);  paymentInfo(&debitPaymentInfoItem); 货币(isocode);  date [dateformat = dd.MM.yyyy hh:mm:ss]; 用户(uid);  exportStatus(代码);  externalClientId;
  ;  orderItem1;  test-order-1-code;  " accountId123";  "市场";  "市场";  deliveryAddressItem1;  debitPaymentInfoItem1;  "美元" ;  " 01.01.2016 09:30:30";  userId123;  EXPORT_FLAG;  clientId;

  

运行上面的导入代码后,我收到了两个DebitPaymentInfo条目,它们具有相同的商品代码和所有其他属性,除了具有第一个导入项目的PK的原始属性和第二个条目的重复属性为false之外。

当我对其进行调试时,该流程进入DefaultOrderPrepareInterceptor,在其中进行付款信息检查以及paymentInfoNeedsCloning()。 在进入DefaultOrderPrepareInterceptor之前,我可以通过HAC检查是否创建了DebitPaymentInfo(仅一个条目)。 但是,在拦截器检查之后(也可能是其他拦截器检查),也创建了DebitPaymentInfo的第二个条目。 为什么会这样呢? 我错过了什么吗?还是需要考虑其他事情以避免创建重复项。 任何帮助,将不胜感激。 预先感谢!

干杯

-hai

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

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


亲爱的Hybris-专家,

此问题与这些 post-1 post-2 。 由于将近一年或半年没有考虑它们,因此我参考了它们创建了一个新的变量。

如标题中所述,我的以下impex方案存在问题:

 #测试交付地址
  INSERT_UPDATE Address;&deliveryAddressItem; firstname; lastname; town; shippingAddress [allownull = true]; owner(ContactUser.uid)[unique = true]
  ; deliveryAddressItem1; FirstName; LastName; Muenchen; true; userId123;
 
  #测试(借项)付款信息
  INSERT_UPDATE DebitPaymentInfo;&debitPaymentInfoItem; code [unique = true]; accountNumber; baOwner; bankIDNumber; bank; user(uid)[unique = true];
  ; debitPaymentInfoItem1; testPayment1;" 34434";" Me";" 1111112";" MyBank"; userId123;
 
  #测试订单
  INSERT_UPDATE命令;  &orderItem; 代码[unique = true]; 账户(uid); 网站(uid); 商店(uid);  deliveryAddress(&deliveryAddressItem);  paymentInfo(&debitPaymentInfoItem); 货币(isocode);  date [dateformat = dd.MM.yyyy hh:mm:ss]; 用户(uid);  exportStatus(代码);  externalClientId;
  ;  orderItem1;  test-order-1-code;  " accountId123";  "市场";  "市场";  deliveryAddressItem1;  debitPaymentInfoItem1;  "美元" ;  " 01.01.2016 09:30:30";  userId123;  EXPORT_FLAG;  clientId;

  

运行上面的导入代码后,我收到了两个DebitPaymentInfo条目,它们具有相同的商品代码和所有其他属性,除了具有第一个导入项目的PK的原始属性和第二个条目的重复属性为false之外。

当我对其进行调试时,该流程进入DefaultOrderPrepareInterceptor,在其中进行付款信息检查以及paymentInfoNeedsCloning()。 在进入DefaultOrderPrepareInterceptor之前,我可以通过HAC检查是否创建了DebitPaymentInfo(仅一个条目)。 但是,在拦截器检查之后(也可能是其他拦截器检查),也创建了DebitPaymentInfo的第二个条目。 为什么会这样呢? 我错过了什么吗?还是需要考虑其他事情以避免创建重复项。 任何帮助,将不胜感激。 预先感谢!

干杯

-hai

付费偷看设置
发送
3条回答
hengyuye
1楼-- · 2020-09-25 03:48

您可以尝试在旧版模式下导入ImpEx。 为此,请选中帽子中的复选框,或设置属性impex.legacy.mode = false。 拦截器不会在旧版代码中调用。

通常,hybris会在结帐期间克隆付款信息,以便获得正在使用的付款的"不可修改"副本。 您可以通过PaymentInfo上的标志来识别这些克隆。 我认为这是"原创"。

Aaron 3364
2楼-- · 2020-09-25 03:49

尊敬的专家,

这个问题有什么消息吗? 谢谢!

小c菟菟
3楼-- · 2020-09-25 03:49

嗨,

感谢您的答复,直到现在我还没有关注您的答复。 我已经尝试设置属性impex.legacy.mode = false,但是它仍然会创建重复项。 但是您是对的,我拥有的并不是真正的副本,而是您所描述的更多副本。 最后,由于我总是收到此消息,因此我无法更新条目

找到了多个DebitPaymentInfo类型的项用于唯一限定符...

但是发生这种情况是因为在我的示例中有两个DebitPaymentInfo具有相同的代码testPayment1。

欢呼声

一周热门 更多>