• SAP:增强中用commit和wait up会导致操作异常


    参考案例:CO01中我们需要在执行过程中有个写表的操作,但是不能直接commit work,当然也不能rollback work,所以此时我们需要重新开启一个进场去执行,包括wait up 也有提交的操作,这几种语法在增强中还是得慎用。
    CO01报错:
    在这里插入图片描述
    此时我们可以通过另外一种办法去实现:
    ![在这里插入图片描述](https://img-blog.csdnimg.cn/06959a689d6d4d4196e04d3a36eaaf3f.png

      DATA:lv_task TYPE c VALUE 'COMMIT'.
      CALL FUNCTION 'BAPI_TRANSACTION_COMMIT' STARTING NEW TASK lv_task
         EXPORTING
           wait = 'X'.
    
    • 1
    • 2
    • 3
    • 4

    如果是wait up语法,可以改为:

      CALL FUNCTION 'ENQUE_SLEEP'
    
          EXPORTING
    
            seconds = 1
    
          EXCEPTIONS
    
            OTHERS  = 2.
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9

    提交数据库方式: 1、显示提交。是指使用commit work或者这条语句触发的提交(包含封装这条语句的function
    module,如DB_commit, bapi_transaction_commit等)。

    2、隐式提交。如

    1、对话屏幕结束时(跳转另一屏幕)。如call screen、CALL TRANSACTION or SUBMIT
    .

    2、同步或者异步远程调用RFC.

    CALL FUNCTION func DESTINATION dest

    (在DESTINATION不省略的情况下,且dest取值又不为SPACE,则函数一定要是RFC函数才能采用此方式进行远程同步调用)

    CALL FUNCTION func STARTING NEW TASK DESTINATION dest taskname

    异步调用时不能有IMPORTING参数;函数一定要是RFC函数才能采用异步调用;只要有STARTING NEW
    TASK选项,即为异步调用;如果是异步调用同一目标端的RFC函数,则可以省略DESTINATION

    但RFC事务调用不会触发隐式提交:

    CALL FUNCTION func IN BACKGROUND TASK DESTINATION dest

    (函数一定要为RFC函数,且要通过Commit
    Work语句显示提交后,才会去执行,否则不会执行;如果是同一目标端的RFC函数,则可以省略DESTINATION)

    3、WAIT UNTIL log_exp [UP TO sec SECONDS]语句

    因为 WAIT UP 语句有提交 数据库 的作用,所以在增强里面是禁止使用 WAIT UP 语句的,可以如下:WAIT UP TO 1
    SECOND.

       改为:
    
    • 1

    CALL FUNCTION ‘ENQUE_SLEEP’

      EXPORTING
    
        seconds = 1
    
      EXCEPTIONS
    
        OTHERS  = 2.
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7

    4、消息输出,如打印E,I,W类型的消息

  • 相关阅读:
    品质主管的面试题目
    计算机视觉专家:如何从C++转Python
    代码改成多线程,竟有 这些问题
    整理一次python 编程遇到的报错(1)(c/s通信相关)
    APP产品经理岗位的具体内容(合集)
    yolov作者简介
    Learn Prompt- Midjourney 图片生成:Image Prompts
    万物云原生下的服务进化
    Facebook社媒营销的5大技巧,迅速提高独立站转化率!
    kafka安装
  • 原文地址:https://blog.csdn.net/weixin_43734184/article/details/126240746