ABAP使用共享内存访问数据

如下ABAP代码通过从共享内存中读取数据来访问变量LV_XBLNR的值。它还释放了所有在该区域内的锁,并废弃了该区域。如果在访问共享内存时出现错误,则会根据情况抛出不同的异常。

DATA:
    LV_XBLNR TYPE /OPT/VIM_1HEAD-XBLNR.

  DATA: LO_SHMA     TYPE REF TO ZBC_OPENTEXT_SHMA,        "定义一个指向ZBC_OPENTEXT_SHMA类的引用类型变量
        LO_SHMA_CLS TYPE REF TO ZBC_OPENTEXT_SHMA_CLS.

  TRY.

      LO_SHMA = ZBC_OPENTEXT_SHMA=>ATTACH_FOR_READ( ).      "获取对共享内存区的READER锁。这里假设在类ZBC_OPENTEXT_SHMA中实现了ATTACH_FOR_READ方法。
      LV_XBLNR = LO_SHMA->ROOT->GV_XBLNR.                   "读取共享内存中的GV_XBLNR值
      LO_SHMA->DETACH( ).                                   "释放共享内存上的READER锁
      ZBC_OPENTEXT_SHMA=>DETACH_AREA( ).                    "释放区域内的所有锁
      ZBC_OPENTEXT_SHMA=>INVALIDATE_AREA( ).                "使共享内存无效,释放内存空间

    CATCH
      CX_SHM_INCONSISTENT                                  "共享内存不一致
      CX_SHM_NO_ACTIVE_VERSION                             "没有激活版本
      CX_SHM_READ_LOCK_ACTIVE                              "读取锁已激活
      CX_SHM_EXCLUSIVE_LOCK_ACTIVE                         "排他锁已激活
      CX_SHM_PARAMETER_ERROR                               "参数错误
      CX_SHM_CHANGE_LOCK_ACTIVE                            "更改锁已激活
      CX_SALV_MSG                                          "处理与ALV SALV相关的消息时出错
      CX_SHM_WRONG_HANDLE.                                 "句柄错误
  ENDTRY.
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值