ABAP 工单状态读取

CDS代码

CDS代码如下,可自行转换成OPEN SQL代码

@AbapCatalog.sqlViewName: 'ZPPV024'
@AbapCatalog.compiler.compareFilter: true
@AbapCatalog.preserveKey: true
@AccessControl.authorizationCheck: #NOT_REQUIRED
@EndUserText.label: '读取生产工单状态'
define view ZPPV024_DDL as select distinct from aufk
  left outer join jest  on aufk.objnr  = jest.objnr // 系统状态
  left outer join tj02  on jest.stat   = tj02.istat // 排除前台隐藏的状态
  left outer join tj04  on jest.stat   = tj04.istat // 状态顺序
  left outer join tj02t on jest.stat   = tj02t.istat and // 状态描述
                           tj02t.spras = $session.system_language
{
  key aufk.aufnr  , // 工单号
  key min( case tj04.obtyp
        when 'ORH' then tj04.linep   
        else '99'  end ) as linep , // 排序码( 标准代码排序逻辑 )
  key min( tj04.statp )  as statp , // 优先级
  key min( tj02t.txt04 ) as txt04 , // 前台状态号
      tj02t.txt30   // 前台状态描述
} where
    aufk.autyp = '10'  and // 工单 
    tj02.nodis <> 'X'  and // 不显示隐藏的状态
    jest.inact <> 'X'      // 不显示未激活状态
  group by aufk.aufnr,
           tj02t.txt30

表间关系

相关的表一共就3个
jest是状态表,可以用主表aufk的objnr关联后取数
在这里插入图片描述
jest里面只有编码没有描述,所以要关联tj02t取描述的状态文本和状态描述文本
在这里插入图片描述
跟前台数据比对,发现数据库表里取出来的数据比实际的多
在这里插入图片描述
有两个原因,第一个原因是前台只显示了激活状态的状态,通过jest.inact字段可以控制是否显示激活状态的字段
在这里插入图片描述
另外一个原因是有些状态是默认前台不显示的,可以通过tj02.nodis字段控制是否显示不显示的字段
排除掉未激活的字段和不显示的字段,此时就已经和前台显示的字段一致了
在这里插入图片描述
还有最后一个问题,前台显示的时候是有顺序的,但是现在取出的结果是无序的
翻翻标准函数STATUS_TEXT_EDIT的代码…
这个函数执行的结果就跟前台的一致,debug发现前台获取状态也是用的这个函数
在这里插入图片描述
debug看眼逻辑
主要的逻辑就在这儿,如果能通过OBTYP = ‘ORH’ 和状态编码从tj04取到行,那就记录下该行的顺序码tj04.linep,优先级tj04.statp;如果取不到行就设置该行linep = ‘99’
在这里插入图片描述
最后根据linep statp txt04排序即可获得最后结果
在这里插入图片描述
按上述逻辑distinct去重之后,发现存在有多行满足关联条件的情况
在这里插入图片描述
根据主键linep statp txt04 取满足条件的第一行,使用聚合函数min()即可
最后视图的关联关系和条件就如下图所示了
在这里插入图片描述
顺序和前台一致,用open sql加个string_agg就完美了,可惜cds里面不支持该函数
在这里插入图片描述

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

计算机毕业设计-----ssm停车位租赁系统

项目介绍 该系统采用了经典的springmvc&#xff0c;spring&#xff0c;mybatis的框架组合&#xff0c;对于物业公司来说&#xff0c;有助于管理车位信息。系统分为了两个角色&#xff1a;车主和租客。 车主主要功能包括&#xff1a; 停车位信息 停车位列表 添加停车位 租赁合…

Raw图像处理软件分享:Capture One Pro 23中文 for mac

Capture One Pro 23具有高级色彩管理工具&#xff0c;可以帮助用户精确控制图像的颜色和色调。用户可以对颜色进行校正、调整色彩平衡和饱和度&#xff0c;以及使用颜色分级工具进行精细的色彩分离和调整。调整和编辑工具&#xff1a;Capture One Pro 23提供了各种基本的调整和…

JavaScript基本语法

文章目录 1. JavaScript 是什么1.1 JavaScript 和 HTML 和 CSS 之间的关系1.2 JavaScript 运行过程1.3 JavaScript 的组成 2. JavaScript 的书写形式2.1 行内式2.2 内嵌式2.3 外部式 3. 变量的使用3.1 静态变量和动态变量 4. 基本数据类型4.1 undefined 未定义数据类型4.2 null…

加密世界危机四伏,普通用户该如何应对钓鱼陷阱

据区块链安全公司 Scam Sniffer 称&#xff0c;加密货币网络钓鱼活动在 2023 年有所增加&#xff0c;诈骗者利用钱包盗取恶意软件从受害者那里窃取了近 3 亿美元。金额很惊人是不是&#xff1f;只是没想到素以小心谨慎为口号冲浪的我也栽了一回。还原一下事情经过&#xff1a; …

【LV12 DAY11 硬件控制原理】

CPU通过读写控制器的寄存器从而达到控制硬件的目的

4.2V线性500mA充电管理芯片WT4054

4.2V线性500mA充电管理芯片WT4054 WT4054&#xff0c;一款强大而小巧的锂电池充电IC&#xff0c;为你的便携式设备提供无忧充电。其SOT-23-5L封装小巧轻便&#xff0c;所占空间极小&#xff0c;而其强大的功能将为你的设备提供稳定、高效的电量供应。 这款充电器拥有众多令人惊…

jsES6+新语法

