iis服务器助手广告广告
返回顶部
首页 > 资讯 > 精选 >怎么使用ABAP提高工作效率
  • 753
分享到

怎么使用ABAP提高工作效率

2023-06-04 04:06:58 753人浏览 安东尼
摘要

本篇内容主要讲解“怎么使用ABAP提高工作效率”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“怎么使用ABAP提高工作效率”吧!(1) 直接批量生成数据到ABAP内表里:* 2017-05-14

本篇内容主要讲解“怎么使用ABAP提高工作效率”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“怎么使用ABAP提高工作效率”吧!

(1) 直接批量生成数据到ABAP内表里:

* 2017-05-14 7:17PM in Xun's house, Wiesloch

INSERT demo_join1 FROM TABLE @( VALUE #(

( a = 'a1' b = 'b1' c = 'c1' d = 'uu' )

( a = 'a2' b = 'b2' c = 'c2' d = 'uu' )

( a = 'a3' b = 'b3' c = 'c3' d = 'vv' )

( a = 'a4' b = 'b4' c = 'c4' d = 'ww' ) ) ).

(2) 采用内联方式遍历ABAP内表:

DATA address_annos TYPE STANDARD TABLE OF field_anno-annoname

WITH EMPTY KEY.

address_annos = VALUE #(

( 'SEMANTICS.NAME.FULLNAME' )

( 'SEMANTICS.ADDRESS.STREET' )

( 'SEMANTICS.ADDRESS.CITY' )

( 'SEMANTICS.ADDRESS.ZIPCODE' )

( 'SEMANTICS.ADDRESS.COUNTRY' ) ).

DATA address_components TYPE STANDARD TABLE OF field_anno-fieldname

WITH EMPTY KEY.

address_components = VALUE #(

FOR address_anno IN address_annos

( VALUE #( fieldannos[ annoname = address_anno ]-fieldname

DEFAULT '---' ) ) ).

(3) 两个内表间数据的复制,两个内表的列结构可以不同,开发人员需要额外传入一个映射表,告诉corresponding关键字,源内表的哪一列应该赋到目标内表的哪一列。

* This is exactly what I want!!

REPORT demo_corresponding_vs_for.

CLASS demo DEFINITioN.

PUBLIC SECTION.

CLASS-METHODS:

main,

class_constructor.

PRIVATE SECTION.

TYPES:

BEGIN OF struct,

carrier TYPE spfli-carrid,

connection TYPE spfli-connid,

departure TYPE spfli-cityfrom,

destination TYPE spfli-cityto,

END OF struct.

CLASS-DATA:

itab TYPE HASHED TABLE OF spfli

WITH UNIQUE KEY carrid connid,

result1 TYPE HASHED TABLE OF struct

WITH UNIQUE KEY carrier connection,

result2 TYPE HASHED TABLE OF struct

WITH UNIQUE KEY carrier connection,

result3 TYPE HASHED TABLE OF struct

WITH UNIQUE KEY carrier connection,

in TYPE REF TO if_demo_input,

out TYPE REF TO if_demo_output.

ENDCLASS.

CLASS demo IMPLEMENTATION.

METHOD main.

DATA(iterations) = 10.

in->request( CHANGING field = iterations ).

DO iterations TIMES.

DATA t1 TYPE i.

GET RUN TIME FIELD DATA(t11).

result1 = CORRESPONDING #(

itab MAPPING carrier = carrid

connection = connid

departure = cityfrom

destination = cityto ).

GET RUN TIME FIELD DATA(t12).

t1 = t1 + t12 - t11.

DATA t2 TYPE i.

GET RUN TIME FIELD DATA(t21).

result2 = VALUE #( FOR wa IN itab ( carrier = wa-carrid

connection = wa-connid

departure = wa-cityfrom

destination = wa-cityto ) ).

GET RUN TIME FIELD DATA(t22).

t2 = t2 + t22 - t21.

DATA t3 TYPE i.

GET RUN TIME FIELD DATA(t31).

result3 = VALUE #( FOR wa IN itab (

CORRESPONDING #(

wa MAPPING carrier = carrid

connection = connid

departure = cityfrom

destination = cityto ) ) ).

GET RUN TIME FIELD DATA(t32).

t3 = t3 + t32 - t31.

ENDDO.

IF result1 = result2 AND result1 = result3.

out->write(

|CORRESPONDING: {

CONV decfloat16( t1 / iterations )

WIDTH = 10 ALIGN = RIGHT } Microseconds\n| &&

|FOR: {

CONV decfloat16( t2 / iterations )

WIDTH = 10 ALIGN = RIGHT } Microseconds\n| &&

|FOR CORRESPONDING: {

CONV decfloat16( t3 / iterations )

WIDTH = 10 ALIGN = RIGHT } Microseconds\n|

)->line(

)->display( result1 ).

