当前位置: 首页 > news >正文

采购订单审批和取消例子

文章目录

      • 1 Introduction
      • 2 Example

1 Introduction

This is a exmaple for releaseing po and reseting po.

2 Example

  DATA:lw_in   TYPE zmms015,lw_out  TYPE zmms015_out,lt_head LIKE TABLE OF  ZMMT003_head,lw_head TYPE ZMMT003_head,lt_item TYPE zmmt003_item_t,lt_spjd TYPE ZMMT003_spjd_T.DATA:lv_rel_code LIKE  bapimmpara-rel_code.DATA:lt_return TYPE TABLE OF bapireturn,ls_return TYPE bapireturn.DATA:lv_str    TYPE string,lv_offset TYPE i.DATA:BEGIN OF ls_grp,frgco TYPE t16fc-frgco,END OF ls_grp,lt_grp LIKE TABLE OF ls_grp.FIELD-SYMBOLS:<lfs_v1> TYPE any.* logic partlw_in = ps_in.lt_item  =  lw_in-is_value-it_items1.lt_spjd  =  lw_in-is_value-it_items2.MOVE-CORRESPONDING lw_in-is_value  TO lw_head .IF lw_in-is_value-ebeln  IS INITIAL.ps_out-es_value-code =   'E'.ps_out-es_value-msg  =   '采购单号必填,请核实数据!'.RETURN.ENDIF.LOOP AT lt_item ASSIGNING FIELD-SYMBOL(<fs_item>).IF <fs_item>-ebeln  IS INITIAL.ps_out-es_value-code =   'E'.ps_out-es_value-msg  =   '采购单号必填,请核实数据!'.RETURN.ENDIF.IF <fs_item>-ebelp  IS INITIAL.ps_out-es_value-code =   'E'.ps_out-es_value-msg  =   '采购行项目必填,请核实数据!'.RETURN.ENDIF.ENDLOOP.LOOP AT lt_spjd ASSIGNING FIELD-SYMBOL(<fs_spjd>).IF <fs_spjd>-ebeln  IS INITIAL.ps_out-es_value-code =   'E'.ps_out-es_value-msg  =   '采购订单必填,请核实数据!'.RETURN.ENDIF.ENDLOOP.* Get po's  approve  code  and get apporve leve codeIF lw_head-zspbs  =  'R' .  "  Approve poSELECT k~ebeln,k~frgzu,s~frgc1,s~frgc2,s~frgc3,s~frgc4,s~frgc5,s~frgc6,s~frgc7,s~frgc8FROM t16fs AS sINNER JOIN ekko AS kON k~frggr = s~frggrAND k~frgsx = s~frgsxWHERE k~ebeln = @lw_head-ebelnAND k~frgrl = @abap_true "FRGRL 字段标示审批是否结束INTO TABLE @DATA(lt_t16fs).READ TABLE lt_t16fs ASSIGNING FIELD-SYMBOL(<lfs_t16fs>) INDEX 1.IF sy-subrc EQ 0.DO 8 TIMES.lv_str = sy-index.lv_str = 'FRGC' && lv_str.CONDENSE lv_str NO-GAPS.ASSIGN COMPONENT lv_str OF STRUCTURE <lfs_t16fs> TO <lfs_v1>.IF sy-subrc EQ 0.IF <lfs_v1> IS NOT INITIAL.DATA(lv_x) = <lfs_t16fs>-frgzu+lv_offset(1).IF lv_x IS INITIAL."未审批ls_grp-frgco = <lfs_v1>.APPEND ls_grp TO lt_grp.ENDIF.ENDIF.ENDIF.lv_offset = lv_offset + 1.ENDDO.CLEAR lv_str.ENDIF.* Approve po's orderLOOP AT lt_grp INTO ls_grp.CALL FUNCTION 'BAPI_PO_RELEASE'EXPORTINGpurchaseorder = lw_head-ebelnpo_rel_code   = ls_grp-frgcoTABLESreturn        = lt_return.LOOP AT lt_return INTO ls_returnWHERE type = 'E' OR type = 'A'.lv_str = lv_str && '|' && ls_return-message.DATA(lv_flag) = abap_true.ENDLOOP.SHIFT lv_str LEFT DELETING LEADING '|'.IF lv_flag EQ abap_true.EXIT.ENDIF.WAIT UP TO 1 SECONDS.ENDLOOP.IF lv_flag EQ abap_true."失败CALL FUNCTION 'BAPI_TRANSACTION_ROLLBACK'.ps_out-es_value-code =   'E'.ps_out-es_value-msg  =   '审核失败'.ELSE."成功ps_out-es_value-code =   'S'.ps_out-es_value-msg  =   '审核成功'.ENDIF.
