ABAP 创建/修改采购信息记录 ME_INFORECORD_MAINTAIN ME11/ME12

FUNCTION z_fmmm090 .
*"----------------------------------------------------------------------
*"*"本地接口:
*"  IMPORTING
*"     VALUE(INPUT) TYPE  ZMT_MM090_PURCHASEINFO_SAP_REQ OPTIONAL
*"     VALUE(IV_MSGID) TYPE  ZEMSGID OPTIONAL
*"     VALUE(IS_CONFIG) TYPE  ZCMT0001 OPTIONAL
*"  EXPORTING
*"     VALUE(OUTPUT) TYPE  ZMT_MM090_PURCHASEINFO_SAP_RES
*"     VALUE(ES_IFMSG) TYPE  ZCMS0001
*"----------------------------------------------------------------------
*----------------------------------------------------------------------*
* PROGRAM ID          : RICEF-MM-090                                   *
* APPLICATION NAME    : PP                                             *
* AUTHOR              : CG018                                          *
* TRANSACTION         : N/A                                            *
* PROGRAM TYPE        : INTERFACE                                      *
* INPUT FILES         : N/A                                            *
* OUTPUT FILES        : N/A                                            *
* DEVELOPMENT CLASS   : ZDEV                                           *
* MESSAGE CLASS       : N/A                                            *
* DESCRIPTION         : SRM-SAP PROCUREMENT INFORMATION RECORDS        *
*----------------------------------------------------------------------*
*  000  2024/09/05   NEW PROGRAM                                       *
*----------------------------------------------------------------------*
  DATA:lv_mode   TYPE c.
  DATA:ls_ieina  TYPE mewieina,
       ls_ieinax TYPE mewieinax,
       ls_ieine  TYPE mewieine,
       ls_ieinex TYPE mewieinex.
  DATA:lv_test    TYPE bapiflag-bapiflag.
  DATA:lt_return2 TYPE mewi_t_return,
       ls_return2 LIKE LINE OF lt_return2.
  DATA:lt_con_vali TYPE TABLE OF mewivalidity,
       ls_con_vali TYPE mewivalidity.
  DATA:lt_condition TYPE TABLE OF mewicondition,
       ls_condition TYPE mewicondition.
  DATA:lt_condvalue TYPE TABLE OF  mewiscalequan,
       ls_condvalue TYPE mewiscalequan.
  DATA:e_eina TYPE mewieina,
       e_eine TYPE mewieine.
  DATA:ls_log   TYPE zshmm_015_log.
  DATA:lv_index TYPE sy-index.
  DATA:lv_matnr TYPE matnr.
  DATA:lv_flag  TYPE char1 VALUE '1' .
  DATA:lt_werks TYPE STANDARD TABLE OF zscmwerks.
  SELECT * FROM eina INTO TABLE @DATA(lt_eina).
  SELECT * FROM eine INTO TABLE @DATA(lt_eine).
  SELECT * FROM marc INTO TABLE @DATA(lt_marc).
  SELECT * FROM mara INTO TABLE @DATA(lt_mara).
  SELECT * FROM a017 INTO TABLE @DATA(lt_a017).


* BAPI创建参数
  DATA:
    lt_eina_new      TYPE mewieina_mig_t,         "一般数据
    ls_eina_new      TYPE mewieina_mig,           "一般数据
    lt_einax_new     TYPE mewieinax_t,
    ls_einax_new     TYPE mewieinax_ty,
    lt_eine_new      TYPE mewieine_t,             "采购组织数据
    ls_eine_new      TYPE mewieine_ty,            "采购组织数据
    lt_einex_new     TYPE mewieinex_t,
    ls_einex_new     TYPE mewieinex_ty,
    lt_cond_validity TYPE mewivalidity_tt,        "条件有效期
    ls_cond_validity TYPE mewivalidity_ty,        "条件有效期
    lt_condition_new TYPE mewicondition_tt,       "条件明细
    ls_condition_new TYPE mewicondition_ty,       "条件明细
    lt_eina_e        TYPE mewieina_mig_t,         "创建返回-一般数据
    lt_eine_e        TYPE mewieine_t,             "创建返回-采购组织数据
    lt_return        TYPE fs4mig_t_bapiret2.      "创建返回消息

  DATA:ls_opt       TYPE ctu_params,
       lv_dismode   TYPE ctu_params-dismode VALUE 'N',
       lv_updmode   TYPE ctu_params-updmode VALUE 'L',
       lv_racommit  TYPE ctu_params-racommit VALUE 'S',
       lt_bdc_msg   TYPE STANDARD TABLE OF bdcmsgcoll,
       ls_bdc_msg   TYPE bdcmsgcoll,
       lt_bdcdata   TYPE TABLE OF bdcdata,
       lt_bdcdata_1 TYPE TABLE OF bdcdata.




  "数据校验
  CALL FUNCTION 'Z_FM_CM_CHECK_SYSTEM_COMPANY'
    EXPORTING
      im_system    = 'SRM' "传入系统
      im_flg_werks = abap_on
      im_flg_vkorg = abap_on
    TABLES
      it_werks     = lt_werks.
  IF lt_werks IS NOT INITIAL.
    SORT input-mt_mm090_purchaseinfo_sap_req-head BY lifnr matnr ekorg werks.
    LOOP AT  input-mt_mm090_purchaseinfo_sap_req-head ASSIGNING FIELD-SYMBOL(<fs_head>).
      IF <fs_head>-werks IS NOT INITIAL.
        READ TABLE lt_werks INTO DATA(Ls_werks) WITH KEY werks = <fs_head>-werks.
        IF sy-subrc NE 0.
          RETURN.
        ENDIF.
        CALL FUNCTION 'CONVERSION_EXIT_MATN1_INPUT'
          EXPORTING
            input        = <fs_head>-matnr
          IMPORTING
            output       = lv_matnr
          EXCEPTIONS
            length_error = 1
            OTHERS       = 2.
        IF sy-subrc <> 0.
