`
JerryWang_SAP
  • 浏览: 228239 次
  • 来自: 西安
文章分类
社区版块
存档分类
最新评论
阅读更多
这个自动触发的过程是怎么实现的?
使用下面的代码创建一个销售订单:
DATA: ls_header TYPE bapisdhd1, ls_headerx TYPE bapisdhd1x, lt_bapiret2 LIKE bapiret2 OCCURS 0 WITH HEADER LINE, po_order_number TYPE bapivbeln-vbeln, lt_partners TYPE TABLE OF bapiparnr, lt_order_items_in TYPE TABLE OF bapisditm, lt_order_item_x TYPE TABLE OF bapisditmx, ls_order_item_x LIKE LINE OF lt_order_item_x, ls_order_items_in LIKE LINE OF lt_order_items_in, lt_schdlin TYPE TABLE OF bapischdl, ls_schdlin LIKE LINE OF lt_schdlin, lt_schdlinx TYPE TABLE OF bapischdlx, ls_schdlinx LIKE LINE OF lt_schdlinx, ls_partners LIKE LINE OF lt_partners, lt_order_text TYPE TABLE OF bapisdtext, ls_order_text TYPE bapisdtext. ls_header-serv_date = '20200101'. ls_header-doc_type = 'TA'. ls_header-purch_no_c = 'a'. ls_headerx-purch_no_c = 'X'. *ls_header-sales_org = '0001'. *ls_header-distr_chan = '01'. *ls_header-division = '01'. ls_header-comp_cde_b = '0001'. ls_headerx-comp_cde_b = 'X'. ls_headerx-doc_type = 'X'. ls_headerx-updateflag = 'I'. ls_partners-partn_role = 'WE'. "ship to party ls_partners-partn_numb = '0000000001'. APPEND ls_partners TO lt_partners. ls_partners-partn_role = 'AG'. " sold to party ls_partners-partn_numb = '0000000001'. APPEND ls_partners TO lt_partners. ls_order_items_in-item_categ = 'TAN'. ls_order_items_in-material = 'REDUCER_A'. ls_order_items_in-target_qty = 999. ls_order_items_in-itm_number = 10. ls_order_item_x-item_categ = 'X'. ls_order_item_x-material = 'X'. ls_order_item_x-target_qty = 'X'. ls_order_item_x-itm_number = 'X'. ls_order_item_x-updateflag = 'I'. APPEND ls_order_item_x TO lt_order_item_x. APPEND ls_order_items_in TO lt_order_items_in. ls_schdlin-itm_number = 10. ls_schdlin-req_qty = 3. ls_schdlinx-itm_number = 'X'. ls_schdlinx-itm_number = 'X'. ls_schdlinx-updateflag = 'X'. APPEND ls_schdlin TO lt_schdlin. APPEND ls_schdlinx TO lt_schdlinx. "ls_order_text-doc_number = SALESDOCUMENT. ls_order_text-itm_number = '000010'. ls_order_text-text_id = '0006'. "ls_order_text-langu = 'E'. ls_order_text-langu_iso = 'ZH'. ls_order_text-format_col = '*'. ls_order_text-text_line = 'Test 2 DSFSDFDSFDS'. ls_order_text-function = '006'. APPEND ls_order_text TO lt_order_text. CALL FUNCTION 'SD_SALESDOCUMENT_CREATE' EXPORTING sales_header_in = ls_header sales_header_inx = ls_headerx int_number_assignment = 'X' IMPORTING salesdocument_ex = po_order_number TABLES return = lt_bapiret2 sales_items_in = lt_order_items_in sales_items_inx = lt_order_item_x sales_schedules_in = lt_schdlin sales_schedules_inx = lt_schdlinx sales_partners = lt_partners sales_text = lt_order_text. LOOP AT lt_bapiret2 ASSIGNING FIELD-SYMBOL(<return>) WHERE type = 'E'. WRITE:/ 'Error:', <return>-message COLOR COL_NEGATIVE. RETURN. ENDLOOP. IF po_order_number IS INITIAL. WRITE:/ 'PO number initial'. RETURN. ENDIF. CLEAR: lt_bapiret2. CALL FUNCTION 'BAPI_TRANSACTION_COMMIT' EXPORTING wait = 'X' IMPORTING return = lt_bapiret2. LOOP AT lt_bapiret2 ASSIGNING <return>. WRITE:/ 'Message:', <return>-message COLOR COL_POSITIVE. ENDLOOP. 用事务码SAT分析,发现总共创建消耗的时间为3.98秒,
 
其中1.84秒花费在EIGENFERTIGUNG_BEARBEITEN这个subroutine上。
 
用一下Google Translate: 发现EIGENFERTIGUNG的含义就和生产有关:own production
 
BEARBEITEN的意思是TO eidt:
 
看这个函数CO_61_ORDER_EDIT:
 
这个函数的描述信息指向了它是用来做生产用的:
 
这个函数所在的包也透露了它的作用,是负责生产相关实现的:
 
观察一下传入这个函数的各参数值:
 
 
 
要获取更多Jerry的原创文章,请关注公众号"汪子熙":  
 
0
0
分享到:
评论
相关资源推荐
  • SAP创建生产订单时要求输入销售订单 用户用事务代码CO01创建生产订单,当输入物料、工厂、订单类型回车后,系统跳出对话框,提示:账户分配销售订单/WBS。这个场景在之前的业务中是未曾遇见过的。 经分析,是由于物料主数据维护有问题。数据维护人员错误地将物料主数据“基本数据1”视图中“参数有效值”进行了勾选,而导致了此问题。去除此字段的选择,即可。 当然,虽然此对话框提示了,但也是可以临时得到解决的。可以将对话框进行关闭,此
  • SAP销售订单关联的生产成本核算 销售订单相关的生产中的预先成本核算  需求等级(Requirement class)使您可以在销售订单中设立一状态,此状态需要一已创建的成本估算。如果成本状态(即将进行成本核算)为销售订单而设置,便不允许有不同的各种作业(例如交货和开票)。 您可以对成本做出计划以便用两种方法产生待发货物料。利用需求等级(Requirement class)中的成本核算方法(类型字段),应指定成本核算是用单位核
  • Sap 创建销售订单
  • 通过bdc批量创建销售订单(多个销售订单
  • SAP生产订单预留(上) 首先是预留的创建: 1.预留创建的时机:预留凭证是在生产订单保存的时候创建的,预留编号和生产订单一一对应。但是在读取BOM的时候就已经创建了临时文件,并占用了编号!(这个号码是提前分配,所以预留可能会不连号!!!和预留的编号分配不同,生产订单的编号是在保存的时候才会分配,所以一定是连号的!!!) 2.预留凭证项目:和订单组件项目视图完全一致,在订单保存的时候存入数据库,在订单组件被修改的时候自动修...
  • 创建生产订单BAPI(BAPI_PRODORD_CREATE)的例子
  • https://blog.csdn.net/zhongguomao/article/details/18599747
  • ABAP中(生产订单销售订单、内部订单)各自编号的数据字段类型 VBAK~VBELN    销售订单号  CHAR  长度10 AUFK~AUFNR   生产订单号  CHAR  长度12 COAS~AUFNR  内部订单号   CHAR  长度12 而且上述三个编号字段,全都是有前导零的。 也就是说如果一个销售订单的编号是900800 那实际在透明表中存储的是 0000900800 一共10位 现在自定义的透明表中对应上述三个字段的定义是: ZV
  • STO 自动触发交货单、自动发票、自动交货、自动采购发票(配置文档) STO 自动触发交货单、自动发票、自动交货、自动采购发票(配置文档)
  • ABAP 生产订单创建与修改函数 如果生产订单过多,可以批量创建生产订单,例如通过上传excel文件来批量创建,系统也有相应BAPI,否则BDC又很慢。 创建生产订单: 'BAPI_PRODORD_CREATE‘         CALL FUNCTION 'BAPI_PRODORD_CREATE'         EXPORTING           ORDERDATA        = I_ORDDATA    
  • SAP生产订单预留 闲来无事,研究一下生产订单预留。   首先是预留的创建:   1.预留创建的时机:预留凭证是在生产订单保存的时候创建的,预留编号和生产订单一一对应。但是在读取BOM的时候就已经创建了临时文件,并占用了编号!(这个号码是提前分配,所以预留可能会不连号!!!和预留的编号分配不同,生产订单的编号是在保存的时候才会分配,所以一定是连号的!!!)   2.预留凭证项目:和
  • SAP订单返工
  • 【南京】根据销售订单创建交货单并自动拣配、过账发货程序 *&---------------------------------------------------------------------* * 程序名称: 根据销售订单创建交货单并过账发货 * 程序名  :ZSD020 * 开发日期:2013-08-26 * 创建者  : * 申请者  : *--------------------------------------------
  • 关于通过使用BAPI创建销售订单(抬头信息中:含增强字段) 通过bapi函数创建销售订单,并更新增强字段 1,为构造增强字段(BAPE_VBAK,BAPE_VBAKX,VBAK,VBAKKOM,) 2,增强标准程序:将增强的字段赋给标准程序 (FV45KFAK -> FV45KFAK_VBAK_FUELLEN_VBAKKOM -> vbak_fuellen_vbakkom) ENHANCEMENT 1  ZSD_SAPFV45K.    "ac
  • SAP生产订单预留(上) 闲来无事,研究一下生产订单预留。 首先是预留的创建: 1.预留创建的时机:预留凭证是在生产订单保存的时候创建的,预留编号和生产订单一一对应。但是在读取BOM的时候就已经创建了临时文件,并占用了编号!(这个号码是提前分配,所以预留可能会不连号!!!和预留的编号分配不同,生产订单的编号是在保存的时候才会分配,所以一定是连号的!!!) 2.预留凭证项目:和订单组件项目视图完全一致,在订单保存的时候存入数...
  • 通过 EDI IDOC 处理销售订单 通过 EDI IDOC 处理销售订单 系统根据业务伙伴提供的 EDI 文件,通过销售订单内向处理自动生成销售订单销售订单交货后,可以创建开票凭证,然后系统将自动生成发票的 EDI 文件。以下是执行构建模块的每个步骤的详细信息。
  • ME21N采购订单创建自动通过IDOC发送至ORACLE数据库 这个接口是一个相对复杂的接口,需要用到非常全面的SAP技术 包括: 1.SPRO消息控制分配 2.NACE的消息控制配置 3.BD64,WE20等相关IDOC类型ORDERS的配置 4.如果有自定义字段还需要做相应的用户增强 5.SAP PI上的多重MAPPING:先从ORDERS到需求数据,再从数据到符合JDBC 操作的数据类型 6.SAP PI IDX1 IDX2的配置 7.S
  • SAP 订单的交货日期的计算. 这是我收藏的经典文章, 详细讲解了SAP 订单的交货日期的计算逻辑和后台配置方法.
  • 创建带有订单参考的外向交货:BAPI… 以前就提过,使用bapi,必须去了解前台,知道哪些是必输,哪些可选。 测试bapi必须也要找前台能跑通的数据,不然,如果是数据本事问题,再怎么调都不会通 前台:VL01N  (或者在订单修改VA02中创建交货) VL01N 各个页签看看,哪些必输 我自己更喜欢va02里创建 然后看看抬头数据啥的 至于bapi,很简单 PARAMETERS P_SOD  TYPE CHAR
  • 创建生产订单bapi
Global site tag (gtag.js) - Google Analytics