目录 模板字符串标签模板字符串 函数增强默认值与解构剩余参数rest和arguments 箭头函数 展开语法SymbolSetSet方法weakSetweakSet常用方法 MapMap常用方法weakMapweakMap常用方法 PromiseProxy/Reflect迭代器与生成器ES6新增方法includes**Object.valuesObject.entriespadStar…

【C++】几种常用的类型转换

类型转换 c语言中的类型转换C的类型转换static_castreinterpret_castconst_castdynamic_cast c语言中的类型转换 在C语言中我们经常会遇到类型转化的问题&#xff0c;主要分为两种&#xff1a;显式类型转换和隐式类型转换。 显式类型转换&#xff1a;就是程序员使用强制类型转…

Java-字符串-String类

1 需求 1.1 Field Summary 1.2 Constructor Summary public String() : 空构造public String(byte[] bytes) : 把字节数组转成字符串public String(byte[] bytes,int index, int length) : 把字节数组的一部分转成字符串public String(char[] value) : 把字符数组转成字符串p…

学生备考护眼灯哪个牌子好性价比高?2024最新台灯分享

现在越来越多90后家长有了孩子&#xff0c;而年轻家长也更加重视孩子们的成长健康&#xff0c;特别是小孩子的近视率越来越高&#xff0c;家长们就会选择护眼台灯来为孩子的视力保驾护航。但很多家长在选购时&#xff0c;面对各式各样的台灯却又陷入迷茫&#xff0c;究竟该怎么…

高校电力能耗监测精细化管理系统,提升能源利用效率的利器

电力是高校不可离开的重要能源&#xff0c;为学校相关管理人员提供在线用能查询统计等服务。通过对学校照明用电、空调用电等数据的采集、监控、分析&#xff0c;为学校电能管理制定合理的能源政策提供参考。同时&#xff0c;也可以培养学生的节能意识&#xff0c;学校后勤电力…

大模型学习第二课

学习目标&#xff1a; 浦语大模型趣味Demo 学习内容&#xff1a; 学习时间&#xff1a; 20240108 学习产出&#xff1a; InternLM介绍 大模型&#xff1a;人工智能领域钟参数数量巨大、拥有庞大计算能力和参数规模的模型。InternLM模型全链条开源&#xff0c;7B&#xff0c;…

[SpringBoot]接口的多实现:选择性注入SpringBoot接口的实现类

最近在项目中遇到两种情况&#xff0c;准备写个博客记录一下。 情况说明&#xff1a;Service层一个接口是否可以存在多个具体实现&#xff0c;此时应该如何调用Service&#xff08;的具体实现&#xff09;&#xff1f; 其实之前的项目中也遇到过这种情况&#xff0c;只不过我采…

企业一体化管理建设:制造业如何应对信息孤岛和流程断点?-亿发

未来&#xff0c;制造业将成为市场经济的重要支柱。缺乏制造业的支持&#xff0c;整个供应链将受到市场波动的冲击。因此&#xff0c;改革传统的制造业生产和管理方式是市场经济转型的不可或缺的条件。数字化转型趋向于多领域、多行业&#xff0c;企业若要实现长远发展&#xf…

服务器故障与管理口与raid

一&#xff0c;服务器常见故障 1&#xff0c;系统不停重启进入不了系统 排查是否是硬件故障&#xff0c;系统盘是否损坏&#xff08;硬盘灯红色&#xff0c;黄色&#xff0c;绿色&#xff09; 查看系统第一启动项是那种方式(硬盘 网络网卡 光驱 U盘) bios 是否双系统&#x…

面向对象软件设计与分析40讲(36)软件开发过程模型之增量模型

文章目录 1 概念2 优点3 缺点4 适用范围1 概念 增量模型强调将整个项目划分为多个增量或阶段,并在每个增量中逐步构建和交付系统的功能。每个增量是对系统的一个部分进行开发、测试和交付,形成一个可用的子系统。 以下是增量过程模型的主要特点和步骤: 划分增量:根据项目…

2024前端炫酷源码分享(附效果图及在线演示)

分享10款非常有趣的前端特效源码 其中包含css动画特效、js原生特效、svg特效以及小游戏等 下面我会给出特效样式图或演示效果图 但你也可以点击在线预览查看源码的最终展示效果及下载源码资源 GSAP-火箭动画特效 GSAP 火箭动画 当氮气充足的情况下 火箭会冲出 并继续飞行 图片…

基于Spring Boot+Vue的课堂管理系统(前后端分离)

该项目完全免费 介绍 基于Spring BootVue的课堂管理系统。前后端分离。包含教师授课管理、学生选退课、聊天室、签到、笔记管理模块等。 技术架构 SpringBoot MyBatis Redis WebSocket VueCLI Axios Element UI 项目特点&#xff1a; 1、后台使用MyBatis连接数据库&…

2024年1月7日15:09:50

2024年1月7日15:09:55复习&#xff1a;我今天学了有价值的东西&#xff0c;那就是在瓦罗兰特拿到了三杀 2024年1月7日15:11:10学习了如何使用vivopad2的键盘 可以稍微用一下 2024年1月7日15:17:58 学习一个编程的题目 2024年1月7日15:31:27不用机械键盘打字效率就是比不用低…

DC电源模块的安全性能评估及认证标准

BOSHIDA DC电源模块的安全性能评估及认证标准 DC电源模块的安全性能评估和认证标准主要涉及以下方面&#xff1a; 1. 安全标准&#xff1a;DC电源模块需要符合国际电工委员会&#xff08;IEC&#xff09;和国家标准的相关规定&#xff0c;如IEC 60950-1&#xff08;信息技术…