* Implement suitable error handling here
        ENDIF.
        "补齐供应商的前导零
        CALL FUNCTION 'CONVERSION_EXIT_ALPHA_INPUT'
          EXPORTING
            input  = <fs_head>-lifnr
          IMPORTING
            output = <fs_head>-lifnr.
        AT NEW werks.
          "判断数据是新增还是修改
          READ TABLE lt_eina INTO DATA(ls_eina) WITH KEY matnr = lv_matnr lifnr = <fs_head>-lifnr.
          IF sy-subrc <> 0.
            lv_mode = 'I'."新增
          ELSE.
            READ TABLE lt_eine INTO DATA(ls_eine) WITH KEY infnr = ls_eina-infnr ekorg = <fs_head>-ekorg esokz = <fs_head>-esokz werks = <fs_head>-werks.
            IF sy-subrc = 0.
              lv_mode = 'M'."修改
              ls_ieina-info_rec = ls_eina-infnr."采购信息记录号
              ls_ieine-info_rec = ls_eina-infnr."
              ls_ieinex-info_rec = 'X'.
              ls_ieinax-vendor = 'X'.
              ls_ieinax-material = 'X'.
            ELSE.
              lv_mode = 'I'."新增
            ENDIF.
          ENDIF.
        ENDAT.
        LOOP AT <fs_head>-item INTO DATA(ls_item).
          "数据填写
          ls_ieina-vendor = <fs_head>-lifnr."供应商
          ls_ieina-material = lv_matnr."物料编码

          "采购组织
          ls_ieine-purch_org = <fs_head>-ekorg."采购组织
          IF ls_ieine-purch_org IS NOT INITIAL.
            ls_ieinex-purch_org = 'X'.
          ENDIF.

          ls_ieine-info_type = <fs_head>-esokz."信息类别
          IF ls_ieine-info_type IS NOT INITIAL.
            ls_ieinex-info_type = 'X'.
          ENDIF.

          ls_ieine-plant = <fs_head>-werks."工厂
          IF ls_ieine-plant IS NOT INITIAL.
            ls_ieinex-plant = 'X'.
          ENDIF.

          READ TABLE lt_marc INTO DATA(ls_marc) WITH KEY werks = <fs_head>-werks matnr = lv_matnr.
          IF ls_marc-ekgrp IS NOT INITIAL.
            ls_ieine-pur_group = ls_marc-ekgrp.
            ls_ieinex-pur_group = abap_on.
          ELSE.
            ls_ieine-pur_group = 'F01'.
            ls_ieinex-pur_group = abap_on.
          ENDIF.

          ls_ieine-currency = ls_item-waers."货币码
          IF ls_ieine-currency IS NOT INITIAL.
            ls_ieinex-currency = 'X'.
          ENDIF.
          ls_ieine-tax_code = ls_item-mwskz."税码
          IF ls_ieine-tax_code IS NOT INITIAL.
            ls_ieinex-tax_code = 'X'.
          ENDIF.
          ls_ieine-plnd_delry = ls_item-aplfz."计划交货时间(天)
          IF ls_ieine-plnd_delry IS NOT INITIAL.
            ls_ieinex-plnd_delry = 'X'.
          ENDIF.

          ls_ieine-net_price = ls_item-netpr."净价
          IF ls_ieine-net_price IS NOT INITIAL.
            ls_ieinex-net_price = 'X'.
          ENDIF.

          ls_ieine-nrm_po_qty = ls_item-norbm."标准数量
          IF ls_ieine-nrm_po_qty IS NOT INITIAL.
            ls_ieinex-nrm_po_qty = abap_on.
          ENDIF.

          ls_ieine-min_po_qty = ls_item-minbm."最小订单数量
          IF ls_ieine-min_po_qty IS NOT INITIAL.
            ls_ieinex-min_po_qty = abap_on.
          ENDIF.

          ls_ieine-gr_basediv = ls_item-webre."基于收货的发票校验
          IF ls_ieine-gr_basediv  IS NOT INITIAL.
            ls_ieinex-gr_basediv = abap_on.
          ENDIF.

          ls_ieine-tax_code = ls_item-mwskz. "税码
          IF ls_ieine-tax_code IS NOT INITIAL.
            ls_ieinex-tax_code = abap_on.
          ENDIF.

          ls_ieine-price_unit = ls_item-peinh."价格单位
          IF ls_ieine-price_unit IS NOT INITIAL.
            ls_ieinex-price_unit = abap_on.
          ENDIF.

          "获取单位
          READ TABLE lt_mara INTO DATA(ls_mara) WITH KEY matnr = lv_matnr.
          ls_ieine-orderpr_un = ls_mara-meins."采购单位
          IF ls_ieine-orderpr_un IS NOT INITIAL.
            ls_ieinex-orderpr_un = 'X'.
          ENDIF.


          READ TABLE lt_a017 INTO DATA(ls_a017) WITH KEY lifnr = <fs_head>-lifnr matnr = lv_matnr  kschl = ls_item-kschl1.
          ls_con_vali-serial_id = ls_a017-knumh.
          ls_con_vali-plant      = <fs_head>-werks."工厂
          ls_con_vali-valid_from = ls_item-datab1."有效起始日
          ls_con_vali-valid_to   = ls_item-datbi1."有效截止日
          APPEND ls_con_vali TO lt_con_vali.
          CLEAR:ls_con_vali.


          IF ls_item-kschl1 IS NOT INITIAL.
            ls_condition-serial_id = ls_a017-knumh.
            ls_condition-cond_count = '01'.
            ls_condition-cond_type  = ls_item-kschl1."固定值
            ls_condition-currency   = ls_item-waers."货币码
            ls_condition-cond_value = ls_item-netpr."净价
            ls_condition-cond_p_unt = ls_item-peinh."条件定价单位
            ls_condition-cond_unit  = ls_mara-meins."条件单位
            APPEND ls_condition TO lt_condition.
            CLEAR:ls_condition.
          ENDIF.

          IF ls_item-kschl2 IS NOT INITIAL.
            ls_condition-serial_id = ls_a017-knumh.
            ls_condition-cond_count = '02'.
            ls_condition-cond_type  = ls_item-kschl2."固定值
            ls_condition-currency   = '%'."货币码
            ls_condition-cond_value = ls_item-kbetr2 * 1000."净价
            ls_condition-cond_p_unt = ls_item-peinh."条件定价单位
            ls_condition-cond_unit  = ls_mara-meins."条件单位
            APPEND ls_condition TO lt_condition.
            CLEAR:ls_condition.
          ENDIF.

          ls_condvalue-serial_no  = ls_a017-knumh.
          ls_condvalue-cond_count  = '01'.
          ls_condvalue-line_no  = '0001'.
          ls_condvalue-cond_value = ls_item-netpr.
          APPEND ls_condvalue TO lt_condvalue.
          CLEAR:ls_condvalue.

          IF ls_item-kbetr_2 IS NOT INITIAL.
            ls_condvalue-serial_no  = ls_a017-knumh.
            ls_condvalue-cond_count  = '01'.
            ls_condvalue-line_no  = '0004'.
            ls_condvalue-cond_value = ls_item-kbetr_2."阶梯价格2
            ls_condvalue-scale_base_qty = ls_item-kstbm_2."阶梯价格数量2
            APPEND ls_condvalue TO lt_condvalue.
            CLEAR:ls_condvalue.
          ENDIF.

          IF ls_item-kbetr_3 IS NOT INITIAL.
