ABAP-供應商主數據創建(基本視圖創建)


ZSLIFNR_SRM結構:

PARTNER 1 類型 BU_PARTNER CHAR 10 0 業務伙伴編號
TITLE_KEY 1 類型 AD_TITLE CHAR 4 0 地址關鍵字的表格
BU_GROUP 1 類型 BU_GROUP CHAR 4 0 業務伙伴分組
NAME_ORG1 1 類型 BU_NAMEOR1 CHAR 40 0 組織名稱 1
NAME_ORG2 1 類型 BU_NAMEOR2 CHAR 40 0 組織名稱 2
BU_SORT1 1 類型 BU_SORT1 CHAR 20 0 業務伙伴的搜索詞 1
LAND1 1 類型 LAND1 CHAR 3 0 國家/地區代碼
REGIO 1 類型 REGIO CHAR 3 0 地區(省/自治區/直轄市、市、縣)
CITY1 1 類型 AD_CITY1 CHAR 40 0 城市
STREET 1 類型 AD_STREET CHAR 60 0 街道
POST_CODE1 1 類型 AD_PSTCD1 CHAR 10 0 城市郵政編碼
TEL_NUMBER 1 類型 AD_TLNMBR CHAR 30 0 電話號碼: 撥區號 + 號碼
MOB_NUMBER 1 類型 AD_TLNMBR CHAR 30 0 電話號碼: 撥區號 + 號碼
FAX_NUMBER 1 類型 AD_FXNMBR CHAR 30 0 傳真號: 撥號+編號
SMTP_ADDR 1 類型 AD_SMTPADR CHAR 241 0 電子郵件地址
TAXNUM 1 類型 BPTAXNUM CHAR 20 0 業務合作伙伴稅號
SEL 1 類型 CHAR1 CHAR 1 0 單字符標記

ICON_A 1 類型 CHAR10 CHAR 10 0 字符字段長度 = 10
REMARK 1 類型 CHAR255 CHAR 255 0 Char255
LFA1F 1 類型 CHAR1 CHAR 1 0 單字符標記
LFM1F 1 類型 CHAR1 CHAR 1 0 單字符標記
LFB1F 1 類型 CHAR1 CHAR 1 0 單字符標記
USEDTYPE 1 類型 CHAR1 CHAR 1 0 單字符標記
CAIGOU 1 類型 ZCAIGOU 0 0 SRM創建供應商主數據采購視圖
GONGSI 1 類型 ZGONGSI 0 0 SRM創建供應商主數據公司視圖

 

CAIGOU 結構:

 

EKORG 1 類型 EKORG CHAR 4 0 采購組織
WAERS 1 類型 WAERS CUKY 5 0 貨幣碼
ZTERM1 1 類型 DZTERM CHAR 4 0 付款條件代碼
WEBRE 1 類型 WEBRE CHAR 1 0 標識:基於收貨的發票驗證
LEBRE 1 類型 LEBRE CHAR 1 0 基於服務的發票校驗標識
KALSK 1 類型 KALSK CHAR 2 0 計算方案組(供應商)
VERKF 1 類型 VERKF CHAR 30 0 發生質疑事件時的責任銷售員
TELF1 1 類型 TELF1 CHAR 16 0 第一個電話號

 

GONGSI 結構:

BUKRS 1 類型 BUKRS CHAR 4 0 公司代碼
AKONT 1 類型 AKONT CHAR 10 0 總帳中的統馭科目
ZTERM2 1 類型 DZTERM CHAR 4 0 付款條件代碼
ZUAWA 1 類型 DZUAWA CHAR 3 0 根據分配號排序代碼
DZWELS 1 類型 DZWELS CHAR 10 0 考慮的付款方式清單
REPRF 1 類型 REPRF CHAR 1 0 檢查雙重發票或信貸憑單的標志

 

