*&---------------------------------------------------------------------*
*& Report ZBAPI_WB21
*&
*&---------------------------------------------------------------------*
*&
*&
*&---------------------------------------------------------------------* REPORT ZBAPI_CONTRACT_CREATE. DATA: L_FLAG TYPE C,
CNS_YES TYPE C.
DATA:L_EBELN TYPE BAPIMEOUTHEADER-NUMBER, "#EC NEEDED
LS_EKKO TYPE EKKO, EXTENSIONIN LIKE BAPIPAREX OCCURS 0 WITH HEADER LINE,
LT_EXTENSIONOUT TYPE BAPIPAREX_T,
LT_RETURN TYPE BAPIRET2_T,
LS_RETURN TYPE BAPIRET2, LS_HEADER TYPE BAPIMEOUTHEADER,
LS_HEADERX TYPE BAPIMEOUTHEADERX, LS_ITEM TYPE BAPIMEOUTITEM,
LT_ITEM TYPE BAPIMEOUT_T_ITEM,
LS_ITEMX TYPE BAPIMEOUTITEMX,
LT_ITEMX TYPE BAPIMEOUT_T_ITEMX. *--------------------------------------------------------------------*
* Header赋值
*--------------------------------------------------------------------*
CLEAR: LS_HEADER,LS_HEADERX,L_FLAG.
REFRESH: LT_RETURN, LT_ITEM, LT_ITEMX. *READ TABLE gt_out INTO gwa_out INDEX 1.
*
*IF gwa_out-ebeln IS NOT INITIAL.
* g_action = cns_modify.
*ELSE.
* g_action = cns_create.
*ENDIF.
CNS_YES = 'X'. *LS_HEADER-NUMBER = '4600000005'."gwa_out-ebeln. "采购凭证号
LS_HEADER-VENDOR = '0000400007'."gwa_out-lifnr. "供应商
LS_HEADER-DOC_TYPE = 'MK'."gwa_out-bsart. "协议类型
LS_HEADER-COMP_CODE = '8000'."gwa_out-bukrs. "公司代码
LS_HEADER-DOC_DATE = SY-DATUM."gwa_out-bedat. "协议日期
*ls_header-vper_start = sy-datum."gwa_out-kdatb. "协议起始日期
*ls_header-vper_end = sy-datum."gwa_out-kdate. "协议截至日期
LS_HEADER-PURCH_ORG = '8000'."gwa_out-ekorg. "采购组织
LS_HEADER-PUR_GROUP = '007'."gwa_out-ekgrp. "采购组
*ls_header-acum_value = ."gwa_out-ktwrt. "目标值
LS_HEADER-CURRENCY = 'USD'."gwa_out-waers. "货币
LS_HEADER-LANGU = SY-LANGU.
LS_HEADER-VPER_START = SY-DATUM.
LS_HEADER-VPER_END = SY-DATUM. *LS_HEADERX-NUMBER = CNS_YES. "合同号
LS_HEADERX-VENDOR = CNS_YES. "供应商
LS_HEADERX-DOC_TYPE = CNS_YES. "协议类型
LS_HEADERX-COMP_CODE = CNS_YES. "公司代码
LS_HEADERX-DOC_DATE = CNS_YES. "协议日期
LS_HEADERX-VPER_START = CNS_YES. "协议起始日期
LS_HEADERX-VPER_END = CNS_YES. "协议截至日期
LS_HEADERX-PURCH_ORG = CNS_YES. "采购组织
LS_HEADERX-PUR_GROUP = CNS_YES. "采购组
*ls_headerx-acum_value = cns_yes. "目标值
LS_HEADERX-CURRENCY = CNS_YES. "货币
LS_HEADERX-LANGU = CNS_YES.
LS_HEADERX-VPER_START = CNS_YES.
LS_HEADERX-VPER_END = CNS_YES. *--------------------------------------------------------------------*
* Header 自定义字段赋值
*--------------------------------------------------------------------*
DATA: LS_BAPI_TE_MEOUTHEADERX LIKE BAPI_TE_MEOUTHEADERX,
LS_BAPI_TE_MEOUTHEADER LIKE BAPI_TE_MEOUTHEADER. *CLEAR extensionin.
*ls_bapi_te_meoutheader-number = gwa_out-ebeln.
*ls_bapi_te_meoutheader-zhtnum = gwa_out-zhtnum. "外部合同号
*ls_bapi_te_meoutheader-zlotno = gwa_out-zlotno. "LOT包号
*ls_bapi_te_meoutheader-zcgblx = gwa_out-zcgblx. "采购包类型
*ls_bapi_te_meoutheader-zhtbz = gwa_out-zhtbz. "采购立项号
*ls_bapi_te_meoutheader-zcgnum = gwa_out-zcgnum. "采购任务
*extensionin-structure = 'BAPI_TE_MEOUTHEADER'.
*CALL METHOD cl_abap_container_utilities=>fill_container_c
* EXPORTING
* im_value = ls_bapi_te_meoutheader
* IMPORTING
* ex_container = extensionin-valuepart1
* EXCEPTIONS
* illegal_parameter_type = 1
* OTHERS = 2.
*APPEND extensionin.
*
*CLEAR extensionin.
*ls_bapi_te_meoutheaderx-number = gwa_out-ebeln.
*ls_bapi_te_meoutheaderx-zhtnum = cns_yes. "外部合同号
*ls_bapi_te_meoutheaderx-zlotno = cns_yes. "LOT包号
*ls_bapi_te_meoutheaderx-zcgblx = cns_yes. "采购包类型
*ls_bapi_te_meoutheaderx-zhtbz = cns_yes. "采购立项号
*ls_bapi_te_meoutheaderx-zcgnum = cns_yes. "采购任务
*extensionin-structure = 'BAPI_TE_MEOUTHEADERX'.
*CALL METHOD cl_abap_container_utilities=>fill_container_c
* EXPORTING
* im_value = ls_bapi_te_meoutheaderx
* IMPORTING
* ex_container = extensionin-valuepart1
* EXCEPTIONS
* illegal_parameter_type = 1
* OTHERS = 2.
** EXTENSIONIN-VALUEPART1 = LS_BAPI_TE_MEOUTHEADERX.
*APPEND extensionin. *--------------------------------------------------------------------*
* Item赋值
*--------------------------------------------------------------------*
CLEAR: LS_ITEM,LS_ITEMX,LT_ITEM[],LT_ITEMX[].
*LOOP AT gt_out INTO gwa_out.
CLEAR: LS_ITEM, LS_ITEMX. LS_ITEM-ITEM_NO = 10."gwa_out-ebelp. "行号
LS_ITEM-MATERIAL = '3TE50G1803J2'." "物料
LS_ITEM-SHORT_TEXT = 'C.彩电.HU50N3030UWR.P/S..美国'."gwa_out-txz01. "端文本
* ls_item-matl_group = ."gwa_out-matkl. "物料组
LS_ITEM-MATL_GROUP = 'G14001'."gwa_out-werks. "工厂
LS_ITEM-PLANT = '8000'."gwa_out-werks. "工厂
LS_ITEM-STGE_LOC = 'Q012'."gwa_out-werks. "工厂
LS_ITEM-TARGET_QTY = 10."gwa_out-ktmng. "目标数量
LS_ITEM-PO_UNIT = 'PC'."gwa_out-meins.
* ls_item-po_unit_iso = ."gwa_out-meins.
LS_ITEM-NET_PRICE = 400."gwa_out-netpr. "净价
* ls_item-price_unit = ."gwa_out-peinh. "价格单位
* ls_item-orderpr_un = ."gwa_out-meins. "订单价格单位(采购)
* ls_item-orderpr_un_iso = ."gwa_out-meins. "订单价格单位(采购)
* ls_item-acctasscat = 'U'. "科目分配类别
* ls_item-item_cat = 0. "项目类别
*LS_ITEM-EMATERIAL = '9TD47G11033'.
APPEND LS_ITEM TO LT_ITEM. LS_ITEMX-ITEM_NO = '10'."gwa_out-ebelp. "行号
LS_ITEMX-ITEM_NOX = CNS_YES. "行号
LS_ITEMX-MATERIAL = CNS_YES. "端文本
LS_ITEMX-SHORT_TEXT = CNS_YES. "端文本
* ls_itemx-matl_group = cns_yes. "物料组
LS_ITEMX-MATL_GROUP = CNS_YES. "工厂
LS_ITEMX-PLANT = CNS_YES. "工厂
LS_ITEMX-STGE_LOC = CNS_YES. "工厂
LS_ITEMX-TARGET_QTY = CNS_YES. "目标数量
LS_ITEMX-PO_UNIT = CNS_YES.
* ls_itemx-po_unit_iso = cns_yes. LS_ITEMX-NET_PRICE = CNS_YES. "净价
* ls_itemx-price_unit = cns_yes. "价格单位
* ls_itemx-orderpr_un = cns_yes.
* ls_itemx-orderpr_un_iso = cns_yes.
* ls_itemx-acctasscat = cns_yes. "科目分配类别
* ls_itemx-item_cat = cns_yes. "项目类别
*LS_ITEMX-EMATERIAL = CNS_YES.
APPEND LS_ITEMX TO LT_ITEMX.
*ENDLOOP. *--------------------------------------------------------------------*
* Create contract
*--------------------------------------------------------------------*
IF SY-SUBRC = 0.
"无合同号,新建 CALL FUNCTION 'BAPI_CONTRACT_CREATE'
EXPORTING
HEADER = LS_HEADER
HEADERX = LS_HEADERX
* TESTRUN = PA_TEST
IMPORTING
PURCHASINGDOCUMENT = L_EBELN
TABLES
RETURN = LT_RETURN
ITEM = LT_ITEM
ITEMX = LT_ITEMX
EXTENSIONIN = EXTENSIONIN. ELSE.
" 有合同号,修改
L_EBELN = LS_HEADER-NUMBER.
CALL FUNCTION 'BAPI_CONTRACT_CHANGE'
EXPORTING
PURCHASINGDOCUMENT = L_EBELN
HEADER = LS_HEADER
HEADERX = LS_HEADERX
* TESTRUN = PA_TEST
IMPORTING
EXP_HEADER = LS_HEADER
TABLES
RETURN = LT_RETURN
ITEM = LT_ITEM
ITEMX = LT_ITEMX
EXTENSIONIN = EXTENSIONIN. ENDIF. L_FLAG = 'S'.
LOOP AT LT_RETURN INTO LS_RETURN WHERE TYPE = 'E' OR TYPE = 'A'.
L_FLAG = 'E'.
EXIT.
ENDLOOP. IF L_FLAG EQ 'S'.
CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'.
ELSE.
CALL FUNCTION 'BAPI_TRANSACTION_ROLLBACK'.
ENDIF. *IF l_flag EQ 'S'.
* IF g_action EQ cns_create.
* MESSAGE s836 WITH l_ebeln.
* ELSE.
* MESSAGE s837 WITH l_ebeln.
* ENDIF.
*ELSE.
* IF g_action EQ cns_create.
* MESSAGE s838 WITH l_ebeln.
* ELSE.
* MESSAGE s839 WITH l_ebeln.
* ENDIF.
*ENDIF. IF NOT LT_RETURN IS INITIAL.
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
I_STRUCTURE_NAME = 'BAPIRET2'
TABLES
T_OUTTAB = LT_RETURN
EXCEPTIONS
OTHERS = 0.
ENDIF.

