AmbiguousItemException从impEx更新动态过程定义

2020-09-10 17:36发布

点击此处---> 群内免费提供SAP练习系统(在群公告中)加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)你好 我们正在运行Sap co...

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

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


你好

我们正在运行Sap commerce 1811,使用动态流程定义时,您可以创建如下的impEx:

  INSERT_UPDATE DynamicProcessDefinition; 代码[unique = true]; 活性; 内容;
                                        ; 过程; 真实;  "
  <?xml version ='1.0'encoding ='utf-8'?>
  
 
      ...
  
  ";
  

这第一次运行正常,您获得版本0。第二次运行于版本1,但是,在版本2中,您从ImpExImportReader获得了AmbiguousItemException。 impEx为了更新动态流程定义是否错误?

我的示例基于此处的impEx文档: https://help。 hybris.com/1811/hcd/8c3065f186691014bdd09fa25ffa7e6a.html

顺便说一句,当从Backoffice进行更新时,它可以正常工作,并且该版本如预期那样发生碰撞,并且可以使用新版本。

更新:

如果我将impEx更改为

  INSERT_UPDATE DynamicProcessDefinition; 代码[unique = true];  active [unique = true]; 版本[unique = true]; 内容;
                                            ; 过程; 真实;  4;  "
      <?xml version ='1.0'encoding ='utf-8'?>
      
     
          ...
      
      ";
  

它不会停留在AmbiguousItemException上,而是停留在:

DynamicProcessDefinitionModel()的验证失败,并显示消息"具有相同代码(进程)的内容已经存在。

那么.. Hybris/SAP Commerce是否不支持从impEx更新流程定义,或者我在这里做错了吗?

3条回答
软件心理学工程师
2020-09-10 18:02 .采纳回答

你好

我现在已经调试并找到了解决方案。 它结合了impEx处理引擎中使用的各种技巧来使其正常工作。

使用impEx首次插入动态流程定义后,由于SAP如何实现处理器,因此无法再再次使用这种方式。 严格不允许同一项目的多个实例直接与动态流程定义相抵触。 没有记录在任何地方。 我认为这是一个错误,他们可能会称其为功能。

我已经阅读了有关修饰符的文档并进行调试,以查看它们在引擎中采用的路线能够构造出可以正常工作的impEx。

 更新DynamicProcessDefinition [batchmode = true]; code [unique = true]; active [unique = true]; 版; 内容;
                                             ; 过程; 真实;  ;  "
       <?xml version ='1.0'encoding ='utf-8'?>
       
      
           ...
       
       ";

  

您启用批处理模式。 这将禁用重复错误检查,因此您可以跳过模棱两可的项目异常。 现在,它将使用该代码查找所有旧版本的DynamicProcessDefinitions。 启用批处理模式时,不能使用INSERT_UPDATE。 您必须使用UPDATE。

为了只触发最新的更新而不必跟踪版本号,并让DynamicProcessDefinitions的默认拦截器执行所有繁重的工作,因为您还必须将活动标志设置为标头中的唯一字段。 这将滤除所有较旧的DynamicProcessDefinition,这些默认设置在被取代时将默认设置为false。

现在,它仅查找最近发送的动态流程定义,并且您将对此触发更新。 您不必指定版本,因为幕后的拦截器将自动为您完成所有操作。

我希望这对某人有帮助,因为我花了一些时间来解决这个问题……现在解决方案看起来很简单。

一周热门 更多>