ME51N 创建采购申请
1业务说明
当寻源后,将寻源结果汇总,并创建采购申请,之后据此创建采购订单。
此文档使用BAPI:BAPI_REQUISITION_CREATE创建采购申请
2前台实现
事务代码:ME51N

3代码实现
3.1调用BAPI

传入相应的行项目数据

导入BAPI

3.2扩展字段
在EBAN表中增加自定义字段

在结构BAPI_TE_REQUISITION_ITEM中定义采购申请项目编号字段,该字段必须有,也必须传值。将结构CI_EBANDB引用进来。

将行项目和申请原因等字段传入结构中,再赋值给BAPI扩展内表GT_EXTENSION,传入BAPI中

创建后,采购申请原因已经传入成功

3.3创建服务类采购申请
创建服务类申请没有物料号,输入相应的数据

首先创建三个变量,用于存储几个编号

在行项目中需要传入软件包编号

输入总账科目和成本中心,并赋值序列号

在服务行中,先输入软件父包

再添加软件子包

在REQUISITION_SRV_ACCASS_VALUES中添加软件子包对应的信息

最后调用BAPI创建成功

软件包的流水号维护在这个对象中,但是在BAPI赋值的时候,直接赋值0000000001即可,如果通过流水号获取赋值进去,反倒不成功。
原因猜测可能是,系统每次都自动获取,不采用付的值,但是如果使用了流水号函数就打乱了系统自己赋值的逻辑。所以在BAPI中赋值0000000001和子包在此上+1,将服务行的父包和子包关联起来即可。

