处理链--条件判断

article/2025/6/8 19:31:11

    在同一条链里,根据条件判断下一步到底执行不执行。那就得用到下面这个条件判断的process。这个就负责条件分支执行,在处理链运行时按逻辑结果来把处理链分成不同的分支执行。

    

    很简单,先把它拖到处理链里。 然后就可以来定义条件。条件的定义决定分支的执行,这个条件可以是你定义的公式,或一段ABAP代码,也可以是全局变量的值(比如说从变量表TVARVC读的,或者从你的自建表读的)等。你定义号了条件描述,点formula进去会看到公式定义界面,这个条件的返回结果值是boolean类型,要么是true,要么是false。 等有了条件的判断值执行IF...ELSE...ELSE IF...

    举个例子,你这个处理链只需要在当月的前10天运行,过了这个日子就不执行。那我们一般是设置让它daily跑,在start下面第一步就加上这个条件判断的process。 判断当前日期是不是10号之前。IF 满足条件,则会执行option1下面的链,如果不满足就执行Option2(可以是啥都不干)那就达成了不满足条件不执行这条链的目的。

    点新建formula进去。新建条件。

  公式就是按找它给的变量来建,比如你要这条链在早上10点前跑,那公式就是:

或者按第1个工作日跑,也可以:

    当然你expert mode自己写也行:让周一到周五跑。

    上面都是比较简单的按照固定的日期时间来做条件判定的。如果我想让这个判定是基于上一步的一个参数。那怎么办呢?    

    按分类筛选Process Chains类型的function,可以看见还有这几个选项。其中这个预定义的PROCESS_VALUE_EXISTS一看就可能是来检查是不是存在一个参数值的。这就可能实现我们想要的,根据这个处理链运行时的参数来进行条件判定。有这个参数,就继续往下执行,没有,就不执行。

    因为我也不知道这几个function到底是干什么的,所以还得去读。

   1. PREDECESSOR_PARAMETER

    前一步的参数。从前置流程填充参数。返回某个指定的field的低值或者高值。

PREDECESSOR_PARAMETER (<I_FIELDNAME>, <I_LOW_OR_HIGH>, <I_NUMBER_OF_VALUE>)

PREDECESSOR_PARAMETER( 'RECORDS_RECEIVED', 'LOW', '        0' ) > 5 意思是上一步load的条目超过5条。。。

。。。。。算了 不懂 跳过

   2. PREDECESSOR_PARAMETER

。。。。也跳过

    3. PREDECESSOR_PARAMETER

PROCESS_VALUE_EXISTS( 'LOADING', '0PAK_AJNB8KVPYNEMN61O7QCSJ315D', 'DTA_CUBE', 'ZMYCUBE' )

is a condition that checks whether the InfoCube ZMYCUBE was loaded with the InfoPackage 0PAK_AJNB8KVPYNEMN61O7QCSJ315D.

    直接来写吧:

    好像不行哦,这个constant只有两个选项啊。 哦到下一步发现了,它这个只能找当前处理链里已经有的TYPE,但是没有ABAP Program这个类型。。。如果上一步是DTP或者是ADSO Delete还行,但是我需要的是从ABAP 程序读取参数。。。

    我试了一下,在ABAP program里添加全局参数是没办法从这里读到的,好像压根识别不了。那看起来只能用BADI了。

    回到BADI上,它提供了一个BADI。

    哎,麻烦,又得去绕一大圈。到它的Get 方法下写逻辑。具体的实现还得是从另一个类里的方法来,诸多要求。

      

先把类和方法名写上,待会去创建。

 去建这个类和静态方法。

    

    

都整完了以后,把所有的类都激活,这个BADI的implementation也激活:

然后去找user-defined function下面就能找到它了。

接下来完成处理链

 

不满足条件的话,让它什么都不要干。

 

 

 


http://www.hkcw.cn/article/dbyslAhuCx.shtml

相关文章

c++5月31日笔记

题目&#xff1a;水龙头 时间限制&#xff1a;C/C 语言 1000MS&#xff1b;其他语言 3000MS 内存限制&#xff1a;C/C 语言 65536KB&#xff1b;其他语言 589824KB 题目描述&#xff1a; 小明在 0 时刻&#xff08;初始时刻&#xff09;将一个空桶放置在漏水的水龙头下。已知桶…