ELSE.

out->display( `What?` ).

ENDIF.

ENDMETHOD.

METHOD class_constructor.

in = cl_demo_input=>new( ).

out = cl_demo_output=>new( ).

SELECT *

FROM spfli

INTO TABLE @itab.

ENDMETHOD.

ENDCLASS.

START-OF-SELECTION.

demo=>main( ).

(4) DISCARDING DUPLICATES的用法

REPORT demo_corresponding_duplicates.

CLASS demo DEFINITION.

PUBLIC SECTION.

CLASS-METHODS main.

ENDCLASS.

CLASS demo IMPLEMENTATION.

METHOD main.

TYPES:

BEGIN OF line,

a1 TYPE i,

a2 TYPE i,

END OF line,

ntab1 TYPE STANDARD TABLE OF line WITH EMPTY KEY,

ntab2 TYPE SORTED TABLE OF line WITH UNIQUE KEY a1,

BEGIN OF line1,

x1 TYPE i,

x2 TYPE ntab1,

END OF line1,

BEGIN OF line2,

y1 TYPE i,

y2 TYPE ntab2,

END OF line2,

itab1 TYPE STANDARD TABLE OF line1 WITH EMPTY KEY,

itab2 TYPE SORTED TABLE OF line2 WITH UNIQUE KEY y1.

DATA(itab1) =

VALUE itab1( ( x1 = 1 x2 = VALUE #( ( a1 = 1 a2 = 2 )

( a1 = 3 a2 = 4 ) ) )

( x1 = 2 x2 = VALUE #( ( a1 = 1 a2 = 2 )

( a1 = 1 a2 = 4 ) ) )

( x1 = 1 x2 = VALUE #( ( a1 = 1 a2 = 2 )

( a1 = 3 a2 = 4 ) ) ) ).

DATA(itab2) =

CORRESPONDING itab2( itab1 DISCARDING DUPLICATES

MAPPING y1 = x1

y2 = x2 DISCARDING DUPLICATES ).

DATA(out) = cl_demo_output=>new( ).

LOOP AT itab2 INTO DATA(wa).

out->write( wa-y1

)->write( wa-y2

)->line( ).

ENDLOOP.

out->display( ).

ENDMETHOD.

ENDCLASS.

START-OF-SELECTION.

demo=>main( ).

(5) DESCRIBE DISTANCE BETWEEN

REPORT demo_describe_distance.

CLASS demo DEFINITION.

PUBLIC SECTION.

CLASS-METHODS main.

ENDCLASS.

CLASS demo IMPLEMENTATION.

METHOD main.

DATA: BEGIN OF struc,

comp1 TYPE i,

comp2 TYPE x LENGTH 1,

comp3 TYPE c LENGTH 4 VALUE 'Hey',

comp4 TYPE c LENGTH 4 VALUE 'you!',

comp5 TYPE x,

END OF struc.

FIELD-SYMBOLS: <hex> TYPE x,

<result> TYPE c.

DESCRIBE DISTANCE BETWEEN:

struc AND struc-comp3 INTO DATA(off) IN BYTE MODE,

struc-comp3 AND struc-comp5 INTO DATA(len) IN BYTE MODE.

ASSIGN: struc TO <hex> CASTING,

<hex>+off(len) TO <result> CASTING.

cl_demo_output=>display(

|Offset off is { off }.\n| &&

|Length len is { len }.\n| &&

|<result> points to "{ <result> }".| ).

ENDMETHOD.

ENDCLASS.

START-OF-SELECTION.

demo=>main( ).

(6) 全动态方式调用RFC

REPORT demo_rfc_dynamic_dest.

CLASS demo DEFINITION.

PUBLIC SECTION.

CLASS-METHODS:

main.

ENDCLASS.

CLASS demo IMPLEMENTATION.

METHOD main.

DATA:

val_in TYPE string VALUE `val_in`,

val_in_out TYPE string VALUE `val_in_out`,

val_out TYPE string,

msg TYPE c LENGTH 80.

IF sy-uname IS INITIAL.

cl_demo_output=>display(

|Example not possible for anonymous user| ).

RETURN.

ENDIF.

DATA(in) = cl_demo_input=>new( ).

DATA(client) = sy-mandt.

in->add_field( CHANGING field = client ).

DATA(uname) = sy-uname.

in->add_field( CHANGING field = uname ).

DATA(langu) = sy-langu.

