如何基于合作伙伴功能动态确定销售凭证工作流的审批人

在销售凭证的审批工作流中,您可以按用户或角色分配审批人。 根据您的设置,系统对审批人的判定如下:  

  • 选项1:按用户

审批人是管理销售凭证工作流应用程序中的指定用户。  

  • 选项2:按角色(需要预定义的团队成员功能)  

审批人是在管理团队和职责应用程序中被分配到特定团队成员功能(例如,“销售凭证审批人-级别1”)的用户。  

  • 选项3:按角色(需要预定义的自定义职责规则和职责上下文)  

审批者是为销售凭证中的特定合作伙伴功能动态确定的用户。  

本博客主要关注选项3,并描述如何基于合作伙伴功能动态确定审批人(以销售报价和合作伙伴功能VE的审批人工作流为例)。  

过程概述

A. 在自定义逻辑应用中定义一个BAdI实现。

B. 在管理职责规则应用中创建自定义职责规则。

C. 在管理职责上下文应用程序中创建一个自定义的职责上下文。

D. 在管理销售凭证工作流应用程序中定义一个销售报价工作流。

分步指南

A. 定义BAdI实现(自定义逻辑应用)

  1. 为业务上下文“职责规则”创建一个BAdI实现(BAdI过滤值:YY1_Partner)。

      2. 编写满足业务需求的自定义逻辑。

          在本例中,自定义逻辑将销售员工指定为审批人。 如果凭证中存在合作伙伴功能VE(销售员                 工),系统将获取其用户ID,并将该用户分配为审批人。

B. 创建自定义职责规则(管理职责规则应用)

  1.  创建自定义职责规则“YY1_PARTNER”。

           注意:规则标识必须与步骤A中定义的BAdI过滤值相同。  

         

       2. 指定规则参数的数据源(类型:表,CDS视图:I_SALESDOCUMENTPARTNER)

           在审批人确定期间,BAdI实现将调用该参数并访问凭证抬头中包含合作伙伴函数数据的表。

C. 创建自定义职责上下文(管理职责上下文应用)

  1.  扩展销售报价工作流的标准职责上下文(“WS02000447”)。

       2. 创建代理规则。

a. 将代理规则映射到职责规则“YY1_PARTNER”(在步骤B中定义)。

          b. 指定规则参数的高级数据源

在这个例子中,CDS视图I_SalesQuotation的“PARTNER”关联被用作数据源。 在审批人确定                期间,BAdI实现将调用销售报价抬头中的参数并访问合作伙伴函数数据。

D. 创建销售报价工作流程(管理销售凭证工作流程应用)

当为您的工作流指定收件人时,选择按角色分配,并将代理规则(在步骤C中定义)设置为角色。

结果

在新的销售报价的抬头数据中,存在合作伙伴函数VE(销售员工),相关用户为“Example InternalSalesRep”。

已为销售报价触发审批工作流。 在审批细节中,审批人被确定为“Example InternalSalesRep”(基于合作伙伴功能VE)。

用户“Example InternalSalesRep”在我的收件箱应用程序中收到一个工作流任务。

参考链接:

如何在系统中设置审批工作流

自定义逻辑

创建自定义职责规则

扩展职责上下文