* Disapprove po's order .ELSE.  "CALL FUNCTION 'BAPI_PO_RESET_RELEASE'EXPORTINGpurchaseorder            = lw_head-ebelnpo_rel_code              = 'R2'use_exceptions           = 'X'EXCEPTIONSauthority_check_fail     = 1document_not_found       = 2enqueue_fail             = 3prerequisite_fail        = 4release_already_posted   = 5responsibility_fail      = 6no_release_already       = 7no_new_release_indicator = 8OTHERS                   = 9.IF sy-subrc <> 0.MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgnoWITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.ps_out-es_value-code =   'E'.ps_out-es_value-msg  =   '审核失败'.ELSE.ps_out-es_value-code =   'S'.ps_out-es_value-msg  =   '审核成功'.ENDIF.ENDIF.MODIFY ZMMT003_head FROM lw_head.MODIFY ZMMT003_item FROM  TABLE lt_item.MODIFY ZMMT003_spjd FROM TABLE  lt_spjd.IF sy-subrc = 0.COMMIT WORK.ELSE.ROLLBACK WORK .ENDIF.

相关文章:

采购订单审批和取消例子

文章目录 1 Introduction2 Example 1 Introduction This is a exmaple for releaseing po and reseting po. 2 Example DATA:lw_in TYPE zmms015,lw_out TYPE zmms015_out,lt_head LIKE TABLE OF ZMMT003_head,lw_head TYPE ZMMT003_head,lt_item TYPE zmmt003_item_t,lt…...

PHP:集成Xunsearch生成前端搜索骨架

如果是安装宝塔&#xff0c;我们在集成xunsearch的时候就会比较简单&#xff0c;后面我们在介绍其他的接入方式&#xff1b; 首先我们进入到宝塔管理后台&#xff1a;【软件商店】-【输入xun】-【点击xunsearch】直接安装即可 安装成功之后&#xff0c;会自动在www/server中创…...

ThreadLocal详解,与 HashMap 对比

ThreadLocal原理&#xff0c;使用注意事项&#xff0c;解决哈希冲突方式->和HashMap对比 ThreadLocal 原理&#xff1a; ThreadLocal 是 Java 中的一个线程级别的变量&#xff0c;它允许您在不同线程之间存储和访问相同变量的不同副本&#xff0c;每个线程都拥有自己的副本&…...

flask流式接口

一、接口封装 from flask import Flask, request, Response, stream_with_context app Flask(__name__) app.logger.disabled Truedef chat_stream_(prompt):for new_text in [1,2,3]:yield new_textapp.route(/chat_stream, methods[POST]) def chat_stream():prompt requ…...

MatLab命令行常用命令记录

文章目录 MatLab常用命令行MatLab常用按键标点说明 MatLab常用命令行 Matlab常用命令用来管理目录、命令、函数、变量、工作区、文件及窗口。常用命令如下表 命令作用cd显示或改变当前文件夹load加载指定文件的变量dir显示当前文件夹或指定目录下的文件diary日志文件命令type…...

Linux —— MySQL操作(1)

一、用户与权限管理 1.1 创建与赋予权限 create user peter% identified by 123465 # 创建用户 peter&#xff0c;# %&#xff1a;允许所有用户登录这个用户访问数据库 刚创建的新用户是什么权限都没有&#xff0c;需要赋予权限 grant select on mysql.* to peter%; # 赋予…...

TCP四次握手与http协议版本区别

TCP四次挥手(图解)-为何要四次挥手 当客户端和服务器通过三次握手建立了TCP连接以后&#xff0c;当数据传送完毕&#xff0c;肯定是要断开TCP连接的啊。那 对于TCP的断开连接&#xff0c;这里就有了神秘的“四次挥手”。 第一次挥手&#xff1a;主机1&#xff08;可以使客户端…...

【机器学习】洞悉数据奥秘:决策树算法在机器学习中的魅力

在机器学习的分类和回归问题中&#xff0c;决策树是一种广泛使用的算法。决策树模型因其直观性、易于理解和实现&#xff0c;以及处理分类和数值特征的能力而备受欢迎。本文将解释决策树算法的概念、原理、应用、优化方法以及未来的发展方向。 &#x1f680;时空传送门 &#x…...

redis(17):什么是布隆过滤器?如何实现布隆过滤器?