FUNCTION zmm_fm_21_01.
*"----------------------------------------------------------------------
*"*"本地接口:
*"  IMPORTING
*"     VALUE(IN) TYPE  ZSLIFNR_SRM
*"  EXPORTING
*"     VALUE(OUT) TYPE  ZSLIFNR_SRM
*"     REFERENCE(GV_ERR) TYPE  CHAR1
*"----------------------------------------------------------------------
  DATA: l_bpartner       TYPE bapibus1006_head-bpartner,           "業務伙伴編碼
        l_partn_cat      TYPE bapibus1006_head-partn_cat,          "業務伙伴類別
        l_partn_grp      TYPE bapibus1006_head-partn_grp,          "業務伙伴分組
        ls_central       TYPE bapibus1006_central,                 "一般 BP 數據,與業務伙伴類別無關
        ls_central_organ TYPE bapibus1006_central_organ,           "SAP BP: 組織數據的 BAPI 結構
        ls_address       TYPE bapibus1006_address,                 "SAP BP: 地址數據的 BAPI 結構
        lt_bapiadtel     LIKE bapiadtel  OCCURS WITH HEADER LINE"電話號碼的 BAPI 結構(辦公地址服務)
        lt_bapiadfax     LIKE bapiadfax  OCCURS WITH HEADER LINE"傳真號碼的 BAPI 結構(辦公地址服務)
        lt_bapiadsmtp    LIKE bapiadsmtp OCCURS WITH HEADER LINE"電子郵件地址的 BAPI 結構(辦公地址服務)
        ls_guid          TYPE bus000___i,                          "CBP: 一般數據和狀態信息
        ls_custo         TYPE bus000_eew,                          "SAP BP: 傳輸用於 CI 包括 BP 擴展的結構
        lt_return        LIKE bapiret2   OCCURS WITH HEADER LINE"返回參數
        ls_return        LIKE bapiret2 "返回參數
        lt_return_tax    LIKE bapiret2   OCCURS WITH HEADER LINE,
        lt_return1       TYPE bus_bapiret2_t,
        ls_return1       LIKE LINE OF lt_return1.
  CLEAR:l_bpartner,l_partn_cat,l_partn_grp,ls_central,ls_central_organ,ls_address,
        lt_bapiadtel[],lt_bapiadfax[],lt_bapiadsmtp[],ls_guid,ls_custo,lt_return[],
        lt_return_tax[],lt_return1[],ls_return1.

  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@'.

*  LS_CENTRAL-TITLELETTER     = in-ZALTKN.    "舊供應商編號
  l_bpartner                 in-partner.   "業務伙伴號
  l_partn_cat                '2'.              "業務伙伴類型
  l_partn_grp                in-bu_group.  "業務伙伴分組

*  LS_CENTRAL-TITLE_KEY       = '0003'.           "稱謂
  ls_central-title_key   in-title_key.
  ls_central-searchterm1 in-bu_sort1.  "檢索項
  ls_central_organ-name1 in-name_org1"名稱1
  ls_central_organ-name2 in-name_org2"名稱2

*  LS_CENTRAL-SEARCHTERM2     = in-BU_SORT2.  "檢索項

  ls_address-country         in-land1.     "國家
  ls_address-region          in-regio.     "地區
  ls_address-city            in-city1.     "城市
  ls_address-street          in-street.    "街道
  ls_address-postl_cod1      in-post_code1."郵編

*  CALL FUNCTION 'CONVERSION_EXIT_ISOLA_INPUT'
*    EXPORTING
*      INPUT            = in-LANGU
*    IMPORTING
*      OUTPUT           = LS_ADDRESS-LANGU     "語言
*    EXCEPTIONS
*      UNKNOWN_LANGUAGE = 1
*      OTHERS           = 2.
*  IF SY-SUBRC <> 0.
** Implement suitable error handling here
*  ENDIF.
  ls_address-langu  '1'.

  CLEAR lt_bapiadtel.
  lt_bapiadtel-country   = ls_address-country.
  lt_bapiadtel-std_no    'X'.
  lt_bapiadtel-telephone in-tel_number.    "電話
