DATA: E_ORDER_HEADER_IN  LIKE  BAPISDHD1 OCCURS 0 WITH HEADER LINE,
          E_ORDER_PARTNERS   LIKE  BAPIPARNR OCCURS 0 WITH HEADER LINE,
          E_ORDER_ITEMS_IN   LIKE  BAPISDITM OCCURS 0 WITH HEADER LINE,
          E_ORDER_BAPISCHDL  LIKE BAPISCHDL OCCURS 0 WITH HEADER LINE,
          E_AUART            LIKE  VBAK-AUART ,
          E_KUNNR            LIKE  VBAK-KUNNR,
          CNT TYPE I,
          E_MENGE TYPE DZMENG.
  DATA: lt_order_text TYPE TABLE OF bapisdtext.
  DATA: ls_order_conditions_in  TYPE bapicond.
  DATA  lt_order_conditions_in  TYPE TABLE OF bapicond.
  DATA: e_order_text  TYPE bapisdtext.
  DATA : W_KNA1 LIKE KNA1 ,
         W_ADR6 LIKE ADR6 .
  data: ls_type type ZSCS004-PURAUDITFLAG.
  data: ls_knumv type vbak-knumv.
  DATA : W_NAME LIKE KNA1-NAME1.
  data: ls_inco1 type KNVV-INCO1,
      ls_zterm type KNVV-ZTERM.
  data: it_konv like KONV OCCURS 0 WITH HEADER LINE.  "选择条目
  data: ls_konv type KONV.
  DATA : I_BAPISDTEXT  TYPE STANDARD TABLE OF BAPISDTEXT.
  DATA : l_external TYPE BAPI2093_RES_KEY-RESERV_NO.
  DATA : WA_BAPISDTEXT LIKE LINE OF I_BAPISDTEXT.
  data:ls_sale type ZSD_SALE_TEST.
  data: ls_first type KUNNR,
        ls_last type KUNNR.

loop AT ZSD_SALE_TEST INTO ls_sale.

"add_text 抬头文本
    e_order_text-doc_number = SALESDOCUMENT.
    e_order_text-itm_number = '000000'.
    e_order_text-text_id = '0001'.
    e_order_text-langu = 1.
    e_order_text-langu_iso = 'ZH'.
    e_order_text-format_col = '*'.
    e_order_text-text_line = ls_sale-text_line.
    e_order_text-function = '005'.
    APPEND e_order_text TO lt_order_text.

"add_text:
    e_order_text-doc_number = SALESDOCUMENT.
    e_order_text-itm_number = ls_sale-POSNR.
    e_order_text-text_id = '0002'.
    e_order_text-langu = 1.
    e_order_text-langu_iso = 'ZH'.
    e_order_text-format_col = '*'.
    e_order_text-text_line = ls_sale-ARKTX.
    e_order_text-function = '005'.
    APPEND e_order_text TO lt_order_text.
    clear e_order_text.

"add_partners 抬头文本
*    "客户代码之前加1位
*    CONCATENATE '1' ls_sale-FIRST_NAME into ls_first.
*    CONCATENATE '1' ls_sale-LAST_NAME into ls_last.
    ls_first = ls_sale-FIRST_NAME.
    ls_last = ls_sale-LAST_NAME.
    CALL FUNCTION 'CONVERSION_EXIT_ALPHA_INPUT'
          EXPORTING
            INPUT  = ls_first
          IMPORTING
            OUTPUT = ls_first.

CALL FUNCTION 'CONVERSION_EXIT_ALPHA_INPUT'
          EXPORTING
            INPUT  = ls_last
          IMPORTING
            OUTPUT = ls_last.

E_ORDER_PARTNERS-PARTN_ROLE = 'AG'.  "售达方
    E_ORDER_PARTNERS-PARTN_NUMB = ls_first.  "售达方代码
    APPEND E_ORDER_PARTNERS.

E_ORDER_PARTNERS-PARTN_ROLE = 'WE'.  "送达方
    E_ORDER_PARTNERS-PARTN_NUMB = ls_last.   "送达方代码
    APPEND E_ORDER_PARTNERS.

E_AUART = ls_sale-AUART.

E_ORDER_HEADER_IN-DOC_TYPE = E_AUART.              "订单类型
    E_ORDER_HEADER_IN-SALES_ORG = ls_sale-VKORG.               "销售组织
    E_ORDER_HEADER_IN-DISTR_CHAN = ls_sale-VTWEG.              "分销渠道
    E_ORDER_HEADER_IN-DIVISION = ls_sale-SPART.                "产品组
    E_ORDER_HEADER_IN-req_date_h = ls_sale-ETDAT.              "请求交货日期
    E_ORDER_HEADER_IN-ship_type = '01'.                 "装运类型
    E_ORDER_HEADER_IN-ship_cond = ls_sale-VSBED.                "装运条件
    E_ORDER_HEADER_IN-PURCH_NO_C  = ls_sale-BSTNK.       "客户采购订单编号

