zoukankan      html  css  js  c++  java
  • SAP 锁对象

    防止用户操作数据库的并发问题,可以使用锁对象技术。

    se11的最后一个功能是建立锁对象,例如对创建的数据库表加锁,命名可以是"E"+表名。

    名字起好后点创建,输入锁对象短文本(描述),在tables选项中选择要加锁的表名,之后在下面的lock parameter中一般选择"E"(专用,累积),设置好后,一个锁对象就建好了,在lock parameter选项中,系统默认表的所有主键都是锁参数。根据个人需要可以删除不需要的参数。

    之后在程序中,调用CALL FUNCTION 'ENQUEUE_EZPSEINFNR'和CALL FUNCTION 'DEQUEUE_EZPSEINFNR'两函数在程序中加锁和解锁,第一个函数用于在程序操作数据库之前上锁,后一个是程序操作数据库后将锁释放。代码如下:

    CALL FUNCTION 'ENQUEUE_EZPSEINFNR'

    EXPORTING

       mode_zpseinfnr       = 'E'       

       mandt                = sy-mandt 

       proname              = p_maktg

    *   IDNRK                =

       werks                = p_werks

    *   X_PRONAME            = ' '

    *   X_IDNRK              = ' '

    *   X_WERKS              = ' '

       _scope               = '2'

    *   _WAIT                = ' '

    *   _COLLECT             = ' '

    EXCEPTIONS

       foreign_lock         = 1

       system_failure       = 2

       OTHERS               = 3

              .

    IF sy-subrc <> 0.

             uname = sy-msgv1.

             MESSAGE s001 WITH '用户' uname '正在修改此工厂的项目:' p_maktg.

             STOP.

    ENDIF.

    select zpesinfnr....

    ...

    CALL FUNCTION 'DEQUEUE_EZPSEINFNR'

    EXPORTING

       mode_zpseinfnr       = 'E'

       mandt                = sy-mandt

  • 相关阅读:
    HDU 4069 Squiggly Sudoku
    SPOJ 1771 Yet Another NQueen Problem
    POJ 3469 Dual Core CPU
    CF 118E Bertown roads
    URAL 1664 Pipeline Transportation
    POJ 3076 Sudoku
    UVA 10330 Power Transmission
    HDU 1426 Sudoku Killer
    POJ 3074 Sudoku
    HDU 3315 My Brute
  • 原文地址:https://www.cnblogs.com/springzt/p/4043401.html
Copyright © 2011-2022 走看看