1 布隆过滤器介绍 布隆过滤器(Bloom Filter)是一种空间效率极高的概率型数据结构,用于判断一个元素是否在一个集合中。它基于位数组和多个哈希函数的原理,可以高效地进行元素的查询,而且占用的空间相对较小,如下图所示: 根据 key 值计算出它的存储位置,然后将此位置标…...

STM32自己从零开始实操03:输出部分原理图

一、继电器电路 1.1指路 延续使用 JZC-33F-012-ZS3 继电器&#xff0c;设计出以小电流撬动大电流的继电器电路。 &#xff08;提示&#xff09;电路需要包含&#xff1a;三极管开关电路、续流二极管、滤波电容、指示灯、输出部分。 1.2数据手册重要信息提炼 联系排列&…...

Unity中将图片做成Prefab的步骤

Unity中将图片做成Prefab的步骤 在Unity中&#xff0c;将一张图片做成Prefab是一个常见的操作。Prefab是Unity中的一种资源类型&#xff0c;可以让你预先定义一个游戏对象&#xff0c;然后在场景中多次实例化它。以下是详细的步骤&#xff1a; 步骤一&#xff1a;准备图片资源…...

Web前端三大主流框架:React、Vue和Angular

在当前的Web开发领域&#xff0c;前端框架的选择对于项目的成功至关重要。作为一名资深的IT技术员&#xff0c;我对前端技术的发展和行业趋势保持着持续的关注。本文将介绍当前Web前端三大主流框架&#xff1a;React、Vue和Angular&#xff0c;并分析它们各自的优势。 React&a…...

安全风险 - 检测设备是否为模拟器

在很多安全机构的检测中&#xff0c;关于模拟器的运行环境一般也会做监听处理&#xff0c;有的可能允许执行但是会提示用户&#xff0c;有的可能直接禁止在模拟器上运行我方APP 如何判断当前 app 是运行在Android真机&#xff0c;还是运行在模拟器? 可能做 Framework 的朋友思…...

maven的下载以及配置的详细教程(附网盘下载地址)

文章目录 下载配置IDEA内部使用配置 下载 1.百度网盘下载 链接: https://pan.baidu.com/s/1LD9wOMFalLL49XUscU4qnQ?pwd1234 提取码: 1234 2.解压即可 配置 1.打开安装文件下conf下的settings.xml文件&#xff0c;我的如下 2.修改配置信息&#xff08;目的是为了修改本地…...

Unity3D 主城角色动画控制与消息触发详解

前言 在游戏开发中&#xff0c;角色动画控制和消息触发是非常重要的一部分&#xff0c;它可以让游戏更加生动和互动。本文将详细介绍如何在Unity3D中实现主城角色动画控制与消息触发。 对惹&#xff0c;这里有一个游戏开发交流小组&#xff0c;大家可以点击进来一起交流一下开…...

【Endnote】如何在word界面加载Endnote

如何在word界面加载Endnote 方法1&#xff1a;方法2&#xff1a;从word入手方法3&#xff1a;从CWYW入手参考 已下载EndNote,但Word中没有显示EndNote&#xff0c;应如何加载显示呢&#xff1f; 方法1&#xff1a; 使用EndNote的Configure EndNote.exe 。 具体步骤为&#x…...

优化CPU占用率及内存占用2

在标准化无线通信板时&#xff0c;关注过程序占用ram的问题&#xff0c;当时 发现每一个线程都会分配8M栈空间&#xff0c;这次换rk3568后&#xff0c;偶尔看了下RAM占用&#xff0c;吓了一跳&#xff0c;不但每个线程有8M栈空间&#xff0c;几乎每个线程都占用了64MB的一个RAM…...

C语言(字符和字符串函数)2

Hi~&#xff01;这里是奋斗的小羊&#xff0c;很荣幸各位能阅读我的文章&#xff0c;诚请评论指点&#xff0c;欢迎欢迎~~ &#x1f4a5;个人主页&#xff1a;小羊在奋斗 &#x1f4a5;所属专栏&#xff1a;C语言 本系列文章为个人学习笔记&#xff0c;在这里撰写成文一…...

【数据结构与算法 | 栈篇】力扣20,150

