转自【http://www.cnblogs.com/elegantok/archive/2009/10/18/1585398.html】
***********SALES ORDER INPUT CREATION.

REPORT soi.

PARAMETERS: p_auart TYPE auart OBLIGATORY.
PARAMETERS: p_vkorg TYPE vkorg OBLIGATORY.
PARAMETERS: p_vtweg TYPE vtweg OBLIGATORY.
PARAMETERS: p_spart TYPE vtweg OBLIGATORY.
PARAMETERS: p_sold TYPE kunnr OBLIGATORY.
PARAMETERS: p_ship TYPE kunnr OBLIGATORY.

*ITEM

PARAMETERS: p_matnr TYPE matnr OBLIGATORY.
PARAMETERS: p_menge TYPE kwmeng OBLIGATORY.
PARAMETERS: p_plant TYPE werks_d OBLIGATORY.
PARAMETERS: p_itcat TYPE pstyv OBLIGATORY.

* DATA DECLARATIONS.

DATA: v_vbeln LIKE vbak-vbeln.
DATA: header LIKE bapisdhead1.
DATA: headerx LIKE bapisdhead1x.
DATA: item LIKE bapisditem OCCURS 0 WITH HEADER LINE.
DATA: itemx LIKE bapisditemx OCCURS 0 WITH HEADER LINE.
DATA: partner LIKE bapipartnr OCCURS 0 WITH HEADER LINE.
DATA: return LIKE bapiret2 OCCURS 0 WITH HEADER LINE.
DATA: lt_schedules_inx TYPE STANDARD TABLE OF bapischdlx
WITH HEADER LINE.
DATA: lt_schedules_in TYPE STANDARD TABLE OF bapischdl
WITH HEADER LINE.

* HEADER DATA

header-doc_type = p_auart.
headerx-doc_type = 'X'.
header-sales_org = p_vkorg.
headerx-sales_org = 'X'.
header-distr_chan = p_vtweg.
headerx-distr_chan = 'X'.
header-division = p_spart.
headerx-division = 'X'.
headerx-updateflag = 'I'.

* PARTNER DATA
partner-partn_role = 'AG'.
partner-partn_numb = p_sold.
APPEND partner.

partner-partn_role = 'WE'.
partner-partn_numb = p_ship.
APPEND partner.

* ITEM DATA

itemx-updateflag = 'I'.
item-itm_number = '000010'.
itemx-itm_number = 'X'.

item-material = p_matnr.
itemx-material = 'X'.

item-plant = p_plant.
itemx-plant = 'X'.

item-target_qty = p_menge.
itemx-target_qty = 'X'.

item-target_qu = 'EA'.
itemx-target_qu = 'X'.

item-item_categ = p_itcat.
itemx-item_categ = 'X'.
APPEND item.
APPEND itemx.

* Fill schedule lines

lt_schedules_in-itm_number = '000010'.
lt_schedules_in-sched_line = '0001'.
lt_schedules_in-req_qty = p_menge.
APPEND lt_schedules_in.

* Fill schedule line flags

lt_schedules_inx-itm_number = '000010'.
lt_schedules_inx-sched_line = '0001'.
lt_schedules_inx-updateflag = 'X'.
lt_schedules_inx-req_qty = 'X'.
APPEND lt_schedules_inx.

* Call the BAPI

CALL FUNCTION 'BAPI_SALESDOCU_CREATEFROMDATA1'                  " 销售订单创建bapi,创建后按现有情况需要修改  交货冻结。
EXPORTING
sales_header_in = header
sales_header_inx = headerx
IMPORTING
salesdocument_ex = v_vbeln
TABLES
return = return
sales_items_in = item
sales_items_inx = itemx
sales_schedules_in = lt_schedules_in
sales_schedules_inx = lt_schedules_inx
sales_partners = partner.
* Check the return table.

LOOP AT return WHERE type = 'E' OR type = 'A'.
  EXIT.
ENDLOOP.

IF sy-subrc = 0.
  WRITE: / 'Error in creating document'.
ELSE.
  COMMIT WORK AND WAIT.
  WRITE: / 'Document ', v_vbeln, ' created'.
ENDIF.

************DELIVERY CREATION.
DATA: BEGIN OF t_vbap OCCURS 0,
vbeln LIKE vbap-vbeln,
posnr LIKE vbap-posnr,
zmeng LIKE vbap-kwmeng,
matnr LIKE vbap-matnr,
werks LIKE vbap-werks,
END OF t_vbap.

DATA: t_request TYPE STANDARD TABLE OF bapideliciousrequest WITH HEADER LINE.
DATA: t_created TYPE STANDARD TABLE OF bapideliciouscreateditems WITH HEADER LINE.
DATA: t_return TYPE STANDARD TABLE OF bapiret2 WITH HEADER LINE.

SELECT vbeln posnr zmeng matnr werks
INTO TABLE t_vbap
FROM vbap
WHERE vbeln = v_vbeln.

LOOP AT t_vbap.
  t_request-document_numb = t_vbap-vbeln.
  t_request-document_item = t_vbap-posnr.
  t_request-quantity_sales_uom = t_vbap-zmeng.
  t_request-quantity_base__uom = t_vbap-zmeng.
  t_request-id = 1.
  t_request-document_type = 'A'.
  t_request-delivery_date = sy-datum.
  t_request-material = t_vbap-matnr.
  t_request-plant = t_vbap-werks.
  t_request-date = sy-datum.
  t_request-goods_issue_date = sy-datum.
  t_request-goods_issue_time = sy-uzeit.
  APPEND t_request.
ENDLOOP.

CALL FUNCTION 'BAPI_DELIVERYPROCESSING_EXEC'                 "外向交货单创建,创建后交货数量和拣配数量都为空。需要填写
TABLES
request = t_request
createditems = t_created
return = t_return.

