SAP工作流对象类

news2024/11/18 17:51:25

目录

        1. 实现IF_WORKFLOW接口

        2. 创建流程属性

        3. 接口方法参考

        4. 定义事件

        5. 工作流触发(事件抛出)


        业务对象作为工作流的数据内核,也是联系业务流程和工作流的重要核心,体现形式一般为BOR或者业务对象类,用来标识不同业务流程的工作流。示例步骤为工作流对象类的创建。

        1. 实现IF_WORKFLOW接口

        如下方法需要逐个实现并激活(不论是否需要填充代码逻辑)

        2. 创建流程属性

        MV_INSTANCE_ID: 流程唯一业务ID,可以视为主键,可以为多个字段组合

        MS_LPOR:流程业务对象属性,和流程关联。

        LPOR-INSTID=》SWW_WI2OBJ-INSTID

        LPOR-TYPEID =》SWW_WI2OBJ-TYPEID

        LPOR- CATID =》SWW_WI2OBJ- CATID。

        MO_INSTANCE:当前工作流类实例对象

注意:key关键字段和参考类型(非数据字典类型的属性可能无法在工作流中使用)

        3. 接口方法参考

        CONSTRUCTOR 构造方法

        构造方法主要包含属性字段的赋值逻辑,参考如下,其余逻辑根据需求填充

  METHOD constructor.

    mv_instance_id  = iv_instid.
    ms_lpor-catid   = cl_swf_evt_event=>mc_objcateg_cl.
    ms_lpor-typeid  = me->get_class_name( ).
    ms_lpor-instid  = iv_instid.

  ENDMETHOD.

         接口IF_WORKFLOW的六个方法中,实施方法BI_PERSISTENT~FIND_BY_LPOR和BI_PERSISTENT~LPOR,其它方法可置空,根据业务场景确定逻辑。

  METHOD bi_persistent~lpor.
    result = me->ms_lpor.
  ENDMETHOD.

  METHOD bi_persistent~find_by_lpor.

    IF mo_instance IS NOT INITIAL.
      CLEAR mo_instance.
    ENDIF.

    CREATE OBJECT mo_instance
      EXPORTING
        iv_instid = lpor-instid.

    result = mo_instance.

  ENDMETHOD.

        其它参考方法示例

        DUMMY方法(部分工作流任务无需逻辑处理,可以使用该方法,比如事件驱动的审批节点)

  method DUMMY.
  endmethod.

        GET_CLASS_NAME 获取当前实例类名

 value( RV_CLASS_NAME )	TYPE ABAP_ABSTYPENAME

   METHOD get_class_name.

    DATA:
      lv_class_name TYPE abap_abstypename,
      lo_descr_ref  TYPE REF TO cl_abap_typedescr.

* determine type
    lo_descr_ref = cl_abap_typedescr=>describe_by_object_ref( me ).
    lv_class_name = lo_descr_ref->get_relative_name( ).

    rv_class_name = lv_class_name.

  ENDMETHOD.

        4. 定义事件

注:事件中也可以定义参数,事件参数可以在抛出事件时传出,并随事件传递到工作流中。

        5. 工作流触发(事件抛出)

 IV_UNAME	TYPE UNAME	User Name
 
  METHOD start_workflow.

    DATA: lo_event           TYPE REF TO if_swf_evt_event,
          lv_object_id       TYPE sibfinstid,
          lo_event_container TYPE REF TO if_swf_ifs_parameter_container.

    lv_object_id = mv_instance_id.

    TRY.