1. 力扣20 : 有效的符号 (1). 题 给定一个只包括 (&#xff0c;)&#xff0c;{&#xff0c;}&#xff0c;[&#xff0c;] 的字符串 s &#xff0c;判断字符串是否有效。 有效字符串需满足&#xff1a; 左括号必须用相同类型的右括号闭合。左括号必须以正确的顺序闭合。每个…...

node依赖安装的bug汇总

1.npm仓库 首先要获取npm仓库的地址&#xff1a; registryhttp://11.11.111.1:1111/abcdefg/adsfadsf 类似这种的地址 然后设置npm仓库&#xff1a; npm config set registryhttp://11.11.111.1:1111/abcdefg/adsfadsf (地址要带等号) 接着安装依赖&#xff1a; npm i…...

Chapter03-Authentication vulnerabilities

文章目录 1. 身份验证简介1.1 What is authentication1.2 difference between authentication and authorization1.3 身份验证机制失效的原因1.4 身份验证机制失效的影响 2. 基于登录功能的漏洞2.1 密码爆破2.2 用户名枚举2.3 有缺陷的暴力破解防护2.3.1 如果用户登录尝试失败次…...

通过Wrangler CLI在worker中创建数据库和表

官方使用文档&#xff1a;Getting started Cloudflare D1 docs 创建数据库 在命令行中执行完成之后&#xff0c;会在本地和远程创建数据库&#xff1a; npx wranglerlatest d1 create prod-d1-tutorial 在cf中就可以看到数据库&#xff1a; 现在&#xff0c;您的Cloudfla…...

基于服务器使用 apt 安装、配置 Nginx

&#x1f9fe; 一、查看可安装的 Nginx 版本 首先&#xff0c;你可以运行以下命令查看可用版本&#xff1a; apt-cache madison nginx-core输出示例&#xff1a; nginx-core | 1.18.0-6ubuntu14.6 | http://archive.ubuntu.com/ubuntu focal-updates/main amd64 Packages ng…...

从深圳崛起的“机器之眼”:赴港乐动机器人的万亿赛道赶考路

进入2025年以来&#xff0c;尽管围绕人形机器人、具身智能等机器人赛道的质疑声不断&#xff0c;但全球市场热度依然高涨&#xff0c;入局者持续增加。 以国内市场为例&#xff0c;天眼查专业版数据显示&#xff0c;截至5月底&#xff0c;我国现存在业、存续状态的机器人相关企…...

关于iview组件中使用 table , 绑定序号分页后序号从1开始的解决方案

问题描述&#xff1a;iview使用table 中type: "index",分页之后 &#xff0c;索引还是从1开始&#xff0c;试过绑定后台返回数据的id, 这种方法可行&#xff0c;就是后台返回数据的每个页面id都不完全是按照从1开始的升序&#xff0c;因此百度了下&#xff0c;找到了…...

基于Uniapp开发HarmonyOS 5.0旅游应用技术实践

一、技术选型背景 1.跨平台优势 Uniapp采用Vue.js框架&#xff0c;支持"一次开发&#xff0c;多端部署"&#xff0c;可同步生成HarmonyOS、iOS、Android等多平台应用。 2.鸿蒙特性融合 HarmonyOS 5.0的分布式能力与原子化服务&#xff0c;为旅游应用带来&#xf…...

全球首个30米分辨率湿地数据集(2000—2022)

数据简介 今天我们分享的数据是全球30米分辨率湿地数据集&#xff0c;包含8种湿地亚类&#xff0c;该数据以0.5X0.5的瓦片存储&#xff0c;我们整理了所有属于中国的瓦片名称与其对应省份&#xff0c;方便大家研究使用。 该数据集作为全球首个30米分辨率、覆盖2000–2022年时间…...

linux 下常用变更-8

1、删除普通用户 查询用户初始UID和GIDls -l /home/ ###家目录中查看UID cat /etc/group ###此文件查看GID删除用户1.编辑文件 /etc/passwd 找到对应的行&#xff0c;YW343:x:0:0::/home/YW343:/bin/bash 2.将标红的位置修改为用户对应初始UID和GID&#xff1a; YW3…...

IoT/HCIP实验-3/LiteOS操作系统内核实验(任务、内存、信号量、CMSIS..)

文章目录 概述HelloWorld 工程C/C配置编译器主配置Makefile脚本烧录器主配置运行结果程序调用栈 任务管理实验实验结果osal 系统适配层osal_task_create 其他实验实验源码内存管理实验互斥锁实验信号量实验 CMISIS接口实验还是得JlINKCMSIS 简介LiteOS->CMSIS任务间消息交互…...

html css js网页制作成品——HTML+CSS榴莲商城网页设计(4页)附源码

目录 一、&#x1f468;‍&#x1f393;网站题目 二、✍️网站描述 三、&#x1f4da;网站介绍 四、&#x1f310;网站效果 五、&#x1fa93; 代码实现 &#x1f9f1;HTML 六、&#x1f947; 如何让学习不再盲目 七、&#x1f381;更多干货 一、&#x1f468;‍&#x1f…...