*            READ TABLE lt_a017 INTO ls_a017 WITH KEY lifnr = <fs_head>-lifnr matnr = lv_matnr.
            ls_condvalue-serial_no  = ls_a017-knumh.
            ls_condvalue-cond_count  = '01'.
            ls_condvalue-line_no  = '0007'.
            ls_condvalue-cond_value = ls_item-kbetr_3."阶梯价格2
            ls_condvalue-scale_base_qty = ls_item-kstbm_3."阶梯价格数量2
            APPEND ls_condvalue TO lt_condvalue.
            CLEAR:ls_condvalue.
          ENDIF.

          IF ls_item-kbetr_4 IS NOT INITIAL.
*            READ TABLE lt_a017 INTO ls_a017 WITH KEY lifnr = <fs_head>-lifnr matnr = lv_matnr.
            ls_condvalue-serial_no  = ls_a017-knumh.
            ls_condvalue-cond_count  = '01'.
            ls_condvalue-line_no  = '0010'.
            ls_condvalue-cond_value = ls_item-kbetr_4."阶梯价格2
            ls_condvalue-scale_base_qty = ls_item-kstbm_4."阶梯价格数量2
            APPEND ls_condvalue TO lt_condvalue.
            CLEAR:ls_condvalue.
          ENDIF.

          IF ls_item-kbetr_5 IS NOT INITIAL.
*            READ TABLE lt_a017 INTO ls_a017 WITH KEY lifnr = <fs_head>-lifnr matnr = lv_matnr.
            ls_condvalue-serial_no  = ls_a017-knumh.
            ls_condvalue-cond_count  = '01'.
            ls_condvalue-line_no  = '0013'.
            ls_condvalue-cond_value = ls_item-kbetr_5."阶梯价格2
            ls_condvalue-scale_base_qty = ls_item-kstbm_5."阶梯价格数量2
            APPEND ls_condvalue TO lt_condvalue.
            CLEAR:ls_condvalue.
          ENDIF.

          IF ls_item-kbetr_6 IS NOT INITIAL.
*            READ TABLE lt_a017 INTO ls_a017 WITH KEY lifnr = <fs_head>-lifnr matnr = lv_matnr.
            ls_condvalue-serial_no  = ls_a017-knumh.
            ls_condvalue-cond_count  = '01'.
            ls_condvalue-line_no  = '0016'.
            ls_condvalue-cond_value = ls_item-kbetr_6."阶梯价格2
            ls_condvalue-scale_base_qty = ls_item-kstbm_6."阶梯价格数量2
            APPEND ls_condvalue TO lt_condvalue.
            CLEAR:ls_condvalue.
          ENDIF.

          IF ls_item-kbetr_7 IS NOT INITIAL.
*            READ TABLE lt_a017 INTO ls_a017 WITH KEY lifnr = <fs_head>-lifnr matnr = lv_matnr.
            ls_condvalue-serial_no  = ls_a017-knumh.
            ls_condvalue-cond_count  = '01'.
            ls_condvalue-line_no  = '0019'.
            ls_condvalue-cond_value = ls_item-kbetr_7."阶梯价格2
            ls_condvalue-scale_base_qty = ls_item-kstbm_7."阶梯价格数量2
            APPEND ls_condvalue TO lt_condvalue.
            CLEAR:ls_condvalue.
          ENDIF.
          CLEAR:lt_return2.
          IF lv_mode = 'I'.
            lv_flag = '1'.
            CALL FUNCTION 'ME_INFORECORD_MAINTAIN'
              EXPORTING
                i_eina  = ls_ieina
                i_einax = ls_ieinax
                i_eine  = ls_ieine
                i_einex = ls_ieinex
                testrun = lv_test
              IMPORTING
                e_eina  = e_eina
                e_eine  = e_eine
              TABLES
                return  = lt_return2.
            READ TABLE lt_return2 INTO ls_return2 WITH KEY type = 'E'.
            IF sy-subrc <> 0 AND lv_test = ''.
              "创建时需要将数据写入到数据库里,不然报错
              CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'
                EXPORTING
                  wait = 'X'.
              "因为净价和条件不能同时维护,所以分开维护
              CLEAR:ls_ieinex-net_price.
              CLEAR:lt_return2.
              ls_ieina-info_rec = e_eina-info_rec."采购信息记录号
              ls_ieine-info_rec = e_eina-info_rec."
              ls_ieinex-info_rec = 'X'.
              CALL FUNCTION 'ME_INFORECORD_MAINTAIN'
                EXPORTING
                  i_eina          = ls_ieina
                  i_einax         = ls_ieinax
                  i_eine          = ls_ieine
                  i_einex         = ls_ieinex
                  testrun         = lv_test
                IMPORTING
                  e_eina          = e_eina
                  e_eine          = e_eine
                TABLES
                  cond_validity   = lt_con_vali
                  condition       = lt_condition
                  cond_scale_quan = lt_condvalue
                  return          = lt_return2.
            ENDIF.
          ELSE.

            "对数据进行修改
            CALL FUNCTION 'ME_INFORECORD_MAINTAIN'
              EXPORTING
                i_eina  = ls_ieina
                i_einax = ls_ieinax
                i_eine  = ls_ieine
                i_einex = ls_ieinex
                testrun = lv_test
              IMPORTING
                e_eina  = e_eina
                e_eine  = e_eine
              TABLES
                return  = lt_return2.
*            "理论上这里可以不用commit就能更改条件
            CLEAR:ls_ieinex-net_price."一定要清空这个变量,不然程序会报错
*            CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'
*              EXPORTING
*                wait = 'X'.
            .
            CALL FUNCTION 'ME_INFORECORD_MAINTAIN'
              EXPORTING
                i_eina          = ls_ieina
