ABAP 私人小笔记

最近没事,把笔记上的东西慢慢移到CSDN上,持续完善中~
1:/nsxi_monitor查看接口日志

2:内表数据拼接
2.1、给内表加一个空行并修改他的值

  APPEND INITIAL LINE TO GT_ALV ASSIGNING FIELD-SYMBOL(<FS>) .

2.2、将内表数据拼接在一行

  CONCATENATE LINES OF GT_ZMTZBZ INTO LV_ZBZ SEPARATED BY '/'.在这里插入代码片

2.3、将内表部分字段数据拼接在一行

  CONCATENATE LV_Z1 LV_Z2 INTO LV_ZBZ SEPARATED BY '/'.入代码片

2.4、两个内表数据拼接

  APPEND LINE OF GT_TAB1 TO GT_TAB2 .

3、Group By分组
3.1:常规分组

  LOOP AT gt_alv3 INTO gs_alv3 GROUP BY ( matnr = gs_alv3-matnrkostl = gs_alv3-kostlsize  = GROUP SIZE )ASSIGNING FIELD-SYMBOL(<lt_out>) .LOOP AT GROUP <lt_out> ASSIGNING FIELD-SYMBOL(<fs_out>) .ENDLOOP .ENDLOOP .

3.2:动态Group分组
可以用到SWITCH/COND关键字实现

  DATA : lv_type TYPE c VALUE 'B'.ASSIGN lt_ekpo TO FIELD-SYMBOL(<dy_table>) .IF <dy_table> IS ASSIGNED .LOOP AT <dy_table> ASSIGNING FIELD-SYMBOL(<fs_ekko>)GROUP BY SWITCH string( lv_type WHEN 'A' THEN <fs_ekko>-matnrWHEN 'B' THEN <fs_ekko>-matkl )*                     GROUP BY COND string(  WHEN lv_type = 'A' THEN <fs_ekko>-matnr*                                            WHEN lv_type = 'B' THEN <fs_ekko>-matkl )ASSIGNING FIELD-SYMBOL(<ft_group>) .LOOP AT GROUP <ft_group> ASSIGNING FIELD-SYMBOL(<fs_group>) .ENDLOOP .ENDLOOP .ENDIF .

缺点:此语法只能通过一个维度来进行分组,如果要通过多个维度分组的话还是建议用常规的方法

4、查看表中的数据条目数

DESCRIBE TABLE LT_MARC LINES LV_TABIX .

5、增删改查

UPDATA [TABLE] SET A = 1 .

6、获取字符串长度

lv_len = cl_abap_list_utilities=>dynamic_output_length( lv_str ).

7、转换例程

gt_tab-akont = |{ gt_tab-akont ALPHA = IN }|.

8、给字符串去空格

CONDENSE <字符串> NO-GAPS.

9、在选择屏幕上添加文本

1SELECTION-SCREEN COMMENT 01(78) TEXT-001 .

TEXT-001为需要显示的文本,双击创建即可

10、输出简易版ALV

cl_demo_output=>display( lt_table ).

11、红绿灯
函数组:icon