*  LT_BAPIADTEL-EXTENSION = in-TEL_EXTENS.    "電話-分機
  APPEND lt_bapiadtel.

  CLEAR lt_bapiadtel.
  lt_bapiadtel-country   = ls_address-country.
  lt_bapiadtel-std_no    'X'.
  lt_bapiadtel-r_3_user  '2'.                  "標識符:電話是移動電話
  lt_bapiadtel-telephone in-mob_number.    "移動電話
  APPEND lt_bapiadtel.

  CLEAR lt_bapiadfax.
  lt_bapiadfax-country   = ls_address-country.
  lt_bapiadfax-std_no    'X'.
  lt_bapiadfax-fax       in-fax_number.    "傳真
*  LT_BAPIADFAX-EXTENSION = in-FAX_EXTENS.    "傳真-分機
  APPEND lt_bapiadfax.

  CLEAR lt_bapiadsmtp.
*  LT_BAPIADSMTP-COUNTRY   = LS_ADDRESS-COUNTRY.
  lt_bapiadsmtp-std_no    'X'.
  lt_bapiadsmtp-e_mail    in-smtp_addr.     "E-mail
  APPEND lt_bapiadsmtp.

  CLEAR: lt_return1, lt_return1[].
  CALL FUNCTION 'BAPI_BUPA_CREATE_FROM_DATA'
    EXPORTING
      businesspartnerextern   = l_bpartner
      partnercategory         = l_partn_cat
      partnergroup            = l_partn_grp
      centraldata             = ls_central
*     CENTRALDATAPERSON       = LS_CENTRAL_PERSON
      centraldataorganization = ls_central_organ
*     CENTRALDATAGROUP        =
      addressdata             = ls_address
*     DUPLICATE_MESSAGE_TYPE  =
*     ACCEPT_ERROR            = ' '
    IMPORTING
      businesspartner         = l_bpartner
    TABLES
      telefondata             = lt_bapiadtel
      faxdata                 = lt_bapiadfax
*     TELETEXDATA             =
*     TELEXDATA               =
      e_maildata              = lt_bapiadsmtp
*     RMLADDRESSDATA          =
*     X400ADDRESSDATA         =
*     RFCADDRESSDATA          =
*     PRTADDRESSDATA          =
*     SSFADDRESSDATA          =
*     URIADDRESSDATA          =
*     PAGADDRESSDATA          =
*     ADDRESSNOTES            =
*     COMMUNICATIONNOTES      =
*     COMMUNICATIONUSAGE      =
*     TELEFONDATANONADDRESS   =
*     FAXDATANONADDRESS       =
*     TELETEXDATANONADDRESS   =
*     TELEXDATANONADDRESS     =
*     E_MAILDATANONADDRESS    =
*     RMLADDRESSDATANONADDRESS           =
*     X400ADDRESSDATANONADDRESS          =
*     RFCADDRESSDATANONADDRESS           =
*     PRTADDRESSDATANONADDRESS           =
*     SSFADDRESSDATANONADDRESS           =
*     URIADDRESSDATANONADDRESS           =
*     PAGADDRESSDATANONADDRESS           =
*     COMMUNICATIONNOTESNONADDRESS       =
*     COMMUNICATIONUSAGENONADDRESS       =
      return                  = lt_return
*     ADDRESSDUPLICATES       =
    .

  LOOP AT lt_return WHERE type 'A' OR type 'E'.
    gv_err 'X'.
    in-icon_a = gc_red.
    in-remark in-remark && lt_return-message.
    "EXIT.
  ENDLOOP.
  IF gv_err 'X'.
    CALL FUNCTION 'BAPI_TRANSACTION_ROLLBACK'.
    " RETURN.
  ELSE.

    CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'
      EXPORTING
        wait   'X'
      IMPORTING
        return = ls_return.
    IF ls_return-type  'A' OR ls_return-type 'E'..
      gv_err 'X'.
      in-icon_a = gc_red.
      in-remark in-remark && ls_return-message.
    ENDIF.

    IF in-icon_a NE gc_red.
      in-icon_a   = gc_yellow.
      in-lfa1f 'X'.
      in-remark in-remark && '供應商基本視圖擴展成功'.
    ENDIF.

  ENDIF.
  out in.





ENDFUNCTION.


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM