SAP_ABAP_SD_BAPI清单案例教程——销售订单创建_BAPI_SALESORDER_CREATEFROMDAT2_VA01_S4版本

本文主要是介绍SAP_ABAP_SD_BAPI清单案例教程——销售订单创建_BAPI_SALESORDER_CREATEFROMDAT2_VA01_S4版本,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

SAP ABAP 顾问(开发工程师)能力模型_Terry谈企业数字化的博客-CSDN博客目标:基于对SAP abap 顾问能力模型的梳理,给一年左右经验的abaper 快速成长为三年经验提参考ALV/REPORT|SMARTFROM|SCREEN|OLE|BAPI|BDC|PI|IDOC|RFC|API|WEBSERVICE|Enhancement|UserExits|Badi|Debughttps://blog.csdn.net/java_zhong1990/article/details/132469977


一 背景说明

        SAP BAPI(Business Application Programming Interface)是SAP系统中的一组规范和标准,用于从SAP系统中获取数据、输入数据和更新数据。这些API允许开发者以编程方式与SAP系统交互,而无需编写大量的自定义代码。

 1.1 BAPI清单

销售订单创建BAPI_BILLINGDOC_CREATEMULTIPLE
交货单创建BAPI_OUTB_DELIVERY_CREATE_SLS
交货单过帐WS_DELIVERY_UPDATE
销售订单开票BAPI_BILLINGDOC_CREATEMULTIPLE

二 实施步骤

2.1 Copy代码 直接可使用

2.2 案例模版涉及样例内容


抬头 | 增强 | 文本 | 合作伙伴 | 行表 | 计划行表 | 条件表

