当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的更多相关文章

  1. EntityFramework SQLiteCodeFirst 自动创建数据库 关闭级联删除

    外键的级联删除: 如A表中有主键idA, B表中设置外键(ForeignKey)为A表中的主键idA, 当A表中的记录被删除时, B表中所有引用此条记录的记录(即所有外键为idA的记录)将自动被删除 ...

  2. Win10小娜关闭或删除进程

    先来说下我为什么想尽方法关闭win10小娜:我觉得功能并不适用于我,即便不启用Cortana小娜,在Win10进程中也会看到Cortana小娜启动着,耗费了内存.CPU,而且主要的我的磁盘利用率等都居 ...

  3. 使用SC命令操作(安装、开启、配置、关闭、删除)Windows下的服务

    目录 一.直接使用cmd命令行操作windows服务 二.使用bat批处理-操作windows服务 一.直接使用cmd命令行操作windows服务 1.安装服务 sc create 服务名 binPa ...

  4. 怎么彻底关闭卸载删除Cortana小娜进程,最简单

    原文地址:https://jingyan.baidu.com/article/90bc8fc8be67bcf653640cfa.html Win10中的Cortana是微软开发的一款个人AI助理,集聊 ...

  5. 如何在删除ibdata1和ib_logfile的情况下恢复MySQL数据库

    昨天,有个朋友对公司内部使用的一个MySQL实例开启binlog,但是在启动的过程中失败了(他也没提,为何会失败),在启动失败后,他删除了ibdata1和ib_logfile,后来,能正常启动了,但所 ...

  6. EF里一对一、一对多、多对多关系的配置和级联删除

    本章节开始了解EF的各种关系.如果你对EF里实体间的各种关系还不是很熟悉,可以看看我的思路,能帮你更快的理解. I.实体间一对一的关系 添加一个PersonPhoto类,表示用户照片类 /// < ...

  7. sql server 删除所有 视图、存储过程

    删除视图: use 数据库名 declare mycur cursor local for select [name] from dbo.sysobjects where xtype='V'  --声 ...

  8. (转)Could not create the view: An unexpected exception was thrown. 电脑突然断电,myeclipse非正常关闭,出现错误

    问题:电脑突然断电,myeclipse非正常关闭,“Package Explorer”非正常显示,出现错误“Could not create the view: An unexpected excep ...

  9. Response、Request、QueryString,repeater添加,修改,删除数据

    内置对象: Response对象:响应请求,Response对象用于动态响应客户端请示,控制发送给用户的信息,并将动态生成响应.Response.Write("<script>a ...

随机推荐

  1. 【Codeforces 25C】Roads in Berland

    [链接] 我是链接,点我呀:) [题意] 题意 [题解] 用floyd思想. 求出来这条新加的边影响到的点对即可. 然后尝试更新点对之间的最短路就好. 更新之后把差值从答案里面减掉. [代码] #in ...

  2. jmeter-添加断言(检查点)-实例

    方法/步骤     打开 jmeter的图形界面工具,然后打开之前保存的脚本(之前经验中用到的),demo-baidu.jmx   先点击运行,查看运行结果. 第一次请求返回302,然后跳转到第二次请 ...

  3. 68. 使用thymeleaf报异常:Not Found, status=404【从零开始学Spring Boot】

    [从零开始学习Spirng Boot-常见异常汇总] 我们按照正常的流程编码好了 controller访问访问方法/hello,对应的是/templates/hello.html文件,但是在页面中还是 ...

  4. Nuget,程序员的功能包

    导读:随着信息技术的发展,资源的共享已经成为一种文化.对于程序设计来说,我们在编写软件的时候,总有那么一些公共使用的东西,或者说需啊哟使用到别人可能已经做得很好的东西.这个时候,再去重写,并不是一个明 ...

  5. Problem 2125 简单的等式(FZU),,数学题。。。

    Problem 2125 简单的等式 Time Limit: 1000 mSec Memory Limit : 32768 KB  Problem Description 现在有一个等式如下:x^2+ ...

  6. Codeforces936C. Lock Puzzle

    给个串,只能用操作shift x表示把后面x个字符翻转后放到串的前面.问s串怎么操作能变t串.n<=2000,操作次数<=6100. 打VP时这转来转去的有点晕... 可以想一种逐步构造的 ...

  7. java遍历文件夹及所有子文件

    以前写代码循环文件夹和子文件时,总是自己写递归访问,今天研究lucene时,发现JDK给我们已经提供了访问遍历的方法,上代码: String str = "C:\\Users\\LLY\\D ...

  8. ES6__函数的扩展

    /** * 函数的扩展 * 1 为函数参数指定默认值 * 2 函数的 rest 参数 * 3 箭头函数 */ // ------------------------------------------ ...

  9. Memcached 管理与监控工具 MemAdmin

    MemAdmin是一款可视化的Memcached管理与监控工具,基于 PHP5 & JQuery 开发,体积小,操作简单. 主要功能: 服务器参数监控:STATS.SETTINGS.ITEMS ...

  10. poj - 3254 Corn Fields (状态压缩dp入门)

    http://poj.org/problem?id=3254 参考:http://blog.csdn.net/accry/article/details/6607703 农夫想在m*n的土地上种玉米, ...