• 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类型的消息

  • 相关阅读:
    hot100-课程表
    windows WSL配置cuda,pytorch和jupyter notebook
    尚好房 04_服务拆分
    Python如何正确将“爬虫数据”以json格式进行保存
    面具安装LSP模块时提示 Unzip error错误的解决办法
    jsp汽车租赁管理系统Myeclipse开发sqlserver数据库web结构java编程计算机网页项目
    linux服务器监控性能测试
    AIGC革新,将文字或者LOGO融入AI视频基于PIKA-labs(Python3.10)
    Qt系列-QSplitter使用笔记
    一点点金融 5
  • 原文地址:https://blog.csdn.net/weixin_43734184/article/details/126240746