abap

ABAP笔记1

℡╲_俬逩灬. 提交于 2020-03-09 02:55:21
1. 基本数据类型: C : 1~65535 byte,默认长度为1,初始值为space,字符串编辑不允许换行 D : 日期型,8byte 默认值‘00000000’,最大 9999/12/31 T :时间型,6byte 默认值 ‘000000’ N:数值组成的字符串型,1-65535byte,默认每个位上都是'0',设定前置0时很方便,能计算,但是不能参与负数计算 I :整型,-2^31~2^31-1,默认值为0 F :浮点型,8byte,默认0,可精确到小数点后17位,若为小数,则用引号,几乎不使用,一般用P类型 X : 十六进制,1-65535byte,若值是字母,必须大写,在写文件时,字符串换行 P : packed数,1-16byte,默认值为0,赋值需加引号,赋值长度 = 定义长 * 2 - 1 若L_NUM(3) TYPE P decimals 2,则长度为 3 * 2 - 1 = 5,即小数个位为2,整数位为3。 最多有14位小数位,则最多整数位=2*16-1-14=17位。若小数位超出长度,则按四舍五入去掉多余,若整数位超出长度则程序报错 2. 定义时Type 跟 LIKE 区别: TYPE 后跟类型,8种基本类型或数据元素 LIKE 后跟变量,或数据库字段名,如T001-BUKRS 3. SY-INDEX 系统计数器 SY-DBCNT 符合条件条目数 SY

SAP ABAP DELETE用法

♀尐吖头ヾ 提交于 2020-03-04 23:57:38
4.1 要使用索引删除行 要使用索引删除行,请 使用有 INDEX 选项的 DELETE 语句,用法 如下: DELETE INDEX . 如果使用 INDEX 选项,则从 ITAB 中删除索引 为 的行。删除 行之后,下 面行的索引减1。 如果操作成 功,则将 SY-SUBRC 设置为0。否则,如果 不存在索引 为 的行,则 SY-SUBRC 包含 4。 DELETE ITAB INDEX: 2, 3, 4. 4.2 要删除邻近重复条目 DELETE ADJACENT DUPLICATES FROM [COMPARING ]. 系统从内表 中删除所有邻近重复条 目。 DATA IT_PRINT_001 LIKE 你的内表名 OCCURS 0 WITH HEADER LINE. IT_PRINT_001[] = 你的内表名[]. 排序:SORT IT_PRINT_001. 删除掉重复内容:DELETE ADJACENT DUPLICATES FROM IT_PRINT_001 COMPARING ALL FIELDS. 如果是想删除某个字段重复的行,可以用该字段名代替“ALL FIELDS”。 4.3 删除一组选定行 DELETE [FROM ] [TO ] [WHERE< condition>]. 用户必须至 少指定三个 选项之一。如果使用没 有 WHERE 选项的该语句,则系统

abap使用函数去前导0,或添加前导0

倖福魔咒の 提交于 2020-03-04 18:14:02
【添加前导0】 LOOP AT lt_vkorg INTO DATA(ls_vkorg). ls_vkorg-vkorg = |{ ls_vkorg-vkorg ALPHA = IN }|. MODIFY lt_vkorg FROM ls_vkorg. ENDLOOP. 【去除前导0】 LOOP AT gt_data INTO gs_data. SHIFT gs_data-lifnr LEFT DELETING LEADING '0'. MODIFY gt_data FROM gs_data. CLEAR gs_data. ENDLOOP. *加上p_in的前导零 CALL FUNCTION 'CONVERSION_EXIT_ALPHA_INPUT' EXPORTING input = p_in IMPORTING output = p_in. *去除p_out的前导零 CALL FUNCTION 'CONVERSION_EXIT_ALPHA_OUTPUT' EXPORTING input = p_out IMPORTING output = p_out. 来源: CSDN 作者: leo.ouyan 链接: https://blog.csdn.net/only_oy/article/details/104655570

ASSIGN fails with variable from debugger path

夙愿已清 提交于 2020-03-04 15:35:35
问题 I am trying to assign the value of this stucture path to a fieldsymbol, but this path does not work because it has a table in it's path. But with in the debugger this value of this path is shown correctly. Is there a way to dynamically assign a component of a table line to a fieldsymbol, by passing one path? If not then I will just read the table line and then use the path to get the wanted value. ls_struct (Struct) - SUPPLYCHAINTRADETRANSACTION (Struct) - INCL_SUPP_CHAIN_ITEM (Table) -

ASSIGN fails with variable from debugger path