采购申请保存在EBAN表中,服务保存在ESLL表中。
3.4源代码
"-----------------------------@斌将军-----------------------------
DATA:LV_NUMBER TYPE BAPIMEREQHEADER-PREQ_NO,
GT_ITEM TYPE TABLE OF BAPIEBANC,
GS_ITEM TYPE BAPIEBANC,
GT_EXTENSION TYPE TABLE OF BAPIPAREX,
GS_EXTENSION TYPE BAPIPAREX,
GT_RETURN TYPE TABLE OF BAPIRETURN,
GS_RETURN TYPE BAPIRETURN. DATA:LV_MESSAGE TYPE CHAR200,
LV_CHECK TYPE CHAR1. CLEAR:GS_ITEM.
GS_ITEM-PREQ_ITEM = '10'."行项目号
GS_ITEM-DOC_TYPE = 'CKSG'."采购申请凭证类型
GS_ITEM-PUR_GROUP = 'C10'."采购组
GS_ITEM-MATERIAL = '405481'."物料号
GS_ITEM-PLANT = '2000'. "工厂
GS_ITEM-STORE_LOC = '2007'. "库存地点
GS_ITEM-QUANTITY = '1'."数量
GS_ITEM-PREQ_DATE = SY-DATUM."需求日期
GS_ITEM-TRACKINGNO = ''."需求跟踪号
GS_ITEM-FIXED_VEND = ''."固定供应商
GS_ITEM-PREQ_NAME = 'SRM'."申请者
GS_ITEM-VAL_TYPE = 'CR'."评估类型
GS_ITEM-DELIV_DATE = '20200129'."交货日期
GS_ITEM-UNIT = 'PC'."计量单位
CALL FUNCTION 'CONVERSION_EXIT_ALPHA_INPUT'
EXPORTING
INPUT = GS_ITEM-MATERIAL"物料号
IMPORTING
OUTPUT = GS_ITEM-MATERIAL.
CALL FUNCTION 'CONVERSION_EXIT_ALPHA_INPUT'
EXPORTING
INPUT = GS_ITEM-FIXED_VEND"固定供应商
IMPORTING
OUTPUT = GS_ITEM-FIXED_VEND. CALL FUNCTION 'CONVERSION_EXIT_CUNIT_INPUT'
EXPORTING
INPUT = GS_ITEM-UNIT"计量单位
LANGUAGE = SY-LANGU
IMPORTING
OUTPUT = GS_ITEM-UNIT.
APPEND GS_ITEM TO GT_ITEM. CLEAR:GS_EXTENSION.
GS_EXTENSION-STRUCTURE = 'BAPI_TE_REQUISITION_ITEM'.
GS_EXTENSION-VALUEPART1 = GS_ITEM-PREQ_ITEM && GS_ITEM-PREQ_NAME."申请原因
APPEND GS_EXTENSION TO GT_EXTENSION. CLEAR:LV_NUMBER.
CALL FUNCTION 'BAPI_REQUISITION_CREATE'
EXPORTING
* SKIP_ITEMS_WITH_ERROR = gt_item
AUTOMATIC_SOURCE = ' '
IMPORTING
NUMBER = LV_NUMBER
TABLES
REQUISITION_ITEMS = GT_ITEM
* REQUISITION_ACCOUNT_ASSIGNMENT =
* REQUISITION_ITEM_TEXT =
* REQUISITION_LIMITS =
* REQUISITION_CONTRACT_LIMITS =
* REQUISITION_SERVICES =
* REQUISITION_SRV_ACCASS_VALUES =
RETURN = GT_RETURN
* REQUISITION_SERVICES_TEXT =
* REQUISITION_ADDRDELIVERY =
EXTENSIONIN = GT_EXTENSION. LV_CHECK = 'S'.
LOOP AT GT_RETURN INTO GS_RETURN WHERE TYPE = 'A' OR TYPE = 'E'.
LV_MESSAGE = LV_MESSAGE && GS_RETURN-MESSAGE.
LV_CHECK = 'E'.
ENDLOOP. IF LV_CHECK = 'S'.
CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'
EXPORTING
WAIT = 'X'.
WRITE:LV_NUMBER.
ELSE.
CALL FUNCTION 'BAPI_TRANSACTION_ROLLBACK'.
ENDIF. ------------------服务类采购申请源代码---------------------
*&---------------------------------------------------------------------*
*& Report ZLCCTEST019
*&
*&---------------------------------------------------------------------*
*&
*&
*&---------------------------------------------------------------------*
REPORT ZLCCTEST019. DATA:GT_ITEM TYPE TABLE OF BAPIEBANC,
GS_ITEM TYPE BAPIEBANC,
GT_SER TYPE TABLE OF BAPIESLLC,
GS_SER TYPE BAPIESLLC,
GT_SER_VALUES TYPE TABLE OF BAPIESKLC,
GS_SER_VALUES TYPE BAPIESKLC,
GT_WBS TYPE TABLE OF BAPIEBKN,
GS_WBS TYPE BAPIEBKN,
GT_RETURN TYPE TABLE OF BAPIRETURN,
L_NO1 TYPE BAPIMEREQHEADER-PREQ_NO,
LV_MESSAGE TYPE CHAR200,
LV_PCKG_NO TYPE BAPIEBANC-PCKG_NO VALUE 0000000001, "软件包编号
LV_ACCASSERIAL_NO TYPE BAPIEBKN-SERIAL_NO VALUE 01, "序列号
LV_LINE_NO TYPE BAPIESLLC-LINE_NO VALUE 1. "内部行编号 GS_ITEM-PREQ_ITEM = '00010'.
GS_ITEM-DOC_TYPE = 'CKSR'.
GS_ITEM-PLANT = '2000'.
GS_ITEM-QUANTITY = '1'."数量
GS_ITEM-PREQ_NAME = '123'."申请者
GS_ITEM-UNIT = 'LE'."计量单位
GS_ITEM-ACCTASSCAT = 'W'."科目分配类别
GS_ITEM-ITEM_CAT_EXT = 'D'."科目分配类别
GS_ITEM-SHORT_TEXT = '123'."短文本
GS_ITEM-MAT_GRP = '&DB001'."物料组
GS_ITEM-PREQ_DATE = '20210307'."需求日期
GS_ITEM-DELIV_DATE = '20210307'."需求日期
GS_ITEM-DELIV_DATE = '20210307'."需求日期
GS_ITEM-PCKG_NO = LV_PCKG_NO."软件包编号
GS_ITEM-GR_IND = 'X'.
GS_ITEM-GR_NON_VAL = 'X'.
GS_ITEM-IR_IND = 'X'.
APPEND GS_ITEM TO GT_ITEM. GS_WBS-PREQ_ITEM = '00010'.
GS_WBS-SERIAL_NO = LV_ACCASSERIAL_NO.
GS_WBS-G_L_ACCT = '6601039900'.
GS_WBS-COST_CTR = '0BE000'.
APPEND GS_WBS TO GT_WBS. GS_SER-PCKG_NO = LV_PCKG_NO."软件包编号
GS_SER-LINE_NO = LV_LINE_NO."内部行编号
GS_SER-OUTL_IND = 'X'."标识符:概要行
GS_SER-SUBPCKG_NO = LV_PCKG_NO + 1."分包编号
GS_SER-FROM_LINE = 1."下限
APPEND GS_SER TO GT_SER. CLEAR:GS_SER.
GS_SER-PCKG_NO = LV_PCKG_NO + 1."软件包编号
GS_SER-LINE_NO = LV_LINE_NO + 1."内部行编号
GS_SER-EXT_LINE = 0000000010."行号
GS_SER-QUANTITY = 1."数量
GS_SER-BASE_UOM = 'LE'."计量单位
GS_SER-PRICE_UNIT = 1."价格单位
GS_SER-NET_VALUE = NETPR * QUANTITY."净值
GS_SER-SHORT_TEXT = 123."短文本
GS_SER-MATL_GROUP = '&DB001'."物料组
GS_SER-GR_PRICE = 10."总价
APPEND GS_SER TO GT_SER. GS_SER_VALUES-PCKG_NO = LV_PCKG_NO + 1."软件包编号
GS_SER_VALUES-LINE_NO = LV_LINE_NO + 1."内部行编号
GS_SER_VALUES-SERNO_LINE = 01."服务行
GS_SER_VALUES-SERIAL_NO = GS_SER_VALUES-SERNO_LINE."帐户分配的顺序编号
GS_SER_VALUES-PERCENTAGE = 100."帐户分配值分配百分比
GS_SER_VALUES-NET_VALUE = NETPR * QUANTITY."项目净值
GS_SER_VALUES-QUANTITY = 1."数量带标记
APPEND GS_SER_VALUES TO GT_SER_VALUES. CALL FUNCTION 'BAPI_REQUISITION_CREATE'
EXPORTING
* SKIP_ITEMS_WITH_ERROR = gt_item
AUTOMATIC_SOURCE = ' '
IMPORTING
NUMBER = L_NO1
TABLES
REQUISITION_ITEMS = GT_ITEM
REQUISITION_ACCOUNT_ASSIGNMENT = GT_WBS
* REQUISITION_ITEM_TEXT =
* REQUISITION_LIMITS =
* REQUISITION_CONTRACT_LIMITS =
REQUISITION_SERVICES = GT_SER
REQUISITION_SRV_ACCASS_VALUES = GT_SER_VALUES
RETURN = GT_RETURN
* REQUISITION_SERVICES_TEXT =
* REQUISITION_ADDRDELIVERY =
* EXTENSIONIN = GT_EXTENSION1
. CLEAR:LV_MESSAGE.
LOOP AT GT_RETURN INTO DATA(GL_RETURN) WHERE TYPE = 'E' OR TYPE = 'A'.
CONCATENATE LV_MESSAGE '/' GL_RETURN-MESSAGE INTO LV_MESSAGE.
CLEAR GL_RETURN.
ENDLOOP.
IF LV_MESSAGE IS INITIAL AND L_NO1 IS NOT INITIAL.
* 提交事务
CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'
EXPORTING
WAIT = 'X'.
ELSE.
CALL FUNCTION 'BAPI_TRANSACTION_ROLLBACK' .
ENDIF. WRITE :L_NO1.
"-----------------------------@斌将军-----------------------------
定期更文,欢迎关注

