SAP 销售订单状态修改

news2024/11/24 17:38:17

FM: I_CHANGE_STATUS

代码样例:

FUNCTION zjkdms003.
*"----------------------------------------------------------------------
*"*"本地接口:
*"  IMPORTING
*"     VALUE(I_VBELN) TYPE  VBELN_VA OPTIONAL
*"  EXPORTING
*"     VALUE(E_MSG) TYPE  BAPIRET2
*"----------------------------------------------------------------------
  DATA: lv_objnr   TYPE vbak-objnr,
        lv_objnr_t TYPE jsto-objnr,
        lv_obtyp   TYPE jsto-obtyp,
        lv_stsma   TYPE jsto-stsma,
        lv_stonr   TYPE tj30-stonr,
        lt_status  TYPE TABLE OF jstat,
        ls_status  TYPE jstat,
        lt_tj30    TYPE TABLE OF tj30,
        ls_tj30    TYPE tj30,
        lv_estat1  TYPE tj30-estat,
        lv_estat2  TYPE tj30-estat,
        lv_estat3  TYPE tj30-estat,
        ieinfo     TYPE einfo.

  CLEAR: lv_objnr,
         lv_objnr_t,
         lv_obtyp,
         lv_stsma,
         lv_stonr,
         lt_status,
         ls_status,
         lt_tj30,
         ls_tj30,
         lv_estat1,
         lv_estat2,
         lv_estat3,
         ieinfo.

  CALL FUNCTION 'CONVERSION_EXIT_ALPHA_INPUT'
    EXPORTING
      input  = i_vbeln
    IMPORTING
      output = i_vbeln.

  SELECT SINGLE objnr INTO lv_objnr
    FROM vbak
    WHERE vbeln = i_vbeln.

  IF lv_objnr IS NOT INITIAL.
    lv_objnr_t = lv_objnr.
    CALL FUNCTION 'STATUS_READ'
      EXPORTING
*       CLIENT           = SY-MANDT
        objnr            = lv_objnr_t
*       ONLY_ACTIVE      = ' '
      IMPORTING
        obtyp            = lv_obtyp
        stsma            = lv_stsma
        stonr            = lv_stonr
      TABLES
        status           = lt_status
      EXCEPTIONS
        object_not_found = 1
        OTHERS           = 2.
    IF sy-subrc <> 0.
* Implement suitable error handling here
    ENDIF.

    IF lt_status IS NOT INITIAL.
      SELECT * INTO TABLE lt_tj30
        FROM tj30
        WHERE stsma = lv_stsma.
      SORT lt_tj30 BY estat.

      CLEAR: ls_tj30.
      READ TABLE lt_tj30 INTO ls_tj30 INDEX 1.
      IF sy-subrc = 0.
        lv_estat1 = ls_tj30-estat.
      ENDIF.

      CLEAR: ls_tj30.
      READ TABLE lt_tj30 INTO ls_tj30 INDEX 2.
      IF sy-subrc = 0.
        lv_estat2 = ls_tj30-estat.
      ENDIF.

      CLEAR: ls_tj30.
      READ TABLE lt_tj30 INTO ls_tj30 INDEX 3.
      IF sy-subrc = 0.
        lv_estat3 = ls_tj30-estat.
      ENDIF.

      CALL FUNCTION 'I_CHANGE_STATUS'
        EXPORTING
          objnr          = lv_objnr_t
          estat_inactive = lv_estat1
          estat_active   = lv_estat2
          stsma          = lv_stsma
        EXCEPTIONS
          cannot_update  = 1
          OTHERS         = 2.
      IF sy-subrc <> 0.
* Implement suitable error handling here
      ENDIF.

      IF sy-msgty = 'E' OR sy-msgty = 'A'.
        e_msg-type = sy-msgty.
        e_msg-id = sy-msgid.
        e_msg-number = sy-msgno.
        ieinfo-msgid = sy-msgid.
        ieinfo-msgty = sy-msgty.
        ieinfo-msgno = sy-msgno.
        CALL FUNCTION 'MESSAGE_GET_TEXT'
          EXPORTING
            ieinfo        = ieinfo
            ilangu        = '1'
          IMPORTING
            etext         = e_msg-message
          EXCEPTIONS
            no_t100_found = 1
            OTHERS        = 2.
        IF sy-subrc <> 0.
* Implement suitable error handling here
        ENDIF.
      ELSE.
        e_msg-type = 'S'.
        e_msg-message = '审批成功'.
      ENDIF.

      CALL FUNCTION 'I_CHANGE_STATUS'
        EXPORTING
          objnr          = lv_objnr_t
          estat_inactive = lv_estat2
          estat_active   = lv_estat3
          stsma          = lv_stsma
        EXCEPTIONS
          cannot_update  = 1
          OTHERS         = 2.
      IF sy-subrc <> 0.