READ TABLE t_return WITH KEY type = 'E'.

IF sy-subrc = 0.
  MESSAGE e208(00) WITH 'Delivery creation error'.
ENDIF.

COMMIT WORK.

************Post goods issue.

READ TABLE t_created INDEX 1.
DATA: vbkok_wa TYPE vbkok.
vbkok_wa-vbeln_vl = t_created-document_numb.
vbkok_wa-wabuc = 'X'.

DATA: v_error.
CALL FUNCTION 'WS_DELIVERY_UPDATE'           "外向交货bapi
EXPORTING
vbkok_wa = vbkok_wa
delivery = t_created-document_numb
IMPORTING
ef_error_in_goods_issue_0 = v_error.
COMMIT WORK.

转载于:https://www.cnblogs.com/rainysblog/p/4008733.html

销售订单、外向交货单、交货 bapi相关推荐

  1. SAP 销售订单冻结无法交货问题

    1 报错 :作为信用检查结果,销售订单为交货而冻结 解决办法: (1) 事务码 VKM3 :将冻结的订单解冻. (2)打上√ 后,点击绿色小旗子,再点保存. 如果是信贷余额不足,需要先增加信贷额度,f ...

  2. 浅学了一下销售订单和交货单的关系和创建(小白莫喷)

    vbak vbap VA01 创建一个OR标准的销售订单 Lips Likp VL01N 在一个销售订单的基础上创建一个外向交货单 (销售订单可以对应多个交货单 以行项目交货)

  3. 销售订单按交货单合并Billing

    Tcode:VTFL 路径:Spro-销售和分销-出具发票-开票凭证-维护开票的复制控制-交货凭证到出具发票凭证. 选F2发票(LF外向交货)-项目,选择相应项目类别,数据 VBRK/VBRP选为00 ...

  4. VL10C根据销售订单创建交货单

    ls_req-id = '1'. "写死 ls_req-document_numb = '2015031250'. "订单号 ls_req-document_item = '000 ...

  5. SAP SD初阶之VL10A为销售订单创建外向交货单

    SAP SD初阶之VL10A为销售订单创建外向交货单 SAP SD模块中销售订单的外向交货单创建,有很多种方法.其中之一就是使用VL10A这个事务代码. 不过基于个人喜好和操作习惯的原因,VL10A这 ...

  6. 【SAP-PS笔记】项目交货之基于销售订单VL01N交货

    前言: PS顾问可能都清楚,在销售型项目上的物料需要发货至客户时,如涉及交货一般常用CNS0创建项目交货单,将项目下的物料发货至客户. 因此我们设计销售型项目系统流程时,一般使用以下流程: 1.销售订 ...

  7. BAPI_SALESORDER_CREATEFROMDAT2 BAPI创建VA01 销售订单

    用bapi创建销售订单 VA01 用的bapi如下 关于定价,可能要多做调试,只能传入COND_VALUE定价比率,而定价值是不可以直接修改的, DATA: header_in             ...

  8. 『诡异的』VL10B创建外向交货单出错解决全过程

    一直觉得SAP STO的业务模式配置起来还是挺简单的,无非就是关联一下采购单与交货单的关系,以及相应工厂的装运数据,其他像主数据的设置也没有什么特别的.相比ICS模式,它少了IDOC的配置,所以还是很 ...

  9. SAP SD如何将销售订单其它ITEM加入到一个已创建好的交货单里

    SAP SD如何将销售订单其它ITEM加入到一个已创建好的交货单里 如下的销售订单,有多个ITEM, 为其中的第一个ITEM创建了DN 80016362, 如果业务发现需要修改该交货单,将销售订单里的 ...

最新文章

  1. .NET基础示例系列之六:委托及事件
  2. Bash For Loop Examples for Your Linux Shell Scripting--ref
  3. python画海绵宝宝_脑洞大开的万圣节,10招带你和宝宝花式玩南瓜
  4. protobuf的安装和卸载
  5. 高级软件工程第七次作业:东理三剑客团队作业-随笔5
  6. [转]VI/VIM的键盘图
  7. java语音播放事例
  8. 动力环境监控系统论文_浅析建设智能化动力环境监控系统维护水平论文
  9. HDU 1158【简单dp】
  10. erlang 变量存储在哪里_erlang中变量作用域
  11. 载入样式表单出错: 分析 XSLT 样式表单失败
  12. 两张表合并加标识根据ID
  13. (Inside Out)Web地图坐标系——谷歌的无奈
  14. JavaSE知识框架
  15. 乐鑫Esp32-S2学习之旅② ESP32-S2 以 I2C 驱动 SHT20 获取温湿度数据,代码开源!
  16. 足浴按摩预约下单小程序开发制作功能介绍
  17. Mysql 启动命令详解
  18. 微信小程序引用外部文件找不到文件报错问题
  19. 保险丝的常用规格型号及主要参数说明
  20. mysql性能监控 调优_MySQL管理之道:性能调优、高可用与监控(第2版)

热门文章

  1. 【MySQL数据库入门】:库的操作
  2. Android Service Note --- Local Service Sample Remote Messenger Service Sample
  3. SonarQube代码质量检查工具攻略大全
  4. 粘贴板工具:PPT或Excel复制粘贴成图片问题的解决方案
  5. 08年IT业界九大预言 主板集成微软操作系统
  6. 这一次,Windows 站起来了:Windows ​ Linux 的性能 Battle
  7. Python数据分析下,哪吒为啥这么火?
  8. 关于安装Anaconda/Python下OpenCV出错指引
  9. Shader山下(四)法线贴图
  10. Android多国语言文件夹名称文件汇总