工作流程动作同步

2020-09-23 11:56发布

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

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


您好,专家!

我创建了一个包含一些操作的工作流。 其中之一是批准操作,用户可以在cmscockpit上"批准"页面(将状态设置为"已批准")。 因此,这是第一个问题:

1)当用户批准页面时,如何自动将页面从暂存目录同步到在线目录?

我知道该操作需要一个Job类(在我的情况下,该类实现AutomatedWorkflowTemplateJob)并覆盖'perform'方法。 这样,我希望用户决定批准页面时会调用" perform"方法。 猜猜怎么着?!,确实如此! 在该方法中,我添加了以下代码,因此将事件提升为hybris:

  UISessionUtils.getCurrentSession()
      .sendGlobalEvent(new ItemChangedEvent(this,getTypeService()。wrapItem(page),
            Collections.singletonList(UISessionUtils.getCurrentSession()
                 .getTypeService()。getPropertyDescriptor(" AbstractPage.checkStatus")),
                          ItemChangedEvent.ChangeType.CHANGED),true);
 

  

基本上,我认为这会自动将页面同步到在线,但事实并非如此。

我弄错了吗?


现在,看看这些图像:

替代文字

替代文本

您看到外壳图标吗? 那是红色,然后变成绿色? 太神奇了吧? 我们都知道单击该东西会发生什么:它将页面从暂存目录同步到在线目录! 好吧,这正是我想要做的!,但是在该工作流程操作之内。

第二个问题是:

2)那个神奇的外壳按钮的作用是什么,这样我就可以研究(绝不行,神探夏洛克!)一种执行此按钮功能的方法?

Hybris版本是5.3。

任何想法都非常受欢迎!

(4.1 kB)

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

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


您好,专家!

我创建了一个包含一些操作的工作流。 其中之一是批准操作,用户可以在cmscockpit上"批准"页面(将状态设置为"已批准")。 因此,这是第一个问题:

1)当用户批准页面时,如何自动将页面从暂存目录同步到在线目录?

我知道该操作需要一个Job类(在我的情况下,该类实现AutomatedWorkflowTemplateJob)并覆盖'perform'方法。 这样,我希望用户决定批准页面时会调用" perform"方法。 猜猜怎么着?!,确实如此! 在该方法中,我添加了以下代码,因此将事件提升为hybris:

  UISessionUtils.getCurrentSession()
      .sendGlobalEvent(new ItemChangedEvent(this,getTypeService()。wrapItem(page),
            Collections.singletonList(UISessionUtils.getCurrentSession()
                 .getTypeService()。getPropertyDescriptor(" AbstractPage.checkStatus")),
                          ItemChangedEvent.ChangeType.CHANGED),true);
 

  

基本上,我认为这会自动将页面同步到在线,但事实并非如此。

我弄错了吗?


现在,看看这些图像:

替代文字

替代文本

您看到外壳图标吗? 那是红色,然后变成绿色? 太神奇了吧? 我们都知道单击该东西会发生什么:它将页面从暂存目录同步到在线目录! 好吧,这正是我想要做的!,但是在该工作流程操作之内。

第二个问题是:

2)那个神奇的外壳按钮的作用是什么,这样我就可以研究(绝不行,神探夏洛克!)一种执行此按钮功能的方法?

Hybris版本是5.3。

任何想法都非常受欢迎!

(4.1 kB)
付费偷看设置
发送
3条回答
歪着头看世界
1楼 · 2020-09-23 12:25.采纳回答

好吧,我设法通过强制从Hybris Registry.getBean中获取它来使用SynchronizationService。 那解决了问题。

我猜想有关使用此服务的问题,但是由于我的插件仅在cmscockpit内运行,因此它在SynchronizationService的范围内。

SKY徐
2楼-- · 2020-09-23 12:23

嗨,

不幸的是,在发帖时,业务逻辑的要求仅仅是同步该页面的批准状态。 它不包含组件。 因此,我无法帮助您完成该任务。

此外,我的想法并未提出如何实现此目标的任何好方法。

最好的问候。

半个程序猿
3楼-- · 2020-09-23 12:18

您还设法实现包含元素的同步吗? 我设法以这种方式同步ContentPage,但没有同步到ContentPage中包含的CMSParagraphComonent :-(代码示例

  @Override
  public WorkflowDecisionModel perform(WorkflowActionModel action){
      List 附件= action.getAttachmentItems();
      ItemModel firstAttachment = annexs.stream()。findFirst()
              .orElseThrow(()-> new IllegalArgumentException(
                      format("工作流程的附件为空:{name:%s,PK:%s},没有要同步的内容,"
                              action.getWorkflow()。getName(),action.getWorkflow()。getPk())));
      SyncItemJobModel syncItemJob = automationStatusService.getOutboundSynchronizations(firstAttachment)
              .stream()。findFirst()。orElseThrow(
                      ()-> new IllegalArgumentException(format("附件{type:%s,PK:%s}是不可同步的",
                              firstAttachment.getItemtype(),firstAttachment.getPk())));
      catalogSynchronizationService.performSynchronization(action.getAttachmentItems(),syncItemJob,syncConfig);
      返回action.getDecisions()。stream()。findFirst()。orElse(null);

  

如何实现封闭元素的同步?

一周热门 更多>