12、submit调用程序
正常调用:

  cl_salv_bs_runtime_info=>set(display  = abap_true"abap_false(这个参数很SB,后面的ALV输出不了)metadata = abap_falsedata     = abap_true  ).

"获取数据

  SUBMIT rm07docsWITH budat BETWEEN lv_firday AND lv_lastdayWITH bwart IN lr_bwartWITH rflat_l  = 'X'WITH database = 'X'EXPORTING LIST TO MEMORYAND RETURN.IF sy-subrc = 0 .TRY.cl_salv_bs_runtime_info=>get_data_ref( IMPORTING r_data = lr_alv_data ) .ASSIGN lr_alv_data->* TO <lt_alv_data> .CLEAR :lr_alv_data .CATCH cx_salv_bs_sc_runtime_info.MESSAGE '查询结果为空!' TYPE 'E'.ENDTRY.ENDIF .

后台调用:

cl_salv_bs_runtime_info=>set(display  = abap_truemetadata = abap_falsedata     = abap_true  ).CALL FUNCTION 'JOB_OPEN'EXPORTINGjobname          = nameIMPORTINGjobcount         = numberEXCEPTIONScant_create_job  = 1invalid_job_data = 2jobname_missing  = 3OTHERS           = 4.IF sy-subrc = 0.SUBMIT ukm_rfdkli20WITH sdchd = 'X'WITH testlauf = ''WITH pkunnr IN r_kunnrWITH pkkber IN r_kkberTO SAP-SPOOLSPOOL PARAMETERS print_parametersWITHOUT SPOOL DYNPROVIA JOB name NUMBER numberAND RETURN.IF sy-subrc = 0.CALL FUNCTION 'JOB_CLOSE'EXPORTINGjobcount             = numberjobname              = namestrtimmed            = 'X'EXCEPTIONScant_start_immediate = 1invalid_startdate    = 2jobname_missing      = 3job_close_failed     = 4job_nosteps          = 5job_notex            = 6lock_failed          = 7OTHERS               = 8.IF sy-subrc = 0.ENDIF.ENDIF .ENDIF.

13、创建UUID

    TRY.lo_uuid = cl_uuid_factory=>create_system_uuid(  ).lv_uuid_x16 = lo_uuid->create_uuid_x16( ).lo_uuid->convert_uuid_x16(EXPORTINGuuid     = lv_uuid_x16IMPORTINGuuid_c26 = lv_uuid_c26 ).CATCH cx_uuid_error.ENDTRY.

14、查找关键字在那个程序中出现过
执行程序:RS_ABAP_SOURCE_SCAN

15、动态调用函数模块

  DATA: lt_param TYPE abap_func_parmbind_tab,ls_param TYPE abap_func_parmbind,lt_excep TYPE abap_func_excpbind_tab,ls_excep TYPE abap_func_excpbind,DEFINE fill_func_parm.IF &3 IS NOT INITIAL.ls_param-name = &1.ls_param-kind = &2.GET REFERENCE OF &3 INTO ls_param-value.INSERT ls_param INTO TABLE lt_param.CLEAR ls_param.ENDIF.END-OF-DEFINITION.fill_func_parm:gs_config-parm1 abap_func_exporting lv_key,gs_config-parm2 abap_func_exporting lf_log->key2,gs_config-parm3 abap_func_exporting lf_log->key3,gs_config-parm4 abap_func_exporting lf_log->key4,gs_config-parm5 abap_func_exporting lf_log->key5.CALL FUNCTION gs_config-zprogramPARAMETER-TABLElt_paramEXCEPTION-TABLElt_excep.

16、读表不存工作区

READ TABLE XVBUV[] WITH KEY TBNAM = 'VBAP' FDNAM = 'NETWR' FEHGR = 'Y1' TRANSPORTING NO FIELDS .

17、复制表部分数据到新表


APPEND LINES OF 【Tab1】 FROM 1 TO 10 TO 【Tab2】 .

18、CONCATENATE拼接字符串
RESPECTING BLANKS:左对齐

CONCATENATE `bearer`  ' ' lv_base64 INTO token RESPECTING BLANKS.

19、ABAP 字符串处理

"字符串替换
REPLACE ALL OCCURRENCES OF 'A' IN lv_string WITH 'B'.  (将lv_string 中所有A 换为B ) 
REPLACE ALL OCCURRENCES OF 'ABC' IN lv_string WITH space. (将lv_string 中 所有 ABC 换为 空 )"字符串拼接
CONCATENATE t1 t2 INTO result. "直接拼接 
CONCATENATE t1 t2 INTO result SEPARATED BY space. "用空格将字符串连接"字符串拆分
SPLIT text AT space INTO str1 str2. "根据空格将字符串拆分到str1 和str2中 "字符转换
TRANSLATE text TO UPPER CASE. "转大写 
TRANSLATE text TO LOWER CASE. "转小写"取字符长度
len = strlen( text ). "字符串长度"字符串截取
subtext = text+0(5). "取左边5個字符('ABCDE') 
subtext = text+3(5). "从第四個字串起取5个字符('DEFGH) 
text+0(1) = 'Z'. "將第一个字符转为Z"查找字符位置
SEARCH text FOR '='. "查找=在text中的位置
IF sy-subrc = 0.DATA(l_index) = sy-fdpos. "sy-fdpos的位置
ENDIF .
注意:sy-fdpos是从第0位开始的"正则判断字符串
FIND FIRST OCCURRENCE OF REGEX '[^0-9]' IN wa_data-lfdat.“判断wa_data-lfdat中是否包含不是0-9的数字 
IF sy-subrc = 0.
Endif."字符串去空格
CONDENSE:重新整合分配字符串 
CONDENSE C <NO-GAPS> "字符串大小写转换
TRANSLATE 
TRANSLATE c TO UPPER CASE. "转大写 
TRANSLATE c TO LOWER CASE. "转小写 
TRANSLATE c USING c1. "用C1替换C "字符移动
"SHIFT:字符串整体或者字串进行转移. 
"如果SHIFT 操作的对象是 C类型, 则所有字节都会向前移动一位,最后一位用空格代替; 
"如果SHIFT操作的对象是String类型,则所有字符都会向前移动一位,最后一位删除; 
SHIFT c <LEFT/RIGHT/CIRCULAR>. 
SHIFT c BY n PLACES. 
SHIFT c UP TO c1.

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

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

相关文章

亿达四方:一站式SolidWorks代理服务,打造设计竞争力

在当今瞬息万变的设计与制造领域&#xff0c;高效、精准的3D设计软件已成为推动企业创新与发展的核心驱动力。作为业界知名的SolidWorks一站式代理服务商&#xff0c;亿达四方致力于为企业搭建从软件采购到技术应用的全方位桥梁&#xff0c;全面赋能设计团队&#xff0c;助力企…

stable-diffusion.cpp 文字生成图片

纯 C/C 中 [Stable Diffusion] 的推断 https://github.com/CompVis/stable-diffusion ## 特点 - 基于 [ggml]&#xff08;https://github.com/ggerganov/ggml&#xff09; 的普通 C/C 实现&#xff0c;工作方式与 [llama.cpp]&#xff08;https://github.com/ggerganov/llam…

微信小程序请求request封装

公共基础路径封装 // config.js module.exports {// 测试BASE_URL: https://cloud.chejj.cn,// 正式// BASE_URL: https://cloud.mycjj.com };请求封装 // request.js import config from ../config/baseUrl// 请求未返回时的loading const showLoading () > wx.showLoadi…

蓝桥杯软件测试第十五届蓝桥杯模拟赛1期题目解析

PS 需要第十五界蓝桥杯模拟赛1期功能测试模板、单元测试被测代码、自动化测试被测代码请加&#x1f427;:1940787338 备注&#xff1a;15界蓝桥杯省赛软件测试模拟赛1期 题目1 功能测试用例1&#xff08;测试用例&#xff09;&#xff08;15分&#xff09; 【前期准备】 按步…

后端开发面试题5(附答案)

前言 在下首语言是golang,所以会用他作为示例。 原文参见 @arialdomartini的: Back-End Developer Interview Questions 数据库相关问题 1. 如果要你将一个项目从MySQL迁移至PostgreSQL中,你会如何迁移? 迁移一个项目从MySQL到PostgreSQL涉及多个步骤,主要包括数据备份、…

网页元素解析元素标签和style变更

前言 如何解析html标签&#xff1f; 如何给标签增加样式&#xff1f; <div class"related-tags"><span>相关主题推荐&#xff1a;</span>a<a hrefhttp://www.csdn.net/tag/标签 target"_blank">标签</a><a href"h…

【STM32】输入捕获应用-测量脉宽或者频率(方法1)

图1 脉宽/频率测量示意图 1 测量频率 当捕获通道TIx 上出现上升沿时&#xff0c;发生第一次捕获&#xff0c;计数器CNT 的值会被锁存到捕获寄存器CCR中&#xff0c;而且还会进入捕获中断&#xff0c;在中断服务程序中记录一次捕获&#xff08;可以用一个标志变量来记录&#…

CC攻击的有效应对方案

随着互联网的发展&#xff0c;网络安全问题愈发突出。CC攻击&#xff08;Challenge Collapsar Attack&#xff09;&#xff0c;一种针对Web应用程序的分布式拒绝服务&#xff08;DDoS&#xff09;攻击方式&#xff0c;已经成为许多网络管理员和网站拥有者不得不面对的重大挑战。…

跨越式发展:中小型企业如何争取水库枢纽乙级资质

1. 明确目标&#xff0c;深入了解资质要求 首先&#xff0c;全面研究水利行业乙级设计资质的具体标准&#xff0c;包括企业规模、人员构成、技术能力、财务状况、管理体系等&#xff0c;确保每项要求都能精准对应并准备充分。 2. 强化内部管理与体系建设 建立或优化组织架构…

Fantasy Icons Megapack(梦幻盔甲宝石图标魔法道具图标集)

所有图标都具备高质量&#xff0c;并以专业水平实施。任何幻想风格游戏的上佳选择。 - 可更新的超级资源包&#xff1b; - 每个图标的大小均为 256x256 像素 (PNG)&#xff1b; - 总计 2672 个独一无二的图标&#xff1b; - 所有图标均具有透明背景。 超级资源包内置&#xff1…

Redisson原理解析

Hi~&#xff01;这里是奋斗的小羊&#xff0c;很荣幸您能阅读我的文章&#xff0c;诚请评论指点&#xff0c;欢迎欢迎 ~~ &#x1f4a5;&#x1f4a5;个人主页&#xff1a;奋斗的小羊 &#x1f4a5;&#x1f4a5;所属专栏&#xff1a;C语言 &#x1f680;本系列文章为个人学习…

如何通过“小猪APP分发”轻松实现应用分发

你是否也在为应用分发发愁&#xff1f; 还记得那些日子吗&#xff1f;你花费了大量的时间和精力开发了一款出色的应用&#xff0c;但却在分发和推广环节遇到了瓶颈。是的&#xff0c;无论你的应用多么优秀&#xff0c;如果不能顺利分发给用户&#xff0c;那一切都是徒劳的。别…

[c++刷题]贪心算法.N01

题目如上: 首先通过经验分析&#xff0c;要用最少的减半次数&#xff0c;使得数组总和减少至一半以上&#xff0c;那么第一反应就是每次都挑数组中最大的数据去减半&#xff0c;这样可以是每次数组总和值减少程度最大化。 代码思路:利用大根堆去找数据中的最大值&#xff0c;…

[数据集][实例分割]减速带分割数据集json+yolo格式5400张1类别

数据集格式&#xff1a;labelme格式(不包含mask文件&#xff0c;仅仅包含jpg图片和对应的json文件以及对应yolo格式txt) 图片数量(jpg文件个数)&#xff1a;5400 标注数量(json文件个数)&#xff1a;5400 标注数量(txt文件个数)&#xff1a;5400 标注类别数&#xff1a;1 标注…

深入理解 Spring 事务的钩子函数

目录 引言Spring 事务概述 2.1 事务的基本概念2.2 Spring 事务管理简介 事务钩子函数简介 3.1 什么是事务钩子函数3.2 事务钩子函数的作用 Spring 事务钩子函数的实现 4.1 PlatformTransactionManager 接口4.2 TransactionSynchronization 接口4.3 TransactionSynchronization…

体验版小程序访问不到后端接口请求失败问题解决方案

文章目录 解决方案一&#xff1a;配置合法域名解决方案二&#xff1a;开发调试模式第一步&#xff1a;进入开发调试模式第二步&#xff1a;启用开发调试 注意事项结语 &#x1f389;欢迎来到Java面试技巧专栏~探索Java中的静态变量与实例变量 ☆* o(≧▽≦)o *☆嗨~我是IT陈寒&…

实战篇:用户管理模块开发

实战篇&#xff1a;用户管理模块开发 用户管理模块简介 用户管理模块是大多数Web应用的核心组件之一&#xff0c;它负责处理用户的注册、登录、信息展示、编辑和删除等操作。 项目结构 假设你已经根据之前讨论的结构组织了你的Flask项目。 第1步&#xff1a;定义用户模型 …

牛客链表刷题(一)

目录 题目一&#xff1a;反转链表 代码&#xff1a; 题目二&#xff1a;链表内指定区间反转 代码&#xff1a; 题目一&#xff1a;反转链表 代码&#xff1a; import java.util.*;/** public class ListNode {* int val;* ListNode next null;* public ListNode(int …

2024 年最新 Python 使用 gewe 框架搭建微信机器人实现语音智能回复(详细教程)

Gewe 个微框架 GeWe&#xff08;个微框架&#xff09;是一个创新性的软件开发框架&#xff0c;专注于IPAD协议&#xff0c;为个人微信号以及企业信息安全提供了强大的功能和保障。GeWe的设计旨在简化开发过程&#xff0c;使开发者能够高效、灵活地构建和定制通信协议&#xff…

unity基础(五)地形详解

目录 一 创建地形 二 调整地形大小 三 创建相邻地形 四 创建山峰 五 创建树木 七 添加风 八 添加水 简介: Unity 中的基础地形是构建虚拟场景的重要元素之一。 它提供了一种直观且灵活的方式来创建各种地形地貌&#xff0c;如山脉、平原、山谷等。 通过 Unity 的地形…