function zfm_sd_create_so.
*"----------------------------------------------------------------------
*"*"本地接口:
*"  IMPORTING
*"     VALUE(IN_HEADER) LIKE  ZSSD_SOHEADER STRUCTURE  ZSSD_SOHEADER
*"  EXPORTING
*"     VALUE(VBELN) TYPE  VBELN
*"     REFERENCE(ZSTATUS) TYPE  CHAR1
*"  TABLES
*"      IN_ITEM STRUCTURE  ZSSD_SOITEM
*"      IT_RETURN STRUCTURE  BAPIRET2 OPTIONAL
*"----------------------------------------------------------------------"  抬头data ls_order_header_in like bapisdhd1.data ls_order_header_inx like bapisdhd1x." 增强data lt_extensionin type table of bapiparex.data ls_bape_vbak type bape_vbak.data ls_bape_vbakx type bape_vbakx.data ls_bape_vbap type bape_vbap.data ls_bape_vbapx type bape_vbapx." 文本data lt_order_text type table of bapisdtext.data ls_bapisdtext type bapisdtext." 合作伙伴data lt_order_partners type table of  bapiparnr.data ls_order_partners type  bapiparnr."  行表data lt_order_items_in type table of bapisditm.data ls_order_items_in type bapisditm.data lt_order_items_inx type table of bapisditmx.data ls_order_items_inx type bapisditmx."  计划行表data lt_order_schedules_in type table of bapischdl.data ls_order_schedules_in type bapischdl.data lt_order_schedules_inx type table of bapischdlx.data ls_order_schedules_inx type bapischdlx."  条件表data lt_order_conditions_in type table of bapicond.data ls_order_conditions_in type bapicond.data lt_order_conditions_inx type table of bapicondx.data ls_order_conditions_inx type bapicondx."1,订单抬头字段赋值ls_order_header_in-doc_type = in_header-doc_type.        "订单类型ls_order_header_inx-doc_type = 'X'. "订单类型ls_order_header_in-sales_org = in_header-sales_org.      "销售组织ls_order_header_inx-sales_org = 'X'. "销售组织ls_order_header_in-distr_chan = in_header-distr_chan.     "分销渠道ls_order_header_inx-distr_chan = 'X'. "分销渠道ls_order_header_in-division = in_header-division.         "产品组ls_order_header_inx-division = 'X'. "产品组ls_order_header_in-req_date_h = in_header-req_date_h.      "默认为当前日期ls_order_header_inx-req_date_h = 'X'. "默认为当前日期ls_order_header_in-purch_date = in_header-purch_date.     "默认为当前日期ls_order_header_inx-purch_date = 'X'. "默认为当前日期ls_order_header_in-ord_reason = in_header-ord_reason.       "订单原因ls_order_header_inx-ord_reason = 'X'. "订单原因ls_order_header_in-price_date = in_header-price_date.     "默认为当前日期ls_order_header_inx-price_date = 'X'. "默认为当前日期ls_order_header_in-purch_no_c = in_header-purch_no_c.    "客户合同号码ls_order_header_inx-purch_no_c = 'X'. "客户合同号码
*  ls_order_header_in-ship_type = in_header-ship_type.        "运输方式
*  ls_order_header_inx-ship_type = 'X'. "运输方式"2,增强字段赋值ls_bape_vbak-zwsjg_flag = in_header-zwsjg_flag. "不含税价格ls_bape_vbakx = 'X'.append ls_bape_vbak to lt_extensionin.append ls_bape_vbakx to lt_extensionin."3,抬头文本赋值ls_bapisdtext-text_id = 'ZSH1'."文本 IDls_bapisdtext-langu =  sy-langu. ."语言代码ls_bapisdtext-text_line = in_header-note1."文本行
*  ls_bapisdtext-doc_number= ."销售凭证
*  ls_bapisdtext-itm_number= ."销售凭证项目
*  ls_bapisdtext-langu_iso= ."2 字符 SAP 语言代码
*  ls_bapisdtext-format_col-= ."标记列
*  ls_bapisdtext-function= ."功能append ls_bapisdtext to lt_order_text.clear ls_bapisdtext.ls_bapisdtext-text_id = 'ZSH2'."文本 IDls_bapisdtext-langu =  sy-langu. ."语言代码ls_bapisdtext-text_line = in_header-note2."文本行append ls_bapisdtext to lt_order_text.clear ls_bapisdtext."4,售达方 送达方 赋值clear ls_order_partners.ls_order_partners-partn_role = 'AG'.ls_order_partners-partn_numb = in_header-sale_kunnr. "售达方append ls_order_partners to lt_order_partners.clear ls_order_partners.ls_order_partners-partn_role = 'WE'.ls_order_partners-partn_numb = in_header-send_kunnr. "送达方append ls_order_partners to lt_order_partners.loop at in_item[] into in_item.ls_order_items_in-itm_number = in_item-posnr.  "客户合同行项目号码ls_order_items_inx-itm_number = in_item-posnr.  "客户合同行项目号码ls_order_items_in-po_itm_no = in_item-posnr.  "客户合同行项目号码ls_order_items_inx-po_itm_no = 'X'.  "客户合同行项目号码ls_order_items_in-material_long = in_item-material_long. "物料号码ls_order_items_inx-material_long = 'X'. "物料号码ls_order_items_in-cust_mat35 = in_item-cus_matnr. "客户物料号码ls_order_items_inx-cust_mat35 = 'X'. "客户物料号码ls_order_items_in-plant = in_item-werks. "工厂ls_order_items_inx-plant = 'X'. "工厂ls_order_items_in-store_loc = in_item-lgort. "库存地点ls_order_items_inx-store_loc = 'X'. "库存地点ls_order_items_in-target_qty = in_item-zmeng. "订单数量ls_order_items_inx-target_qty = 'X'. "订单数量append ls_order_items_in to lt_order_items_in.append ls_order_items_inx to lt_order_items_inx."其中:VBAP- ZKDMAT:二级客户物料号码,扩展字段采用EXTENSIONIN的方式进行处理;ls_bape_vbap-posnr = in_item-posnr.ls_bape_vbapx-posnr = in_item-posnr.ls_bape_vbap-zkdmat = in_item-zlevel_matnr.ls_bape_vbapx-zkdmat = 'X'.append ls_bape_vbap to lt_extensionin.append ls_bape_vbapx to lt_extensionin."行项目备注1,赋值到对应的文本上,文本ID和文本对象如下所示:clear ls_bapisdtext.ls_bapisdtext-itm_number = in_item-posnr ."销售凭证项目ls_bapisdtext-text_id = 'ZSI1'."文本 IDls_bapisdtext-langu =  sy-langu. ."语言代码ls_bapisdtext-text_line = in_item-note1."文本行append ls_bapisdtext to lt_order_text.ls_order_schedules_in-itm_number = in_item-posnr."当前的行项目号码ls_order_schedules_inx-itm_number = in_item-posnr."当前的行项目号码ls_order_schedules_in-date_type = in_item-abdat." 交货日期ls_order_schedules_inx-date_type = 'X'." 交货日期ls_order_schedules_in-req_qty = in_item-zmeng."订单数量ls_order_schedules_inx-req_qty = 'X'."订单数量append ls_order_schedules_in to lt_order_schedules_in.append ls_order_schedules_inx to lt_order_schedules_inx.ls_order_conditions_in-itm_number = in_item-posnr."当前的行项目号码ls_order_conditions_inx-itm_number = in_item-posnr."当前的行项目号码ls_order_conditions_in-cond_type = 'ZPR0' ."ls_order_conditions_inx-cond_type = 'X' ."ls_order_conditions_in-cond_value = in_item-zkbetr."价格ls_order_conditions_inx-cond_value = 'X'."价格ls_order_conditions_in-currency = in_item-waerk."货币ls_order_conditions_inx-currency = 'X'."货币ls_order_conditions_in-cond_p_unt = in_item-zkpein."价格因子ls_order_conditions_inx-cond_p_unt = 'X'."价格因子ls_order_conditions_in-curr_iso = in_item-waerk."货币
*    ls_order_conditions_inx-curr_iso = 'X'."货币  "X结构中不存在  curr_isoappend ls_order_conditions_in to lt_order_conditions_in.append ls_order_conditions_inx to lt_order_conditions_inx.endloop.call function 'BAPI_SALESORDER_CREATEFROMDAT2'exportingorder_header_in      = ls_order_header_inorder_header_inx     = ls_order_header_inximportingsalesdocument        = vbelntablesreturn               = it_returnorder_items_in       = lt_order_items_inorder_items_inx      = lt_order_items_inxorder_partners       = lt_order_partnersorder_schedules_in   = lt_order_schedules_inorder_schedules_inx  = lt_order_schedules_inxorder_conditions_in  = lt_order_conditions_inorder_conditions_inx = lt_order_conditions_inxextensionin          = lt_extensionin.if sy-subrc = 0 and vbeln is not initial.call function 'BAPI_TRANSACTION_COMMIT' "BAPI事务提交exportingwait = 'X'.zstatus = 'S'.else.zstatus = 'E'.endif.endfunction.

