自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(78)
  • 资源 (1)
  • 收藏
  • 关注

原创 ABAP 判断有没有被锁定的通用函数使用

1.ENQUE_READ2 是一个读取锁的通用函数,参数会根据不同的表而变化。3.你可以使用此函数来判断销售订单,采购订单,交货单等等有没有被锁定。1.MM02输入物料,先把物料处于更改状态,那它属于锁定状态。我需要找到物料的锁,判断它有没有在被更改使用。2.想要了解锁的详细信息可以转到—2.进入SM12,查看锁定列表。分享使我快乐,我是寒武青锋~!

2024-03-25 14:36:18 215 4

原创 ABAP 明细alv跳转到汇总alv一般模板

需求描述:做开发的同时,经常会有遇到,根据明细表进行逻辑汇总,在两个屏幕进行跳转,然后按钮还要做功能的情况,我这边记录一下最简单点模板,给新手可以直接复制使用的。分享使我快乐,我是寒武青锋~!1.创建状态的时候,标准按钮如何点出来的?2.明细表的状态设置和按钮设置,添加了个HZ的按钮。3.汇总表状态和按钮设置,添加了创建单据的按钮。激活就可以改造为你自己的程序了。二、其中的状态和按钮设置截图。

2023-12-14 13:48:58 664

原创 SAP报错 Exception condition “CNTL_ERROR“ triggered

机器翻译:当您在后台模式下运行报告时,此CNTL_ERROR通常会出错,如果使用 Cl_GUI_CUSTOM_CONTAINER 显示最终输出,则可以添加此 IF 条件来克服问题。报错背景,我写了个function alv跳转屏幕,而且有修改事件的程序,但是在我反复跳转修改操作,点创建单据的时候,我的程序直接dump啦。我的情况和他情况有点不一样,我是两个屏幕都调取了function alv,并且使用了事件。人话:后台运行程序有可能是容器丢失,所以要在容器创建的地方做个判断。分享使我快乐,我是寒武青锋。

2023-12-14 12:01:31 886

原创 批量导出SAP表名、字段、字段描述、类型、长度

因为自建表中有些字段没有使用数据元素,就会在DD03VT中缺失字段。如果你自建表未使用数据元素的表特别多,那么我建议你写个报表,调用函数,直接批量导出。进入SE16N,输入DD03VT表,填写表名,语言填写1,然后勾选你需要的字段信息。自建表不要偷懒,要尽量使用数据元素,没找到也尽量去建一个,后续维护可以方便你我他。把表名和位子同时排序,得到这样的结果,再右键电子表格就可以批量导出了。好了,分享使我快乐,我是寒武清锋。

2023-12-13 09:29:16 839

原创 SAP 调取http的x-www-form-urlencoded形式的接口

1.https://blog.csdn.net/BinGeneral/article/details/123607105 -斌将军。字段与字段相互连接要用 & 符号,空格用 + 连接。所以说当你的关键参数里面带有这些特殊符号时,就要用方法转化一下。1.raw格式就是标准的json格式:{“Name”:“John Smith”,“Age”: 23}关键信息按照你的接口来,我的接口信息上马了。2.x-www格式是要转化一下的:Name=John+Smith&Age=23。分享使我快乐,我是寒武青锋~!

2023-11-21 15:07:52 1218

原创 ABAP 交货单拆分行数量汇总

在写交货单的报表的时候,我们经常被要求:不要交货单的批次拆分行,只要交货单的行项目以及对应的数量。问题就是在于,如果交货单被批次拆分了,在交货单数据表 LIPS表里面的数量不是行总数.好了分享使我快乐,我是寒武青锋。取数就会造成一些困扰。

2023-06-21 15:21:09 502 2

原创 ABAP 创建/删除预制发票,贷方凭证(MIR7)