*               i_einax         = ls_ieinax
                i_eine          = ls_ieine
                i_einex         = ls_ieinex
                testrun         = lv_test
              IMPORTING
                e_eina          = e_eina
                e_eine          = e_eine
              TABLES
                cond_validity   = lt_con_vali
                condition       = lt_condition
                cond_scale_quan = lt_condvalue
                return          = lt_return2.

          ENDIF.

          LOOP AT lt_return2 INTO DATA(ls_return) WHERE type CA 'EAX'.
            CONCATENATE ls_log-message ls_return-message INTO  ls_log-message.
            output-mt_mm090_purchaseinfo_sap_res-message = ls_log-message.
            output-mt_mm090_purchaseinfo_sap_res-status = 'E'.

          ENDLOOP.
          IF  output-mt_mm090_purchaseinfo_sap_res-status = 'E'.
            READ TABLE output-mt_mm090_purchaseinfo_sap_res-head INTO DATA(ls_ret) INDEX 1.
            ls_ret-zsrmid = <fs_head>-zsrnid.
            APPEND ls_ret TO output-mt_mm090_purchaseinfo_sap_res-head.

            ls_log-zsrmid = <fs_head>-zsrnid.
            ls_log-type = 'E'.
            ls_log-message = ls_log-message.
            ls_log-aedat1  = sy-datum.
            ls_log-aedat2  = sy-uzeit.
            MODIFY zshmm_015_log FROM ls_log .
            IF sy-subrc = 0.
              COMMIT WORK AND WAIT.
            ELSE.
              ROLLBACK WORK.
            ENDIF.
            CALL FUNCTION 'BAPI_TRANSACTION_ROLLBACK'.
          ENDIF.
          IF sy-subrc NE 0.
            CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'
              EXPORTING
                wait = 'X'.


            output-mt_mm090_purchaseinfo_sap_res-message = TEXT-m02..
            output-mt_mm090_purchaseinfo_sap_res-status = 'S'.
            READ TABLE output-mt_mm090_purchaseinfo_sap_res-head INTO ls_ret INDEX 1.
            ls_ret-zsrmid = <fs_head>-zsrnid.
            ls_ret-infnr  =  e_eina-info_rec.
            APPEND ls_ret TO output-mt_mm090_purchaseinfo_sap_res-head.

            ls_log-zsrmid  = <fs_head>-zsrnid.
            ls_log-type    = 'S'.
            ls_log-infnr   = e_eina-info_rec.
            ls_log-message = ls_log-message.
            ls_log-aedat1  = sy-datum.
            ls_log-aedat2  = sy-uzeit.
            MODIFY zshmm_015_log FROM ls_log .
            IF sy-subrc = 0.
              COMMIT WORK AND WAIT.
            ELSE.
              ROLLBACK WORK.
            ENDIF.
          ENDIF.
          CLEAR:ls_ieina,ls_ieinax,
             ls_ieine,ls_ieinex,
             lt_con_vali,lt_condition,
             ls_eina,lt_condvalue.
          CLEAR:lt_return2.


        ENDLOOP.

*        AT END OF werks.

*        ENDAT.
      ELSE.
        "如果工厂为空
        SELECT werks,ekorg FROM t024w INTO TABLE @DATA(lt_t024w) WHERE  ekorg = @<fs_head>-ekorg.
        "数据必须先进行模拟测试后才可以进行创建,功能。
*-------------模拟功能------------------8
*-------------模拟功能------------------8
*-------------模拟功能------------------8
        LOOP AT lt_t024w INTO DATA(ls_t024w).
          lv_test = abap_on.
          "凡是位数是2的工厂都是无价值工厂 根本不需要采购组织
          IF ls_t024w-werks+3(1) NE '2'.

            CALL FUNCTION 'CONVERSION_EXIT_MATN1_INPUT'
              EXPORTING
                input        = <fs_head>-matnr
              IMPORTING
                output       = lv_matnr
              EXCEPTIONS
                length_error = 1
                OTHERS       = 2.
            IF sy-subrc <> 0.
