我是靠谱客的博主 聪明钢笔,最近开发中收集的这篇文章主要介绍客户主数据维护BAPI,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

SD_CUSTOMER_MAINTAIN_ALL

        本BAPI是维护性BAPI,具有创建,修改等功能,可以用于客户主数据的维护,并且支持客户主数据的批量维护。

当修改客户主数据时比新增的输入参数多设置I_CUSTOMER_IS_CONSUMER =’X’,I_FROM_CUSTOMERMASTER = ‘X’这两个参数。

       新增客户主数据时,表参数赋值的是以‘X’开头的表参数,修改客户主数据时,

表参数赋值的是以‘Y’开头的表参数。

       状态TASK有U更新、I新增、E删除文档、D删除.

 

 

 

 

TABLES:t077d,zcity,t005s,bnka,adrc,kna1.
DATAtmp_ktokd(4TYPE n,
      tmp_regio(3)  TYPE n.
DATAcurline LIKE sy-tabix.

**定义调用bapiSD_CUSTOMER_MAINTAIN_ALL创建的输入参数
DATA:i_kna1 TYPE kna1,
     i_knb1 TYPE knb1,
     i_bapiaddr1 TYPE bapiaddr1,
     t_xknbk LIKE fknbk OCCURS WITH HEADER LINE,
     t_yknbk LIKE fknbk OCCURS WITH HEADER LINE,
     t_xknva LIKE fknva OCCURS WITH HEADER LINE,
     t_xknvk LIKE fknvk OCCURS WITH HEADER LINE,
     e_kunnr LIKE kna1-kunnr,
     o_kna1 LIKE kna1,
     e_sd_cust_1321_done TYPE c.

LOOP AT t_customer.
**--客户主文件的一般数据
  i_kna1-kunnr t_customer-kunnr.          "客户号
  i_kna1-ktokd t_customer-ktokd.          "客户帐户组
  i_kna1-lifnr t_customer-lifnr.          "供应商或债权人的帐号
  i_kna1-vbund t_customer-vbund.          "贸易伙伴
  i_kna1-stceg t_customer-stceg.          "纳税登记号
  i_kna1-rpmkr t_customer-rpmkr.          "地区市场
  IF t_customer-ktokd '0002'.             "国外客户
    i_kna1-civve 'X'.
  ENDIF.
**--地址数据
  i_bapiaddr1-title t_customer-title.     "标题文本
  i_bapiaddr1-name t_customer-name.       "名称 1
  i_bapiaddr1-name_2 t_customer-name_2.   "名称 2
  i_bapiaddr1-sort1 t_customer-sort1.     "排序字段
  i_bapiaddr1-str_suppl1 t_customer-str_suppl1.    "街道2
  i_bapiaddr1-street t_customer-street.   "街道名
  i_bapiaddr1-city t_customer-city.       "城市
  i_bapiaddr1-country t_customer-country"国家代码
  i_bapiaddr1-region t_customer-region.   "地区 (州、省、县)
  i_bapiaddr1-langu t_customer-langu.     "语言代码
**--客户主数据 (银行细目)
  t_xknbk-kunnr t_customer-kunnr.         "自动授码0001 0002为空 人工先授码0003 0004 0009不为空
  t_xknbk-banks t_customer-banks.         "银行国家代码
  t_xknbk-bankl t_customer-bankl.         "银行码
  t_xknbk-bankn t_customer-bankn.         "帐号
  t_xknbk-koinh t_customer-koinh.         "帐户持有人姓名
  APPEND t_xknbk.
**--客户主装货点
  t_xknva-kunnr t_customer-kunnr.        "自动授码0001 0002为空 人工先授码0003 0004 0009不为空
  t_xknva-ablad t_customer-ablad.        "卸货点
  t_xknva-knfak t_customer-knfak.        "客户的工厂日历
  APPEND t_xknva.
**--客户主要联系伙伴
  t_xknvk-name1 t_customer-name1.         "联系人名称
  t_xknvk-namev t_customer-namev.         "电话
  APPEND t_xknvk.

  CALL FUNCTION 'SD_CUSTOMER_MAINTAIN_ALL'
   EXPORTING
     i_kna1                              i_kna1
*        I_KNB1                              =
     i_bapiaddr1                         i_bapiaddr1
     i_maintain_address_by_kna1          
'X'
     pi_postflag                         'X'
     i_from_customermaster               ' '
   IMPORTING
     e_kunnr                             e_kunnr
     o_kna1                              
o_kna1
   
TABLES
     t_xknbk                             t_xknbk
     t_xknva                             
t_xknva
     t_xknvk                             
t_xknvk
   
EXCEPTIONS
     client_error                        1
     kna1_incomplete                     2
     knb1_incomplete                     3
     knb5_incomplete                     4
     knvv_incomplete                     5
     kunnr_not_unique                    6
     sales_area_not_unique               7
     sales_area_not_valid                8
     insert_update_conflict              9
     number_assignment_error             10
     number_not_in_range                 11
     number_range_not_extern             12
     number_range_not_intern             13
     account_group_not_valid             14
     parnr_invalid                       15
     bank_address_invalid                16
     tax_data_not_valid                  17
     no_authority                        18
     company_code_not_unique             19
     dunning_data_not_valid              20
     knb1_reference_invalid              21
     cam_error                           22
     OTHERS                              23
            .
*      当前处理出现异常,回滚操作
  IF sy-subrc NE 0.
    CALL FUNCTION 'BAPI_TRANSACTION_ROLLBACK'.

    SELECT SINGLE text FROM t100 INTO t_return-message
                  WHERE sprsl '1'
                    AND arbgb sy-msgid
                    
AND msgnr sy-msgno.
    DO TIMES.
      SEARCH t_return-message FOR '&'.
      IF sy-subrc 0.
        CASE sy-index.
          WHEN 1.
            REPLACE  '&' WITH sy-msgv1 INTO t_return-message.
          WHEN 2.
            REPLACE  '&' WITH sy-msgv2 INTO t_return-message.
          WHEN 3.
            REPLACE  '&' WITH sy-msgv3 INTO t_return-message.
          WHEN 4.
            REPLACE  '&' WITH sy-msgv4 INTO t_return-message.
        ENDCASE.
        CONDENSE t_return-message"replace会将SY-MSGV&50位替换,压缩空格 ERR_TAB-MESSAGE也要足够长
      ENDIF.
    ENDDO.
    t_return-index curline.
    t_return-type 'E'.
    IF t_return-message IS INITIAL.
      t_return-message '客户创建未成功'.
    ENDIF.
    APPEND t_return.
    CLEAR t_return.
  ELSE.
    CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'
      EXPORTING
        wait 'X'.
    IF sy-subrc 0.
      t_return-type 'S'.
      t_return-message o_kna1-kunnr."'客户创建成功'.
    ELSE.
      t_return-type 'E'.
      t_return-message '客户创建未成功'.
    ENDIF.
    t_return-index curline.
    APPEND t_return.
    CLEAR t_return.

  ENDIF.
  CLEAR:t_customer,t_return,
        i_kna1,i_bapiaddr1,e_kunnr,o_kna1,
        t_xknbk[],t_xknva[],t_xknvk[].
ENDLOOP.

最后

以上就是聪明钢笔为你收集整理的客户主数据维护BAPI的全部内容,希望文章能够帮你解决客户主数据维护BAPI所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(53)

评论列表共有 0 条评论

立即
投稿
返回
顶部