ME31K 创建框架协议
1业务说明
在实际业务需求中,需要和供应商签订协议。
此文档使用BAPI:BAPI_CONTRACT_CREATE创建协议
2前台实现
事务代码:ME31K

输入抬头信息

行项目

行项目详细内容

保存即可
3代码实现
3.1调用BAPI

抬头

行项目

导入BAPI

3.2问题解决
3.2.1 SUBOBJECT_NOT_FOUND
在创建时报错,

错误位置在此处,子对象没找到

GOOGLE到相关解决方案

事务代码:SLG0
新增对象COND,对象文本Condition technique (ERP)

选中对象,双击子对象
子对象名称MAINTENANCE,文本Maintenance of Condition records

再次运行,发现已经不报错了,问题解决
3.2.2 保存增强点BADI_IM_PRF_SAVE_OA

3.2.3 长文本增强

当长文本做修改后,需要传给另外一个程序中使用,找了四代增强点,传输长文本。

3.3源代码
"-----------------------------@斌将军-----------------------------
DATA:GS_HEADER TYPE BAPIMEOUTHEADER,
GS_HEADERX TYPE BAPIMEOUTHEADERX,
GV_NUMBER TYPE BAPIMEOUTHEADER-NUMBER,
GS_EXP_HEADER TYPE BAPIMEOUTHEADER,
GT_ITEM TYPE TABLE OF BAPIMEOUTITEM,
GS_ITEM TYPE BAPIMEOUTITEM,
GT_ITEMX TYPE TABLE OF BAPIMEOUTITEMX,
GS_ITEMX TYPE BAPIMEOUTITEMX,
GT_RETURN TYPE TABLE OF BAPIRET2,
GS_RETURN TYPE BAPIRET2. DATA:LV_MESSAGE TYPE CHAR200,
LV_CHECK TYPE CHAR1. "抬头
CLEAR:GS_HEADER.
*GS_HEADER-NUMBER = GWA_OUT-EBELN. "合同号
GS_HEADER-VENDOR = '0070002292'."供应商
GS_HEADER-DOC_TYPE = 'YZXY'. "协议类型
GS_HEADER-COMP_CODE = '2000'. "公司代码
GS_HEADER-DOC_DATE = '20191129'. "协议日期
GS_HEADER-VPER_START = '20191129'. "协议起始日期
GS_HEADER-VPER_END = '20191229'. "协议截至日期
GS_HEADER-PURCH_ORG = '2000'. "采购组织
GS_HEADER-PUR_GROUP = 'CG9'. "采购组
GS_HEADER-ACUM_VALUE = '1'. "目标值
GS_HEADER-CURRENCY = 'CNY'. "货币
GS_HEADER-COLLECT_NO = 'CT'. "汇总号
GS_HEADER-LANGU = SY-LANGU. CLEAR:GS_HEADERX.
*GS_HEADERX-NUMBER = ABAP_TRUE. "合同号
GS_HEADERX-VENDOR = ABAP_TRUE. "供应商
GS_HEADERX-DOC_TYPE = ABAP_TRUE. "协议类型
GS_HEADERX-COMP_CODE = ABAP_TRUE. "公司代码
GS_HEADERX-DOC_DATE = ABAP_TRUE. "协议日期
GS_HEADERX-VPER_START = ABAP_TRUE. "协议起始日期
GS_HEADERX-VPER_END = ABAP_TRUE. "协议截至日期
GS_HEADERX-PURCH_ORG = ABAP_TRUE. "采购组织
GS_HEADERX-PUR_GROUP = ABAP_TRUE. "采购组
GS_HEADERX-ACUM_VALUE = ABAP_TRUE. "目标值
GS_HEADERX-CURRENCY = ABAP_TRUE. "货币
GS_HEADERX-COLLECT_NO = ABAP_TRUE. "汇总号
GS_HEADERX-LANGU = ABAP_TRUE. "行项目
CLEAR:GS_ITEM.
GS_ITEM-ITEM_NO = '10'. "行号
GS_ITEM-EMATERIAL = '000000000000231829'."物料号
GS_ITEM-SHORT_TEXT = '铝板'. "短文本
GS_ITEM-MATL_GROUP = 'CRC09'. "物料组
GS_ITEM-PLANT = '2000'. "工厂
GS_ITEM-STGE_LOC = '1006'. "库存地点
GS_ITEM-TARGET_QTY = '1'. "目标数量
GS_ITEM-PO_UNIT = 'KG'."订单单位
GS_ITEM-PO_UNIT_ISO = 'KG'."ISO代码中的定单单位
GS_ITEM-NET_PRICE = '1'. "净价
GS_ITEM-PRICE_UNIT = '1'. "价格单位 每
GS_ITEM-ORDERPR_UN = 'KG'. "订单价格单位(采购)
GS_ITEM-ORDERPR_UN_ISO = 'KG'. "订单价格单位(采购)
GS_ITEM-TAX_CODE = 'JF'. "销售/购买税代码
GS_ITEM-VAL_TYPE = 'CR'. "评估类型
*GS_ITEM-ACCTASSCAT = 'U'."科目分配类别
*GS_ITEM-ITEM_CAT = 0."项目类别
APPEND GS_ITEM TO GT_ITEM. CLEAR:GS_ITEMX.
GS_ITEMX-ITEM_NO = '10'. "行号
GS_ITEMX-ITEM_NOX = ABAP_TRUE. "行号
GS_ITEMX-EMATERIAL = ABAP_TRUE. "物料号
*GS_ITEMX-MATERIAL = ABAP_TRUE. "物料号
GS_ITEMX-SHORT_TEXT = ABAP_TRUE. "短文本
GS_ITEMX-MATL_GROUP = ABAP_TRUE. "物料组
GS_ITEMX-PLANT = ABAP_TRUE. "工厂
GS_ITEMX-STGE_LOC = ABAP_TRUE. "库存地点
GS_ITEMX-TARGET_QTY = ABAP_TRUE. "目标数量
GS_ITEMX-PO_UNIT = ABAP_TRUE.
GS_ITEMX-PO_UNIT_ISO = ABAP_TRUE.
GS_ITEMX-NET_PRICE = ABAP_TRUE. "净价
GS_ITEMX-PRICE_UNIT = ABAP_TRUE. "价格单位
GS_ITEMX-ORDERPR_UN = ABAP_TRUE.
GS_ITEMX-ORDERPR_UN_ISO = ABAP_TRUE.
GS_ITEMX-TAX_CODE = ABAP_TRUE.
GS_ITEMX-VAL_TYPE = ABAP_TRUE. "评估类型
*GS_ITEMX-ACCTASSCAT = ABAP_TRUE. "科目分配类别
*GS_ITEMX-ITEM_CAT = ABAP_TRUE. "项目类别
APPEND GS_ITEMX TO GT_ITEMX. CALL FUNCTION 'BAPI_CONTRACT_CREATE'
EXPORTING
HEADER = GS_HEADER
HEADERX = GS_HEADERX
* VENDOR_ADDRESS =
* TESTRUN =
* TECHNICAL_DATA =
IMPORTING
PURCHASINGDOCUMENT = GV_NUMBER
EXP_HEADER = GS_EXP_HEADER
TABLES
RETURN = GT_RETURN
ITEM = GT_ITEM
ITEMX = GT_ITEMX
* ACCOUNT =
* ACCOUNTPROFITSEGMENT =
* ACCOUNTX =
* DELIVERY_ADDRESS =
* ITEM_COND_VALIDITY =
* ITEM_COND_VALIDITYX =
* ITEM_CONDITION =
* ITEM_CONDITIONX =
* ITEM_COND_SCALE_VALUE =
* ITEM_COND_SCALE_QUAN =
* ITEM_TEXT =
* HEADER_TEXT =
* HEAD_COND_VALIDITY =
* HEAD_COND_VALIDITYX =
* HEAD_CONDITION =
* HEAD_CONDITIONX =
* HEAD_COND_SCALE_VAL =
* HEAD_COND_SCALE_QUAN =
* PARTNER =
* PARTNERX =
* EXTENSIONIN =
* EXTENSIONOUT =
. 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:GV_NUMBER.
ELSE.
CALL FUNCTION 'BAPI_TRANSACTION_ROLLBACK'.
ENDIF.
"-----------------------------@斌将军-----------------------------
定期更文,欢迎关注

ME31K 创建框架协议的更多相关文章
- SAP MM 采购ERP顾问咨询费限制总金额的框架协议实现方案
SAP MM 采购ERP顾问咨询费限制总金额的框架协议实现方案 [业务场景] 采购部门与ERP咨询公司签订了一个框架协议,只规定不同级别顾问的人天费用,不限定这些不同级别咨询顾问的具体采购的人天数,但 ...
- SD从零开始65 框架协议(Outline Agreement)
SD从零开始65 框架协议(Outline Agreement) 合同-销售凭证类型Contracts-Sales Document Types 框架协议在几乎所有的业务处理中都扮演重要的角色:客户和 ...
- 基于Netty和SpringBoot实现一个轻量级RPC框架-协议篇
基于Netty和SpringBoot实现一个轻量级RPC框架-协议篇 前提 最近对网络编程方面比较有兴趣,在微服务实践上也用到了相对主流的RPC框架如Spring Cloud Gateway底层也切换 ...
- ALSA driver--PCM实例创建框架
在介绍PCM 之前,我们先给出创建PCM实例的框架. #include <sound/pcm.h> .... /* hardware definition */ static struct ...
- 创建框架链接--frameset的连接方法
首先看下小编的目录架构 1.html将作为主页面 2.html将作为目录页面,里面有2个目录,分别是目录一和目录二 3.html为目录一将要链接的页面 4.html为目录二将要链接的页面 然后,看下1 ...
- (转)php自己创建框架
前言 说到写PHP的MVC框架,大家想到的第一个词--“造轮子”,是的,一个还没有深厚功力的程序员,写出的PHP框架肯定不如那些出自大神们之手.经过时间和各种项目考验的框架.但我还是准备并且这么做了, ...
- Dubbo框架协议总结
Dubbo支持的各种协议及相关特性及应用场景,均可在官网文档中找到. 支持的协议有dubbo.rmi.hession.http.webservice.thrift.memcached.redis.re ...
- Java客户端协议处理框架简介
无论FTP客户程序,还是HTTP客户程序,或是其他基于特定应用层协议的客户程序,在与远程服务器通信时,都需要建立与远程服务器的连接,然后发送和接收与协议相符的数据.客户程序还需要对服务器发送的数据进行 ...
- iOS项目开发日常之创建文件(协议、类、分类、扩展)
iOS项目开发过程中,是以不断创建文件的形式进行着的. 创建得比较频繁的文件类型是: 这两个类型中创建的文件有:子类.分类.扩展.协议四种文件,如下: 这四类文件是频繁创建的,我们来看一下各自分 ...
- ios中创建自己的框架
如果你是IOS的新手,并有.net开发的背景(就像我一样),你可能到处去找,哪里有dll呢? 其实,IOS平台是使用框架而不是dll,框架里面包含公共头文件和二进制文件.很不幸,XCode并不支持你自 ...
随机推荐
- 每天5分钟复习OpenStack(十)Ceph 架构
在很多关于Ceph的文章中,通常会介绍一堆概念.虽然这些概念很重要,但是对于一个新手来说,同时接受太多的概念实际上很难消化.因此,在阅读本章节时要保持轻松的心情,只需要对所有的概念有个了解就可以了,因 ...
- 总结(3)--- 知识总结(内存管理、线程阻塞、GIL锁)
一.Python中是如何进行内存管理的? 垃圾回收:Python不像C++,Java等语言一样,他们可以不用事先声明变量类型而直接对变量进行赋值.对Python而言,对象的类型和内存都是在运行时确定的 ...
- OPC 协议数据采集
kepserver OPC Connectivity Suite 让系统和应用程序工程师能够从单一应用程序中管理他们的 OPC 数据访问 (DA) 和 OPC 统一架构 (UA) 服务器.通过减少 ...
- day01预习-基本语法
typora-copy-images-to: media 基本语法 JavaScript的历史: 在95年以前,就有很多上网的用户了,当时的带宽只有28.8kb/s,用户要进行表单的验证时,点击提 ...
- 在 Windows 系统上运行 VIC 水文模型
目录 配置 WSL2 和 Ubuntu 系统 启用 WSL2 安装 Linux 发行版 配置 Ubuntu 安装 VIC 并测试 Stehekin 数据集 VIC 模型安装 samples 测试 VI ...
- springboot实现反向代理,动态代理目标地址
网上找了很多文章,各种照搬,只能自己实现 基于开源项目HTTP-Proxy-Servlet实现 开源项目地址:https://github.com/mitre/HTTP-Proxy-Servlet 1 ...
- C++学习笔记四:变量与数据类型(布尔型与字符型)
今天来整理一下布尔型和字符型变量的基本使用方法1)布尔型变量1. 声明和初始化一个布尔类型的变量占据1 Byte空间,数值0代表false,其他非0数值代表true bool red_light {f ...
- Chrome扩展的核心:manifest 文件(中)
大家好,我是 dom 哥.我正在写关于 Chrome 扩展开发的系列文章,感兴趣的可以 点个小星星 . 在上一篇中已经完成了 Chrome 扩展的雏形,本篇接着介绍 manifest 中的可选字段,完 ...
- emoji表情符号备忘单
记录目的:写文章的时候想用一些小表情或图片,但是上传图片太麻烦还不兼容 emoji表情符号就是很好的选择 国际通用,开箱即用(复制粘贴),兼容性强(理论上能放文本就能放emoji) 博客文档,git文 ...
- Object类、String和StringBuffer、Math类、日期处理类
1.Object类 "万物皆对象":(1)从类和对象角度:任何具体事物都是一个对象,. (2)Object类,类似"东西".所有的类都继承了Object类. 使 ...