它的解决方法就是行项目不要传供应商(ls_itemdata-FREIGHT_VEN = ‘’)。供应商应该放在抬头的发票方:ls_headerdata-diff_inv = ‘供应商代码’.至于做贷方凭证,就是往LT_GLACCOUNTDATA里面赋值就好了。多尝试一下就可以了。其中我有遇到个错误:你不能处理关于交货成本的条件。这是记录下写业务程序的基本架子。运行代码:已经产生了预制凭证号。分享使我快乐,我是寒武清风。好了今天的分享到这。

2023-04-20 10:10:56 1192 1

原创 ABAP 创建、修改、删除内部交货单(VL31N/VL32N)

3.BBP_INB_DELIVERY_CREATE 听说有bug,我就没有使用这个了。做些资源总结,方便以后使用,把上面具体的单据改成你的测试数据,就可以使用运行了。1.GN_DELIVERY_CREATE 通用交货单使用的bapi,推荐使用。BAPI_INB_DELIVERY_CHANGE 使用这个bapi。删除整单内部交货单,行项目也可删除,去item里面打上删除标记。修改内部交货单数量,批次之类的,但是有些字段修改不到。第二种创建内部交货单,这种简单快捷,但是字段少。

2023-04-14 15:45:33 3262 2

原创 ABAP 选择屏幕填入值回车带出文本,内容或者权限报错

1.选择屏幕上,消息要 TYPE ‘S’ DISPLAY LIKE ‘E’ . STOP.才能在选择屏幕上报错。2.在选择屏幕上,我暂时还没有发现除了回车之外的触发方式,如果你知道,你可以在下面留言提醒我。3.权限校验,要根据业务的要求来设置拦截信息。分享使我快乐,我是寒武青锋。

2023-02-23 10:37:40 1350

原创 ABAP 查询某个日期在不在财务OB52账期内

查询一个日期比如2023-01-01在不在财务OB52维护的账期内。期间月份是三位数,比如12月份是012;如果你查询的数据有终止科目一定要填写;我是寒武青锋,分享使我快乐!好啦,今天分享到这。

2023-02-16 13:53:38 839

原创 ABAP ALV中自定义搜索帮助

1.事件的使用是OOALV中使用的,我的是functionalv转OOALV,它的好处就是可以兼顾functionalv的便利和OOalv的事件。2.要把里面的自定义表换成你的搜索帮助表。2.实现handle_f4 方法。4.fieldcat的配置。

2022-11-08 11:54:57 3321 2

原创 ABAP CO41 ALV添加字段增强

给SAP CO41添加自定字段,并且进行显示。

2022-09-27 14:52:14 938

原创 ABAP 常用的弹窗(确认弹窗、填写值弹窗)

另外,画屏幕添加搜索帮助的小技巧,可能条目键值选 2会自动带出搜索帮助。1.当用户做一些比较重要的操作时需要弹出一个窗口,让用户进行确认。功能比较强大(还可以做其他的东东),但是也比较复杂。9000屏幕的GUI状态(创建就好了,没有啥特殊的)2.或者进行操作时,需要填写重要信息。好了,分享使我快乐,我是寒武青锋。3.可填写弹窗代码(画屏幕版)2.填写弹窗代码(函数版)取消的功能码:CANC。9000屏幕的逻辑流。...

2022-08-31 15:34:41 7181 7

原创 ABAP VOFM定价过程的例程创建

注:如果新的定价过程传输到正式系统,一定要让业务做一单看看运行效果(不用保存就可以看的定价过程的效果)。这一步很重要,不然定价过程不生效,而且新的定价过程传输到正式系统中,需要再次运行。注:1.如果不知道里面字段的含义,可以查看标准定价过程的代码,打个断点调试下。销售或者是采购模块都会用到定价过程,本文章做些记录。2.此程序是没有固定点计算的,涉及到。好了,分享使我快乐,我是寒武青锋。,可以写个函数进行乘除的计算。...

2022-08-09 15:05:59 1739 5