这篇关于SAP_ABAP_SD_BAPI清单案例教程——销售订单创建_BAPI_SALESORDER_CREATEFROMDAT2_VA01_S4版本的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/624101

相关文章

ESP32 esp-idf esp-adf环境安装及.a库创建与编译

简介 ESP32 功能丰富的 Wi-Fi & 蓝牙 MCU, 适用于多样的物联网应用。使用freertos操作系统。 ESP-IDF 官方物联网开发框架。 ESP-ADF 官方音频开发框架。 文档参照 https://espressif-docs.readthedocs-hosted.com/projects/esp-adf/zh-cn/latest/get-started/index

一份LLM资源清单围观技术大佬的日常;手把手教你在美国搭建「百万卡」AI数据中心;为啥大模型做不好简单的数学计算? | ShowMeAI日报

👀日报&周刊合集 | 🎡ShowMeAI官网 | 🧡 点赞关注评论拜托啦! 1. 为啥大模型做不好简单的数学计算?从大模型高考数学成绩不及格说起 司南评测体系 OpenCompass 选取 7 个大模型 (6 个开源模型+ GPT-4o),组织参与了 2024 年高考「新课标I卷」的语文、数学、英语考试,然后由经验丰富的判卷老师评判得分。 结果如上图所

ONLYOFFICE 8.1 版本桌面编辑器测评

