- 博客(53)
- 资源 (1)
- 收藏
- 关注
原创 SAP ABAP生成后台JOB和删除后台JOB
调用函数BP_JOB_SELECT取指定作业名称下的所有作业信息jobselect_joblist调用函数BP_JOB_DELETE删除后台作业,可根据jobselect_joblist中status(P:已计划 S:已释放)来删除JOB实例代码如下:EXPORTINGIMPORTINGTABLESCHANGINGEXCEPTIONSENDIF.
2024-12-30 16:57:44
1259
原创 实施BADI增强支持多个活动的增强实施
2、未勾选多种用法,只能有一个BADI增强,注意如果系统里已经有该BADI定义的BADI实施,不能再新增BADI增强,新增的BADI增强会将已有BADI增强实施变成实施未调用(即未激活状态),已有BADI增强实施的代码全部失效,不会被调用,严重影响已有增强逻辑。一定要查看当前BADI是否支持多种用法,即同一个BADI定义可以实施多个BADI增强。1、勾选多种用法,才能新实施BADI增强,支持多个实施可同时是活动的。找到一个BADI之后,在SE18里面输入BADI名称。
2024-10-08 19:23:54
249
原创 SAP EWM display message对话框长度限制
通过调试跟踪当前标准方法,发现屏幕显示长度为40,最多显示4行,且iv_msg_text把每一行显示字段用空格拼接起来,故以下代码需要把显示消息iv_msg_text按照每40位长度截取后,以空格隔开拼接起来。使用标准方法/scwm/cl_rf_dynpro_srvc=>display_message显示消息文本,由于消息文本过长而被截取,影响显示效果。"通过调试跟踪当前标准方法,发现屏幕显示长度为40,最多显示4行,且iv_msg_text把每一行显示字段用空格拼接起来。
2024-07-10 17:31:33
961
原创 SAP SALV研究
SALV用的是类cl_salv_table下的相关方法,一般用于对话框或者功能要求比较简单的数据显示,比如明细数据显示,不能单元格编辑或者某行某列编辑,可以实现全部数据编辑(实用性不强),如要实现编辑可参考这篇博文 https://mp.weixin.qq.com/s?m_set_text ‘BUTTON’ ‘按钮’ ‘X’.m_set_text ‘COUNT’ ‘计数’ ‘X’.m_set_text ‘MSG’ ‘具体消息’ ‘X’.m_set_text ‘SEL’ ‘选择’ ‘X’.
2024-04-28 16:31:46
1170
原创 SAP 修改SO BAPI报错在配置和销售凭证 &1 间通信时内部出错(V1 854)
在多次使用修改SO BAPI BAPI_SALESORDER_CHANGE的时候由于缓存未清空,可能会报错“在配置和销售凭证 &1 间通信时内部出错”(Internal error in communication between configuration and sales doc.&1),对应的消息为V1 854。在调用BAPI BAPI_SALESORDER_CHANGE之前FREE MEMORY ID。
2024-04-26 17:46:22
332
原创 SAP读取和删除锁定对象通用函数
使用函数ENQUEUE_READ,gname 为表名,garg 为表KEY值,KEY值不完全可以用*代替。如果需要获取当前用户当前客户端的所有锁定情况,可以传参GUNAME和GCLIENT。获取SM12或者SMENQ锁定情况,或者获取当前对象被哪些用户锁定情况,以及解锁对象。使用函数ENQUE_DELETE,直接传入ENQ锁定列表即可。
2024-04-07 16:44:59
680
原创 SAP BDC跳过黄色警告消息
注意:在MODE为A(显示所有屏幕)下虽然添加的回车事件不生效,还是被警告阻止程序运行,但是在MODE为N(后台处理)添加的回车事件会生效!在警告处的当前屏幕下添加回车事件,注意不要再添加屏幕号代码(添加屏幕号后没有效果)BDC在使用过程中遇到警告消息会停止往下执行。
2024-04-07 15:21:52
1157
1
原创 改造 cl_demo_output=>display支持第一行字段名显示成字段描述
标准的cl_demo_output=>display显示的内表第一行为字段名,不方便用户查看,故需要将第一行换成字段描述。ls_fcat-reptext = ls_fcat_i-reptext. "优先使用传入的字段描述。lv_str_tar = |{ ls_fcat-reptext }|. "字段描述。lv_str_sou = |{ ls_fcat-fieldname }|. "字段名。WHEN ‘h’."内表”获取内表字段。"优先使用传入的手段描述。调用上述类的代码如下。
2024-03-27 16:26:30
1043
1
原创 SAP自建表日志
输入文本、表名,按照情况勾选表名后的选项,比如“内部表”选项:当勾选上则每次处理多条数据,生成的日志函数里包含CHANGEDOCUMENT_MULTIPLE_CASE子函数。以下代码为固定代码(如果SCDO维护时表后面的选项改变了,则需要调整以下代码,一般保持空选项即可),直接复制过去即可。以下代码会引用日志对象的2个INCLUDE文件,调用系统自动生成的FORM记录日志。此种方式是基于表的日志,只要表里任何一个字段有修改,或者整条记录的删除、新增都会有对应的一条完整的记录,而不是多个字段修改多条记录。
2023-08-02 20:05:16
2044
原创 SAP 翻译事务代码文本
在事务代码SE93里面系统没有提供对于事务代码文本的翻译功能,导致在其他语言环境下该事务代码文本 显示不出来。事务代码SLXT,输入传输请求,勾选“准许非SLXT请求”,填入处理日期和处理人,最后点击执行即可。以上操作之后可以在不同的语言环境下看见事务代码文本。点击编辑,写入翻译内容之后点击保存。输入事务代码、源语言、目标语言。
2023-07-11 17:23:56
944
原创 SAP 物料可用性检查
配置步骤:事务代码SPRO—物料管理—库存管理和实际库存–预留----设置动态可用性检查,具体配置步骤参考https://blog.youkuaiyun.com/weixin_41333545/article/details/105725476。3.AVAILABILITY_CHECK_CONTROLLER ATP:可用性检查控制。和物料主数据有关,选了02才能检查,同时也与后台配置有关,否则会返回99999。2.CO_ZA_AVAILABILITY_CHECK 一般情况下的可用性检查。
2022-10-09 11:25:54
4415
原创 SAP 批导长文本字段自动和手动换行
当EXCEL中自动换行后,SAP标准上传函数,会识别到则该文本内容的开头和结尾处会被自动加上引号,当EXCEL中没有换行符,则不会有引号,当有换行符,则会有引号。“由于数据格式问题,检验特性长文本字段会以双引号开头和结尾,此处去掉该引号。ls_string = -text_line. "文本内容。在项目中遇到EXCEL里面导入长文本,长文本是有格式,分行显示,如下所示。此例为检验特性长文本,利用该长文本内表赋值给BAPI长文本内表。EXCEL中以某个特殊符号作为分隔符号,比如美元符号$
2022-08-25 14:59:12
2044
原创 SAP SMARTFORMS打印文本内容手动换行
将多个字段值用换行符cl_abap_char_utilities=>cr_lf拼接起来,并且赋值给字符型变量。
2022-08-23 20:56:35
2358
原创 SAP 自定义搜索帮助在ALV和TABLE CONTROL里实现关联搜索
在alv或者table control里需要定义字段的搜索帮助,本文通过自定义的搜索帮助出口来实现,相对于定义alv的f4事件或者屏幕的process on value-request的方式代码量少,更加方便。同时自定义搜索帮助里需要取自ALV或者table control的其他字段来实现关联搜索帮助功能。本文根据物料、工厂、库存地点取批次及库存信息事务代码SE11建立搜索帮助从标准搜索帮助出口函数F4IF_SHLP_EXIT_EXAMPLE复制到自定义函数如上图所示。在select部分编写代码如下
2022-07-13 20:22:53
1840
原创 SAP itab is a table with an empty primary key. Check the semantics of the statement.解决办法
在ABAP 740之后,取数所用内表不会再去定义类型和内表,而是在取数的时候自动定义内表,当在loop循环里对该内表使用删除语句delete table itab from wa,则系统语法检查会报如下错误:“LT_AUFK” is a table with an empty primary key. Check the semantics of the statement.这种新语法定义的内表其实没有关键字,使用delete table itab from wa删除的时候会默认删除内表第一行,并不会删除
2022-06-30 18:07:22
645
原创 SAP 生产成本明细报表
前台事务代码CO03时,进行订单的成本分析,需要开发报表实现批量操作此处无隐式增强,同时通过标准方法无法获取内表数据。故通过memory id 实现。插入代码如下:核心代码如下:利用函数K_KKB_KKBCS_ORDER_REPORT读取数据标准报表的输出字段为结构KKBCS_OUT+结构KKBCS_OUT_KEY中字段的文本(比如HKTYP_TEXT)全部代码如下:&--------------------------------------------------------------
2022-06-30 10:42:14
9521
2
原创 SAP 检验批决策增强
前台QA11操作时,保存时增强点:BADI:INSPECTIONLOT_UPDATE修改检验批库存界面的过账数量和库存地点,增强点:隐式增强:具体代码:FUNCTION ZFMQM_019.*“----------------------------------------------------------------------"“本地接口:*” IMPORTING*” REFERENCE(IS_QALS) TYPE QALS OPTIONAL*" REFERE
2022-06-24 15:15:26
1685
原创 SAP MIGO批次特性增强
MIGO采购订单收货时,当点击分类按钮,给为空的特性赋默认值,数据保存在全局内表WS中,具体代码如下:增强点:包含文件 LCTMSF3Z FORM结尾处实施隐式增强,增强代码如下*采购订单收货时,第一次点击分类按钮时,批次性性Z_BATCH_ZZSMC制造商名称和Z_BATCH_ZZSPH给默认值*具体逻辑:从物料主数据MARA-MFRNR进行自动取值,*根据EKPO-MATNR=MARA-MATNR 取MARA-MFRNR然后根据MARA-MFRNR=LFA1-LIFNR取LFA1-NAME1
2022-06-23 20:41:08
2101
原创 SAP QM01 保存增强
CMOD增强点:QQMA0014参考代码如下:*H 添加*V 更改*A 显示IF ( I_TQ80-QMART = ‘F2’ OR I_TQ80-QMART = ‘F3’ ) AND ( I_AKTYP = ‘H’ OR I_AKTYP = ‘V’ ).IF I_AKTYP = ‘H’."新建模式"评估相关字段必填IF I_VIQMEL-ZWHCD IS INITIALOR I_VIQMEL-ZKKX IS INITIALOR I_VIQMEL-ZJL IS INITIAL.
2022-06-14 16:02:46
596
原创 SAP QM01 通知单屏幕增强
事务代码SPRO一般情况下通知类型为F2或者F3,选中F2或者F3填写以下红框内容后,点击保存按钮保存之后屏幕范围->屏幕区域1则可填写在屏幕区域1字段上一直回车,期间会有警告消息,不用管,直到右侧屏幕1可编辑,输入屏幕号0100,最后点击保存按照相同的方法对通知类型F2进行配置即可双击CI_QMEL加入增强字段,最后激活结构CI_QMEL事务代码CMODQQMA0001代码如下:&---------------------------------------------
2022-06-14 11:22:33
1346
1
原创 SAP GUI 750(含以上)免密登录或者密码保存方法
文章目录1.SAP GUI快捷方式密码保存2.SAP 免密登录2.1 找到sapshcut.exe所在路径2.2 编写BAT文件2.3 免密登录1.SAP GUI快捷方式密码保存具体操作步骤可参考本人另外一篇文章,链接如下;SAP GUI快捷方式保存密码2.SAP 免密登录实现原理为通过批处理文件BAT登录,操作步骤如下2.1 找到sapshcut.exe所在路径右键单击GUI图标,打开文件所在的位置复制当前位置2.2 编写BAT文件新建一个TXT文件,在TXT文件里输入以下代码:
2022-05-30 17:18:53
6498
2
原创 SAP GUI 750(含)以上版本界面切换到740经典界面
SAP GUI750(含)以上版本的操作界面默认时fiori风格,用惯了740及740以下版本的经典界面会有些不适应,下面方法演示切换到经典界面的步骤:选择蓝色的经典界面,以及去掉Belize主题或者Fiori可视化主题点击应用退出GUI的所有界面,重新启动GUI即可...
2022-05-30 16:30:06
10207
原创 SAP GUI从740升级到750以上版本连接信息丢失
SAP GUI从740(含740以下)升级到750以上,即将GUI装成高版本之后,连接信息将会丢失,即使拷贝低版本的COMMON文件夹覆盖过去也不能找回低版本保存的连接信息,这是因为连接信息保存的文件有所不同。以上快捷方式和连接将会全部丢失。采用以下方法可将所有快捷方式和连接找回:1.以管理员身份运行sapshcut.exe文件右键单击GUI链接->打开文件所在的位置在当前位置搜索文件sapshcut.exe2.修改注册表1在WIN10系统下搜索注册或者输入regedit.ex
2022-05-30 16:15:29
3100
原创 SAP Cording Block维护客户化字段
1.背景在日益复杂的财务核算中,越来越多的辅助核算项需要在凭证中展现。例如,营业外收支、政府补助等需要挂项目;内部交易的收入、财务费用等需要挂客商;内部资金调拨往来科目需要挂原因代码;SAP的一张凭证中虽然有众多的字段,但是许多是各行各业用到的,不能随便将已有字段改造成自定义的辅助核算字段。此时,SAP的coding block功能能够部分解决这一问题,但是有一定的局限性,因为coding block即便激活,能够使用也是除客户、供应商统驭科目外的科目,客户、供应商统驭科目如果想使用需要做其他的系统开发
2022-02-15 16:11:05
11884
4
原创 SAP国际商品编码(EAN码)允许前导0增强
零售进口商品条码是0开头的, 国际商品条码/商品通码通过BAPI写入或者MM41\MM42创建时发现,前台输入前导0的条码回车后前面的0会自动被忽略掉,后台表修改也无法写入前导0。 解决办法: 涉及到2张表,MARA和MARM,MARA表是保存基本单位对应的EAN码,MARM表保存了转换单位对应的EAN码,步骤如下: 1.EAN转换例程增强 ,也可选择解锁表,解锁表会将当前调整表保存在临时表QCM+表名,比如QCMMARA中,之后删除当前表数据(当前服务器的所有客户端都会删除,比如DEV有100,200,300,这三个客户端数据都会删除)解锁表之后,该表不存在数据库里,需要在SE14里点击创建数据库表,创建完毕但是不存在表数据,此时可通过代码方式将临时表数据插
2021-10-08 23:50:25
2572
原创 SAP Query和SAP quickView(快速报表)如何互相转换
SAP 快速报表配置较多,当遇到客制化程序比较高的需求,比如添加自定义代码,则无法在快速报表里实现,此时可通过转换成query报表实现。转换过程如下:1.事物代码SQ01输入SAP 快速报表查询名称输入query名称和信息集名称最后确认保存2.在SQ02里输入新的信息集,生成代码即可...
2021-09-13 19:20:48
719
原创 最新SAP 元素 POS_BELZEILE2 窗口 MAIN 没被定义给格式 INVENT报错解决办法
元素 POS_BELZEILE2 窗口 MAIN没被定义给格式INVENT,这是比较常见的问题,用于MI31制做盘点凭证后,BATCH后,MI21打印盘点表的错误。此错误是由于中文下缺少POS元素造成的,解决办法如下:1.SE71,输入INVENT2. 从原客户复制,从INVENT到INVENT,源语言不要打上勾。3. 点击文本元素4. 在窗口里加入以下代码注意:代码不能直接拷贝过去,必须使用插入命令工具或者复制现有的字段比如插入POS_BELZEILE2插入后该命令变成黑色表示插入成
2021-09-07 14:20:15
910
原创 SAP标准导出功能 - 删除默认选定格式
我们经常会使用SAP系统的标准功能导出ALV显示的数据,一般会选择电子表格。选择电子表格之后,需要选择电子表格的具体格式。选择格式之后点击确定,会弹出保存对话框。如果在使用这个功能的时候,选择了“始终使用选定的格式”,则之后使用此功能,不会再出现选择电子表格的界面。这样就出现一个问题,如果我想更改其他的格式就不能满足了。不同的SAP版本,用户选定格式的信息存放的位置是不一样的。早...
2020-02-14 19:44:59
651
原创 SAP调试跳过FB08 错误消息ME703
业务上的不规范操作需要冲销以下凭证,但是冲销报错。通过观察点或者消息号跟踪未发现报message的地方,通过网上查询,在以下函数中打断点调试跳过即可这个函数里面还包含了与财务凭证对应的采购凭证相关联的数据检查及相关报错消息。...
2020-02-07 17:58:22
1219
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人