ABAP 通过事务码查找对应的BAPI

导读:在开发过程中修改数据时,一般是调用原有的BAPI函数去修改数据,而不是随意使用insert或update语句修改,接下来本文将演示如何通过事务码找到对应的BAPI函数。

以事务码MB21为例:

输入事务码MB21、回车,进入到创建预留界面。

点击系统-状态

双击事务码,找到包名

事务码SE80,输入包名,打开

根据业务:创建预留,应该选择BUS2093

双击打开

双击打开“创建单个预留的BAPI”

完成。

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 以下是在 SAP ABAP 中实现二分查找的代示例: ``` REPORT z_binary_search. DATA: lv_array TYPE STANDARD TABLE OF i, lv_value TYPE i, lv_index TYPE i, lv_found TYPE abap_bool. * 初始化数组 lv_array = VALUE #( (1) (2) (3) (4) (5) ). * 要查找的值 lv_value = 3. * 初始化查找边界 DATA(lv_low) = 1. DATA(lv_high) = lines( lv_array ). * 开始二分查找 WHILE lv_low <= lv_high. lv_index = lv_low + trunc( ( lv_high - lv_low ) / 2 ). IF lv_array[ lv_index ] EQ lv_value. lv_found = abap_true. EXIT. ELSEIF lv_array[ lv_index ] < lv_value. lv_low = lv_index + 1. ELSE. lv_high = lv_index - 1. ENDIF. ENDWHILE. * 输出结果 IF lv_found = abap_true. WRITE:/ '找到了 ', lv_value, ' 在数组中的索引为 ', lv_index. ELSE. WRITE:/ '未找到 ', lv_value, ' 在数组中的索引。'. ENDIF. ``` 该代首先创建一个整数数组 `lv_array`,其中包含 1 到 5 的整数。然后它定义了要查找的值 `lv_value`,以及一个名为 `lv_index` 的变量来保存找到的索引,以及一个布尔变量 `lv_found` 来表示是否找到了该值。接下来,代初始化了查找边界 `lv_low` 和 `lv_high`,开始二分查找。 在每次迭代中,代计算数组的中间索引 `lv_index`,并根据该值与 `lv_value` 的比较结果更新 `lv_low` 或 `lv_high`。如果找到了 `lv_value`,则将 `lv_found` 设置为真,并退出循环。最后,代根据 `lv_found` 的值输出结果。 请注意,此示例仅针对整数数组。如果需要在更复杂的数据结构中进行二分查找,则需要根据情况修改代。 ### 回答2: ABAP是一种面向对象的编程语言,用于开发SAP系统。下面是一个用ABAP语言编写的二分查找示例: DATA: lv_table TYPE STANDARD TABLE OF i WITH DEFAULT KEY, lv_search_value TYPE i VALUE 10, lv_low TYPE i, lv_high TYPE i, lv_middle TYPE i. lv_table = VALUE #( (1), (4), (7), (10), (13), (16), (19) ). SORT lv_table ASCENDING. lv_low = 1. lv_high = LINES( lv_table ). WHILE lv_low <= lv_high. lv_middle = ( lv_low + lv_high ) / 2. IF lv_table[ lv_middle ] = lv_search_value. WRITE: '要查找的数值在表中的索引为', lv_middle. EXIT. ELSEIF lv_table[ lv_middle ] < lv_search_value. lv_low = lv_middle + 1. ELSE. lv_high = lv_middle - 1. ENDIF. ENDWHILE. IF lv_low > lv_high. WRITE: '要查找的数值在表中不存在'. ENDIF. 上面的代首先定义了一个整型的内表lv_table,并初始化了一些数据。然后使用SORT语句对内表进行升序排序。 接下来,定义了变量lv_low和lv_high用于表示查找范围的下界和上界。通过循环,不断更新lv_low和lv_high的值,直到lv_low大于lv_high为止。 在每次循环中,求出当前查找范围的中间索引lv_middle,并将当前索引处的元素与要查找的值进行比较。如果相等,则找到了要查找的值,输出其索引,并使用EXIT语句退出循环。如果当前索引处的值小于要查找的值,则将lv_middle加1,更新lv_low的值;否则,将lv_middle减1,更新lv_high的值。 循环结束后,通过判断lv_low是否大于lv_high,来确定要查找的值是否存在于表中。 ### 回答3: 二分查找是一种高效的查找算法,可以在有序数组中快速定位目标值。在ABAP中,可以使用以下代实现二分查找: 首先,定义一个函数来实现二分查找: ``` FUNCTION binary_search. DATA: lv_result TYPE i, lv_low TYPE i, lv_high TYPE i, lv_mid TYPE i. lv_low = 0. lv_high = lines(p_values) - 1. WHILE lv_low <= lv_high. lv_mid = ( lv_low + lv_high ) / 2. IF p_values[ lv_mid ] = p_target. lv_result = lv_mid. EXIT. ELSEIF p_values[ lv_mid ] < p_target. lv_low = lv_mid + 1. ELSE. lv_high = lv_mid - 1. ENDIF. ENDWHILE. IF lv_result = 0. WRITE: '目标值未找到' . ELSE. WRITE: '目标值的索引为', lv_result . ENDIF. ENDFUNCTION. ``` 在调用函数时,需要传入有序数组 `p_values` 和目标值 `p_target`。函数会返回目标值在数组中的索引位置,如果目标值不存在,则会输出"目标值未找到"。 例如,现有一个有序数组 `lv_array` : ``` DATA: lv_array TYPE TABLE OF i, lv_target TYPE i. lv_array = VALUE #( (1) (2) (3) (4) (5) ). lv_target = 3. CALL FUNCTION 'binary_search' EXPORTING p_values = lv_array p_target = lv_target. ``` 运行代,会输出目标值的索引位置3。 这是一个简单的ABAP二分查找实现。通过每次比较目标值和数组中间元素的大小关系,可以快速缩小查找范围,提高查找效率。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值