zoukankan      html  css  js  c++  java
  • ABAP-供应商主数据创建(公司视图)

    FUNCTION zmm_fm_21_04.
    *"----------------------------------------------------------------------
    *"*"本地接口:
    *"  IMPORTING
    *"     VALUE(IN) TYPE  ZSLIFNR_SRM
    *"  EXPORTING
    *"     VALUE(OUT) TYPE  ZSLIFNR_SRM
    *"     REFERENCE(GV_ERR) TYPE  CHAR1
    *"----------------------------------------------------------------------
      CONSTANTS : gc_black  TYPE char04 VALUE '@EB@',
                  gc_red    TYPE char04 VALUE '@0A@',
                  gc_green  TYPE char04 VALUE '@08@',
                  gc_yellow TYPE char04 VALUE '@09@'.

      DATA: ls_phone TYPE cvis_ei_phone_str,
            ls_fax   TYPE cvis_ei_fax_str,
            ls_smtp  TYPE cvis_ei_smtp_str.
      DATA:lt_return LIKE bapiret2   OCCURS WITH HEADER LINE.
      DATA: lv_lifnr TYPE lfa1-lifnr.

      CLEAR: lt_return,lt_return[].


      CALL FUNCTION 'BAPI_BUPA_ROLE_ADD_2'
        EXPORTING
          businesspartner             in-partner
          businesspartnerrolecategory 'FLVN00'
    *     ALL_BUSINESSPARTNERROLES    = ' '
          businesspartnerrole         'FLVN00'
    *     DIFFERENTIATIONTYPEVALUE    =
    *     VALIDFROMDATE               =
    *     VALIDUNTILDATE              = '99991231'
        TABLES
          return                      = lt_return.

      LOOP AT lt_return WHERE type 'A' OR type 'E'.

    *     GW_LIST-ICON = GC_RED.
    *     GW_LIST-MSG  = LT_RETURN-MESSAGE.

        gv_err 'X'.
        EXIT.
      ENDLOOP.

      IF gv_err 'X'.
    *    CALL FUNCTION 'BAPI_TRANSACTION_ROLLBACK'.
    *    RETURN.
      ELSE.
        CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'
          EXPORTING
            wait 'X'.
      ENDIF.

      DATA: lt_master_data TYPE vmds_ei_main,
            ls_master_data TYPE vmds_ei_extern,
            ls_company     TYPE vmds_ei_company.

      CLEAR: ls_master_data,ls_company,lt_master_data.


      ls_master_data-header-object_task              'M'.
      ls_master_data-header-object_instance-lifnr    in-partner.

      DATA:lv_ktokk2 TYPE tbc001-ktokk.
      CLEAR lv_ktokk2.
      SELECT SINGLE ktokk FROM tbc001 INTO lv_ktokk2 WHERE bu_group in-bu_group.
      ls_master_data-central_data-central-data-ktokk  = lv_ktokk2"供应商帐户组
      ls_master_data-central_data-central-datax-ktokk 'X'"供应商帐户组
    *
    *  LS_MASTER_DATA-CENTRAL_DATA-ADDRESS-POSTAL-DATA-NAME         = in-NAME_ORG1.      "名称1
    *  LS_MASTER_DATA-CENTRAL_DATA-ADDRESS-POSTAL-DATA-NAME_2       = in-NAME_ORG2.      "名称2
    *  LS_MASTER_DATA-CENTRAL_DATA-ADDRESS-POSTAL-DATA-SORT1        = in-BU_SORT1.       "属性(SAP为搜索项 1)
    **      LS_MASTER_DATA-CENTRAL_DATA-ADDRESS-POSTAL-DATA-SORT2        = in-BU_SORT2.       "属性(SAP为搜索项 2)
    *  LS_MASTER_DATA-CENTRAL_DATA-ADDRESS-POSTAL-DATA-STREET       = in-STREET.         "街道/门牌号
    *  LS_MASTER_DATA-CENTRAL_DATA-ADDRESS-POSTAL-DATA-POSTL_COD1   = in-POST_CODE1.     "邮政编码
    *  LS_MASTER_DATA-CENTRAL_DATA-ADDRESS-POSTAL-DATA-CITY         = in-CITY1.          "城市
    *  LS_MASTER_DATA-CENTRAL_DATA-ADDRESS-POSTAL-DATA-COUNTRY      = in-LAND1.          "国家
    *  LS_MASTER_DATA-CENTRAL_DATA-ADDRESS-POSTAL-DATA-REGION       = in-REGIO.          "地区
    *  LS_MASTER_DATA-CENTRAL_DATA-ADDRESS-POSTAL-DATA-LANGU        = '1'.                   "语言
    *
    *  LS_MASTER_DATA-CENTRAL_DATA-ADDRESS-POSTAL-DATAX-NAME         = 'X'.                  "名称1
    *  LS_MASTER_DATA-CENTRAL_DATA-ADDRESS-POSTAL-DATAX-NAME_2       = 'X'.                  "名称2
    *  LS_MASTER_DATA-CENTRAL_DATA-ADDRESS-POSTAL-DATAX-SORT1        = 'X'.                  "属性(SAP为搜索项 1)
    *  LS_MASTER_DATA-CENTRAL_DATA-ADDRESS-POSTAL-DATAX-STREET       = 'X'.                  "街道/门牌号
    *  LS_MASTER_DATA-CENTRAL_DATA-ADDRESS-POSTAL-DATAX-POSTL_COD1   = 'X'.                  "邮政编码
    *  LS_MASTER_DATA-CENTRAL_DATA-ADDRESS-POSTAL-DATAX-CITY         = 'X'.                  "城市
    *  LS_MASTER_DATA-CENTRAL_DATA-ADDRESS-POSTAL-DATAX-COUNTRY      = 'X'.                  "国家
    *  LS_MASTER_DATA-CENTRAL_DATA-ADDRESS-POSTAL-DATAX-REGION       = 'X'.                  "地区
    *  LS_MASTER_DATA-CENTRAL_DATA-ADDRESS-POSTAL-DATAX-LANGU        = 'X'.                  "语言

    *    LS_MASTER_DATA-COMPANY_DATA-COMPANY            = ''.                      "COMPANY关联类型即LS_COMPANY的关联类型
      SELECT SINGLE lifnr
        INTO lv_lifnr
        FROM lfa1
        WHERE lifnr in-partner.
      IF sy-subrc <> 0.
        ls_master_data-central_data-address-task 'I'.
        ls_master_data-central_data-address-postal-data-title       in-title_key.  " 地址关键字的表格
        ls_master_data-central_data-address-postal-datax-title      'X'.
        ls_master_data-central_data-address-postal-data-name        in-name_org1.  " 名称1
        ls_master_data-central_data-address-postal-datax-name       'X'.
        ls_master_data-central_data-address-postal-data-name_2      in-name_org2.  " 名称2
        ls_master_data-central_data-address-postal-datax-name_2     'X'.
        ls_master_data-central_data-address-postal-data-sort1       in-bu_sort1.   " 搜索词 1
        ls_master_data-central_data-address-postal-datax-sort1      'X'.
        ls_master_data-central_data-address-postal-data-country     in-land1.      " 国家
        ls_master_data-central_data-address-postal-datax-country    'X'.
        ls_master_data-central_data-address-postal-data-region      in-regio.      " 地区
        ls_master_data-central_data-address-postal-datax-region     'X'.
        ls_master_data-central_data-address-postal-data-city        in-city1.      " 城市
        ls_master_data-central_data-address-postal-datax-city       'X'.
        ls_master_data-central_data-address-postal-data-street      in-street.     " 街道
        ls_master_data-central_data-address-postal-datax-street     'X'.
        ls_master_data-central_data-address-postal-data-postl_cod1  in-post_code1" 邮编
        ls_master_data-central_data-address-postal-datax-postl_cod1 'X'.
        ls_master_data-central_data-address-postal-data-langu       1.                 " 语言
        ls_master_data-central_data-address-postal-datax-langu      'X'.

        CLEAR ls_phone.
        ls_phone-contact-task 'I'.
        ls_phone-contact-data-country    in-land1.      " 国家.
        ls_phone-contact-datax-country   'X'.
        ls_phone-contact-data-std_no     'X'.
        ls_phone-contact-datax-std_no    'X'.
        ls_phone-contact-data-home_flag  'X'.
        ls_phone-contact-datax-home_flag 'X'.
        ls_phone-contact-data-telephone  in-tel_number" 电话.
        ls_phone-contact-datax-telephone 'X'.
        ls_phone-contact-data-r_3_user  '1'.
        ls_phone-contact-datax-r_3_user 'X'.
        APPEND ls_phone TO ls_master_data-central_data-address-communication-phone-phone[].

        CLEAR ls_phone.
        ls_phone-contact-task 'I'.
        ls_phone-contact-data-country    in-land1.      " 国家.     ls_phone
    -contact-datax-country   'X'.     ls_phone
    -contact-data-telephone  in-tel_number" 移动电话     ls_phone
    -contact-datax-telephone 'X'.     ls_phone
    -contact-data-r_3_user  '3'.     ls_phone
    -contact-datax-r_3_user 'X'.     
    APPEND ls_phone TO ls_master_data-central_data-address-communication-phone-phone[].     

    CLEAR ls_fax.     ls_fax
    -contact-task          'I'.     ls_fax
    -contact-data-country    in-land1.           " 国家.     ls_fax
    -contact-datax-country   'X'.     ls_fax
    -contact-data-std_no     'X'.     ls_fax
    -contact-datax-std_no    'X'.     ls_fax
    -contact-data-home_flag  'X'.     ls_fax
    -contact-datax-home_flag 'X'.     ls_fax
    -contact-data-fax        in-fax_number.      " 传真     ls_fax
    -contact-datax-fax       'X'.     
    APPEND ls_fax TO ls_master_data-central_data-address-communication-fax-fax[].     

    CLEAR ls_smtp.     ls_smtp
    -contact-task 'I'.     ls_smtp
    -contact-data-std_no     'X'.     ls_smtp
    -contact-datax-std_no    'X'.     ls_smtp
    -contact-data-home_flag  'X'.     ls_smtp
    -contact-datax-home_flag 'X'.     ls_smtp
    -contact-data-e_mail     in-smtp_addr.   " 邮箱     ls_smtp
    -contact-datax-e_mail    'X'.     
    APPEND ls_smtp TO ls_master_data-central_data-address-communication-smtp-smtp[].   
    ENDIF.   ls_company
    -task                                'M'.   ls_company
    -data_key-bukrs                      in-gongsi-bukrs.             "公司代码   ls_company
    -data-akont                          in-gongsi-akont.             "统驭科目   ls_company
    -datax-akont                         'X'.   ls_company
    -data-zuawa                          in-gongsi-zuawa.             "排序码   ls_company
    -datax-zuawa                         'X'.   ls_company
    -data-zterm                          in-gongsi-zterm2.             "付款条件   ls_company
    -datax-zterm                         'X'.   ls_company
    -data-zwels                          in-gongsi-dzwels.            "付款方式   ls_company
    -datax-zwels                         'X'.
    *  ls_company-data-hbkid                          = in-hbkid.            "开户行
    *  ls_company-datax-hbkid                         = 'X'.
    *  ls_company-data-fdgrv                          = in-fdgrv.            "计划组
    *  ls_company-datax-fdgrv                         = 'X'.
    *  LS_COMPANY-DATA-KVERM                          = in-ZALTKN.            "旧供应商编码
    *  LS_COMPANY-DATAX-KVERM                         = 'X'.   
    "LS_COMPANY-DATA-TOGRR                          = 'Z000'.            "容差组   
    "LS_COMPANY-DATAX-TOGRR                         = 'X'.   ls_company
    -data-reprf                          'X'.            "检查重复发票   ls_company
    -datax-reprf                         'X'.   

    APPEND ls_company TO ls_master_data-company_data-company.   
    APPEND ls_master_data TO  lt_master_data-vendors[].   

    DATA ls_msg1 TYPE vmds_ei_main.   
    DATA ls_msg2 TYPE cvis_message.   
    DATA ls_msg3 TYPE vmds_ei_main.   
    DATA ls_msg4 TYPE cvis_message.   
    DATA ls_msg  TYPE bapiret2.   vmd_ei_api

    =>initialize).   

    CALL METHOD vmd_ei_api=>maintain_bapi                                      "VMD_EI_API=>MAINTAIN_DIRECT_INPUT     
    EXPORTING       is_master_data           
    = lt_master_data     
    IMPORTING       es_master_data_correct   
    = ls_msg1       es_message_correct       
    = ls_msg2       es_master_data_defective 
    = ls_msg3       es_message_defective     
    = ls_msg4.   

    IF ls_msg4-is_error ''.     
    CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'       
    EXPORTING         
    wait 'X'.     
    in-lfb1f 'X'.     
    in-icon_a  = gc_yellow.     
    in-remark in-remark && '供应商公司代码视图扩展成功'.   
    ELSE.     
    CALL FUNCTION 'BAPI_TRANSACTION_ROLLBACK'.     
    LOOP AT ls_msg4-messages INTO ls_msg.       
    in-remark in-remark && '/' && ls_msg-message.     
    ENDLOOP.     
    in-icon_a  = gc_red.   

    ENDIF.   out 

    in.


    ENDFUNCTION.

  • 相关阅读:
    Linux 期中架构 PHP
    Linux 期中架构 MySQL
    Python 示例 饮水记录
    Linux 期中架构 inotify
    Linux期中架构 全网备份案例
    分布式存储系统Ceph部署过程 · Jayden's Blog
    Go语言汇编器的设计
    linux基础3
    6.2.2 多余的列另起一行
    linux网络设备驱动2
  • 原文地址:https://www.cnblogs.com/eagle-dtq/p/12848632.html
Copyright © 2011-2022 走看看