如果报错E BAPI 1 No instance of object type PurchasingContract has been created. External reference: # 1   PurchasingContract   # 1 HEADER 0

说明可能是参数没有填完全,仔细检查一遍。

函数使用十二:BAPI_CONTRACT_CREATE的更多相关文章

  1. T-SQL:开窗函数(十二)

    1.基本概念 开窗函数分为两个部分分别是 1.聚合,排名,偏移,分布函数 . 2.开窗分区,排序,框架. 下面举个例子 SELECT empid, ordermonth, val, SUM(val) ...

  2. 函数使用十二:BAPI_MATERIAL_BOM_GROUP_CREATE(CS61)

    REPORT ZSM_CREATE_SIMPLEBOM.* This code will create a material BoM for the material* MAINMATERIAL wi ...

  3. 初学 Python(十二)——高阶函数

    初学 Python(十二)--高阶函数 初学 Python,主要整理一些学习到的知识点,这次是高阶函数. #-*- coding:utf-8 -*- ''''' 话说高阶函数: 能用函数作为参数的函数 ...

  4. 第二十二章 跳出循环-shift参数左移-函数的使用 随堂笔记

    第二十二章 跳出循环-shift参数左移-函数的使用 本节所讲内容: 22.1 跳出循环 22.2 Shift参数左移指令 22.3 函数的使用 22.4 实战-自动备份mysql数据库和nginx服 ...

  5. Scala学习十二——高阶函数

    一.本章要点 在Scala中函数是”头等公民“(可以作为参数,返回值,赋值给其他); 可以创建匿名函数,通常还会交给其他函数; 函数参数可以给出需要稍后执行的行为; 许多集合方法都接受函数参数,将函数 ...

  6. C++学习基础十二——纯虚函数与抽象类

    一.C++中纯虚函数与抽象类: 1.含有一个或多个纯虚函数的类成为抽象类,注意此处是纯虚函数,而不是虚函数. 2.如果一个子类继承抽象类,则必须实现父类中的纯虚函数,否则该类也为抽象类. 3.如果一个 ...

  7. CRL快速开发框架系列教程十二(MongoDB支持)

    本系列目录 CRL快速开发框架系列教程一(Code First数据表不需再关心) CRL快速开发框架系列教程二(基于Lambda表达式查询) CRL快速开发框架系列教程三(更新数据) CRL快速开发框 ...

  8. 我的MYSQL学习心得(十二) 触发器

    我的MYSQL学习心得(十二) 触发器 我的MYSQL学习心得(一) 简单语法 我的MYSQL学习心得(二) 数据类型宽度 我的MYSQL学习心得(三) 查看字段长度 我的MYSQL学习心得(四) 数 ...

  9. 第十二章Fundamental Data Types 基本数据类型

    目录: 12.1 数值概论 12.2整数 12.3浮点数 12.4 字符和字符串 12.5布尔变量 12.6枚举类型 12.7具名常量 12.8数组 12.9创建你自己的类型 12.1   数值概论 ...

  10. Bootstrap <基础三十二>模态框(Modal)插件

    模态框(Modal)是覆盖在父窗体上的子窗体.通常,目的是显示来自一个单独的源的内容,可以在不离开父窗体的情况下有一些互动.子窗体可提供信息.交互等. 如果您想要单独引用该插件的功能,那么您需要引用  ...