在现代办公环境中,办公软件的重要性不言而喻。从文档处理到电子表格分析,再到演示文稿制作,强大且高效的办公软件工具能够极大提升工作效率。ONLYOFFICE 作为一个功能全面且开源的办公软件套件,一直以来都受到广大用户的关注与喜爱。而其最新发布的 ONLYOFFICE 8.1 版本桌面编辑器,更是带来了诸多改进和新特性。本文将详细评测 ONLYOFFICE 8.1 版本桌面编辑器,探讨其在功能、用户

17.用300行代码手写初体验Spring V1.0版本

1.1.课程目标 1、了解看源码最有效的方式,先猜测后验证,不要一开始就去调试代码。 2、浓缩就是精华,用 300行最简洁的代码 提炼Spring的基本设计思想。 3、掌握Spring框架的基本脉络。 1.2.内容定位 1、 具有1年以上的SpringMVC使用经验。 2、 希望深入了解Spring源码的人群,对 Spring有一个整体的宏观感受。 3、 全程手写实现SpringM

ABAP怎么把传入的参数刷新到内表里面呢?

1.在执行相关的功能操作之前,优先执行这一段代码,把输入的数据更新入内表里面 DATA: lo_guid TYPE REF TO cl_gui_alv_grid.CALL FUNCTION 'GET_GLOBALS_FROM_SLVC_FULLSCR'IMPORTINGe_grid = lo_guid.CALL METHOD lo_guid->check_changed_data.CALL M

Visual Studio中,MSBUild版本问题

假如项目规定了MSBUild版本,那么在安装完Visual Studio后,假如带的MSBUild版本与项目要求的版本不符合要求,那么可以把需要的MSBUild添加到系统中,然后即可使用。步骤如下:            假如项目需要使用V12的MSBUild,而安装的Visual Studio带的MSBUild版本为V14。 ①到MSDN下载V12 MSBUild包,把V12包解压到目录(

Steam邮件推送内容有哪些?配置教程详解!

Steam邮件推送功能是否安全?如何个性化邮件推送内容? Steam作为全球最大的数字游戏分发平台之一,不仅提供了海量的游戏资源,还通过邮件推送为用户提供最新的游戏信息、促销活动和个性化推荐。AokSend将详细介绍Steam邮件推送的主要内容。 Steam邮件推送:促销优惠 每当平台举办大型促销活动,如夏季促销、冬季促销、黑色星期五等,用户都会收到邮件通知。这些邮件详细列出了打折游戏、

X-AnyLabeling使用教程

1.AI 模型自动分割标注使用教程 2.AI 模型自动目标检测标注使用教程

Pycharm配置conda环境(解决新版本无法识别可执行文件问题)

引言: 很多小伙伴在下载最新版本的pycharm或者更新到最新版本后为项目配置conda环境的时候,发现文件夹目录中无法显示可执行文件(一般为python.exe),以下就是本人遇到该问题后试验和解决该问题的一些方法和思路。 一般遇到该问题的人群有两种,一种是刚入门对pycharm进行conda环境配置的小白(例如我),不熟悉相关环境配置的操作和过程,还有一种是入坑pycharm有段时间的老手

青龙面板2.9之Cdle傻妞机器人编译教程

看到有的朋友对傻妞机器人感兴趣,这里写一下傻妞机器人的编译教程。 第一步,这里以linux amd64为例,去官网下载安装go语言安装包: 第二步,输入下方指令 cd /usr/local && wget https://golang.google.cn/dl/go1.16.7.linux-amd64.tar.gz -O go1.16.7.linux-amd64.tar.gz