* start workflow
        lo_event = cl_swf_evt_event=>get_instance(
              im_objcateg = cl_swf_evt_event=>mc_objcateg_cl
              im_objtype  = me->get_class_name( )
              im_event    = gc_submit
              im_objkey   = lv_object_id ).

        lo_event_container = lo_event->get_event_container( ).
        lo_event_container->set(
          EXPORTING
            name       = gc_iv_initiator  "IV_INITIATOR event container parameter
            value      = iv_uname ).  "Value to be set

      CATCH cx_swf_cnt_cont_access_denied cx_swf_cnt_elem_access_denied cx_swf_cnt_elem_not_found
            cx_swf_cnt_elem_type_conflict cx_swf_cnt_unit_type_conflict cx_swf_cnt_elem_def_invalid
            cx_swf_cnt_container.
        ##NO_HANDLER
    ENDTRY.

    TRY.
        lo_event->raise( ).
      CATCH cx_swf_evt_invalid_objtype cx_swf_evt_invalid_event.
        ##NO_HANDLER
    ENDTRY.

  ENDMETHOD.

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/148178.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

SpringCloud从入门到精通(六)

Hystrix-熔断器 Hystrix-概述 • Hystix 是Netflix 开源的一个延迟和容错库,用于隔离访问远程服务、第三方库,防止出现级联失败(雪崩)。• 雪崩:一个服务失败,导致整条链路的服务都失败的情形 Hystix 主要功…

【Neo4j构建知识图谱】:cypher操作语言加载 CSV电影人数据集链接文件

这目录 数据链接来源1、创建约束2、从 CSV 文件添加节点3、从 CSV 文件添加关系4、运行cypher查询5、清理数据库参考CSV 文件可以使用LOAD CSV密码条款。出于安全原因,无法加载本地CSV文件,这些文件必须在HTTP或HTTPS服务器(如GitHub,Google Drive和Dropbox)上公开访问。使…

Python 中将列表中的每个元素除以一个数字

Python 中将列表中的每个元素除以一个数字: 使用列表理解来遍历列表。在每次迭代中,将当前列表元素除以数字。新列表将包含除法结果。 my_list [8, 12, 20]# ✅ divide each element in list by number new_list [item / 2 for item in my_list] pri…

雪花算法笔记

SnowFlake 雪花算法 SnowFlake 中文意思为雪花,故称为雪花算法。最早是 Twitter 公司在其内部用于分布式环境下生成唯一 ID。在2014年开源 scala 语言版本。 实现原理 雪花算法原理就是生成一个的64位比特位的 long 类型的唯一 id。 最高1位固定值0,因…

React Context 完美替代品 Jotai

1. 前言 React 的属性透传场景 虽然有很多方式可以实现,但能做到代码写的少、re-render 轻松处理的方式并不多。 而状态管理工具 Jotai 却可以很好的解决这些问题。 最近的业务和组件场景里 也在用此方式实现。 2. React Context 的不足 常规解决数据透传通常使…

BUUCTF 之 [ACTF2020 新生赛]Exec(命令执行漏洞)

BUUCTF 之 [ACTF2020 新生赛]Exec(命令执行漏洞)相关观察进攻相关 项目内容难度简单类型WEB靶场BUUCTF坐标Exec观察 这界面和这网页标题结合起来,相信给位都能猜到这个靶场中很有可能存在命令执行漏洞。 进攻 构造如下语句显示当前路径中的…

Learning Monocular Visual Odometry via Self-Supervised Long-Term Modeling

Paper name Learning Monocular Visual Odometry via Self-Supervised Long-Term Modeling Paper Reading Note URL: https://arxiv.org/pdf/2007.10983.pdf TL;DR ECCV 2020 文章,该文章认为在短时间序列上训练无法在长时间序列上良好泛华,所以受到…

从Web3视角审视茅台的“元宇宙”APP,这或是中国版的“星巴克奥德赛”

图片来源:由无界 AI 绘画工具生成2023年1月1日,一款名为《巽风数字世界》的APP登录App Store,这是由茅台和网易联合推出的虚拟世界APP。因而,有媒体称,茅台要进军元宇宙了!简单讲,这是一款虚拟世…

Spring核心与设计思想 -- IoC与DI

Spring核心与设计思想 -- IoC与DI一、Spring 是什么?1.1 什么是容器?1.2 什么是 IoC?二、理解 IoC2.1 传统程序开发的问题2.2 分析2.3 控制反转式程序开发2.4 对比总结规律2.5 理解 Spring IoC三、DI 概念说明一、Spring 是什么? …

