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 aufkleft 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.obtypwhen 'ORH' then tj04.linep   else '99'  end ) as linep , // 排序码( 标准代码排序逻辑 )key min( tj04.statp )  as statp , // 优先级key min( tj02t.txt04 ) as txt04 , // 前台状态号tj02t.txt30   // 前台状态描述
} whereaufk.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里面不支持该函数
在这里插入图片描述

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

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【音视频】海康的音频没有的问题

目录 海康的错误 参考文章 海康的错误 参考文章 PS流详解&#xff08;载荷H264&#xff09;-CSDN博客 海康摄像头PS流格式解析&#xff08;RTP/PS/H264&#xff09; RTP协议全解析&#xff08;H264码流和PS流&#xff09;-CSDN博客

鸿蒙开发已解决-Failed to connect to gitee.com port 443: Time out 连接超时提示

文章目录 项目场景:问题描述原因分析:解决方案:解决方案1解决方案2:解决方案3:此Bug解决方案总结解决方案总结**心得体会:解决连接超时问题的三种方案**项目场景: 导入Sample时遇到导入失败的情况,并提示“Failed to connect to gitee.com port 443: Time out”连接超…

C++上位软件通过Snap7开源库访问西门子S7-200/LOGO PLC/合信M226ES PLC V存储区的方法

前言 在前面例程中谈到了C 通过Snap7开源库S7通信库跟西门子S7-1200PLC/S7-1500PLC以及合信CTMC M226ES PLC/CPU226 PLC通信的方式方法和应用例程。但是遗憾的是Snap7中根据官方资料显示只能访问PLC的 DB区、MB区、C区、T区 、I区、Q区&#xff0c;并没有提到有关如何访问S7-20…

C++:多态|虚函数、虚表底层原理|多态原理

C&#xff1a;多态|虚函数、虚表底层原理|多态原理 前言一、多态的概念二、多态的定义及实现2.1 多态的构成条件2. 2 虚函数2.3 虚函数的重写2.3.1 虚函数重写的例外1&#xff1a;协变(基类与派生类虚函数返回值类型不同)2.3.2 虚函数重写的例外2&#xff1a;析构函数的重写(基…

Elasticsearch windows开箱即用【记录】

一、准备工作 安装ES之前要在本机安装好JDK&#xff0c;对应的兼容性见官网链接&#xff1a;https://www.elastic.co/cn/support/matrix ES官网链接&#xff1a;https://www.elastic.co/cn/, 我本机安装的是JDK8&#xff0c;测试使用的是7.3.0版本的ES和Kibana。 1、首先去…

CMake入门教程【核心篇】设置和使用缓存变量

😈「CSDN主页」:传送门 😈「Bilibil首页」:传送门 😈「动动你的小手」:点赞👍收藏⭐️评论📝 文章目录 概述设置缓存变量使用缓存变量更改缓存变量完整代码示例实战使用技巧注意事项总结与分析

基于宝塔搭建Discuz!论坛

一、安装宝塔 我是在我的虚拟机上安装图的宝塔 虚拟机版本&#xff1a;Ubuntu 18.04 wget -O install.sh https://download.bt.cn/install/install-ubuntu_6.0.sh && sudo bash install.sh 6dca892c安装完成之后在浏览器输入你的地址 https://你的域名&#xff08;或…

sql将查询出的数值变为中文

在开发中通常会遇到的情况就是&#xff0c;用户的性别在数据库中不是以中文字符“男&#xff0c;女”来表示的&#xff0c;而是使用数字 1 0 来表示。但是显示到界面的时候&#xff0c;如果显示 1 0 用户也不明白是什么意思&#xff0c;就需要将其转为原有的意思。当然方法…

Vue-10、Vue键盘事件

1、vue中常见的按键别名 回车 ---------enter <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><title>键盘事件</title><!--引入vue--><script type"text/javascript" src"h…

Sui 2024 Space首秀精彩集锦

1月5日&#xff0c;Sui Network官方在X平台进行了名为《Looking Ahead: What’s in Store for 2024》的2024 Space首秀&#xff0c;Mysten Labs联合创始人兼首席产品官Adeniyi Abiodun和首席技术官Sam Blackshear&#xff0c;与全球Sui支持者一起探讨Sui网络的2024发展大计&…

HarmonyOS应用开发学习笔记 应用上下文Context 获取文件夹路径

1、 HarmoryOS Ability页面的生命周期 2、 Component自定义组件 3、HarmonyOS 应用开发学习笔记 ets组件生命周期 4、HarmonyOS 应用开发学习笔记 ets组件样式定义 Styles装饰器&#xff1a;定义组件重用样式 Extend装饰器&#xff1a;定义扩展组件样式 5、HarmonyOS 应用开发…

2023年度总结:但行前路,不负韶华

​ &#x1f981;作者简介&#xff1a;一名喜欢分享和记录学习的在校大学生 &#x1f42f;个人主页&#xff1a;妄北y &#x1f427;个人QQ&#xff1a;2061314755 &#x1f43b;个人邮箱&#xff1a;2061314755qq.com &#x1f989;个人WeChat&#xff1a;Vir2021GKBS &#x…