in->add_field( CHANGING field = langu ).

DATA(sysid) = sy-sysid.

in->add_field( CHANGING field = sysid ).

DATA(host) = CONV rfchost( sy-host ).

in->add_field( CHANGING field = host ).

DATA(group) = CONV rfcload( 'PUBLIC' ).

in->add_field( CHANGING field = group ).

in->request( ).

DATA(dest) = cl_dynamic_destination=>create_rfc_destination(

loGon_client = client

logon_user = uname

logon_language = langu

sid = sysid

server = host

group = group ).

CALL FUNCTION 'DEMO_RFM_PARAMETERS'

DESTINATION dest

EXPORTING

p_in = val_in

IMPORTING

p_out = val_out

CHANGING

p_in_out = val_in_out

EXCEPTIONS

system_failure = 2 MESSAGE msg

communication_failure = 4 MESSAGE msg.

IF sy-subrc <> 0.

cl_demo_output=>display( |Error when calling sRFC.\n{ msg }| ).

RETURN.

ENDIF.

cl_demo_output=>display( |{ val_out }\n{ val_in_out }| ).

ENDMETHOD.

ENDCLASS.

START-OF-SELECTION.

demo=>main( ).

(7) 内联函数line_index

REPORT.

CLASS demo DEFINITION.

PUBLIC SECTION.

CLASS-METHODS: class_constructor,

main.

PRIVATE SECTION.

CLASS-DATA

flight_tab

TYPE STANDARD TABLE OF spfli

WITH EMPTY KEY

WITH UNIQUE HASHED KEY id COMPONENTS carrid connid

WITH NON-UNIQUE SORTED KEY cities COMPONENTS cityfrom cityto.

ENDCLASS.

CLASS demo IMPLEMENTATION.

METHOD main.

DATA idx TYPE TABLE OF i.

idx = VALUE #(