乒协支持樊振东加盟德甲 征战德甲与欧冠

6月1日,德甲萨尔布吕肯俱乐部宣布中国运动员樊振东加盟,他将参加2025-2026赛季的德国乒乓球甲级联赛和欧洲冠军联赛。目前樊振东仍处于奥运后的调整期,计划通过全国比赛及国内外俱乐部比赛逐步恢复状态。中国乒协对此表示理解和支持,将全力保障樊振东保持良好竞技水平,为乒…

罗翔现场普法 沃尔沃全新S90上市 北欧豪华领航而至

2025年5月29日,沃尔沃全新S90在大庆工厂正式上市。新车共推出7个配置版本,限时参考尊享价30.09万元起,并提供价值超过85,000元的八重惊喜礼。沃尔沃全新S90致力于为全球有品位、追求品质的精英人群带来进阶焕新的豪华体验。沃尔沃汽车品牌挚友罗翔出席发布会,以法律专家的角…

向佐六一晒女儿 网友:幸好颜值随妈 父女温馨互动登热搜

2025年6月1日中午12点左右,向佐在个人微博上首次公开了4岁女儿向芷(乳名“小奶皇”)的正脸照片及互动视频。这位一向注重孩子隐私保护的父亲,在儿童节这个特殊日子与网友分享了父女间的温馨时刻,迅速登上热搜榜首。视频中,小奶皇认真地为爸爸做面部按摩,肉嘟嘟的小手在向…

JS和TS的区别

JavaScript 与 TypeScript 的主要区别和特性对比 1. 基础定义 JavaScript 是一种动态、弱类型的编程语言&#xff0c;广泛应用于前端开发以及通过 Node.js 扩展到后端开发。TypeScript 则是 JavaScript 的超集&#xff0c;它在 JavaScript 的基础上添加了静态类型系统和其他增…

淘晶驰串口屏开发初体验:10分钟实现简易加法器

目录 一、开发环境闪电搭建&#xff08;3分钟&#xff09; 二、加法计算器实现步骤&#xff08;7分钟&#xff09; 1.工程创建 2.创建字库和导入字库 3. 拖放控件-文本控件 4.拖放控件-数字控件 5.&#xff08;x&#xff09;变量 6.按钮 三、测试 在嵌入式设备的人机交…

CppCon 2014 学习:Parallelizing the Standard Algorithms Library

Bringing Parallelism to C&#xff08;为 C 引入并行性&#xff09; 技术规范&#xff08;Technical Specification&#xff09; 是对 C 标准库的一个扩展草案&#xff08;TS Technical Specification&#xff09;。不会改变现有代码语义&#xff0c;而是提供新功能。专门针…

俄罗斯一桥梁坍塌致3死28伤 爆炸装置所致

俄罗斯布良斯克州一座桥梁发生坍塌,导致一列由莫斯科开往该州城市克利莫沃的火车脱轨。据俄罗斯紧急情况部初步统计,事故共造成31人伤亡,其中3人不幸遇难,28人已送往医疗机构救治。此前有报道指出,事件造成4人死亡,至少44人受伤。俄紧急情况部表示,救援人员正在对受损车…

任务调度器:从入门到放弃(二)

理想与现实的差异 在上文中&#xff0c;我们提到&#xff0c;一个优先级100的线程&#xff0c;跟一个优先级为120的线程进行公平调度的资源抢占的话。 从抓取的一份systrace上简单的对比来看&#xff0c; 其份额大概是24:1856 &#xff08;systrace上随便框的&#xff0c;数据…

linux 1.0.6

PMS和软件安装的介绍 软件安装不能放在前面 你连linux自带的命令都整不会&#xff0c;你还去使用人家自己写的软件 整一个类似于手机商城的概念&#xff0c;直接进商城就可以下载软件 package management system 也就是PMS 叫做包管理器&#xff0c;作用是用来进行软件的安装&…

3D Gaussian splatting 02: 快速评估

