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. 《最新出炉》系列初窥篇-Python+Playwright自动化测试-30-处理日历时间控件-下篇

    1.简介 理想很丰满现实很骨感,在应用playwright实现web自动化时,经常会遇到处理日期控件点击问题,手工很简单,可以一个个点击日期控件选择需要的日期,但自动化执行过程中,完全复制手工这样的操 ...

  2. Atcoder abc 221 E - LEQ

    原题链接:E - LEQ 思路: 题目要求对于从数组1~n找出所有符合开头数字小于等于结尾数字的子序列,\(A' = (A_1', A_2', ... , A_k')\),满足\(A_1' \leq ...

  3. 暴力+分治+贪心+DP:最大子序列和

    给定一个整数数组 nums ,找到一个具有最大和的连续子数组(子数组最少包含一个元素),返回其最大和. 示例: 输入: [-2,1,-3,4,-1,2,1,-5,4], 输出: 6 解释: 连续子数组 ...

  4. Spring Boot 关闭 Actuator ,满足安全工具扫描

    应用被安全工具,扫描出漏洞信息 [MSS]SpringBoot Actuator敏感接口未授权访问漏洞(Actuator)事件发现通告: 发现时间:2023-11-25 19:47:17 攻击时间:2 ...

  5. [UOJ#748] [UNR#6 1B] 机器人表演

    在这个科技发达的年代,真人表演已经落伍了.参加完 UOI 后,hehe 蚤去到了下山市大剧院,观看下山市最火爆的机器人表演. 机器人有时比人类更能抓住事情的本质.所谓表演,其实也就是开场有若干个机器人 ...

  6. 华企盾DSC防泄密申请解密、外发等失败常见处理方法

    1.检查文件是否已经打开或被占用,以及文件的权限不是只读(错误代码32或5,这种情况比较常见) 2.系统用户名不能带特殊字符.老版本文件路径中不能含特殊字符(包括备份路径) 3.备份路径是否有读写权限 ...

  7. MyBatis中获取参数值的两种方式:${} 和 #{},以及它们之间区别是什么?

    MyBatis中获取参数值的两种方式 ${}:的本质就是字符串拼接 #{}:的本质就是占位符赋值 ① 使用${}占位符,在字符串拼接的方式拼接sql,若为字符串类型或为日期类型的字段进行赋值时,需要手 ...

  8. Odoo16—国际化翻译

    开发odoo系统模块的时候,如果一开始就有国际化的需求,无论是模型的定义还是视图的构建,建议使用英语作为第一语言:一方面,英语本身就是一种国际化的语言:另一方面,odoo内置模型字段描述如Create ...

  9. 用C实现HashTable

    简述HashTable的原理 HashTable是一种数据结构,通过key可以直接的到value,查找值时间总为常数级别O(1). 原理 HashTable底层是使用了数组实现的.数组只要知道了索引, ...

  10. LeetCode 947. 移除最多的同行或同列石头 并查集

    传送门 思路 干货太干就不太好理解了,以下会有点话痨( ̄▽ ̄)" 首先题目给了一个二维stones数组,存储每个石子的坐标,因为在同行或者同列的石子最终可以被取到只剩下一个,那么我们将同行同 ...