
ABAP基础
文章平均质量分 90
Nathan_Sun
这个作者很懒,什么都没留下…
展开
-
ABAP传输自定义IDOC实例
首先确定出站方和入站方,本例中我使用150作为发送方将200作为接收方。发送端系统配置进入tcode-SALE,点击定义逻辑系统,这里我定义D01CLNT150为发送端, D01CLNT200为接收端2,将逻辑系统分配给对应的client3,进入tcode-WE31,创建IDOC开发段(segment)这里可以按照实际需求创建想要传输的结构,为求简单我创建了ZKNA1并选取了几个客户主数据的字段作为示例4,进入tcode-WE30,创建Idoc Ty...原创 2022-05-26 12:24:28 · 3200 阅读 · 1 评论 -
ABAP发送邮件(含EXCEl附件)
邮箱配置请见SAP系统配置SMPT邮箱_Nathan的博客-优快云博客_sap 邮件配置SAP系统配置SMPT邮箱首先要获取可以使用发送协议SMTP的邮件服务器地址,以及一个用于服务器验证的邮箱地址及其密码。1,登陆SAP系统进入事务码RZ10,通过以下路径可以查看当前可用的参数文件,通过搜索帮助带出文件名可自动带出活动的版本填入参数文件名选择扩展维护单击修改,这里我们需要填入两个参数参数:is/SMTP/virt_host_0 值:*:25;参数:ic...https://blog.youkuaiyun.com/S原创 2022-02-14 10:44:22 · 6372 阅读 · 0 评论 -
SAP校验与替代
https://blog.youkuaiyun.com/zhongguomao/article/details/786878251.校验与替代的作用校验(Validation):在凭证保存前根据设置条件判断此凭证是否有效,其中可以按抬头、行项目或完全凭证来判断,然后再根据Validation设置的消息类型决定凭证是否允许保存。SAP校验是对在系统输入的数据按照规则设定检验是否正确,可以按抬头、行项目或...转载 2020-03-24 11:17:10 · 1312 阅读 · 1 评论 -
SAP系统配置SMPT邮箱
SAP系统配置SMPT邮箱首先要获取可以使用发送协议SMTP的邮件服务器地址,以及一个用于服务器验证的邮箱地址及其密码。1,登陆SAP系统进入事务码RZ10,通过以下路径可以查看当前可用的参数文件,通过搜索帮助带出文件名可自动带出活动的版本填入参数文件名选择扩展维护单击修改,这里我们需要填入两个参数参数:is/SMTP/virt_host_0 值:*:25;参数:ic...原创 2020-03-19 14:59:01 · 12224 阅读 · 0 评论 -
取得采购信息记录的更改日期
如果需要在报表中获取采购信息记录的更改日期(类似ME14的功能),可以使用函数CHANGEDOCUMENT_READ,实现CLEAREDITPOS[].OBJECTID=GT_ALV-INFNR.CALLFUNCTION'CHANGEDOCUMENT_READ'EXPORTINGOBJECTCLASS...原创 2020-01-20 15:14:55 · 932 阅读 · 0 评论 -
获取PO的条件价格
通过EKKO- KNUMV在视图V_KONV_CDS中获取条件价格SELECTSINGLEKBETRWAERSINTO(LS_EKKO-ZKBETR,LS_EKKO-ZWAERS)FROMV_KONV_CDSWHEREKNUMV=LS_EKKO-KNUMVANDKSCHLIN('PB00','PBXX')...原创 2019-11-08 16:58:10 · 1211 阅读 · 0 评论 -
SAP table control 显示负值
在table control使用可能出现负值的计算字段时如果不做任何处理,将会出现报错系统直接认为字段不适配,此时只要在字段的文本属相里添加‘V’就可以了...原创 2019-10-31 09:25:25 · 931 阅读 · 0 评论 -
smartforms模板自动补齐空行
GT_DATA[]=GT_DATA_A[].DELETEGT_DATA[]WHERECKBOXISINITIAL.IFGT_DATA[]ISNOTINITIAL.LOOPATGT_DATA.L_CONTROL_PARAMETERS-NO_OPEN='X'.L_CONT...原创 2019-06-03 17:02:50 · 1670 阅读 · 1 评论 -
Smartforms连续打印(L_CONTROL_PARAMETERS参数设置)
IFGT_DATA[]ISNOTINITIAL.LOOPATGT_DATA.L_CONTROL_PARAMETERS-NO_OPEN='X'.L_CONTROL_PARAMETERS-NO_CLOSE='X'."ATFIRST.L_CONTROL_PARAMETERS...原创 2019-06-03 17:02:03 · 1255 阅读 · 0 评论 -
sap 英文大写金额
sap 英文大写金额使用函数SPELL_AMOUNT可以对金额进行文字转换CLEARIN_WORDS.CALLFUNCTION'SPELL_AMOUNT'EXPORTINGAMOUNT=GT_DATA_A-NETWRCURRENCY=GT_DATA_A-WAERKFILLER='...原创 2019-06-03 17:00:58 · 726 阅读 · 0 评论 -
MM01增强(BADI)
BADI名:BADI_MATERIAL_CHECK首先在SE19下实例化BADI进入实施类中找到对应的方法,本文中的增强是针对维护会计视图时的数据检查,启用方法:CHECK_DATA,其可用参数如下进入CHECK_DATA的实现中,编写代码即可:代码文本:IFWMBEW-BKLASISNOTINITIAL.DATAGV_MARCT...原创 2019-06-03 17:00:08 · 3290 阅读 · 1 评论 -
ALV 页眉的使用
FORMFRM_DISPLAY.CLEARS_LAYOUT.S_LAYOUT-ZEBRA='X'.S_LAYOUT-COLWIDTH_OPTIMIZE='X'.*s_layout-box_fieldname='BOX'.PERFORMFRM_FILL_FIELD.CALLFUNCTION'REUSE_ALV_GRID_DISPLAY'...原创 2019-06-03 16:58:36 · 619 阅读 · 0 评论 -
ABAP字符串插入空格
abap插入空格的方法:1. CONCATENATEstr1str2INTOstr SEPARATEDBY''. 连个拼接字符会以空格分开2. CONCATENATEstr1str2INTOstr5RESPECTINGBLANKS.两个拼接字符会保留末尾的空位(如果有的话)3,可以直接插入全角空格,CONCATENATE或者&& 这种语句...原创 2019-06-03 16:57:11 · 8989 阅读 · 0 评论 -
ABAP获取发票的抬头文本
DATATDIDTYPETABLEOFTDIDWITHHEADERLINE.DATATLINETYPETABLEOFTLINEWITHHEADERLINE.DATATDNAMETYPETDOBNAME.CLEARTDID.CLEARTDID[].TDID='Z00...原创 2019-06-03 16:54:52 · 1198 阅读 · 0 评论 -
ABAP对SELECT-OPTIONS使用权限对象
DATA:GT_T001WTYPETABLEOFT001WWITHHEADERLINE.DATALV_FLAGTYPEC.CLEARLV_FLAG.CLEARGT_T001W[].SELECTWERKSINTOCORRESPONDINGFIELDSOFTABLEGT_T001W[]FROMT001WWHEREW...原创 2019-06-03 16:53:58 · 1198 阅读 · 0 评论 -
ABAP 工单状态筛选(参考COOIS)
如果想在自开发的报表中使用类似COOIS的状态来筛选工单可以参考其源码,主要包含以下几个代码段:1.定义屏幕元素,由于表TJ02T不含搜索帮助,所以要手工添加:屏幕元素:SELECTION-SCREENBEGINOFLINE.SELECTION-SCREEN:COMMENT1(20)TEXT-SYSFORFIELDP_SYST1MODIFIDC...原创 2019-07-16 11:34:22 · 2458 阅读 · 0 评论 -
ABAP——Open SQL 函数调试程序
Open SQL 函数调试程序ABAP Open SQL语法:如果要在ABAP中使用Open SQL需要注意使用符合其规则的语法,SOL过程中的变量都需要使用@来转义REPORTyn_demo_sql_function.CLASSdemoDEFINITION.PUBLICSECTION.CLASS-METHODSmain.ENDCLASS.CLASSde...原创 2019-01-04 12:14:45 · 957 阅读 · 0 评论 -
ABAP-Native SQL
Native SQL允许你针对数据库来使用原生的SQL,这些SQL可能是标准的SQL,也可以是某数据库特定的SQL。如果使用database-specific SQL语句,则数据库不能更换,否则请使用Open SQL。本地SQL会绕过R/3 database interface,操作时不会记录日志,不会同步应用服务器上的database buffer。另外,使用ABAP Dictiona...转载 2019-03-21 10:00:14 · 2283 阅读 · 0 评论 -
ABAP同程序下多个屏幕的布局处理
ABAP同程序下多个屏幕的布局处理通过I_SAVE参数可以保存ALV的LAYOUT布局,但是如果同一个程序内存在多个屏幕,且单单设置I_SAVE参数则用户保存的布局并不会应为屏幕不同而有所区分,而且整个程序只能保存一个缺省布局解决的方法是通过IS_VARIANT参数来区分不同的屏幕,这里需要输入程序名和用以区分屏幕的处理号IS_VARIANT-REPORT=SY-REPI...原创 2019-09-27 10:47:22 · 2050 阅读 · 0 评论 -
ABAP 金额大写使用SPELL_AMOUNT 无法转换小数位的解决方法
ABAP 金额大写使用SPELL_AMOUNT 无法转换小数位的解决方法当使用SPELL_AMOUNT函数转换金额大写时会发现小数位会被忽略这里我们需要参考SPELL_AMOUNT自行创建一个转换函数,其代码如下FUNCTIONYNF_SPELL_AMOUNT.*"----------------------------------------------------...原创 2019-09-24 17:21:30 · 1288 阅读 · 0 评论 -
ABAP 字符串连接的三种常用方法
*&---------------------------------------------------------------------**&ReportYN_CHAR_TEST01*&---------------------------------------------------------------------**&*&--------...原创 2019-09-20 08:51:12 · 4331 阅读 · 0 评论 -
ABAP离线帮助文档下载
ABAP离线帮助文档下载登陆系统使用tcode-abapdocu,进入ABAP关键字文档点击图标并选择完整文档下载,选择保存目录后点击执行即可原创 2019-08-07 10:00:32 · 847 阅读 · 0 评论 -
ABAP-使用XLSX Workbench导出ALV_TREE
通过事务码-ZXLWB_WORKBENCH启动Workbench,输入名称并创建一个Form点击保存按钮以保存当前Form点击Name of the context将CL_SALV_TREE 分配给context选择Auto选择一个范围,点击Area in the template成功之后可以看到模板的范围已经设定好最后点击激活按钮复制DEMO程...原创 2019-07-23 15:30:38 · 4242 阅读 · 0 评论 -
ABAP xlsx格式EXCEL文件导出(非OLE或DOI方式)
*&---------------------------------------------------------------------**&ReportYN_XLSX_TEST*&---------------------------------------------------------------------**&*&----------...原创 2019-07-22 09:41:57 · 1936 阅读 · 0 评论 -
OOALV的基本实现步骤
OOALV的基本实现步骤首先要引用OOalv相关类:(分隔器等其他相关类本文不涉及)cl_gui_alv_grid & cl_gui_custom_container创建屏幕100并创建container在100屏幕的PBO中实例化container 和ALV_GRID创建event类创建所需要的事件方法DEFINITION部分不涉及继承,直接...原创 2018-07-30 11:22:22 · 12458 阅读 · 0 评论 -
SAP为原始语言为EN的报表创建中文的文本元素
有些时候我们需要复制一些标准程序用于修改后作为新功能使用,这些复制出来的程序往往以英文作为原始系统,所以当这些程序在维护文本元素时,只能通过翻译的方式维护如中文等其他国家语言的文本,具体操作如下:选择路径:转到->文本元素首先为元素维护英文下的文本之后选择路径:转到->翻译选择目标语言为中文找到元素并维护中文翻译保存后其图标由红色变为黄色...原创 2019-05-23 08:57:17 · 2757 阅读 · 0 评论 -
SAP 获取批次信息函数(MSC3N)
在SAP系统中一般通过tcode-MSC3N来查看批次信息而要在ABAP程序中获取批次信息则需要调用两个函数:VB_BATCH_2_CLASS_OBJECTBAPI_OBJCL_GETDETAIL将这两个函数串联使用即可VB_BATCH_2_CLASS_OBJECT:BAPI_OBJCL_GETDETAIL:CHARACT_DESCR 为批次信息的描述...原创 2019-05-22 09:40:21 · 4078 阅读 · 0 评论 -
ABAP日期函数总结
日期、时间验证DATE_CHECK_PLAUSIBILITY:检查一个日期是否是有效格式,如果不是有效日期,则报异常:CALL FUNCTION'DATE_CHECK_PLAUSIBILITY'EXPORTINGdate='20110229'EXCEPTIONS plausibility_check_failed...转载 2019-03-25 10:51:20 · 6610 阅读 · 0 评论 -
ABAP常用事务码
SE16N业务顾问表数据查询工具 日志分析 SM13:查看Update Table更新(当使用V3更新时) ...转载 2019-03-25 10:44:45 · 837 阅读 · 0 评论 -
SAP-SE78上传LOGO
SAP-SE78上传LOGO首先调整LOGO图片的尺寸并将其保存为.bmp格式,这里利用画图软件调整图片打开事物码SE78,选中一种格式并选中路径上传图片在Smartforms中引用上传的LOGO预览一下:...原创 2019-03-25 10:26:51 · 2476 阅读 · 0 评论 -
ABAP 正则表达式(第一部分)
*&---------------------------------------------------------------------**&ReportYN_REGEX_DEMO_01*&---------------------------------------------------------------------**&Author...原创 2019-03-18 11:45:18 · 711 阅读 · 0 评论 -
ABAP-Open SQL详解
只有标准SQL的DML有对应的Open SQL,只有SELECT、INSERT, UPDATE, DELETE有对应的Open SQL。Native SQL不会用到缓存,会直接发送给数据库,而不会经过ABAP数据访问层。除开DML,它一般用于DDL、DCL,主要用来维护数据库表ABAP中的Database Interface层负责将Open SQL转换成相应的数据库所...转载 2019-03-21 10:04:39 · 4476 阅读 · 0 评论 -
ABAP 正则表达式(第二部分)
*&---------------------------------------------------------------------**&ReportYN_REGEX_DEMO_02*&---------------------------------------------------------------------**&Author...原创 2019-03-21 09:40:54 · 390 阅读 · 0 评论 -
ABAP-数据类型
ABAP-基本数据类型 类型 长度 初始值 说明 D 8 '00000000' 日期型 格式: YYYYMMDD I 4 0 整型(十进制为十位) ...原创 2019-03-12 10:36:57 · 1958 阅读 · 0 评论 -
ABAP-正则表达式(详解)
正则表达式ABAP中可以使用regex的地方除了下面两个语句可以使用regex外:FINDREPLACE下面主函数的参数也可以使用regex:count()contains()find()match()matches()replace()substring()另外,还有两个类也可以使用regex:CL_ABAP_REGEXCL_ABAP_MATCHER正则...转载 2019-03-20 10:14:43 · 3128 阅读 · 0 评论 -
ABAP-Field Symbol用法介绍
ABAP-Field Symbol用法介绍*&---------------------------------------------------------------------**&ReportYN_FS01*&---------------------------------------------------------------------**&am...原创 2019-03-11 12:02:47 · 927 阅读 · 0 评论 -
ABAP-PP获取生产订单状态数据
ABAP-PP获取生产订单状态数据事物码coois中生产订单的状态可以通过以下方式获取,FUNCTION : 'STATUS_TEXT_EDIT'通过订单对象号可以直接获取状态文本,参数赋值如下:CALLFUNCTION'STATUS_TEXT_EDIT'EXPORTINGFLG_USER_STAT...原创 2019-03-19 14:57:59 · 1360 阅读 · 0 评论 -
ABAP-逻辑数据库
逻辑数据库提供了另外一种获得数据的方式,它可以代替Open SQL语句从数据库中读取数据。LDB不是一种可以进行数据存储的物理上的数据库,而是ABAP报表程序设计中用到的一种事先定义好了的数据库读取程序。可以通过以下两种方式打开LDB编辑器:lSE36、SLDBl可以通过LDB的GOTO菜单来在LDB的各组件之间进行切换:创建新的LDB时,LDB的...转载 2019-03-19 09:11:13 · 6363 阅读 · 1 评论 -
ABAP面试问题汇总(第一部分)
问题一:锁对象(Lock Object)和 FM(Function Module)激活锁定对象时,产生的 FM 的名字是什么?答案:首先要在 ABAP 字典中创建锁对象,然后才能在 ABAP 程序中设锁。创建锁对象时,系统会自动生成两个 FM 来进行锁管理。用于设锁的 FM 为:ENQUEUE_<锁对象名>。它用于在锁表(Lock Table)中生成一个锁项(Lock Entr...转载 2019-03-19 09:27:21 · 1098 阅读 · 0 评论 -
ABAP面试问题汇总(第二部分)
Q1.什么是授权对象?在 ABAP 程序中使用哪条语句进行授权检查?答案:授权对象由一组字段组成,这些字段中的值将被用于进行授权检查。ABAP 程序中使用 AUTHORITY-CHECK 语句根据授权对象进行授权检查。在 AUTHORITY-CHECK 语句中,必须指明授权对象的所有字段,但有一个例外,可以用 DUMMY 关键字来绕过某个字段的检查。一个授权对象中最多可以定义 10 个字段...转载 2019-03-19 09:31:46 · 4367 阅读 · 0 评论