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 ...
随机推荐
- 【HIHOCODER 1325】 平衡树·Treap
描述 小Ho:小Hi,我发现我们以前讲过的两个数据结构特别相似. 小Hi:你说的是哪两个啊? 小Ho:就是二叉排序树和堆啊,你看这两种数据结构都是构造了一个二叉树,一个节点有一个父亲和两个儿子. 如果 ...
- 关于Hibernate中No row with the given identifier exists问题的原因及解决
今天遇到一个bug,截图如下 有两张表,table1和table2.产生此问题的原因就是table1里做了关联<one-to-one>或者<many-to-one unique=&q ...
- python 数据库操作产生中文乱码的解决办法
1.执行python mysql数据库查询操作时,产生中文乱码 #!/usr/bin/python # -*- coding: UTF-8 -*- import MySQLdb db = MySQLd ...
- XV6调度
调度 任何操作系统都可能碰到进程数多于处理器数的情况,这样就需要考虑如何分享处理器资源.理想的做法是让分享机制对进程透明.通常我们对进程造成一个自己独占处理器的假象,然后让操作系统的多路复用机制(mu ...
- .net对象的生命周期
阅读了文章:.NET对象生命周期小结 文章分多个部分,第一部分:介绍了,创建对象时,内存的分配,对象真正被创建,以及经历各阶段垃圾回收的过程. 第二部分,介绍了Finalize与Dispsose方法.
- Retrofit+RxJava联网工具类
在python 进程.线程 (一)中简单的说过,CPython中的GIL使得同一时刻只能有一个线程运行,即并发执行.并且即使是多核CPU,GIL使得同一个进程中的多个线程也无法映射到多个CPU上运行, ...
- HDU1272 迷宫通路数
Problem Description 上次Gardon的迷宫城堡小希玩了很久(见Problem B),现在她也想设计一个迷宫让Gardon来走.但是她设计迷宫的思路不一样,首先她认为所有的通道都应该 ...
- 【板+背包】多重背包 HDU Coins
http://acm.hdu.edu.cn/showproblem.php?pid=2844 [题意] 给定n种价值为Ci,个数为Wi的硬币,问在1~V中的这些数中哪些数能由这些硬币组成? [思路] ...
- Java多线程干货系列—(二)synchronized
原文地址:http://tengj.top/2016/05/03/threadsynchronized2/ <h1 id="前言"><a href="# ...
- struts2中的session使用
1.1. 如何获取Session 1.1.1. 获取Session的方式 Struts2中获取Session的方式有3种,大家掌握其中任何一种都可以. 通过ActionContext.getConte ...