* Implement suitable error handling here
            ENDIF.
            "补齐供应商的前导零
            CALL FUNCTION 'CONVERSION_EXIT_ALPHA_INPUT'
              EXPORTING
                input  = <fs_head>-lifnr
              IMPORTING
                output = <fs_head>-lifnr.

            "判断数据是新增还是修改
            READ TABLE lt_eina INTO ls_eina WITH KEY matnr = lv_matnr lifnr = <fs_head>-lifnr.
            IF sy-subrc <> 0.
              lv_mode = 'I'."新增
            ELSE.
              READ TABLE lt_eine INTO ls_eine WITH KEY infnr = ls_eina-infnr ekorg = <fs_head>-ekorg esokz = <fs_head>-esokz werks = ls_t024w-werks.
              IF sy-subrc = 0.
                lv_mode = 'M'."修改
                ls_ieina-info_rec = ls_eina-infnr."采购信息记录号
                ls_ieine-info_rec = ls_eina-infnr."
                ls_ieinex-info_rec = 'X'.
                ls_ieinax-vendor = 'X'.
                ls_ieinax-material = 'X'.
              ELSE.
                lv_mode = 'I'."新增
              ENDIF.
            ENDIF.
            LOOP AT <fs_head>-item INTO ls_item.
              "数据填写
              ls_ieina-vendor = <fs_head>-lifnr."供应商
              ls_ieina-material = lv_matnr."物料编码

              ls_ieine-purch_org = <fs_head>-ekorg."采购组织
              IF ls_ieine-purch_org IS NOT INITIAL.
                ls_ieinex-purch_org = 'X'.
              ENDIF.

              ls_ieine-info_type = <fs_head>-esokz."信息类别
              IF ls_ieine-info_type IS NOT INITIAL.
                ls_ieinex-info_type = 'X'.
              ENDIF.

              ls_ieine-plant = ls_t024w-werks."工厂
              IF ls_ieine-plant IS NOT INITIAL.
                ls_ieinex-plant = 'X'.
              ENDIF.

              READ TABLE lt_marc INTO ls_marc WITH KEY werks = ls_t024w-werks matnr = lv_matnr.
              IF ls_marc-ekgrp IS NOT INITIAL.
                ls_ieine-pur_group = ls_marc-ekgrp.
                ls_ieinex-pur_group = abap_on.
              ELSE.
                ls_ieine-pur_group = 'F01'.
                ls_ieinex-pur_group = abap_on.
              ENDIF.

              ls_ieine-currency = ls_item-waers."货币码
              IF ls_ieine-currency IS NOT INITIAL.
                ls_ieinex-currency = 'X'.
              ENDIF.
              ls_ieine-tax_code = ls_item-mwskz."税码
              IF ls_ieine-tax_code IS NOT INITIAL.
                ls_ieinex-tax_code = 'X'.
              ENDIF.
              ls_ieine-plnd_delry = ls_item-aplfz."计划交货时间(天)
              IF ls_ieine-plnd_delry IS NOT INITIAL.
                ls_ieinex-plnd_delry = 'X'.
              ENDIF.

              ls_ieine-net_price = ls_item-netpr."净价
              IF ls_ieine-net_price IS NOT INITIAL.
                ls_ieinex-net_price = 'X'.
              ENDIF.

              ls_ieine-nrm_po_qty = ls_item-norbm."标准数量
              IF ls_ieine-nrm_po_qty IS NOT INITIAL.
                ls_ieinex-nrm_po_qty = abap_on.
              ENDIF.

              ls_ieine-min_po_qty = ls_item-minbm."最小订单数量
              IF ls_ieine-min_po_qty IS NOT INITIAL.
                ls_ieinex-min_po_qty = abap_on.
              ENDIF.

              ls_ieine-gr_basediv = ls_item-webre."基于收货的发票校验
              IF ls_ieine-gr_basediv  IS NOT INITIAL.
                ls_ieinex-gr_basediv = abap_on.
              ENDIF.

              ls_ieine-tax_code = ls_item-mwskz. "税码
              IF ls_ieine-tax_code IS NOT INITIAL.
                ls_ieinex-tax_code = abap_on.
              ENDIF.

              ls_ieine-price_unit = ls_item-peinh."价格单位
              IF ls_ieine-price_unit IS NOT INITIAL.
                ls_ieinex-price_unit = abap_on.
              ENDIF.
              "获取单位
              READ TABLE lt_mara INTO ls_mara WITH KEY matnr = lv_matnr.
              ls_ieine-orderpr_un = ls_mara-meins."采购单位
              IF ls_ieine-orderpr_un IS NOT INITIAL.
                ls_ieinex-orderpr_un = 'X'.
              ENDIF.


              READ TABLE lt_a017 INTO ls_a017 WITH KEY lifnr = <fs_head>-lifnr matnr = lv_matnr  kschl = ls_item-kschl1.
              ls_con_vali-serial_id = ls_a017-knumh.
              ls_con_vali-plant      = ls_t024w-werks."工厂
              ls_con_vali-valid_from = ls_item-datab1."有效起始日
              ls_con_vali-valid_to   = ls_item-datbi1."有效截止日
              APPEND ls_con_vali TO lt_con_vali.
              CLEAR:ls_con_vali.

              IF ls_item-kschl1 IS NOT INITIAL.
                ls_condition-serial_id = ls_a017-knumh.
                ls_condition-cond_count = '01'.
                ls_condition-cond_type  = ls_item-kschl1."固定值
                ls_condition-currency   = ls_item-waers."货币码
                ls_condition-cond_value = ls_item-netpr."净价
                ls_condition-cond_p_unt = ls_item-peinh."条件定价单位
                ls_condition-cond_unit  = ls_mara-meins."条件单位
                APPEND ls_condition TO lt_condition.
                CLEAR:ls_condition.
              ENDIF.

              IF ls_item-kschl2 IS NOT INITIAL.
                ls_condition-serial_id = ls_a017-knumh.
                ls_condition-cond_count = '02'.
                ls_condition-cond_type  = ls_item-kschl2."固定值
                ls_condition-currency   = '%'."货币码
                ls_condition-cond_value = ls_item-kbetr2 * 1000."净价
                ls_condition-cond_p_unt = ls_item-peinh."条件定价单位
                ls_condition-cond_unit  = ls_mara-meins."条件单位
                APPEND ls_condition TO lt_condition.
                CLEAR:ls_condition.
              ENDIF.

              ls_condvalue-serial_no  = ls_a017-knumh.
              ls_condvalue-cond_count  = '01'.
              ls_condvalue-line_no  = '0001'.
              ls_condvalue-cond_value = ls_item-netpr.
              APPEND ls_condvalue TO lt_condvalue.
              CLEAR:ls_condvalue.

              IF ls_item-kbetr_2 IS NOT INITIAL.
                ls_condvalue-serial_no  = ls_a017-knumh.
                ls_condvalue-cond_count  = '01'.
                ls_condvalue-line_no  = '0004'.
                ls_condvalue-cond_value = ls_item-kbetr_2."阶梯价格2
                ls_condvalue-scale_base_qty = ls_item-kstbm_2."阶梯价格数量2
                APPEND ls_condvalue TO lt_condvalue.
                CLEAR:ls_condvalue.
              ENDIF.

              IF ls_item-kbetr_3 IS NOT INITIAL.

                ls_condvalue-serial_no  = ls_a017-knumh.
                ls_condvalue-cond_count  = '01'.
                ls_condvalue-line_no  = '0007'.
                ls_condvalue-cond_value = ls_item-kbetr_3."阶梯价格2
                ls_condvalue-scale_base_qty = ls_item-kstbm_3."阶梯价格数量2
                APPEND ls_condvalue TO lt_condvalue.
                CLEAR:ls_condvalue.
              ENDIF.

              IF ls_item-kbetr_4 IS NOT INITIAL.

                ls_condvalue-serial_no  = ls_a017-knumh.
                ls_condvalue-cond_count  = '01'.
                ls_condvalue-line_no  = '0010'.
                ls_condvalue-cond_value = ls_item-kbetr_4."阶梯价格2
                ls_condvalue-scale_base_qty = ls_item-kstbm_4."阶梯价格数量2
                APPEND ls_condvalue TO lt_condvalue.
                CLEAR:ls_condvalue.
              ENDIF.

              IF ls_item-kbetr_5 IS NOT INITIAL.

                ls_condvalue-serial_no  = ls_a017-knumh.
                ls_condvalue-cond_count  = '01'.
                ls_condvalue-line_no  = '0013'.
                ls_condvalue-cond_value = ls_item-kbetr_5."阶梯价格2
                ls_condvalue-scale_base_qty = ls_item-kstbm_5."阶梯价格数量2
                APPEND ls_condvalue TO lt_condvalue.
                CLEAR:ls_condvalue.
              ENDIF.

              IF ls_item-kbetr_6 IS NOT INITIAL.

                ls_condvalue-serial_no  = ls_a017-knumh.
                ls_condvalue-cond_count  = '01'.
                ls_condvalue-line_no  = '0016'.
                ls_condvalue-cond_value = ls_item-kbetr_6."阶梯价格2
                ls_condvalue-scale_base_qty = ls_item-kstbm_6."阶梯价格数量2
                APPEND ls_condvalue TO lt_condvalue.
                CLEAR:ls_condvalue.
              ENDIF.

              IF ls_item-kbetr_7 IS NOT INITIAL.

                ls_condvalue-serial_no  = ls_a017-knumh.
                ls_condvalue-cond_count  = '01'.
                ls_condvalue-line_no  = '0019'.
                ls_condvalue-cond_value = ls_item-kbetr_7."阶梯价格2
                ls_condvalue-scale_base_qty = ls_item-kstbm_7."阶梯价格数量2
                APPEND ls_condvalue TO lt_condvalue.
                CLEAR:ls_condvalue.
              ENDIF.

            ENDLOOP.
            CLEAR:lt_return2.
            IF lv_mode = 'I'..
              "无工厂数据需要模拟创建功能来判断数据是否正确
              CALL FUNCTION 'ME_INFORECORD_MAINTAIN'
                EXPORTING
                  i_eina  = ls_ieina
                  i_eine  = ls_ieine
                  i_einex = ls_ieinex
                  testrun = lv_test
                IMPORTING
                  e_eina  = e_eina
                  e_eine  = e_eine
                TABLES
                  return  = lt_return2.
            ELSE.

            ENDIF.
            LOOP AT lt_return2 INTO ls_return WHERE type CA 'EAX'.
              CONCATENATE ls_log-message ls_return-message INTO  ls_log-message.
              output-mt_mm090_purchaseinfo_sap_res-message = ls_log-message.
              output-mt_mm090_purchaseinfo_sap_res-status = 'E'.
              READ TABLE output-mt_mm090_purchaseinfo_sap_res-head INTO ls_ret INDEX 1.
              ls_ret-zsrmid = <fs_head>-zsrnid.
              ls_ret-infnr  = ' '.
              APPEND ls_ret TO output-mt_mm090_purchaseinfo_sap_res-head.
              RETURN.
            ENDLOOP.
            IF sy-subrc NE 0.
              CLEAR:lv_test.
            ENDIF.
            CLEAR:ls_ieina,ls_ieinax,
                  ls_ieine,ls_ieinex,
                  lt_con_vali,lt_condition,
                  ls_eina,lt_condvalue.
            CLEAR:lt_return2.

            "采购组织
          ENDIF.
        ENDLOOP.

        "正式运行
        "正式运行
        "正式运行

        LOOP AT lt_t024w INTO ls_t024w.
          lv_flag = '1'.
          "凡是位数是2的工厂都是无价值工厂 根本不需要采购组织
          IF ls_t024w-werks+3(1) NE '2'.

            CALL FUNCTION 'CONVERSION_EXIT_MATN1_INPUT'
              EXPORTING
                input        = <fs_head>-matnr
              IMPORTING
                output       = lv_matnr
              EXCEPTIONS
                length_error = 1
                OTHERS       = 2.
            IF sy-subrc <> 0.