* Implement suitable error handling here
      ENDIF.

      IF sy-msgty = 'E' OR sy-msgty = 'A'.
        e_msg-type = sy-msgty.
        e_msg-id = sy-msgid.
        e_msg-number = sy-msgno.
        ieinfo-msgid = sy-msgid.
        ieinfo-msgty = sy-msgty.
        ieinfo-msgno = sy-msgno.
        CALL FUNCTION 'MESSAGE_GET_TEXT'
          EXPORTING
            ieinfo        = ieinfo
            ilangu        = '1'
          IMPORTING
            etext         = e_msg-message
          EXCEPTIONS
            no_t100_found = 1
            OTHERS        = 2.
        IF sy-subrc <> 0.
* Implement suitable error handling here
        ENDIF.
      ELSE.
        e_msg-type = 'S'.
        e_msg-message = '审批成功'.
      ENDIF.

    ENDIF.

  ENDIF.

ENDFUNCTION.

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/717610.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

初中数学知识点-约数倍数

1、约数&#xff08;因数&#xff09;、倍数 整数a除以整数b(b≠0) 除得的商正好是整数而没有余数&#xff0c;我们就说a能被b整除&#xff0c;或b能整除a。 a称为b的倍数&#xff0c;b称为a的约数。约数&#xff0c;又称因数。 2、公约数、最大公约数 几个数公有的约数,叫…

Spark(10):RDD依赖关系

目录 0. 相关文章链接 1. RDD 血缘关系 2. RDD依赖关系 3. RDD窄依赖 6. RDD宽依赖 7. RDD阶段划分 8. RDD阶段划分源码 9. RDD任务划分 0. 相关文章链接 Spark文章汇总 1. RDD 血缘关系 RDD 只支持粗粒度转换&#xff0c;即在大量记录上执行的单个操作。将创建 RDD …

HDLBits刷题笔记7:Circuits.Combinational Logic.Karnaugh Map to Circuit

Karnaugh Map to Circuit 3-variable 实现如下卡诺图&#xff0c;用sop和pos两种方式 化简&#xff1a; module top_module(input a,input b,input c,output out ); // sop和pos相同assign out a | b | c; endmodule4-variable 实现如下卡诺图&#xff0c;用sop和pos两种方…

【RabbitMQ】

一、概念 MQ&#xff08;消息队列&#xff09;&#xff1a;是指在消息传送过程中保存消息的容器&#xff0c;用于分布式系统之间的通信 生产者&#xff1a;是发送消息的用户应用程序。 队列&#xff1a;是存储消息的缓冲区。 消费者&#xff1a;是接收消息的用户应用程序。 1…

前端开发在公司中的位置以及日常工作内容

导读 俗话说的好&#xff0c;不谋全局者不足谋一域。 上一篇文章我们介绍了计算机相关的各种不同方向&#xff0c;相信大家心里也有自己所喜欢的职业&#xff0c;那么今天我们继续讲讲在一个公司中前端开发处于什么样的地位&#xff0c;以及前端的一天都干些什么 普通公司的…

太卷了,阿里一面试官把多年总结的Java八股文完全开源了.......

Java越来越卷了&#xff0c;都快卷成韭菜花了&#xff0c;最近又赶上跳槽的高峰期&#xff0c;好多粉丝&#xff0c;都问我要有没有最新面试题&#xff0c;索性&#xff0c;前一阵子偶然得到一份阿里面试官整理的Java八股文&#xff0c;答案都整理好&#xff0c;整理的《互联网…

【Java基础教程】(二)入门介绍篇 · 下:从JDK下载安装到第一个“Hello World!”程序,解析PATH和CLASSPATH环境变量的妙用~

Java基础教程之入门介绍 下 本节学习目标1️⃣ JDK安装与配置2️⃣ 第一个Java程序&#xff1a;“Hello World!”3️⃣ 环境变量 CLASSPATH&#x1f33e; 总结 本节学习目标 JDK 安装与配置&#xff1b;理解环境变量PATH和CLASSPATH的主要作用&#xff1b;运行第一个Java程序…

Spark(11):RDD持久化

目录 0. 相关文章链接 1. RDD Cache 缓存 2. RDD CheckPoint 检查点 3. 缓存和检查点区别 0. 相关文章链接 Spark文章汇总 1. RDD Cache 缓存 RDD 通过 Cache 或者 Persist 方法将前面的计算结果缓存&#xff0c;默认情况下会把数据以缓存在 JVM 的堆内存中。但是并不是这…

关于Spring Boot的若干个重要问题

Spring Boot 1.什么是springboot 用来简化spring应用的初始搭建以及开发过程 使用特定的方式来进行配置&#xff08;properties或yml文件&#xff09; 创建独立的spring引用程序 main方法运行 嵌入的Tomcat 无需部署war文件 简化maven配置 自动配置spring添加对应功能starter…