k8s集群部署springboot项目

一、前言 本篇,我们将基于k8s集群,模拟一个比较接近实际业务的使用场景,使用k8s集群部署一个springboot的项目,我们的需求是: 部署SpringBoot项目到阿里云服务器 ;基于容器打包,推送私有镜像仓库 ;采用K8S集群部署,对外暴露服务,pod副本扩容,公网可以访问 ;二、完…

【案例教程】GEE遥感云大数据在林业中的应用

以Earth Engine(GEE)为代表全球尺度地球科学数据(尤其是卫星遥感数据)在线可视化计算和分析云平台应用越来越广泛。该平台存储和同步遥感领域目前常用的MODIS、Landsat和Sentinel等卫星影像、气候与天气、地球物理等方面的数据集超…

禅道的部署与使用

文章目录1、禅道介绍2、下载安装3、使用3.1、创建项目3.2、添加用户3.3、团队管理3.4、测试人员提Bug3.5、开发人员修复Bug4、总结1、禅道介绍 官网地址:https://www.zentao.net禅道是专业的研发项目管理软件,有如下特点: 细分需求、任务、缺…

一篇五分生信临床模型预测文章代码复现——Figure 4-6 临床模型构建(七)

之前讲过临床模型预测的专栏,但那只是基础版本,下面我们以自噬相关基因为例子,模仿一篇五分文章,将图和代码复现出来,学会本专栏课程,可以具备发一篇五分左右文章的水平: 本专栏目录如下: Figure 1:差异表达基因及预后基因筛选(图片仅供参考) Figure 2. 生存分析,…

Redis简介与使用

Redis简介与使用:数据保存在内存。(mysql数据保存在硬盘)是一个 高性能的key-value数据库NoSQL(非关系数据库)和SQL数据库(关系数据库)比较:适用场景不同:sql数据库适合用于关系特别复杂的数据查…

Java8-

https://blog.51cto.com/u_14014612/5677262 Stream到底是什么呢? 是数据渠道,用于操作数据源(集合、数组等)所生成的元素序列。 “集合讲的是数据,Stream讲的是计算!” 流的构成 当我们使用一个流的时…

贴片SD卡移植FATFS文件系统

一、前言 手头有一块深圳雷龙的 SDIO 接口的贴片 SD 卡,挂载个文件系统把玩一下。首先介绍一下使用的贴片 SD 卡,以前使用的都是拔插式的 SD 卡,下面这个样子: 拿到的贴片雷龙 SD 卡如下图: 二、贴片 SD 卡介绍 雷龙的…

RAD Studio 11.2 详细图文安装教程 (delphi 11.2)

准备 准备好安装镜像和嘿嘿工具 镜像可以到官网下载,工具百度搜一搜就能找到 系统环境:win11 专业版 开始安装 双击镜像文件,然后将里面的文件复制到一个地方 注意一定要把这两个文件复制出来再运行,否则会嘿嘿失败 右键点击红色…

前有农民歌唱家大衣哥,后有农民女歌手草帽姐,都给山东人增光了

山东自古以来是孔孟之乡礼仪之邦,也诞生了很多的好儿女,农民歌唱家大衣哥就是其中的一位。大衣哥是从《星光大道》走红,也是大山东人的骄傲,他出名十几年不忘本,扎根农村为老乡们做贡献的精神,也感动了无数…

从0到1完成一个Vue后台管理项目(五、登录页,mock,token,axios封装)

往期 从0到1完成一个Vue后台管理项目(一、创建项目) 从0到1完成一个Vue后台管理项目(二、使用element-ui) 从0到1完成一个Vue后台管理项目(三、使用SCSS/LESS,安装图标库) 从0到1完成一个Vu…

两大js调试工具的安装

首先要确保已经安装nodejs,具体安装步骤可以百度。 node-inspect工具的安装和使用 对于node-inspect工具我们可以全局安装: npm install node-inspect -g由于安装过cnpm,所以几乎在1秒内将node-inspect安装完成。 cnpm的安装方法&#xff…