* Implement suitable error handling here
            ENDIF.
            "补齐供应商的前导零
            CALL FUNCTION 'CONVERSION_EXIT_ALPHA_INPUT'
              EXPORTING
                input  = <fs_head>-lifnr
              IMPORTING
                output = <fs_head>-lifnr.

            "判断数据是新增还是修改
            READ TABLE lt_eina INTO ls_eina WITH KEY matnr = lv_matnr lifnr = <fs_head>-lifnr.
            IF sy-subrc <> 0.
              lv_mode = 'I'."新增
            ELSE.
              READ TABLE lt_eine INTO ls_eine WITH KEY infnr = ls_eina-infnr ekorg = <fs_head>-ekorg esokz = <fs_head>-esokz werks = ls_t024w-werks.
              IF sy-subrc = 0.
                lv_mode = 'M'."修改
                ls_ieina-info_rec = ls_eina-infnr."采购信息记录号
                ls_ieine-info_rec = ls_eina-infnr."
                ls_ieinex-info_rec = 'X'.
                ls_ieinax-vendor = 'X'.
                ls_ieinax-material = 'X'.
              ELSE.
                lv_mode = 'I'."新增
              ENDIF.
            ENDIF.
            LOOP AT <fs_head>-item INTO ls_item.
              "数据填写
              ls_ieina-vendor = <fs_head>-lifnr."供应商
              ls_ieina-material = lv_matnr."物料编码

              ls_ieine-purch_org = <fs_head>-ekorg."采购组织
              IF ls_ieine-purch_org IS NOT INITIAL.
                ls_ieinex-purch_org = 'X'.
              ENDIF.

              ls_ieine-info_type = <fs_head>-esokz."信息类别
              IF ls_ieine-info_type IS NOT INITIAL.
                ls_ieinex-info_type = 'X'.
              ENDIF.

              ls_ieine-plant = ls_t024w-werks."工厂
              IF ls_ieine-plant IS NOT INITIAL.
                ls_ieinex-plant = 'X'.
              ENDIF.

              READ TABLE lt_marc INTO ls_marc WITH KEY werks = ls_t024w-werks matnr = lv_matnr.
              IF ls_marc-ekgrp IS NOT INITIAL.
                ls_ieine-pur_group = ls_marc-ekgrp.
                ls_ieinex-pur_group = abap_on.
              ELSE.
                ls_ieine-pur_group = 'F01'.
                ls_ieinex-pur_group = abap_on.
              ENDIF.

              ls_ieine-currency = ls_item-waers."货币码
              IF ls_ieine-currency IS NOT INITIAL.
                ls_ieinex-currency = 'X'.
              ENDIF.
              ls_ieine-tax_code = ls_item-mwskz."税码
              IF ls_ieine-tax_code IS NOT INITIAL.
                ls_ieinex-tax_code = 'X'.
              ENDIF.
              ls_ieine-plnd_delry = ls_item-aplfz."计划交货时间(天)
              IF ls_ieine-plnd_delry IS NOT INITIAL.
                ls_ieinex-plnd_delry = 'X'.
              ENDIF.

              ls_ieine-net_price = ls_item-netpr."净价
              IF ls_ieine-net_price IS NOT INITIAL.
                ls_ieinex-net_price = 'X'.
              ENDIF.

              ls_ieine-nrm_po_qty = ls_item-norbm."标准数量
              IF ls_ieine-nrm_po_qty IS NOT INITIAL.
                ls_ieinex-nrm_po_qty = abap_on.
              ENDIF.

              ls_ieine-min_po_qty = ls_item-minbm."最小订单数量
              IF ls_ieine-min_po_qty IS NOT INITIAL.
                ls_ieinex-min_po_qty = abap_on.
              ENDIF.

              ls_ieine-gr_basediv = ls_item-webre."基于收货的发票校验
              IF ls_ieine-gr_basediv  IS NOT INITIAL.
                ls_ieinex-gr_basediv = abap_on.
              ENDIF.

              ls_ieine-tax_code = ls_item-mwskz. "税码
              IF ls_ieine-tax_code IS NOT INITIAL.
                ls_ieinex-tax_code = abap_on.
              ENDIF.

              ls_ieine-price_unit = ls_item-peinh."价格单位
              IF ls_ieine-price_unit IS NOT INITIAL.
                ls_ieinex-price_unit = abap_on.
              ENDIF.
              "获取单位
              READ TABLE lt_mara INTO ls_mara WITH KEY matnr = lv_matnr.
              ls_ieine-orderpr_un = ls_mara-meins."采购单位
              IF ls_ieine-orderpr_un IS NOT INITIAL.
                ls_ieinex-orderpr_un = 'X'.
              ENDIF.


              READ TABLE lt_a017 INTO ls_a017 WITH KEY lifnr = <fs_head>-lifnr matnr = lv_matnr  kschl = ls_item-kschl1.
              ls_con_vali-serial_id = ls_a017-knumh.
              ls_con_vali-plant      = ls_t024w-werks."工厂
              ls_con_vali-valid_from = ls_item-datab1."有效起始日
              ls_con_vali-valid_to   = ls_item-datbi1."有效截止日
              APPEND ls_con_vali TO lt_con_vali.
              CLEAR:ls_con_vali.

              IF ls_item-kschl1 IS NOT INITIAL.
                ls_condition-serial_id = ls_a017-knumh.
                ls_condition-cond_count = '01'.
                ls_condition-cond_type  = ls_item-kschl1."固定值
                ls_condition-currency   = ls_item-waers."货币码
                ls_condition-cond_value = ls_item-netpr."净价
                ls_condition-cond_p_unt = ls_item-peinh."条件定价单位
                ls_condition-cond_unit  = ls_mara-meins."条件单位
                APPEND ls_condition TO lt_condition.
                CLEAR:ls_condition.
              ENDIF.

              IF ls_item-kschl2 IS NOT INITIAL.
                ls_condition-serial_id = ls_a017-knumh.
                ls_condition-cond_count = '02'.
                ls_condition-cond_type  = ls_item-kschl2."固定值
                ls_condition-currency   = '%'."货币码
                ls_condition-cond_value = ls_item-kbetr2 * 1000."净价
                ls_condition-cond_p_unt = ls_item-peinh."条件定价单位
                ls_condition-cond_unit  = ls_mara-meins."条件单位
                APPEND ls_condition TO lt_condition.
                CLEAR:ls_condition.
              ENDIF.

              ls_condvalue-serial_no  = ls_a017-knumh.
              ls_condvalue-cond_count  = '01'.
              ls_condvalue-line_no  = '0001'.
              ls_condvalue-cond_value = ls_item-netpr.
              APPEND ls_condvalue TO lt_condvalue.
              CLEAR:ls_condvalue.

              IF ls_item-kbetr_2 IS NOT INITIAL.
                ls_condvalue-serial_no  = ls_a017-knumh.
                ls_condvalue-cond_count  = '01'.
                ls_condvalue-line_no  = '0004'.
                ls_condvalue-cond_value = ls_item-kbetr_2."阶梯价格2
                ls_condvalue-scale_base_qty = ls_item-kstbm_2."阶梯价格数量2
                APPEND ls_condvalue TO lt_condvalue.
                CLEAR:ls_condvalue.
              ENDIF.

              IF ls_item-kbetr_3 IS NOT INITIAL.

                ls_condvalue-serial_no  = ls_a017-knumh.
                ls_condvalue-cond_count  = '01'.
                ls_condvalue-line_no  = '0007'.
                ls_condvalue-cond_value = ls_item-kbetr_3."阶梯价格2
                ls_condvalue-scale_base_qty = ls_item-kstbm_3."阶梯价格数量2
                APPEND ls_condvalue TO lt_condvalue.
                CLEAR:ls_condvalue.
              ENDIF.

              IF ls_item-kbetr_4 IS NOT INITIAL.

                ls_condvalue-serial_no  = ls_a017-knumh.
                ls_condvalue-cond_count  = '01'.
                ls_condvalue-line_no  = '0010'.
                ls_condvalue-cond_value = ls_item-kbetr_4."阶梯价格2
                ls_condvalue-scale_base_qty = ls_item-kstbm_4."阶梯价格数量2
                APPEND ls_condvalue TO lt_condvalue.
                CLEAR:ls_condvalue.
              ENDIF.

              IF ls_item-kbetr_5 IS NOT INITIAL.

                ls_condvalue-serial_no  = ls_a017-knumh.
                ls_condvalue-cond_count  = '01'.
                ls_condvalue-line_no  = '0013'.
                ls_condvalue-cond_value = ls_item-kbetr_5."阶梯价格2
                ls_condvalue-scale_base_qty = ls_item-kstbm_5."阶梯价格数量2
                APPEND ls_condvalue TO lt_condvalue.
                CLEAR:ls_condvalue.
              ENDIF.

              IF ls_item-kbetr_6 IS NOT INITIAL.

                ls_condvalue-serial_no  = ls_a017-knumh.
                ls_condvalue-cond_count  = '01'.
                ls_condvalue-line_no  = '0016'.
                ls_condvalue-cond_value = ls_item-kbetr_6."阶梯价格2
                ls_condvalue-scale_base_qty = ls_item-kstbm_6."阶梯价格数量2
                APPEND ls_condvalue TO lt_condvalue.
                CLEAR:ls_condvalue.
              ENDIF.

              IF ls_item-kbetr_7 IS NOT INITIAL.

                ls_condvalue-serial_no  = ls_a017-knumh.
                ls_condvalue-cond_count  = '01'.
                ls_condvalue-line_no  = '0019'.
                ls_condvalue-cond_value = ls_item-kbetr_7."阶梯价格2
                ls_condvalue-scale_base_qty = ls_item-kstbm_7."阶梯价格数量2
                APPEND ls_condvalue TO lt_condvalue.
                CLEAR:ls_condvalue.
              ENDIF.

            ENDLOOP.
            CLEAR:lt_return2.
            IF lv_mode = 'I'..
              "无工厂数据需要模拟创建功能来判断数据是否正确
              lv_flag = '1'.
              CALL FUNCTION 'ME_INFORECORD_MAINTAIN'
                EXPORTING
                  i_eina        = ls_ieina
                  i_eine        = ls_ieine
                  i_einex       = ls_ieinex
                  testrun       = lv_test
                IMPORTING
                  e_eina        = e_eina
                  e_eine        = e_eine
                TABLES
                  cond_validity = lt_con_vali
                  return        = lt_return2.
              READ TABLE lt_return2 INTO ls_return2 WITH KEY type = 'E'.
              IF sy-subrc <> 0 AND lv_test = ''.
                "创建时需要将数据写入到数据库里,不然报错
                CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'
                  EXPORTING
                    wait = 'X'.
                "因为净价和条件不能同时维护,所以分开维护
                CLEAR:ls_ieinex-net_price.
                CLEAR:lt_return2.
                ls_ieina-info_rec = e_eina-info_rec."采购信息记录号
                ls_ieine-info_rec = e_eina-info_rec."
                ls_ieinex-info_rec = 'X'.
                CALL FUNCTION 'ME_INFORECORD_MAINTAIN'
                  EXPORTING
                    i_eina          = ls_ieina
                    i_eine          = ls_ieine
                    i_einex         = ls_ieinex
                    testrun         = lv_test
                  IMPORTING
                    e_eina          = e_eina
                    e_eine          = e_eine
                  TABLES
                    cond_validity   = lt_con_vali
                    condition       = lt_condition
                    cond_scale_quan = lt_condvalue
                    return          = lt_return2.
              ENDIF.
            ELSE.
              "对数据进行修改
              CALL FUNCTION 'ME_INFORECORD_MAINTAIN'
                EXPORTING
                  i_eina        = ls_ieina
                  i_einax       = ls_ieinax
                  i_eine        = ls_ieine
                  i_einex       = ls_ieinex
                  testrun       = lv_test
                IMPORTING
                  e_eina        = e_eina
                  e_eine        = e_eine
                TABLES
                  cond_validity = lt_con_vali
                  return        = lt_return2.
              "理论上这里可以不用commit就能更改条件
              CLEAR:ls_ieinex-net_price."一定要清空这个变量,不然程序会报错
              CALL FUNCTION 'ME_INFORECORD_MAINTAIN'
                EXPORTING
                  i_eina          = ls_ieina
                  i_eine          = ls_ieine
                  i_einex         = ls_ieinex
                  testrun         = lv_test
                IMPORTING
                  e_eina          = e_eina
                  e_eine          = e_eine
                TABLES
                  cond_validity   = lt_con_vali
                  condition       = lt_condition
                  cond_scale_quan = lt_condvalue
                  return          = lt_return2.

            ENDIF.
            LOOP AT lt_return2 INTO ls_return WHERE type CA 'EAX'.
              CONCATENATE ls_log-message ls_return-message INTO  ls_log-message.
              output-mt_mm090_purchaseinfo_sap_res-message = ls_log-message.
              output-mt_mm090_purchaseinfo_sap_res-status = 'E'..
            ENDLOOP.
            IF output-mt_mm090_purchaseinfo_sap_res-status = 'E'.

              READ TABLE output-mt_mm090_purchaseinfo_sap_res-head INTO ls_ret INDEX 1.
              ls_ret-zsrmid = <fs_head>-zsrnid.
              APPEND ls_ret TO output-mt_mm090_purchaseinfo_sap_res-head.

              ls_log-zsrmid = <fs_head>-zsrnid.
              ls_log-type = 'E'.
              ls_log-message = ls_log-message.
              ls_log-aedat1  = sy-datum.
              ls_log-aedat2  = sy-uzeit.
              MODIFY zshmm_015_log FROM ls_log .
              IF sy-subrc = 0.
                COMMIT WORK AND WAIT.
              ELSE.
                ROLLBACK WORK.
              ENDIF.
              CALL FUNCTION 'BAPI_TRANSACTION_ROLLBACK'.

            ENDIF.
            IF sy-subrc NE 0.
              CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'
                EXPORTING
                  wait = 'X'.
              output-mt_mm090_purchaseinfo_sap_res-message = TEXT-m02..
              output-mt_mm090_purchaseinfo_sap_res-status = 'S'.
              READ TABLE output-mt_mm090_purchaseinfo_sap_res-head INTO ls_ret INDEX 1.
              ls_ret-zsrmid = <fs_head>-zsrnid.
              ls_ret-infnr  =  e_eina-info_rec.
              APPEND ls_ret TO output-mt_mm090_purchaseinfo_sap_res-head.
              CLEAR:ls_ret,e_eina.
              ls_log-zsrmid  = <fs_head>-zsrnid.
              ls_log-type    = 'S'.
              ls_log-infnr   = e_eina-info_rec.
              ls_log-message = ls_log-message.
              ls_log-aedat1  = sy-datum.
              ls_log-aedat2  = sy-uzeit.
              MODIFY zshmm_015_log FROM ls_log .
              IF sy-subrc = 0.
                COMMIT WORK AND WAIT.
              ELSE.
                ROLLBACK WORK.
              ENDIF.
            ENDIF.
            CLEAR:ls_ieina,ls_ieinax,
                  ls_ieine,ls_ieinex,
                  lt_con_vali,lt_condition,
                  ls_eina,lt_condvalue.
            CLEAR:lt_return2.

            "采购组织
          ENDIF.
        ENDLOOP.
      ENDIF.
    ENDLOOP.
  ENDIF.



ENDFUNCTION.

项目记录,遇到一些问题,就是开始日期为不能是当前日期,求高手可以给解答一下,顺便做一些记录

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值