主宰稳场 提交于 2020-03-04 15:35:12
问题 I am trying to assign the value of this stucture path to a fieldsymbol, but this path does not work because it has a table in it's path. But with in the debugger this value of this path is shown correctly. Is there a way to dynamically assign a component of a table line to a fieldsymbol, by passing one path? If not then I will just read the table line and then use the path to get the wanted value. ls_struct (Struct) - SUPPLYCHAINTRADETRANSACTION (Struct) - INCL_SUPP_CHAIN_ITEM (Table) -

ABAP Netweaver, SAP Cloud Platform和Kubernetes的用户区分

我的未来我决定 提交于 2020-03-03 19:21:09
ABAP (1) Dialog: Individual, interactive system access. (2) System: Background processing and communication within a system (such as RFC users for ALE, Workflow, TMS, and CUA). (3) Communication:Dialog-free communication for external RFC calls. (4) Service: Dialog user available to a larger, anonymous group of users. (5) Reference: General, non-person related users that allows the assignment of additional identical authorizations, such as for Internet users created with transaction SU01. No logon is possible. SAP Cloud Platform Business user vs technical user: Kubernetes 也有User Account和Service

【测试】ABAP发送HTML格式邮件FM

最后都变了- 提交于 2020-03-01 15:43:46
ABAP邮件发送Function 具体如何实现我们看如下FM: 输入参数: I_SUBJECT:内容的简短描述 IT_MESSAGE_BODY:邮件主体部分(convert string to table) IT_ATTACHMENTS:附件内容 I_SENDER_MAIL:发送者的电子邮件地址 I_ATTMSG_CHECK:邮件类型 输出参数: E_RESULT:Boolean Variable (X=True, -=False, Space=Unknown) 传输内表: RECIPIENTS:接收者的电子邮件地址(可多人) Source Code: FUNCTION ZCMF_SEND_MAIL. *"---------------------------------------------------------------------- *" IMPORTING *" REFERENCE(I_SUBJECT) TYPE SO_OBJ_DES *" REFERENCE(IT_MESSAGE_BODY) TYPE BCSY_TEXT *" REFERENCE(IT_ATTACHMENTS) TYPE RMPS_T_POST_CONTENT OPTIONAL *" VALUE(I_SENDER_MAIL) TYPE ADR6-SMTP_ADDR OPTIONAL *" VALUE

SAP ABAP, Fiori, Android和Hybris里的异步操作

假如想象 提交于 2020-03-01 13:15:30
ABAP 其实ABAP的编程范式相对其他语言比较简单,没有太多异步操作。除了STARTING NEW TASK可以实现异步调用。 Use ABAP Multi-Thread programming to deal with a real performance issue: https://blogs.sap.com/2017/02/10/use-abap-multi-thread-programming-to-deal-with-a-real-performance-issue/ Fiori 我们做Fiori开发的时候,处理过performance的incident。一个simple operation的roundtrip number不能大于3。2个几乎同时发出的异步操作算1个roundtrip。Fiori的best practice也是尽量用异步操作。 Android 成都Android开发团队2011~2013参与了Customer Briefing app的开发。如果在UI线程里访问了web resource,容易遇到ANR Android Not response的exception。 我记得我当时编程时只要在UI线程做这些事情,API调用会立即报错。 Hybris 看Hybris log就知道了,Hybris服务end user请求通过一个线程池来完成

SAP ABAP SQL的execution plan和cache

空扰寡人 提交于 2020-02-28 22:09:37
我在SE38里执行这段open SQL: 因为我在OPEN SQL里没有使用IGNORE_PLAN_CACHE这个hint, 所以execution plan会存储在表M_SQL_PLAN_CACHE里。这个表的PREPARATION_TIME field就包含了statement的preparation时间。 要获取更多Jerry的原创文章,请关注公众号"汪子熙": 来源: CSDN 作者: 汪子熙 链接: https://blog.csdn.net/i042416/article/details/104563922

SAP ABAP, Fiori, Android和Hybris里的异步操作

痞子三分冷 提交于 2020-02-28 14:26:20
ABAP 其实ABAP的编程范式相对其他语言比较简单,没有太多异步操作。除了STARTING NEW TASK可以实现异步调用。 Use ABAP Multi-Thread programming to deal with a real performance issue: https://blogs.sap.com/2017/02/10/use-abap-multi-thread-programming-to-deal-with-a-real-performance-issue/ Fiori 我们做Fiori开发的时候,处理过performance的incident。一个simple operation的roundtrip number不能大于3。2个几乎同时发出的异步操作算1个roundtrip。Fiori的best practice也是尽量用异步操作。 Android 成都Android开发团队2011~2013参与了Customer Briefing app的开发。如果在UI线程里访问了web resource,容易遇到ANR Android Not response的exception。 我记得我当时编程时只要在UI线程做这些事情,API调用会立即报错。 Hybris 看Hybris log就知道了,Hybris服务end user请求通过一个线程池来完成