ABAP RANGES 在 RFC 的应用示例

写一个RFC,在VK11下,把条件类型是Z907的一些数据输出。

在IMPORT下入参 定义2个

IT_VKORG LIKEA907-VKORG                    销售组织 
IT_KUNNR LIKE  A907-KUNNR                     客户号 


当输入IT_VKOGR 或者 IT_KUNNR 时,或者2个都输入都能获取到数据。 这个看似简单的需求,我确花费了大概1天的时间。

其中卡就卡在:

第一,对ranges基本用法的不理解;

第二,没有进行判断就执行;

第三,对where条件后的 and 和 or 不了解。

下面看看最后正确的做法:

定义ranges

[plain]  view plain  copy
  1. RANGES : s_vkorg FOR itab-vkorg,  
  2.          s_kunnr FOR itab-kunnr.  
  3.   
  4.           IF it_vkorg IS NOT INITIAL.  "一定要判断输入的值是否为空。  
  5.             s_vkorg-sign = 'I'.  
  6.             s_vkorg-option = 'EQ'. " 如果option='EQ'.后面就不需要HIGH  
  7.             s_vkorg-low = it_vkorg.  
  8.             APPEND s_vkorg.  
  9.           ENDIF.  
[plain]  view plain  copy
  1. IF it_kunnr IS NOT INITIAL.  
  2.   s_kunnr-sign = 'I'.  
  3.   s_kunnr-option = 'EQ'.  
  4.   s_kunnr-low = it_kunnr.  
  5.   APPEND s_kunnr.  
  6. ENDIF.  


在WHERE 条件下用IN 

[plain]  view plain  copy
  1. SELECT a~kappl a~kschl a~vkorg  a~kunnr a~knumh a~datab a~datbi b~kbetr b~konwa  
  2.    INTO CORRESPONDING FIELDS OF TABLE itab  
  3.    FROM a907 AS a JOIN konp AS b ON  a~knumh = b~knumh  
  4.    WHERE a~vkorg IN s_vkorg  
  5.      AND a~kunnr IN s_kunnr.  

ranges知识:

RANGES <seltab> FOR <f>.
该语句创建 选择表 <seltab>, 该表参考数 据库表的列 <f> 或内部字段 <f>。选 择表 <seltab> 必须在程序 中填充。不 必在程序中 再用 TABLES 语句声明数 据库表。
RANGES 语句是下列 语句的短格 式:
DATA: BEGIN OF <seltab> OCCURS 10,
         SIGN(1),
         OPTION(2)
         LOW  LIKE <f>,
         HIGH LIKE <f>,
      END OF <seltab>.

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
ABAP中,可以通过执行RFC(远程函数调用)与远程系统进行通信。ABAP可以充当RFC客户端或者RFC服务器。 当ABAP作为RFC客户端时,它可以通过RFC函数模块调用远程系统中的函数,并传递相应的参数。ABAP程序可以使用RFC函数模块通过网络与远程系统通信,以获取或更新远程系统中的数据。在RFC调用期间,ABAP程序会将请求发送到远程系统并等待响应,然后继续执行后续的程序逻辑。 ABAP也可以作为RFC服务器,即提供RFC函数模块供其他系统调用。在这种情况下,ABAP程序充当服务器角色,接收来自其他系统的RFC请求,并执行相应的功能。ABAP程序可以处理来自远程系统的请求,获取所需的数据,并将结果返回给调用方。 ABAP执行RFC的过程中需要注意以下几点: 1. 首先,需要在ABAP程序中调用RFC函数模块,并传递所需的参数。参数应与RFC函数模块的定义一致,以确保正确的数据传递和处理。 2. 在RFC调用期间,需要确保网络连接的可靠性和稳定性。如果网络连接中断或发生错误,可能会导致RFC调用失败或超时。 3. 在处理RFC请求时,需要检查并处理可能的错误和异常情况。合理使用错误处理机制,以确保调用方能够正确处理和处理返回的错误信息。 4. ABAP程序必须具有足够的权限和授权,以执行RFC调用所需的操作。权限问题可能会导致RFC调用失败或访问被拒绝。 总结而言,ABAP可以通过执行RFC与远程系统进行通信,从而实现数据的交互和功能调用。通过合理处理RFC调用过程中的参数传递、网络连接、错误处理和权限控制等问题,可以确保RFC调用的成功执行。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值