原创 ABAP FB02 修改会计凭证的抬头文本/行项目文本的函数

FB02 修改抬头文本/行项目文本,另外还有一个函数也是可以修改行项目文本的函数,FI_ITEMS_MASS_CHANGE,它本质上是BDC.除了能修改文本之外,还能修改FB02可编辑的字段,可以灵活使用。填写会计凭证,公司代码,财年,加个行项目。填写会计凭证,公司代码,财年。分享使我快乐,我是寒武青锋。抬头字段名,和字段值。抬头字段名,和字段值。......

2022-08-03 15:53:28 2563 1

原创 ABAP SQL 截取字段值、去掉前导零连表匹配查询

应用场景:A表a字段取值后面四位与B表b字段进行匹配连表,假设要把工厂作为供应商查询。方法有两种:1.截取法,知道数据的固定位数。官方解释:SUBSTRING( arg, pos, len ) ,Substring arg from the position pos with length len. pos and len must be specified so that the substring is within arg.翻译:长度为len的位置pos的子字符串arg。Pos和len必须

2022-07-12 12:04:12 2474 1

原创 ABAP IN BACKGROUND TASK 的调试方法

一、问题描述:当我在 IN BACKGROUND TASK 的函数上打个断点(无论是外部断点还是会话断点)时候,发现调试并不能进入到函数里面去。二、找问题有用线索:遇事不决直接 F1 先看看系统怎么说。我们可以获得的信息:1.这是一种过时的语法2.这个函数是个远程启用的模块3.其中还提到SM58这个事务代码三、解决方案:1.打个会话断点2.触发断点进入debuge模式,点击设置–>更改调试器参数文件/设置3.勾选 TRFC(在后台任务钟):块发送4.先不要运行下去,开个新窗口输入

2022-07-11 17:14:21 3864

原创 ABAP string_agg 将列的文本分组汇总到一行

STRING_AGG基本作用就是:按照关键字段分组 ,将列值,拼接到一个字段,看图直观一些。实例代码注意点1.拼接的时候可以加符号,也可直接拼接。2.SAP 7.54版本以上,才可以使用这个语法。3.STRING_AGG AS 的拼接字段长度不能超过1333。超过直接dump。在写之前就要估算好长度。好啦,分享使我快乐,我是寒武青锋。...

2022-06-08 14:41:03 939 2

原创 ABAP 简单CDS创建和使用

1.安装并且添加ABAP的插件安装eclipse链接:https://blog.csdn.net/qq_45344586/article/details/123942685安装ABAP插件:https://jingyan.baidu.com/article/67508eb471dd5c9ccb1ce458.html注意点:eclipse添加ABAP插件时候,去这里https://tools.hana.ondemand.com/ 查看对应eclipse的对应版本插件链接(什么版本的eclipse就选什么

2022-05-27 16:37:00 2740 1

原创 SAP 物料主数据创建与更改

1.用于创建与更改物料主数据的核心代码,算是比较全了。*****创建物料主数据使用 DATA gw_headdata LIKE bapimathead. "声明带有控制信息的表头段 DATA gw_clientdata LIKE bapi_mara. "声明客户端层次物料数据 DATA gw_bapi_te_marax LIKE bapi_te_marax. "声明客户端层次物料数据 DATA gw_bapi_te_mara

2022-05-24 15:45:57 4032 5

原创 ABAP ‘read text‘ 在循环中取值长文本太慢了,来试试效率更高的方法

