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 创建框架协议的更多相关文章

  1. SAP MM 采购ERP顾问咨询费限制总金额的框架协议实现方案

    SAP MM 采购ERP顾问咨询费限制总金额的框架协议实现方案 [业务场景] 采购部门与ERP咨询公司签订了一个框架协议,只规定不同级别顾问的人天费用,不限定这些不同级别咨询顾问的具体采购的人天数,但 ...

  2. SD从零开始65 框架协议(Outline Agreement)

    SD从零开始65 框架协议(Outline Agreement) 合同-销售凭证类型Contracts-Sales Document Types 框架协议在几乎所有的业务处理中都扮演重要的角色:客户和 ...

  3. 基于Netty和SpringBoot实现一个轻量级RPC框架-协议篇

    基于Netty和SpringBoot实现一个轻量级RPC框架-协议篇 前提 最近对网络编程方面比较有兴趣,在微服务实践上也用到了相对主流的RPC框架如Spring Cloud Gateway底层也切换 ...

  4. ALSA driver--PCM实例创建框架

    在介绍PCM 之前,我们先给出创建PCM实例的框架. #include <sound/pcm.h> .... /* hardware definition */ static struct ...

  5. 创建框架链接--frameset的连接方法

    首先看下小编的目录架构 1.html将作为主页面 2.html将作为目录页面,里面有2个目录,分别是目录一和目录二 3.html为目录一将要链接的页面 4.html为目录二将要链接的页面 然后,看下1 ...

  6. (转)php自己创建框架

    前言 说到写PHP的MVC框架,大家想到的第一个词--“造轮子”,是的,一个还没有深厚功力的程序员,写出的PHP框架肯定不如那些出自大神们之手.经过时间和各种项目考验的框架.但我还是准备并且这么做了, ...

  7. Dubbo框架协议总结

    Dubbo支持的各种协议及相关特性及应用场景,均可在官网文档中找到. 支持的协议有dubbo.rmi.hession.http.webservice.thrift.memcached.redis.re ...

  8. Java客户端协议处理框架简介

    无论FTP客户程序,还是HTTP客户程序,或是其他基于特定应用层协议的客户程序,在与远程服务器通信时,都需要建立与远程服务器的连接,然后发送和接收与协议相符的数据.客户程序还需要对服务器发送的数据进行 ...

  9. iOS项目开发日常之创建文件(协议、类、分类、扩展)

    iOS项目开发过程中,是以不断创建文件的形式进行着的. 创建得比较频繁的文件类型是: 这两个类型中创建的文件有:子类.分类.扩展.协议四种文件,如下:    这四类文件是频繁创建的,我们来看一下各自分 ...

  10. ios中创建自己的框架

    如果你是IOS的新手,并有.net开发的背景(就像我一样),你可能到处去找,哪里有dll呢? 其实,IOS平台是使用框架而不是dll,框架里面包含公共头文件和二进制文件.很不幸,XCode并不支持你自 ...

随机推荐

  1. 8.0的新特性 -- invisible(不可见索引)

    版权声明:原创作品,谢绝转载!否则将追究法律责任. ----- 作者:kirin invisible index 不可见索引 以前的版本,假如这个索引无用了会怎么样?那就只能是drop掉了.但是dro ...

  2. java集合框架(三)ArrayList常见方法的使用

    @[toc]## 一.什么是ArrarListArrayList是Java中的一个动态数组类,可以根据实际需要自动调整数组的大小.ArrayList是基于数组实现的,它内部维护的是一个Object数组 ...

  3. [FJOI2017]矩阵填数 (容斥原理)

    题目传送门 现在看来熊猫杯的J题原来是个容斥套路题,按照值域排序后根据值域划分方块数,枚举子集容斥计算即可. #include<cstdio> #include<algorithm& ...

  4. [THUPC 2023 初赛] 背包

    题目描述 本题中,你需要解决完全背包问题. 有 \(n\) 种物品,第 \(i\) 种物品单个体积为 \(v_i\).价值为 \(c_i\). \(q\) 次询问,每次给出背包的容积 \(V\),你需 ...

  5. jenkins pipeline语法、自动生成、部署案例

    Jenkins Pipeline是一套插件,支持在Jenkins中实现持续集成和持续交付: pipeline的编写都要写入到一个名为Jenkinsfile的文件中. 流水线脚本管理 Jenkinsfi ...

  6. .NET开发中合理使用对象映射库,简化和提高工作效率

    前言 在日常开发中,我们常常需要将一个对象映射到另一个对象,这个过程中可能需要编写大量的重复性代码,如果每次都手动编写,不仅会影响开发效率,而且当项目越来越复杂,庞大的时候还容易出现错误.为了解决这个 ...

  7. 数字孪生融合GIS系统能够为物流行业提供什么解决方案?

    全球贸易和电子商务的不断发展,让物流行业面临着越来越多的挑战.其中,提高运输效率.降低成本.优化供应链和增强可持续性等问题成为业界关注的焦点.在这个数字化时代,数字孪生和GIS系统的融合为物流行业带来 ...

  8. 开源数据血缘和元数据管理框架DataHub的血缘摄取 V0.12.1版本

    DataHUb的安装很简单:你有绿色上网就soeasy 前置条件,你已经运行好DataHub整个Docker-Compse服务 打开地址:http://host:9002/ 输入账号DataHub 密 ...

  9. java注释、变量、数据类型和运算符

    注释 单行注释:// 多行注释:/*开头,*/结尾 JavaDoc注释:/**开头,*/结尾 快捷键:ctrl + ? 变量 第一步:声明变量.即根据数据类型在内存分配空间. 第二步:赋值.即将数据的 ...

  10. javacv实现屏幕录制(一)

    javacv实现屏幕录制(一) javacv从入门到入土系列,发现了个好玩的东西,视频处理,于是我想搞个屏幕录屏,我百度了一下,copy那些代码我没有实现过,那些代码也没有说明,只好去官网看文档找资料 ...