BAPI 关闭和删除PR
当PR在SAP里面已不再使用时,可使用批量使用以下两个BAPI进行处理:
BAPI_REQUISITION_DELETE,进行删除处理, (速度快)
BAPI_PR_CHANGE,进行关闭,但不删除(速度较慢),需要加COMMIT
需要注意的是:如果PR信息不完整或有错误,BAPI无法对PR进行处理
Public Function DELPR()
Dim BAPI As Object, Exps As Object, MSGList As Object, PRList As Object
Dim rng, I As Integer, J As Integer
CHK01:
If SAPOn = False And I < 1 Then
LogOnSAP
I = I + 1
GoTo CHK01
ElseIf SAPOn = True Then
Set BAPI = SAP.Add("BAPI_REQUISITION_DELETE")
Set Exps = BAPI.Exports("NUMBER")
Set MSGList = BAPI.TABLES("RETURN")
Set PRList = BAPI.TABLES("REQUISITION_ITEMS_TO_DELETE")
‘PR列表,第10列X作删除标示,第二行PR号,第三行PR行号
Set rng = Sheet1.Range("A1:N5000")
For I = 2 To 192
If rng(I, 10) = "X" Then
Exps.Value = rng(I, 1)
PRList.AppendRow
PRList(1, 1) = rng(I, 2)
PRList(1, 2) = "X"
BAPI.call
'检查输出信息
'MsgBox MSGList(1, 3)
End If
Next
End If
End Function
’-------------------------------------------------------
‘BAPI_PR_CHANGE对PR进行关闭:
Public Function CHCPR()
Dim BAPI As Object, Exps As Object, MSGList As Object, PRList As Object
Dim ITM As Object, ITMX As Object, CMMT As Object
Dim rng, I As Integer, J As Integer
Application.ScreenUpdating = False
Application.Calculation = xlCalculationManual
CHK01:
If SAPOn = False And I < 1 Then
LogOnSAP
I = I + 1
GoTo CHK01
ElseIf SAPOn = True Then
Set BAPI = SAP.Add("BAPI_PR_CHANGE")
Set CMMT = SAP.Add("BAPI_TRANSACTION_COMMIT")
Set Exps = BAPI.Exports("NUMBER")
Set ITM = BAPI.TABLES("PRITEM")
Set ITMX = BAPI.TABLES("PRITEMX")
Set MSGList = BAPI.TABLES("RETURN")
Set rng = Sheet1.Range("A1:N5000")
For I = 2 To 170
'PR列表,第10列X作删除标示,第二行PR号,第三行PR行号
If rng(I, 10) = "X" Then
Exps.Value = rng(I, 1)
ITM.Rows.RemoveAll
ITMX.Rows.RemoveAll
ITM.AppendRow
ITM(1, "PREQ_ITEM") = rng(I, 2) 'PUR_GROUP
'ITM(1, "PUR_GROUP") = "308"
'ITM(1, "PREQ_PRICE") = "0.01"
'ITM(1, "ITEM_CAT") = ""
ITM(1, "CLOSED") = "X" 'CLOSED ITEM_CAT/FIXED/PREQ_PRICE
ITMX.AppendRow
ITMX(1, "PREQ_ITEM") = rng(I, 2)
'ITMX(1, "PREQ_ITEMX") = "X"
'ITMX(1, "PUR_GROUP") = "X"
'ITMX(1, "PREQ_PRICE") = "X"
'ITMX(1, "ITEM_CAT") = "X"
ITMX(1, "CLOSED") = "X" 'CLOSED DELETE_IND
BAPI.Call
CMMT.Call
'检查输出信息
'MsgBox MSGList(1, 4)
End If
Next
Application.ScreenUpdating = True
Application.Calculation = xlCalculationAutomatic
End If
End Function
BAPI 关闭和删除PR的更多相关文章
- EntityFramework SQLiteCodeFirst 自动创建数据库 关闭级联删除
外键的级联删除: 如A表中有主键idA, B表中设置外键(ForeignKey)为A表中的主键idA, 当A表中的记录被删除时, B表中所有引用此条记录的记录(即所有外键为idA的记录)将自动被删除 ...
- Win10小娜关闭或删除进程
先来说下我为什么想尽方法关闭win10小娜:我觉得功能并不适用于我,即便不启用Cortana小娜,在Win10进程中也会看到Cortana小娜启动着,耗费了内存.CPU,而且主要的我的磁盘利用率等都居 ...
- 使用SC命令操作(安装、开启、配置、关闭、删除)Windows下的服务
目录 一.直接使用cmd命令行操作windows服务 二.使用bat批处理-操作windows服务 一.直接使用cmd命令行操作windows服务 1.安装服务 sc create 服务名 binPa ...
- 怎么彻底关闭卸载删除Cortana小娜进程,最简单
原文地址:https://jingyan.baidu.com/article/90bc8fc8be67bcf653640cfa.html Win10中的Cortana是微软开发的一款个人AI助理,集聊 ...
- 如何在删除ibdata1和ib_logfile的情况下恢复MySQL数据库
昨天,有个朋友对公司内部使用的一个MySQL实例开启binlog,但是在启动的过程中失败了(他也没提,为何会失败),在启动失败后,他删除了ibdata1和ib_logfile,后来,能正常启动了,但所 ...
- EF里一对一、一对多、多对多关系的配置和级联删除
本章节开始了解EF的各种关系.如果你对EF里实体间的各种关系还不是很熟悉,可以看看我的思路,能帮你更快的理解. I.实体间一对一的关系 添加一个PersonPhoto类,表示用户照片类 /// < ...
- sql server 删除所有 视图、存储过程
删除视图: use 数据库名 declare mycur cursor local for select [name] from dbo.sysobjects where xtype='V' --声 ...
- (转)Could not create the view: An unexpected exception was thrown. 电脑突然断电,myeclipse非正常关闭,出现错误
问题:电脑突然断电,myeclipse非正常关闭,“Package Explorer”非正常显示,出现错误“Could not create the view: An unexpected excep ...
- Response、Request、QueryString,repeater添加,修改,删除数据
内置对象: Response对象:响应请求,Response对象用于动态响应客户端请示,控制发送给用户的信息,并将动态生成响应.Response.Write("<script>a ...
随机推荐
- win10修改文件管理器默认打开我的电脑
- 杭电 5326 Work (并查集求子结点为k的结点数)
Description It’s an interesting experience to move from ICPC to work, end my college life and start ...
- SQL 一次插入多条记录
本文介绍如何快速插入多条数据到数据表中,以满足sql语句学习或项目测试的需要. 本文非原创,是对移步原文的重新整理. 如有以下表格,如图: 1,原始添加记录的方式,sql语句如下: insert in ...
- Go函数学习
package main import ( "fmt" "reflect" "runtime" "math" ) //函 ...
- 【转】关于大型网站技术演进的思考(二十一)--网站静态化处理—web前端优化—下【终篇】(13)
本篇继续web前端优化的讨论,开始我先讲个我所知道的一个故事,有家大型的企业顺应时代发展的潮流开始投身于互联网行业了,它们为此专门设立了一个事业部,不过该企业把这个事业部里的人事成本,系统运维成本特别 ...
- Java并发编程:用AQS写一把可重入锁
Java并发编程:自己动手写一把可重入锁详述了如何用synchronized同步的方式来实现一把可重入锁,今天我们来效仿ReentrantLock类用AQS来改写一下这把锁.要想使用AQS为我们服务, ...
- 重写jQuery serialize方法,使文本框在没有输入的情况下,使用其支持默认值
未压缩版 jQuery.fn.extend({ serialize:function() { return jQuery.param(this.serializeArray()); }, serial ...
- php 之 日志系统seaslog安装
php 之 日志系统seaslog 特点: 1.高性能(使用C语言编写的). 2.无需配置. 3.功能完善.使用简单. 安装: 打开php的扩展官网:https://pecl.php.net/. 然后 ...
- FastDfs + Dht 搭建笔记
以下为搭建一套分布式文件集群系统,参考了很多资料,自己经过在服务器上搭建并且经过了测试.记录以方便以后使用查看. FastDfs + Dht 安装手册 一:概述 FastDFS是由淘宝的余庆先生所开发 ...
- HDU 1041
题意: 给原始序列1 给定变化规则是,对于原来的序列每一个0前边插入1,每个1前边插入0. 问原始序列经过n次变化之后有多少对相邻的0. 规律题: 从第二次开始 当第奇数次变化之后,数量变成原来数量的 ...