( line_index( flight_tab[ carrid = 'UA'

connid = '0941'

##primkey[id] ] ) )

( line_index( flight_tab[ KEY id

carrid = 'UA'

connid = '0941' ] ) )

( line_index( flight_tab[ KEY id

carrid = 'xx'

connid = 'yyyy' ] ) )

( line_index( flight_tab[ cityfrom = 'FRANKFURT'

cityto = 'NEW YORK'

##primkey[cities] ] ) )

( line_index( flight_tab[ KEY cities

cityfrom = 'FRANKFURT'

cityto = 'NEW YORK' ] ) )

( line_index( flight_tab[ KEY cities

cityfrom = 'xxxxxxxx'

cityto = 'yyyyyyyy' ] ) ) ).

cl_demo_output=>display( idx ).

ENDMETHOD.

METHOD class_constructor.

SELECT *

FROM spfli

ORDER BY carrid, connid

INTO TABLE @flight_tab.

ENDMETHOD.

ENDCLASS.

START-OF-SELECTION.

demo=>main( ).

到此,相信大家对“怎么使用ABAP提高工作效率”有了更深的了解,不妨来实际操作一番吧!这里是编程网网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!

--结束END--

本文标题: 怎么使用ABAP提高工作效率

本文链接: https://www.lsjlt.com/news/236379.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • 怎么使用ABAP提高工作效率
    本篇内容主要讲解“怎么使用ABAP提高工作效率”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“怎么使用ABAP提高工作效率”吧!(1) 直接批量生成数据到ABAP内表里:* 2017-05-14 ...
    99+
    2023-06-04
  • SEO要怎么提高工作效率
    本篇内容介绍了“SEO要怎么提高工作效率”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!1、SEO靠坚持,执行很重要!   对于SEO,大家都...
    99+
    2023-06-12
  • WordPress中怎么利用Markdown提高工作效率
    这篇文章给大家介绍WordPress中怎么利用Markdown提高工作效率,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。Markdown 是一种简单的标记语言,旨在帮助你花费更小的代价...
    99+
    2024-04-02
  • 如何使用shell命令提高工作效率
    这篇文章主要介绍了如何使用shell命令提高工作效率,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。一、切换目录注意:当前用户是xiaochao,系统为centos6,并且,s...
    99+
    2023-06-09
  • 汇总display使用方法来提高工作效率
    提升工作效率的display用法汇总 随着科技的不断进步和信息技术的蓬勃发展,工作方式和环境也在不断地发生变化。在现代工作中,display(显示器)已成为我们最常用的工作工具之一。一个高质量的display不仅可以提供清晰的图...
    99+
    2024-02-02
  • 如何使用Java MyBatis拦截器提高工作效率
    小编给大家分享一下如何使用Java MyBatis拦截器提高工作效率,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!场景:在后端服务开发时,现在很流行的框...
    99+
    2023-06-29
  • 怎样提高香港服务器工作效率
    提高香港服务器工作效率的方法:1、通过在线实时的匹配实际负荷容量,提高香港服务器工作效率;2、整合香港服务器的所有资源,将服务器进行虚拟化;3、利用更多的节能设备,来降低香港服务器的功率消耗。具体内容如下:匹配服务器容量与实际负荷即使是最好...
    99+
    2024-04-02
  • unix系统中怎么用终端命令提高工作效率
    本篇内容主要讲解“unix系统中怎么用终端命令提高工作效率”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“unix系统中怎么用终端命令提高工作效率”吧!在终端中反...
    99+
    2024-04-02
  • 低代码工作流提高工作效率的新选择
    在数字化时代,许多企业都在寻找更高效的工作方式。其中一种方法是通过使用低代码工作流来实现。低代码工作流是一种基于规则和流程自动化的技术,能够帮助企业实现自动化处理,从而提高工作效率。本文将详细介绍低代码工作流的概念、优势以及如何应用它。 一...
    99+
    2024-01-26
    工作流 提高工作效率 代码
  • 怎么使用redis提高缓存效率
    以下是一些使用Redis提高缓存效率的方法:1. 设置合适的过期时间:在将数据存储到Redis缓存中时,可以为每个数据设置一个过期时...
    99+
    2023-09-05
    redis
  • Python IDE中如何使用二维码来提高工作效率?
    二维码是一种方便快捷的信息传递方式,可以通过扫描二维码获取到对应的信息。在Python开发中,我们也可以通过使用二维码来提高我们的工作效率。本文将介绍如何在Python IDE中使用二维码来提高工作效率。 一、安装二维码生成库 Pytho...
    99+
    2023-10-30
    ide 数据类型 二维码
  • CRM公文管理提高效率,提升工作质量
    随着数字化转型的深入,企业越来越依赖CRM系统进行业务管理。公文管理是企业日常运营中不可或缺的一部分,也是CRM系统的重要功能之一。本文将详细介绍CRM公文管理的实现方式,以及如何利用CRM系统提高公文管理的效率和质量。 公文管理是企业日常...
    99+
    2023-11-19
    提高效率 公文 质量
  • 18 个 Python 编程技巧,提高工作效率
    目录01 交换变量02 字典推导(Dictionary comprehensions)和集合推导(Set comprehensions)03 计数时使用Counter计数对象。04 ...
    99+
    2024-04-02
  • 如何提高香港服务器工作效率
    提高香港服务器工作效率的方法有:1、将香港服务器进行虚拟化,降低开支并节省空间;2、采用DCIM软件来提升香港服务器管理效率;3、及时更新香港服务器的配置提高服务器工作效率。具体内容如下:虚拟化如果您不想投资额外的香港服务器租用服务,而是希...
    99+
    2024-04-02
  • 学好Java MyBatis拦截器,提高工作效率
    目录场景:1.麻瓜做法2.优雅做法3.什么是拦截器?4.使用拦截器更新审计字段5.自定义拦截器6.配置拦截器插件场景: 在后端服务开发时,现在很流行的框架组合就是SSM(Spring...
    99+
    2024-04-02
  • 怎么使用RelProxy提高Java开发效率
    本篇内容介绍了“怎么使用RelProxy提高Java开发效率”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!RelProxy 旨在通过下列两种...
    99+
    2023-06-17
  • 怎么提高Debug效率
    本篇内容介绍了“怎么提高Debug效率”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!缩小问题范围缩小问题范...
    99+
    2024-04-02
  • 提高效率的Vue指令怎么使用
    这篇文章主要介绍“提高效率的Vue指令怎么使用”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“提高效率的Vue指令怎么使用”文章能帮助大家解决问题。v-model相信大家对v-model并不陌生,简单...
    99+
    2023-07-05
  • 掌握pip命令的高级技巧,提高工作效率
    提高工作效率:掌握 pip 指令的高级用法,需要具体代码示例 在日常的工作中,我们经常会使用到 Python 进行开发和数据分析。而使用 Python 进行开发过程中,安装和管理第三方库是必不可少的一环。而 pip 是 Pyth...
    99+
    2024-02-02
    高级用法 pip指令 提高工作效率 pip命令
  • 这5个console.log()技巧帮你提高工作效率
    1. 使用console.time()和console.timeEnd()来测量代码执行时间:这对于调试和优化代码很有帮助。可以使用...
    99+
    2023-09-20
    工作效率
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作