服务订单SO创建
FUNCTION Z_SD_SALESORDER_CREATE.
*"----------------------------------------------------------------------
*"*"Local Interface:
*" IMPORTING
*" REFERENCE(IM_HEADER) LIKE VBAK STRUCTURE VBAK
*" EXPORTING
*" VALUE(EX_SALESORDER) TYPE VBELN
*" TABLES
*" IT_ITEM STRUCTURE VBAP
*" IT_RETURN STRUCTURE BAPIRET2 OPTIONAL
*"---------------------------------------------------------------------- PERFORM FRM_INIT_SALESORDER_HEADER USING IM_HEADER. PERFORM FRM_INIT_SALESORDER_ITEM TABLES IT_ITEM USING IM_HEADER. PERFORM FRM_INIT_SOPARTNER USING IM_HEADER-KUNNR. PERFORM FRM_INIT_SALESORDER_CONDITION TABLES IT_ITEM. PERFORM FRM_CREATE_SALESORDER CHANGING EX_SALESORDER. * APPEND LINES OF GT_RETURN TO IT_RETURN. IT_RETURN[] = GT_RETURN[].
ENDFUNCTION.
FORM FRM_INIT_SALESORDER_HEADER USING P_HEADER STRUCTURE VBAK. CLEAR GS_SALESORDER_HEADER.
* Mandatory entries:
GS_SALESORDER_HEADER-DOC_TYPE = 'ZRWF'."入网费 GS_SALESORDER_HEADER-SALES_ORG = ''. "Sales organization
GS_SALESORDER_HEADER-DISTR_CHAN = ''. "Distribution channel
GS_SALESORDER_HEADER-DIVISION = ''. " Division * Optional entries:
GS_SALESORDER_HEADER-DOC_DATE = SY-DATUM. "Document date (订单日期)
GS_SALESORDER_HEADER-REF_1 = P_HEADER-IHREZ. "Customer PO No. (POS订单号码)
* GS_SALESORDER_HEADER-ORD_REASON = U_HEADER-ZDDLX. "Order reason. (订单类型)
* GS_SALESORDER_HEADER-TELEPHONE = U_HEADER-ZLXDH. "Telephone Number. (联系电话)
* GS_SALESORDER_HEADER-NAME = U_HEADER-ZLSR. "Name of order. (联系人)
** GS_SALESORDER_HEADER-DOC_DATE = SY-DATUM. "Name of order. (联系人) * Change index
GS_SALESORDER_HEADERX-UPDATEFLAG = 'I'. "Sales document type
GS_SALESORDER_HEADERX-DOC_TYPE = 'X'. "Sales document type
GS_SALESORDER_HEADERX-SALES_ORG = 'X'. "Sales organization
GS_SALESORDER_HEADERX-DISTR_CHAN = 'X'. "Distribution channel
GS_SALESORDER_HEADERX-DIVISION = 'X'. " Division GS_SALESORDER_HEADERX-DOC_DATE = 'X'. "Document date (订单日期)
GS_SALESORDER_HEADERX-REF_1 = 'X'. "Customer PO No. (POS订单号码)
* GS_SALESORDER_HEADERX-ORD_REASON = 'X'. "Order reason. (订单类型)
* GS_SALESORDER_HEADERX-TELEPHONE = 'X'. "Telephone Number. (联系电话)
* GS_SALESORDER_HEADERX-NAME = 'X'. "Name of order. (联系人)
* GS_SALESORDER_HEADERX-DOC_DATE = 'X'. "Name of order. (联系人) CLEAR GS_LOGIC_SWITCH.
* GS_LOGIC_SWITCH-COND_HANDL = 'X'.
GS_LOGIC_SWITCH-PRICING = 'G'.
ENDFORM. " FRM_INIT_SALESORDER_HEADER
FORM FRM_INIT_SALESORDER_ITEM TABLES IT_ITEM STRUCTURE VBAP
USING P_HEADER STRUCTURE VBAK.
DATA : LS_ITEM TYPE VBAP,
LV_MATNR TYPE MATNR,
LV_POSNR TYPE POSNR. CLEAR : GS_SALESORDER_ITEM,
GT_SALESORDER_ITEM,
GT_SALESORDER_CONDITIONS,
GT_SALESORDER_CONDITIONX. CLEAR : GS_SALESORDER_SCHLINE,
GT_SALESORDER_SCHLINE,
GS_SALESORDER_SCHLINEX,
GT_SALESORDER_SCHLINEX. CLEAR LV_POSNR. LOOP AT IT_ITEM INTO LS_ITEM.
ADD TO LV_POSNR.
*** Items
* Convert Article no. (商品款号)
PERFORM FRM_CONVERT_ARTICLE USING LS_ITEM-MATNR CHANGING LV_MATNR. GS_SALESORDER_ITEM-ITM_NUMBER = LV_POSNR."'10'. "Item (行项目号)
GS_SALESORDER_ITEM-MATERIAL = LV_MATNR."70 ”Article (商品款号)
GS_SALESORDER_ITEM-BATCH = LS_ITEM-CHARG."70 ”Article (商品款号)
GS_SALESORDER_ITEM-PLANT = LS_ITEM-WERKS."P_HEADER-WERKS. "Site ()
GS_SALESORDER_ITEM-STORE_LOC = LS_ITEM-LGORT."Storage location
GS_SALESORDER_ITEM-TARGET_QTY = ''."Target quantity in sales units (商品件数)
* gs_salesorder_item-target_qu = 'ST'.
APPEND GS_SALESORDER_ITEM TO GT_SALESORDER_ITEM. GS_SALESORDER_ITEMX-UPDATEFLAG = 'I'.
GS_SALESORDER_ITEMX-ITM_NUMBER = LV_POSNR.
GS_SALESORDER_ITEMX-MATERIAL = 'X'.
GS_SALESORDER_ITEMX-BATCH = 'X'.
GS_SALESORDER_ITEMX-PLANT = 'X'.
GS_SALESORDER_ITEMX-STORE_LOC = 'X'.
* gs_salesorder_itemx-sales_unit = 'X'.
GS_SALESORDER_ITEMX-TARGET_QTY = 'X'.
* gs_salesorder_itemx-target_qu = 'X'.
APPEND GS_SALESORDER_ITEMX TO GT_SALESORDER_ITEMX. *** Scheuld line
CLEAR GS_SALESORDER_SCHLINE.
GS_SALESORDER_SCHLINE-ITM_NUMBER = LV_POSNR.
GS_SALESORDER_SCHLINE-SCHED_LINE = ''.
GS_SALESORDER_SCHLINE-REQ_QTY = ''.
* gs_salesorder_schline-req_date = '20140830'.
APPEND GS_SALESORDER_SCHLINE TO GT_SALESORDER_SCHLINE. CLEAR GS_SALESORDER_SCHLINEX.
GS_SALESORDER_SCHLINEX-ITM_NUMBER = LV_POSNR.
GS_SALESORDER_SCHLINEX-SCHED_LINE = ''.
GS_SALESORDER_SCHLINEX-UPDATEFLAG = 'I'.
* gs_salesorder_schlinex-req_date = 'X'.
GS_SALESORDER_SCHLINEX-REQ_QTY = 'X'.
APPEND GS_SALESORDER_SCHLINEX TO GT_SALESORDER_SCHLINEX. * Conditions
CLEAR GS_SALESORDER_CONDITIONS.
GS_SALESORDER_CONDITIONS-ITM_NUMBER = LV_POSNR.
* GS_SALESORDER_CONDITIONS-COND_COUNT = '10'.
GS_SALESORDER_CONDITIONS-COND_TYPE = 'ZF01'.
GS_SALESORDER_CONDITIONS-COND_VALUE = LS_ITEM-NETPR.
* GS_SALESORDER_CONDITIONS-CONDVALUE = '10'.
GS_SALESORDER_CONDITIONS-CURRENCY = 'CNY'.
APPEND GS_SALESORDER_CONDITIONS TO GT_SALESORDER_CONDITIONS. CLEAR GS_SALESORDER_CONDITIONX.
GS_SALESORDER_CONDITIONX-ITM_NUMBER = LV_POSNR.
* GS_SALESORDER_CONDITIONS-COND_COUNT = '10'.
GS_SALESORDER_CONDITIONX-COND_TYPE = 'ZF01'.
GS_SALESORDER_CONDITIONX-UPDATEFLAG = 'I'.
GS_SALESORDER_CONDITIONX-COND_VALUE = 'X'.
* GS_SALESORDER_CONDITIONX-CONDVALUE = 'X'.
GS_SALESORDER_CONDITIONX-CURRENCY = 'X'.
APPEND GS_SALESORDER_CONDITIONX TO GT_SALESORDER_CONDITIONX. ENDLOOP. ENDFORM. " FRM_INIT_SALESORDER_ITEM
FORM FRM_INIT_SOPARTNER USING P_CUSTOMER.
DATA : LV_KUNNR TYPE KUNNR. * Convert customer no. to internal no.(客户编码)
CALL FUNCTION 'CONVERSION_EXIT_ALPHA_INPUT'
EXPORTING
INPUT = P_CUSTOMER
IMPORTING
OUTPUT = LV_KUNNR. * WE Ship to , AG Sold to
CLEAR GS_SALESORDER_PARTNER.
* gs_salesorder_partner-itm_number = '10'."
GS_SALESORDER_PARTNER-PARTN_ROLE = 'WE'."SP
GS_SALESORDER_PARTNER-PARTN_NUMB = LV_KUNNR. "(客户编码)
* gs_salesorder_partner-name = u_header-zkhmc. "Name (客户名称)
APPEND GS_SALESORDER_PARTNER TO GT_SALESORDER_PARTNER.
ENDFORM. " FRM_INIT_SOPARTNER
FORM FRM_INIT_SALESORDER_CONDITION TABLES IT_ITEM STRUCTURE VBAP. ENDFORM. " FRM_INIT_SALESORDER_CONDITION
FORM FRM_CREATE_SALESORDER CHANGING P_SALESORDER. DATA : LV_SALESORDER TYPE BAPIVBELN-VBELN,
LV_ERROR. REFRESH GT_RETURN. CALL FUNCTION 'BAPI_SALESORDER_CREATEFROMDAT2'
EXPORTING
ORDER_HEADER_IN = GS_SALESORDER_HEADER
ORDER_HEADER_INX = GS_SALESORDER_HEADERX
LOGIC_SWITCH = GS_LOGIC_SWITCH
IMPORTING
SALESDOCUMENT = LV_SALESORDER
TABLES
RETURN = GT_RETURN
ORDER_ITEMS_IN = GT_SALESORDER_ITEM
ORDER_ITEMS_INX = GT_SALESORDER_ITEMX
ORDER_PARTNERS = GT_SALESORDER_PARTNER
ORDER_SCHEDULES_IN = GT_SALESORDER_SCHLINE
ORDER_SCHEDULES_INX = GT_SALESORDER_SCHLINEX
ORDER_CONDITIONS_IN = GT_SALESORDER_CONDITIONS
ORDER_CONDITIONS_INX = GT_SALESORDER_CONDITIONX. LOOP AT GT_RETURN INTO GS_RETURN WHERE TYPE = 'E' OR
TYPE = 'X' OR
TYPE = 'A'.
EXIT.
ENDLOOP. IF SY-SUBRC EQ .
CALL FUNCTION 'BAPI_TRANSACTION_ROLLBACK'.
ELSE.
CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'
EXPORTING
WAIT = 'X'. P_SALESORDER = LV_SALESORDER.
ENDIF. REFRESH : GT_SALESORDER_ITEM,
GT_SALESORDER_ITEMX,
GT_SALESORDER_PARTNER,
GT_SALESORDER_SCHLINE,
GT_SALESORDER_SCHLINEX,
GT_SALESORDER_CONDITIONS,
GT_SALESORDER_CONDITIONX.
ENDFORM. " FRM_CREATE_SALESORDER
服务订单SO创建的更多相关文章
- SAP S4CRM 1811 服务订单API介绍
Jerry在今年2月28日,SAP Customer Management for S/4HANA 1.0正式问世这个具有纪念意义的日子,同时发布了中英文版的博客进行介绍. 英文版发在SAP社区上,至 ...
- S/4HANA服务订单Service Order的批量创建
我工作中接到一个任务,需要在性能测试系统里创建一亿条服务订单service order来做性能测试. 这么大规模的数据量,当然只能用代码来创建了. 本文提到的所有ABAP代码,我均已上传到我的Gith ...
- 【FAQ】HMS Core推送服务与本地创建通知消息如何相互覆盖?
我们知道,单独使用HMS Core推送服务或本地创建通知消息,都可以实现通知消息的覆盖,方式分别为: 1.本地创建通知消息(简称本地通知消息) 通过notificationManager.notify ...
- ABAP 生产订单的创建与修改函数
ABAP 生产订单的创建与修改函数转自http://www.cnblogs.com/aBaoRong/archive/2012/04/11/2441946.html 如果生产订单过多,可以批量创建 ...
- WCF服务二:创建一个简单的WCF服务程序
在本例中,我们将实现一个简单的计算服务,提供基本的加.减.乘.除运算,通过客户端和服务端运行在同一台机器上的不同进程实现. 一.新建WCF服务 1.新建一个空白解决方案,解决方案名称为"WC ...
- C#创建服务及使用程序自动安装服务,.NET创建一个即是可执行程序又是Windows服务的exe
不得不说,.NET中安装服务很麻烦,即要创建Service,又要创建ServiceInstall,最后还要弄一堆命令来安装和卸载. 今天给大家提供一种方式,直接使用我们的程序来安装/卸载服务,并且可以 ...
- [转]C#创建服务及使用程序自动安装服务,.NET创建一个即是可执行程序又是Windows服务的exe
写在前面 原文地址:C#创建服务及使用程序自动安装服务,.NET创建一个即是可执行程序又是Windows服务的exe 这篇文章躺在我的收藏夹中有很长一段时间了,今天闲着没事,就自己动手实践了一下.感觉 ...
- 事件日志ID 2511:服务器服务无法重新创建 <sharename> 共享关系,因为 <address> 目录已不再存在
服务器服务无法重新创建 QQMusicDownload 共享关系,因为 D:\QQMusic\QQMusicDownload 目录已不再存在.请运行 "net share QQMusicDo ...
- Linux应用server搭建手冊—Weblogic服务域的创建与部署
前一篇谈到了Weblogic的安装,接下来整理weblogic服务域的创建及项目的部署 一.webLogic服务域创建 使用root用户登录后使用命令:#su W ...
随机推荐
- [C程序设计语言]第四部分
声明:原创作品,转载时请注明文章来自SAP师太技术博客( 博/客/园www.cnblogs.com):www.cnblogs.com/jiangzhengjun,并以超链接形式标明文章原始出处,否则将 ...
- POJ 1979 Red and Black (红与黑)
POJ 1979 Red and Black (红与黑) Time Limit: 1000MS Memory Limit: 30000K Description 题目描述 There is a ...
- 学习python得到方向与主体
Python的主体内容大致可以分为以下几个部分: 面向过程.包括基本的表达式,if语句,循环,函数等.如果你有任何一个语言的基础,特别是C语言的基础,这一部分就是分分钟了解下Python规定的事.如果 ...
- python_way,day3 集合、函数、三元运算、lambda、python的内置函数、字符转换、文件处理
python_way,day3 一.集合 二.函数 三.三元运算 四.lambda 五.python的内置函数 六.字符转换 七.文件处理 一.集合: 1.集合的特性: 特性:无序,不重复的序列 如果 ...
- Joke
你忍心蜗居在不到10平米的小屋里吗?你忍心看着自己的女友和你奋斗一辈子还供不起一套房吗?你忍心看着你父母缩衣节食把仅有的一点养老金帮你还房贷吗? 这里才是实现你梦想的地方.加入我们,待遇从优,装备齐全 ...
- [转载] 对象存储(2):OpenStack Swift——概念、架构与规模部署
原文: http://www.testlab.com.cn/Index/article/id/1085.html#rd?sukey=fc78a68049a14bb228cb2742bdec2b9498 ...
- LayoutParams使用
LayoutParams继承于Android.View.ViewGroup.LayoutParams. LayoutParams相当于一个Layout的信息包,它封装了Layout的位置. ...
- 如何在腾讯云上搭建一个人力资源Saas
版权声明:本文由ihr原创文章,转载请注明出处: 文章原文链接:https://www.qcloud.com/community/article/180 来源:腾云阁 https://www.qclo ...
- linux笔记:RPM软件包管理-源码包管理
源码包和rpm包的区别: 源码包安装过程: 编译安装前准备(执行./configure --prefix=路径 来配置软件的安装位置,以及做其他的配置和检查): 编译和安装(直接在目录下执行make和 ...
- redis命令集合
一.连接控制 QUIT 关闭连接 AUTH (仅限启用时)简单的密码验证 二.适合全体类型的命令 EXISTS key 判断一个键是否存在;存在返回 1;否则返回0;DEL key 删除某个key,或 ...