随机推荐

  1. 编写你的第一个 Django 应用程序,第1部分

    让我们通过示例来学习. 在本教程中,我们将引导您完成基本投票应用程序 它将由两部分组成: 一个公共网站,允许人们查看投票并在其中投票. 允许您添加.更改和删除投票的管理网站. 一.开发环境搭建 第一步 ...

  2. 『Plotly实战指南』--折线图绘制进阶篇

    上一篇介绍了Plotly绘制折线图的基础知识和数据预处理的技巧, 本文将重点探讨如何利用Plotly实现多线折线图的布局设计以及动态折线图的实现, 让我们一起掌握进阶的折线图绘制技巧. 1. 多折线图 ...

  3. Windows 下 Toad 如何使用 Oracle instantclient 32位客户端

    Toad需要32位的Oracle客户端,通过如下方法,可以使用 Oracle instantclient. 1.安装 Toad, 2.下载 Oracle instantclient 32位版,解压到指 ...

  4. 工作日记-LED串口开发

    背景 公司最近的一个项目中需要使用LED显示屏实时显示一些数据,经过调研,项目经理选择了泰美泉公司的产品,前几日硬件设备到了之后,笔者负责的中间件组就马不停蹄的开始了实际的调研与测试工作,因为之前有过 ...

  5. macOS 字体文件所在路径

    目录 用户字体路径/Library/Fonts 系统字体路径/System/Library/Fonts macOS font 也就是字体文件,有2个可用路径 这里以 macOS Monterey 版本 ...

  6. FastAPI 核心功能的完整示例代码,涵盖 WebSocket、后台任务、生命周期事件、中间件配置及会话管理

    以下是一个整合 FastAPI 核心功能的完整示例代码,涵盖 WebSocket.后台任务.生命周期事件.中间件配置及会话管理.代码结构参考了多个技术文档的最佳实践: from contextlib ...

  7. HTB打靶记录-EscapeTwo

    信息收集 nmap -sV -sC -O 10.10.11.51 Starting Nmap 7.95 ( https://nmap.org ) at 2025-04-05 14:52 CST Sta ...

  8. Innodb快速复习

    放一张官方架构图: 参考文章: 一文带你了解MySQL之InnoDB_Buffer_Pool-阿里云开发者社区这一篇buffer pool讲解的很好 [动画演示:MySQL的BufferPool和Ch ...

  9. 开源项目YtyMark文本编辑器--UI界面相关功能(关于设计模式的实战运用)

    开源项目地址 GitHub 开源地址(YtyMark-java) 欢迎提交 PR.Issue.Star ️! 1. 简述 YtyMark-java项目分为两大模块: UI界面(ytyedit-mark ...

  10. mysql重新设置密码、远程登录及中文乱码修改

    基础环境 版本:mysql 5.7.33 系统:ubuntun0.18.04 一.忘记密码问题 1.编辑配置文件/etc/mysql/mysql.conf.d/mysqld.cnf,注意此为ubunt ...