在很多报表中都会取值长文本,一半我们都是使用 read text函数取值,或者 通过ID取值使用比较简单,但是效率低下,因为在每一循环中都是要取值长文本。今天来介绍一种复杂一些,但是效率大大提升的方法。一、源代码"查询销售订单以及订单行SELECT vbak~vbeln, vbap~posnr, vbak~ernam, CAST( vbak~ernam AS CHAR( 200 ) ) AS longtexth,"抬头长文本 CAST( vbak

2022-05-09 09:38:46 1528 4

原创 隐藏CO03菜单栏的按钮(转到=>成本=>分析)

问题业务要求需要按照权限隐藏 菜单栏的转到=>成本=>分析,就是把这个按钮置灰,没有权限的人按不到。效果如图:寻找增强点思路:1.首先还是要从程序的gui状态开始找起,每个菜单栏,都有对应的code,找到它。2.然后进本程序去找excl_tab通常它是用来隐藏按钮的,并且插入一条数据进去。具体步骤1.进入状态:2.双击GUI状态:3.找到分析对应的代码:KOAZ4.找到带有excl_tab的代码段查看代码,发现有隐藏的代码可以打断点调试看看是不是这个点。

2022-04-21 12:33:01 981 2

原创 简单alv双击弹窗展示明细

效果展示,双击弹窗出明细双击弹出新窗口,展示明细。弹窗是使用SALV的简单展示,有标准的按钮与简单设置,使用起来蛮方便的,写个例子记录一下。详细设置可以我参考我另外一篇博客 简单SALV代码TYPE-POOLS: slis.TYPE-POOLS: kcde.*&---------------------------------------------------------------------**& TABLES*&----------------

2022-04-18 15:10:07 1682 1

转载 sap LTMC数据导入

1.S4版本数据导入,可以使用新工具LTMC,转载备用来自:SAP团子 使用LTMC迁移数据有以下几个优势: (1)预先集成了许多常用的数据模板,可以直接下载使用; (2)模板可以自定义调整,通过LTMOM调节字段顺序,必须,隐藏或者新增; (3)上传的文件的数据在导入之前可以进行数据检查,必输字段缺失,数据值系统进行校验,验证发现错误可以到处错误消息,修正数据。但与LSMW相比,也缺少一定的灵活性,毕竟LSMW可以通过录屏的方

2022-04-02 10:14:55 1883 1

原创 ABAP 事务代码与程序名以及描述的对照表 TSTC

ABAP 事务代码与程序名以及描述的对照表许多abaper在写年报的时候,总i想找个表拉出自己写的所有程序的标准表,很巧TSTC这个表就有可能是你需要的。筛选条件,选Z打头的程序就可以了。

2022-03-24 16:08:25 784

原创 ABAP 增强中加减乘除计算结果不准(固定点计算)

问题背景在很多标准程序debug的时候经常发现加减乘除的计算结果不对,比如5+9.5 = 100 这个计算想来想去都不知道什么原因,然后我要在增强中写个计算的校验,怎么写计算结果都不对。我该如何解决?了解固定点计算按照官方的解释:虽然很详细但是没怎么看懂。不过我们ABAPer 一般创建程序的时候都会打上这个勾:例子如果不勾选这个勾,看看计算结果会变成什么样子:代码实例"不勾选固定点计算DATA:lv_num1 TYPE char4, lv_num2 TYPE char4,

2022-03-24 15:39:50 857

原创 SE16N修改数据报错:已存在有规定键的一个数据记录

1.遇到的错误SE16N修改数据报错:已存在有规定键的一个数据记录2.原因由于数据主键重复了,所以会报这个错。就上图里面已经有913的ID了,没有看到是因为我们系统默认的命中数是500,所以没有全部显示出来,去500的命中数就可以显示全部数据了。自己遇到的小错误,记录下。...

2022-02-15 11:18:01 1078

原创 ABAP SE16N/SE11修改标准表和自建表

业务使用背景:我们测试自开发程序的时候经常会需要使用到,通过开发手段进行对自建表进行数据更改,不过使用之前,必须提醒一下,尽可能不要用此方式去修改标准表,因为标准表的数据不仅仅是一条数据或者是一个值,而是关联的很多表格。另外重要的数据修改最好留下数据备份,养成好的备份习惯。一.SE16N修改1.进入SE16N,填入要修改的表,以及要修改的数据,填入/H回车之后,点击执行按钮。2.进入调试界面,把GD-SAPEDIT与GD-EDIT 的值更改为’X’然后按F8进行下一步操作。3.可以在此页面进行增

2022-01-18 13:34:41 5187

原创 动态SQL查询,动态内表

1.动态sql语句查询简单来说,查询的字段,查询的表格,还有where条件都是变量。可以作为选择屏幕或者接口数据输入,最后得出输入条件的数据。具有通用性。 其中,动态查询的关键在于:sql语句查询结果所放置内表的创建。2.源代码PARAMETERS: p_field TYPE char200, p_table TYPE char10, p_whe TYPE char200.*第一种创建动态内表,根据所查询的字段,去生成内表DATA: d_re

2022-01-17 16:28:54 2331 1

原创 ABAP IF语句的“与”、“或”、“非”

基本概念ABAP 中常有 与、或、非 三种逻辑概念,分别对应 AND、 OR 、NOT 。与:同真为真,一假则假;两个条件成立,才是真。或:同假才假,一真即真;其中任一条件成立,则为真 。非:非真即假,非假即真。真的变假的,假的变真的。但是当我看到这样一个语句时,我脑子一下子没有转过来,所有写篇文章记录下。DATA: e TYPE i .IF 1 = 1 AND NOT ( 2 = 2 AND e IS NOT INITIAL ). WRITE: 'ABC'.ENDIF.当

2021-11-05 15:39:58 4878 4

原创 ALV需要修改操作的常用模板:单元格修改校验,标准报错,修改后回车更新另外一个单元格

前言分享一个ALV需要修改操作的常用模板,好用就收藏。常用功能为:1.ALV添加自定义按钮选中数据进行按钮操作。2.双击事件。3.修改操作,单元格修改A自动,自动更新此行的B字段,例如修改单价,自动计算总价。4.根据条件,设置某些行不可编辑状态。一、上代码代码赋值就能用啦。REPORT zlimf_alv_mode.TYPE-POOLS: slis.TYPE-POOLS: kcde.*&---------------------------------------------

2021-10-20 10:33:46 1108 2

原创 ABAP 两个内表字段名不同的匹配赋值

一、基本介绍一般两个内表的赋值1.如果是结构完全一样使用: A = B[] .2.若是结构有些一样有些不同那就是使用 MOVE-CORRESPONDING,但是它只能把相同的字段的名的值赋值进去,不同字段名的就无法赋值过去了。3.loop 循环进行赋值,赋值字段名相同或者不同的都可以办得到,但是资源耗费大。4.使用今天要介绍的方法cl_abap_corresponding=>create ,可以不使用循环,把字段名不同的字段匹配赋值。二、实例TYPES:BEGIN OF ty_a,

2021-10-18 09:10:02 2865 8

原创 ABAP SALV简单实例

前言介绍:SALV是一个用面向对象写出ALV简单报表的类。好处:简单快捷,用来做个弹窗,或者作为明细的显示窗口,有很高的便捷性。限制(缺点):•列数限制为90。•列的输出长度限制为128个字符。•ALV的结构使用户可以在屏幕上操作您的表格。尽管ALV为打印表格提供了几个基本功能,但它并不用于配置缩小的打印布局。•对于排序和小计,您最多使用九个级别或列。•对于可聚合列,确保列的内部长度足够大,不仅适用于单个值,也适用于结果。•输出列是面向列的。只能显示平面结构的表。不能显示嵌套的表和结构。

2021-10-11 10:37:56 3521 5

原创 SAP 调取https(API)接口

一、对https接口的简单认识1.参数2.权限3.抬头4.参考链接:SAP调用外部API

2021-10-08 15:40:45 8550 9

原创 ABAP 接口更新表或者BDC我提交更新不成功,怎么办?

问题接口更新表或者BDC我提交更新不成功,偶尔掉了数据。自己比对数据无误,确认不是程序逻辑问题(大部分丢数据是程序代码问题)。我们该如何处理呢。解决方案1.记录更新前和更新后的数据,方便查找丢数据的位置。2.更新不成功应该直接报错出来。3.commit work之后等个0.01秒,查询一下底表的数据。4.在一秒钟之内循环做更新提交的动作,降低丢数据的概率。示例代码"之前更新日志,或者返回接口消息"DATA:ls_sflight TYPE sflight."航班表工作区"DATA:lv_

2021-09-16 08:26:04 1058 3

原创 ABAP 打印预览关闭后造成打印次数无法增加bug

问题最近用户反映一个问题,单据打印程序中的打印次数不增加了,但是文件的的确确是打印出来了。然后我询问他的操作之后,我发现事情并没有那么简单。用户操作用户打印的步骤是这样的:1.选中数据,点击打印按钮,然后点击打印预览。2.进入预览,点击打印。3.关闭窗口,而不是返回上个页面。问题就是出在,直接关闭的操作上。直接关闭窗口不会执行这个打印完成的代码了,所以,打印次数不会加1.**解决方式1:**和用户沟通,让他打印之后,返回上个页面进行确认。**解决方式2:**给SSF_OPEN函数,

2021-09-14 17:05:41 357

转载 获取abap字符串的最后N位

本文章为转载以秉的文章,转载备用。以秉博客园源ABAP提供了字符串截取语法,但是只支持从某位起取N位,不支持取后几位。方法一DATA lv_str TYPE string VALUE 'abcdefghigk'.DATA(lv_len) = strlen( lv_str ) - 5.DATA(lv_str_out1) = lv_str+lv_len(5). 这无疑是最常规的方式,也很容易看懂,代码也很简洁,不过要注意,offset本身的语法是会有异常的,尤其是用变量之后,我们首先要确保长度是大

2021-09-11 10:51:29 4056

原创 ABAP SELECT 多个内表(临时表)

写报表时候我们一般会查主数据放在一个内表,之后查询多个内表,然后LOOP 加read的形式去把数据匹配好,放到alv的内表中。其中loop循环是耗时最长的。不过今天这个语法可以SELECT 多个内表,可以查出最终数据。高效率报表必备技能。与这种方法有所不同ABAP SELECT内表查询你可以参考比较源代码TABLES:vbak,vbap.SELECT-OPTIONS:S_VBELN FOR VBAK-VBELN.WITH +vbak AS ( SELECT vbeln, erna

2021-07-16 13:32:56 3261 2

原创 ABAP F4搜索帮助,自动带出另外字段

1.业务场景,在选择屏幕上,F4搜索帮助,填写一个字段自动带出另外的字段,而且不用按回车触发。是选择的时候触发填写。2.看效果图。源代码TYPES: shlp_descr_t TYPE shlp_descr .DATA: BEGIN OF itab OCCURS 0 , matnr LIKE mara-matnr , maktx LIKE makt-maktx , END OF itab.DATA: return_tab TYPE ddshretval OCC

2021-07-08 10:58:26 2079 1

原创 ABAP 客户主数据批量导入

使用到的BAPI: RFC_CVI_EI_INBOUND_MAIN这个BAPI 可以用来创建/修改 供应商和客户。本篇文章只用来导入客户主数据,想要导供应商的请转到:ABAP 供应商主数据批量导入使用方法,与我上一篇供应商导入基本一致,数据填写与校验逻辑有所不同而已。另外,本文有长文本创建,以及一些Z开头的参数值,要根据你的需求来调整。注意下。源代码TABLES:sscrfields.TYPE-POOLS:truxs,icon,slis.*INCLUDE BDCRECX1_S.***

2021-06-30 16:26:57 1972 2

sap导出自定义程序代码.txt

可以导出在SAP系统中的自定义程序,导出的自定义程序中含有的自定义函数,自定义结构表格都连带导出,导出的格式文件夹包含的html。

2020-07-18

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除