目录 3D Gaussian splatting 01: 环境搭建3D Gaussian splatting 02: 快速评估3D Gaussian splatting 03: 用户数据训练和结果查看3D Gaussian splatting 04: 代码阅读-提取相机位姿和稀疏点云3D Gaussian splatting 05: 代码阅读-训练整体流程3D Gaussian splatting 06: 代码阅…

【系统配置与部署类】linux系统下的desktop图标文件配置

相关文章已经在个人博客网站上更新&#xff0c;欢迎访问&#xff1a; linux系统下的desktop图标文件配置http://www.turnin-blog.online/articles/%E7%B3%BB%E7%BB%9F%E9%85%8D%E7%BD%AE%E4%B8%8E%E9%83%A8%E7%BD%B2/linux%E7%B3%BB%E7%BB%9F%E4%B8%8B%E7%9A%84desktop%E5%9B%…

法国为何此时回应阵风是否被击落 服役20年首损?

法国军方首次回应“阵风”战机疑被击落事件,称如果消息属实,这将是该机服役以来首次在实战中损毁。印度空军引进了这款战斗机。5月27日,在例行记者会上,法国国防部军方发言人强调,若相关信息属实,这将是“阵风”战斗机服役20年来首次在实战中损毁。这也是法国军方就这一话…

从零开始的二三维CAD|CAE软件: 解决VTK,DICOM体素化-失效问题.

背景: 在从零开始的二三维软件开发中, 需要加载CT的dicoms影像文件, 并将其序列化之后的数据,体素化 可惜..vtk的c#库,将其体素化的时候,竟然失败... 使用vtkDicomReader ,设置 Dicom文件夹读取,竟然不停的失败...从网上找了一些版本.也没啥可用的资料... 解决办法: 直接…

Cesium快速入门到精通系列教程一

一、打造第一个Cesium应用 1、官方渠道下载Cesium&#xff08;可选择历史版本&#xff09; ​​GitHub Releases页面​​ 访问 Cesium GitHub Releases&#xff0c;此处列出了所有正式发布的版本。 通过标签&#xff08;如 v1.95.0&#xff09;选择目标版本&#xff0c;下载…

【多线程初阶】synchronized -监视器锁monitor lock

文章目录 &#x1f305;synchronized关键字&#x1f30a; synchronized 的互斥&#x1f30a; synchronized 的变种写法&#x1f3c4;‍♂️synchronized 修饰代码块 :明确指定锁哪个对象&#x1f3c4;‍♂️synchronized 修饰方法 &#x1f30a; synchronized 的可重入性&#…

C# 面向对象特性

面向对象编程的三大基本特性是&#xff1a;封装、继承和多态。下面将详细介绍这三大特性在C#中的体现方式。 封装 定义&#xff1a;把对象的数据和操作代码组合在同一个结构中&#xff0c;这就是对象的封装性。 体现方式&#xff1a; 使用访问修饰符控制成员的可见性 通过属…

[LitCTF 2024]浏览器也能套娃?

打开题目在线环境&#xff1a; 这里尝试填写一个网站回车之后是&#xff1a; 这里想到了ssrf漏洞&#xff1a;ssrf漏洞通常是由于应用程序在处理用户输入时缺乏严格的安全检查&#xff0c;错误地信任外部输入&#xff0c;或者使用的网络请求库配置不当等原因导致的。攻击者可…

明远智睿SSD2351开发板:视频监控领域的卓越之选

随着安全防范意识的提高&#xff0c;视频监控在各个领域得到了广泛应用。明远智睿SSD2351开发板凭借其出色的性能和特性&#xff0c;成为视频监控领域的卓越之选&#xff0c;为视频监控系统的升级和发展提供了有力支持。 SSD2351开发板的四核1.4GHz处理器在视频监控数据处理方面…

threejs加载外部三维模型(gltf)

1. 建模软件绘制3D场景(Blender) 这节课主要给大家科普一些三维模型创建、美术和程序员协作的相关问题。 三维建模软件作用 对于简单的立方体、球体等模型&#xff0c;你可以通过three.js的几何体相关API快速实现&#xff0c;不过复杂的模型&#xff0c;比如一辆轿车、一栋房…