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. 【主流技术】详解 Spring Boot 2.7.x 集成 ElasticSearch7.x 全过程(二)

    目录 前言 一.添加依赖 二. yml 配置 三.注入依赖 四.CRUD 常用 API ES 实体类 documents 操作 常见条件查询(重点) 分页查询 排序 构造查询 测试调用 五.文章小结 ...

  2. 【GIT】学习day03 | 如何生成并配置SSH公钥【外包杯】

    快速笔记: 1.注册并激活码云账号 2.生成并配置SSH公钥(运行ssh -t git@gitee.com 检测SSH公钥是否配置成功) 3.创建空白的码云仓库 4.把本地项目上传到码云对应的空白仓库 ...

  3. 从0开始用Maven

    一.Maven的介绍即相关概念 Maven是一款构建和管理Java项目的工具,它将项目开发和管理过程抽象成一个项目对象模型(POM),提供了一种统一的项目结构. Maven官网 1.为什么使用Mave ...

  4. Redis本地安装以及使用(详细教程)

    Redis 安装 Windows 下载安装 Redis默认端口:6379 整个过程如下: 1.下载连接 https://github.com/tporadowski/redis/releases Re ...

  5. 27、Type关键字

    1.是什么? type是go语法里额重要而且常用的关键字,type绝不只是对应于C/C++中的typeof.搞清楚type的使用,就容易理解Go语言中的核心概念struct.interface.函数等 ...

  6. .Net中的AutoScrollPosition问题 (panel 滚动条的位置设定)

    本文转自:http://www.cnblogs.com/h2appy/archive/2008/04/23/1167400.html 有Panel类型的窗体panel1,其AutoScroll设为了T ...

  7. 技巧:在Excel或Word中将回车替换掉

    一.在Excel中替换 将回车替换为逗号或其他字符,如下面的屏幕截图所示. 1. 在 查找和替换 对话框中 查找内容 字段,请按 Ctrl + J 键,然后在 更换 字段中,键入所需的字符,在这种情况 ...

  8. mybatis空格字符替换

    mybatis空格字符替换 <select id="user" resultType="java.util.Map" parameterType=&quo ...

  9. RSA 加密算法

    RSA加密算法是一种非对称加密算法,在公开密钥加密和电子商业中被广泛使用.RSA是由罗纳德·李维斯特(Ron Rivest).阿迪·萨莫尔(Adi Shamir)和伦纳德·阿德曼(Leonard Ad ...

  10. PythonAnywhere 部署Flask项目

    一. 注册账号 官网:https://www.pythonanywhere.com/ 二. 将GitHub上的项目发送至PythonAnywhere 三.配置环境及运行 git clone https ...