zoukankan      html  css  js  c++  java
  • SO BAPI SD_SALESDOCUMENT_CREATE

     DATA: E_ORDER_HEADER_IN  LIKE  BAPISDHD1 OCCURS WITH HEADER LINE,
              E_ORDER_PARTNERS   LIKE  BAPIPARNR OCCURS WITH HEADER LINE,
              E_ORDER_ITEMS_IN   LIKE  BAPISDITM OCCURS WITH HEADER LINE,
              E_ORDER_BAPISCHDL  LIKE BAPISCHDL OCCURS 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 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.

  • 相关阅读:
    BZOJ1040: [ZJOI2008]骑士
    酱油记:GDKOI2018
    BZOJ1800: [Ahoi2009]fly 飞行棋
    BZOJ3894: 文理分科
    树链剖分
    文件格式问题
    10.23模拟赛
    snakes
    数据结构题目
    jquery easyui datebox 的使用 .
  • 原文地址:https://www.cnblogs.com/rockyzjut/p/3171023.html
Copyright © 2011-2022 走看看