E_ORDER_ITEMS_IN-item_categ = ls_sale-PSTYV.               "项目类别
    E_ORDER_ITEMS_IN-plant = ls_sale-WERKS.                    "工厂
    E_ORDER_ITEMS_IN-store_loc = ls_sale-LGORT.                "库存地点

E_ORDER_ITEMS_IN-MATERIAL = ls_sale-MABNR.                 "物料
*    E_ORDER_ITEMS_IN-BATCH = ls_sale-CHARG.                     "批次
    E_ORDER_ITEMS_IN-TARGET_QTY = ls_sale-KWMENG.              "订单数量
    E_ORDER_ITEMS_IN-sales_unit = ls_sale-VRKME.               "单位
    E_ORDER_ITEMS_IN-ITM_NUMBER = ls_sale-POSNR.               "项目号
    E_ORDER_ITEMS_IN-DLV_PRIO = ls_sale-REQUESTYPE.            "交货优先权
*  E_ORDER_ITEMS_IN-PMNTTRMS = '0001'.
    select KNVV~INCO1 KNVV~ZTERM
    INTO (ls_inco1,ls_zterm)
    from KNVV
    where KUNNR = ls_first and
      VKORG = ls_sale-VKORG and
      VTWEG = ls_sale-VTWEG and
      SPART = ls_sale-SPART.
    endselect.

E_ORDER_ITEMS_IN-PMNTTRMS = ls_zterm.                          "付款条件
    E_ORDER_ITEMS_IN-INCOTERMS1 = ls_inco1.                         "国际贸易条件
    E_ORDER_BAPISCHDL-REQ_QTY = ls_sale-KWMENG.                "订单数量
    E_ORDER_BAPISCHDL-ITM_NUMBER = ls_sale-POSNR.              "项目号

*  **  add_conditions:
      ls_order_conditions_in-itm_number = ls_sale-POSNR.
      ls_order_conditions_in-cond_type  = 'ZPR2'.  "定价条件
      ls_order_conditions_in-cond_value = ls_sale-KBETR.  "价格
      ls_order_conditions_in-currency   = 'RMB'.  "货币或%
      ls_order_conditions_in-cond_unit  = ls_sale-VRKME.  "条件单位
    ls_order_conditions_in-cond_p_unt = ls_sale-KWMENG.  "条件定价单位

*     ls_order_conditions_in-cond_unit = 'Z37'.
*     ls_order_conditions_in-itm_number = POSNR.
*  **      IF ( t_create-auart = 'ZCR' ) OR ( t_create-auart = 'ZDR' ).
*  **        ls_order_conditions_in-cond_type = 'ZPR2'.
*  **      ELSE.
*  **        ls_order_conditions_in-cond_type = 'ZPR1'.
*  **      ENDIF.
*     ls_order_conditions_in-cond_value = 10.
      ls_order_conditions_in-cond_updat  = 'X'.  "价格更新标志
      APPEND ls_order_conditions_in TO lt_order_conditions_in.

CLEAR   WA_BAPISDTEXT.
    REFRESH I_BAPISDTEXT.

*  WA_BAPISDTEXT-TEXT_ID   = '0001'.
*  WA_BAPISDTEXT-LANGU     = SY-LANGU.
*  WA_BAPISDTEXT-TEXT_LINE = COMMENT.
*  APPEND WA_BAPISDTEXT TO I_BAPISDTEXT.
    APPEND E_ORDER_BAPISCHDL.
    APPEND E_ORDER_ITEMS_IN.
*    MODIFY zsd_sale_test from ls_sale.
    clear ls_sale.
  endloop.

****创建销售订单
*  CALL FUNCTION 'BAPI_SALESORDER_CREATEFROMDAT2'
*    EXPORTING
*      ORDER_HEADER_IN     = E_ORDER_HEADER_IN
*    IMPORTING
*      SALESDOCUMENT       = SALESDOCUMENT
*    TABLES
*      RETURN              = RETURN
*      ORDER_SCHEDULES_IN  = E_ORDER_BAPISCHDL
*      ORDER_ITEMS_IN      = E_ORDER_ITEMS_IN
*      ORDER_PARTNERS      = E_ORDER_PARTNERS
*      ORDER_CONDITIONS_IN = lt_order_conditions_in
*      ORDER_TEXT          = lt_order_text.

CALL FUNCTION 'SD_SALESDOCUMENT_CREATE'
      EXPORTING
        SALESDOCUMENT     = SALESDOCUMENT
        sales_header_in     = E_ORDER_HEADER_IN
*        logic_switch        = lv_logic_switch
      IMPORTING
        SALESDOCUMENT_EX       = SALESDOCUMENT
      TABLES
        return              = RETURN
        sales_items_in      = E_ORDER_ITEMS_IN
        sales_partners      = E_ORDER_PARTNERS
        sales_schedules_in  = E_ORDER_BAPISCHDL
        sales_conditions_in = lt_order_conditions_in
        sales_text          = lt_order_text.