- 中文(简体)
- 中文(繁体)
- 丹麦语
- 乌克兰语
- 乌尔都语
- 亚美尼亚语
- 俄语
- 保加利亚语
- 克罗地亚语
- 冰岛语
- 加泰罗尼亚语
- 匈牙利语
- 卡纳达语
- 印地语
- 印尼语
- 古吉拉特语
- 哈萨克语
- 土耳其语
- 威尔士语
- 孟加拉语
- 尼泊尔语
- 布尔语(南非荷兰语)
- 希伯来语
- 希腊语
- 库尔德语
- 德语
- 意大利语
- 拉脱维亚语
- 挪威语
- 捷克语
- 斯洛伐克语
- 斯洛文尼亚语
- 旁遮普语
- 日语
- 普什图语
- 毛利语
- 法语
- 波兰语
- 波斯语
- 泰卢固语
- 泰米尔语
- 泰语
- 海地克里奥尔语
- 爱沙尼亚语
- 瑞典语
- 立陶宛语
- 缅甸语
- 罗马尼亚语
- 老挝语
- 芬兰语
- 英语
- 荷兰语
- 萨摩亚语
- 葡萄牙语
- 西班牙语
- 越南语
- 阿塞拜疆语
- 阿姆哈拉语
- 阿尔巴尼亚语
- 阿拉伯语
- 韩语
- 马尔加什语
- 马拉地语
- 马拉雅拉姆语
- 马来语
- 马耳他语
- 高棉语
一律不翻译英语
一律不翻译i.cnblogs.com
ME51N 创建采购申请的更多相关文章
- 【ABAP系列】SAP ABAP BAPI_REQUISITION_CREATE创建采购申请
公众号:SAP Technical 本文作者:matinal 原文出处:http://www.cnblogs.com/SAPmatinal/ 原文链接:[ABAP系列]SAP ABAP BAPI_RE ...
- ME51N, ME52N 创建采购申请的一个BADI
ME51N ME52N创建修改采购申请时的一个BADI (2013-07-11 16:50:58) 转载▼ 标签: 采购申请 me51n me52 badi me_process_req_cust 分 ...
- SAP MM 无料号采购申请单中'评估价格'之填写
SAP MM 无料号采购申请单中'评估价格'之填写 1),SAP系统中,采购申请里的'评估价格'来源有二, a)如果是有物料号的采购,则该价格来自于物料主数据里里的成本价(移动平均价或者标准价),自动 ...
- 详解EBS接口开发之采购申请导入
更多内容可以参考我的博客 详解EBS接口开发之采购订单导入 http://blog.csdn.net/cai_xingyun/article/details/17114697 /*+++++++ ...
- 函数使用二:采购申请BAPI_PR_CREATE
REPORT YTEST01. ***************************采购申请创建*****************************begin DATA:LV_BANFN TY ...
- ABAP-增强-MRP运行-根据工厂/父件/子件/供应商拆分采购申请
最近有个业务需要,MRP运行过程中需要根据生产计划订单/子件/供应商对应关系来拆解采购申请. 1.具体实例: a.基础数据 整车物料:NL1G58420151001219 子件:00000000888 ...
- SAP-MM:创建采购组织、采购组
创建采购组织 路径:SPRO – IMG – 企业结构 – 定义 – 物料管理 – 维护采购组织 操作: Step 1.点击"新条目". Step 2.维护"采购组织 ...
- SAP MM已经转成PO的采购申请Item依旧可以被删除?
SAP MM已经转成PO的采购申请Item依旧可以被删除? 笔者测试发现,我们可以删除已产生PO的PR item, 系统只是给一个警告信息,不阻止保存. Purchase orders already ...
- SAP MM 根据采购订单反查采购申请?
SAP MM 根据采购订单反查采购申请? 前日微信上某同行发来一个message,说是想知道如何通过采购订单号查询到其前端的采购申请号. 笔者首先想到去检查采购订单相关的常用报表ME2L/ME2M/M ...
- 【MM系列】SAP MM模块-收货自动创建采购订单
公众号:SAP Technical 本文作者:matinal 原文出处:http://www.cnblogs.com/SAPmatinal/ 原文链接:[MM系列]SAP MM模块-收货自动创建采购订 ...
随机推荐
- 计算网络之MSTP协议与VRRP协议
一.MSTP协议 MSTP协议出现是基于STP协议和RSTP协议的,要了解MSTP协议就需要先了解其它两个协议 首先,STP协议是交换机生成树协议,它的出现主要是为了解决二层交换机环路的问题,当多个交 ...
- 《最新出炉》系列初窥篇-Python+Playwright自动化测试-32-JavaScript的调用执行-下篇
1.简介 在实际工作中,我们需要对处理的元素进行高亮显示,或者有时候为了看清楚操作过程和步骤我们需要跟踪鼠标点击了哪些元素需要标记出来.虽然很少遇到,但是为了以后大家可以参考或者提供一种思路,今天宏哥 ...
- IDEA安装与配置教程
一.下载并安装IDEA 1.下载 1.官网: 下载 IntelliJ IDEA (这里以Windows系统为例,其他系统类似) 2.安装 1.下载完成后,直接点击安装包安装,即可. 2.开始安装,然后 ...
- 记录一次 postgresql 优化案例( volatility 自定义函数无法并行查询 )
同事最近做个金融适配项目,找我看条SQL,告知ORACLE跑1分钟,PG要跑30分钟(其实并没有这么夸张), 废话不说,贴慢SQL. 慢SQL(关键信息已经加密): explain analyze S ...
- PolarCTF-2023冬季个人挑战赛 WP
Crypto 数星星 题目 小明暗恋小红很久了,终于在一个月黑风高的夜晚,决定约她出去数星星.小明数着数着,数出了一串数字,3,6,10,12,15,他觉得这是爱情的关键,思考了整整一晚上,小红很生气 ...
- 基于python人脸识别考勤系统(语音播报)
介绍: 本项目是大二寒假在家没事写的,一直没有时间讲本项目分享出来,现在有时间了哈.那就让我简单的将项目介绍一下吧.好了废话不多说了,直接上图 初始化界面: 可以看到所有的功能都展现在了左边的功能栏中 ...
- 文心一言 VS 讯飞星火 VS chatgpt (160)-- 算法导论12.4 2题
二.用go语言,请描述这样一棵有 n 个结点的二叉搜索树,其树中结点的平均深度为 O(lgn),但这棵树的高度是w(lgn).一棵有 n个结点的二叉搜索树中结点的平均深度为 O(lgn),给出这棵树高 ...
- Logistics Regression (对数几率回归)及numpy实现
Logistics Regression 我们知道线性回归模型可以处理回归问题,但是如何处理分类问题? 对于一个二分类问题,或许我们可以认为w*x+b > 0为正类,其他情况为负类. 那么模型不 ...
- python获取已安装程序列表
python获取已安装程序列表 本文主要讲述通过python脚本获取android 设备已安装列表. 首先,Python本身无法直接获取Android设备上已安装的程序列表,所以这里主要借助adb命令 ...
- 2024-01-03:用go语言,给你两个长度为 n 下标从 0 开始的整数数组 cost 和 time, 分别表示给 n 堵不同的墙刷油漆需要的开销和时间。你有两名油漆匠, 一位需要 付费 的油漆匠
2024-01-03:用go语言,给你两个长度为 n 下标从 0 开始的整数数组 cost 和 time, 分别表示给 n 堵不同的墙刷油漆需要的开销和时间.你有两名油漆匠, 一位需要 付费 的油漆匠 ...