nodejs-pm2管理js并发/自动重启/恢复等

目录 一、nodejs安装二、启动运行js三、实用功能1-pm2对进程名起别名四、实用功能2-pm2启动多个进程五、实用功能3-pm2内存限制自动重启六、实用功能4-服务器宕机前保存记录恢复进程 一、nodejs安装 nodejs安装使用nohup后台启动项目&#xff0c;倒是解决了控制台问题&#xf…

用Python从文件中读取学生成绩,并计算最高分/最低分/平均分

目录标题 前言环境使用:涉及知识点代码展示尾语 前言 嗨喽~大家好呀&#xff0c;这里是魔王呐 ❤ ~! 今天咱们试试用Python从文件中读取学生成绩&#xff0c;并计算最高分/最低分/平均分。 环境使用: Python 3.8 解释器 Pycharm 编辑器 涉及知识点 文件读写 基础语法 字…

QQ邮箱第三方POP3/IMAP/SMTP/Exchange/CardDAV/CalDAV服务授权码

参考QQ邮箱&#xff1a; 什么是授权码&#xff0c;它又是如何设置&#xff1f; 设置入口&#xff1a; 选择 账户 下拉找到POP3/IMAP/SMTP/Exchange/CardDAV/CalDAV服务就好了。我这边已经开通&#xff0c;开通流程挺简单的&#xff0c;手机号绑定然后输入验证码就好了。

华安联大:基于北斗RTK+蓝牙AOA、UWB定位技术为智慧港口提供多元化解决方案

深圳华安联大创新科技有限公司的商场室内导航系统方案&#xff0c;解决传统购物中心用户体验差的缺点&#xff0c;可实现3大类功能应用: (1)实现顾客在商场内自主导航&#xff0c;室内位置实时分享&#xff0c;目的地商铺自主导航&#xff0c;路径规划等功能: (2)停车场反向寻…

CISA在三星和D-Link设备中发现8个被积极利用的漏洞

美国网络安全和基础设施安全局&#xff08;CISA&#xff09;根据已有的证据&#xff0c;将8个被积极利用的漏洞列入已知的漏洞&#xff08;KEV&#xff09;目录中。 这8个被积极利用的漏洞包括影响三星智能手机的六个漏洞和影响D-Link设备的两个漏洞。以下是这八个漏洞&#x…

Java jsp 实战

1.JSP执行过程&#xff08;原理&#xff09; 步骤1&#xff1a;翻译&#xff08;jsp-->java&#xff09; 步骤2&#xff1a;编译&#xff08;java-->class文件&#xff09; 步骤3&#xff1a;执行&#xff08;执行class(字节码)文件&#xff09; 2.JSP实战 步骤1&…

UE4中创建的瞄准偏移或者混合空间无法拖入动画

UE4系列文章目录 文章目录 UE4系列文章目录前言一、解决办法 前言 UE4 AimOffset(瞄准偏移)动画融合时&#xff0c;AimOffse动画拖入不了融合框的解决办法&#xff0c;你会发现动画无法拖入到融合框&#xff0c;ue4编辑器提示“Invalid Additive animation Type”&#xff0c;…

Android Studio最新好用的插件----Gson转Java实体类/Kotlin Data

1.Java 安装好插件之后&#xff0c;把Gson/Json数据复制一下&#xff0c;eg: { "Chrome": "UA-66061856-6", "ChromePro": "UA-66061856-9", "Opera": "UA-66061856-7", "Edge": "UA-66061856-8&q…

K8s 为什么要弃用 Docker

K8s 为什么要弃用 Docker 最近在学习容器技术的过程中&#xff0c;看到有关于Kubernetes“弃用 Docker”的事情&#xff0c;担心现在学 Docker 是否还有价值&#xff0c;是否现在就应该切换到 containerd 或者是其他 runtime。 随着深入了解&#xff0c;这些疑虑的确是有些道理…

python实现语音识别(讯飞开放平台)

文章目录 讯飞平台使用python实现讯飞接口的语音识别第一步&#xff1a;导入需要的依赖库第二步&#xff1a;初始化讯飞接口对象第三步&#xff1a;收到websocket建立连接后的处理函数第四步&#xff1a;收到websocket消息的处理函数第五步&#xff1a;整合运行各函数 讯飞平台…

linux内核TCP源码浅析

目录 数据接收流程驱动层网络层ip_local_deliverip_local_deliver_finish 传输层tcp_v4_rcvtcp_v4_do_rcvtcp_rcv_establishedtcp_recvmsg linux内核源码下载&#xff1a;https://cdn.kernel.org/pub/linux/kernel/ 我下载的是&#xff1a;linux-5.11.1.tar.gz 数据接收流程 …