SO BAPI SD_SALESDOCUMENT_CREATE的更多相关文章

  1. 创建SO bapi

    转自http://blog.sina.com.cn/s/blog_1647b3eff0102wi32.html 1.创建销售订单使用的BAPI BAPI_SALESORDER_CREATEFROMDA ...

  2. BAPI

    MM模块 1. BAPI_MATERIAL_SAVEDATA 创建物料主数据 注意参数EXTENSIONIN的使用,可以创建自定义字段 例如:WA_BAPI_TE_MARA-MATERIAL = IT ...

  3. BAPI LIST

    [转自 http://blog.csdn.net/minsenwu/article/details/8432081] 库存管理BAPI 库存: 1. BAPI_MATERIAL_AVAILABILIT ...

  4. SAP 各模块常用的BAPI

    MM模块 1. BAPI_MATERIAL_SAVEDATA 创建物料主数据 注意参数EXTENSIONIN的使用,可以创建自定义字段 例如:WA_BAPI_TE_MARA-MATERIAL = IT ...

  5. PP常用bapi

    PPCO0012 co01/CO02/CO03屏幕bapi  生产订单:显示/更改订单抬头数据 PPCO0001 开发应用程序: PP订单 PPCO0007 保存生产订单时退出 PPCO0001  A ...

  6. BAPI 调用相当于BAPI_TRANSACTION_COMMIT 的方法

    为什么.net调用SAP的BAPI接口需要调用BAPI_TRANSACTION_COMMIT呢?首先得明白BAPI_TRANSACTION_COMMIT这个BAPI的作用.它功劳很大,在SAP里面很多 ...

  7. idoc 和 bapi 和 rfc 之间的区别

        se37 写出来的叫function,其中可以远程调用的叫rfc,remote-enabled function,abap语法和输入输出参数就会有一些限制.bapi是sap做好的实现特定业务操 ...

  8. 业务对象和BAPI

    声明:原创作品,转载时请注明文章来自SAP师太技术博客( 博/客/园www.cnblogs.com):www.cnblogs.com/jiangzhengjun,并以超链接形式标明文章原始出处,否则将 ...

  9. [SAP ABAP开发技术总结]BAPI调用

    声明:原创作品,转载时请注明文章来自SAP师太技术博客( 博/客/园www.cnblogs.com):www.cnblogs.com/jiangzhengjun,并以超链接形式标明文章原始出处,否则将 ...

随机推荐

  1. 模拟赛小结:2017-2018 ACM-ICPC Nordic Collegiate Programming Contest (NCPC 2017)

    比赛链接:传送门 本场我们队过的题感觉算法都挺简单的,不知道为啥做的时候感觉没有很顺利. 封榜后7题,罚时1015.第一次模拟赛金,虽然是北欧的区域赛,但还是有点开心的. Problem B Best ...

  2. SEO黑页以及门页框架和JS跳转实现方法

    在去年大家还在针对第三方博客狂轰乱炸,比如:webs.com.blogspot.com.weebly.com主要是因为本身博客平台的权重,再就是低廉的成本,主需要注册,没有域名和服务器的投入.排名也非 ...

  3. RMQ求最值

    1. 概述 RMQ(Range Minimum/Maximum Query),即区间最值查询,是指这样一个问题:对于长度为n的数列A,回答若干询问RMQ(A,i,j)(i,j<=n),返回数列A ...

  4. HTML5 Geolocation学习

    GeolocationAPI学习,我写的挺枯燥的,直接跳到最后看示例. 5.1 位置信息 HTML5 Geolocation API的使用方法相当简单.请求一个位置信息,如果用户同意,浏览器就会返回位 ...

  5. grunt-contrib-jshint js代码检查

    grunt-contrib-jshint:用于javascript代码检查(并会给出建议),发布js代码前执行jshint任务, 可以避免出现一些低级语法问题jshint拥有非常丰富的配置,可以自由控 ...

  6. Django 文件配置、pycharm及django连接数据库、表的增删改查 总结

    静态文件配置 1.你在浏览器中输入网址能够有响应的资源返回给你 是因为后端已经提前给你开设该资源的接口,也就意味着你所能 访问到的资源 都是人家事先定义好的 2.django如何给用户开设资源接口呢? ...

  7. 《Python 3标准库》

    在本书中,你会看到用来处理文本.数据类型.算法.数学计算.文件系统.网络通信.Internet.XML.Email.加密.并发性.运行时和语言服务等各个方面的实用代码和解决方案.在内容安排上,每一节都 ...

  8. 在echart组件下用canvans画三角形

    //使用的canvans绘制的三角形 drawArrow(){ var canvas = document.createElement('canvas');//创建一个元素 canvas.width ...

  9. python selenium 执行完毕关闭chromedriver进程

    #OS是我们操作dos系统时需要引入的库 import os #杀死这个chromedriver进程,因为每次启动都会打开,所以需要kill,这里用的chrome浏览器,打开方式时chromedriv ...

  10. jquery pageY属性 语法

    jquery pageY属性 语法 作用:pageY() 属性是鼠标指针的位置,相对于文档的上边缘.直线模组 语法:event.page 参数: 参数 描述 event     必需.规定要使用的事件 ...