**定义调用CVI_EI_INBOUND_MAIN创建的输入参数
DATA:LV_BPARTNERGUID TYPE BU_PARTNER_GUID_BAPI.
DATA:LT_RETURN_TAX TYPE TABLE OF BAPIRET2 WITH HEADER LINE,
LT_RETURN_FRG TYPE TABLE OF BAPIRET2 WITH HEADER LINE.
DATA:LT_RETURN_UKMBP TYPE UKM_T_MONITOR_RETURN .
DATA : LS_PARTNER TYPE BUS_EI_EXTERN,
LS_CUSTOMER TYPE CMDS_EI_EXTERN,
LT_ADDRESSES TYPE BUS_EI_BUPA_ADDRESS_T,
LS_ADDRESSES TYPE BUS_EI_BUPA_ADDRESS,
LT_PHONE TYPE BUS_EI_BUPA_TELEPHONE_T,
LS_PHONE TYPE BUS_EI_BUPA_TELEPHONE,
LT_COMPANY TYPE CMDS_EI_COMPANY_T,
LS_COMPANY TYPE CMDS_EI_COMPANY,
LT_SALES TYPE CMDS_EI_SALES_T,
LS_SALES TYPE CMDS_EI_SALES,
LT_TAX_IND TYPE CMDS_EI_TAX_IND_T,
LS_TAX_IND TYPE CMDS_EI_TAX_IND,
LT_ROLES TYPE BUS_EI_BUPA_ROLES_T,
LS_ROLES TYPE BUS_EI_BUPA_ROLES,
LT_FUNCTIONS TYPE CMDS_EI_FUNCTIONS_T,
LS_FUNCTIONS TYPE CMDS_EI_FUNCTIONS,
LT_BANKS TYPE BUS_EI_BUPA_BANKDETAIL_T,
LS_BANKS TYPE BUS_EI_BUPA_BANKDETAIL.
DATA : LS_HEADER TYPE CMDS_EI_HEADER,
LS_CENTRAL_DATA TYPE CMDS_EI_CENTRAL_DATA,
LS_COMPANY_DATA TYPE CMDS_EI_CMD_COMPANY,
LS_SALES_DATA TYPE CMDS_EI_CMD_SALES.
DATA : LS_CENTRAL TYPE CMDS_EI_CMD_CENTRAL.
DATA : LS_DATA TYPE CVIS_EI_EXTERN,
LT_DATA TYPE CVIS_EI_EXTERN_T,
LT_RETURN TYPE BAPIRETM,
LS_RETURN TYPE BAPIRETI,
LS_MSG TYPE BAPIRETC.
* 根据伙伴GUID取出客户编号
DATA : LT_PARTNERGUID_LIST TYPE BU_PARTNER_GUID_T,
LS_PARTNERGUID_LIST LIKE LINE OF LT_PARTNERGUID_LIST.
DATA : LT_CUSTOMER_LIST TYPE CVIS_CUST_LINK_T,
LS_CUSTOMER_LIST TYPE CVI_CUST_LINK.
"创建信用等相关信息
DATA: IO_FACADE TYPE REF TO CL_UKM_FACADE,
IO_BUPA_FACTORY TYPE REF TO CL_UKM_BUPA_FACTORY,
IO_PARTNER TYPE REF TO CL_UKM_BUSINESS_PARTNER,
IO_ACCOUNT TYPE REF TO CL_UKM_ACCOUNT,
LW_BP_CREDIT_SGM TYPE UKM_S_BP_CMS_SGM.
DATA: LWA_UKM_S_BP_CMS TYPE UKM_S_BP_CMS.
DATA: LV_PARTNER TYPE BU_PARTNER,
LV_CREDIT_SGMNT TYPE UKM_CREDIT_SGMNT.
DATA : LTC_RETURN TYPE UKM_T_MONITOR_RETURN,
LSC_RETURN TYPE UKM_S_MONITOR_RETURN,
LV_MSG1 TYPE CHAR100.
" 标识模拟导入还是正式导入
CONSTANTS : C_PARVW1 TYPE PARVW VALUE 'SP', "售达方
C_PARVW2 TYPE PARVW VALUE 'BP', "收票方
C_PARVW3 TYPE PARVW VALUE 'PY', "付款方
C_PARVW4 TYPE PARVW VALUE 'SH'. "送达方
DATA: EV_ZMSG TYPE CHAR100,
STATUS TYPE CHAR100,
EV_ZTYPE TYPE C,
KUNNR TYPE KUNNR,
BUKRS TYPE BUKRS,
AKONT TYPE AKONT,
VKORG TYPE VKORG.
****数据处理,开始创建客户主数据*************************************************
"创建伙伴GUID
TRY .
LV_BPARTNERGUID = CL_UUID_FACTORY=>CREATE_SYSTEM_UUID( )->CREATE_UUID_X16( ).
CATCH CX_UUID_ERROR.
"返回消息
EV_ZMSG = '客户GUID创建失败!'.
STATUS = 'S03'.
EV_ZTYPE = 'E'.
EXIT.
ENDTRY.
CHECK LV_BPARTNERGUID IS NOT INITIAL.
KUNNR = 'ZTTJ555'.
LS_PARTNER-HEADER-OBJECT_TASK = 'I'.
LS_PARTNER-HEADER-OBJECT_INSTANCE-BPARTNERGUID = LV_BPARTNERGUID.
LS_PARTNER-HEADER-OBJECT_INSTANCE-BPARTNER = KUNNR ."客户号 导入的客户代码
LS_PARTNER-CENTRAL_DATA-COMMON-DATA-BP_CONTROL-CATEGORY = 2. "业务伙伴类别
LS_PARTNER-CENTRAL_DATA-COMMON-DATA-BP_CONTROL-GROUPING = 'Z001'. "KTOKD. " 账户组
LS_PARTNER-CENTRAL_DATA-COMMON-DATA-BP_ORGANIZATION-NAME1 = '深圳市顶呱呱有限公司'."NAME1. " 客户名称
LS_PARTNER-CENTRAL_DATA-COMMON-DATA-BP_CENTRALDATA-SEARCHTERM1 = '顶呱呱'."SORTL. "搜素词
LS_PARTNER-CENTRAL_DATA-COMMON-DATA-BP_CENTRALDATA-TITLE_KEY = '0003'. "称谓
LS_PARTNER-CENTRAL_DATA-COMMON-DATAX-BP_CENTRALDATA-TITLE_KEY = ABAP_TRUE.
LS_PARTNER-FINSERV_DATA-COMMON-DATA-FSBP_CENTRL-VBUND = '009999'.
LS_PARTNER-FINSERV_DATA-COMMON-DATAX-FSBP_CENTRL-VBUND = 'X'.
*LS_PARTNER-CENTRAL_DATA-BANKDETAIL-DATA-BANK_KEY = BANKL."银行代码
"角色
LS_ROLES-TASK = 'I'.
LS_ROLES-DATA_KEY = 'FLCU01'. "角色
APPEND LS_ROLES TO LT_ROLES.
LS_ROLES-DATA_KEY = 'FLCU00'. "角色
APPEND LS_ROLES TO LT_ROLES.
LS_ROLES-DATA_KEY = 'UKM000'. "角色
APPEND LS_ROLES TO LT_ROLES.
"LS_ROLES-DATA_KEY = 'Z_CUS1X'. "角色
"APPEND LS_ROLES TO LT_ROLES.
LS_PARTNER-CENTRAL_DATA-ROLE-ROLES = LT_ROLES.
****客户地址数据***********************************************
CLEAR : LS_ADDRESSES,LT_ADDRESSES.
LS_ADDRESSES-TASK = 'I'.
"LS_ADDRESSES-DATA-POSTAL-DATA-COUNTRY = 'CN' ."LAND1. "国家
LS_ADDRESSES-DATA-POSTAL-DATA-COUNTRY = 'HK'.
LS_ADDRESSES-DATA-POSTAL-DATAX-COUNTRY = 'X'.
"LS_ADDRESSES-DATA-POSTAL-DATA-REGION = '330'."REGIO. "省份
"LS_ADDRESSES-DATA-POSTAL-DATAX-REGION = 'X'.
LS_ADDRESSES-DATA-POSTAL-DATA-STREET = '北京市海淀区安宁庄路小米科技园' ."STRAS. "注册地址
LS_ADDRESSES-DATA-POSTAL-DATAX-STREET = 'X'.
LS_ADDRESSES-DATA-POSTAL-DATA-LANGUISO = 'ZH'.
LS_ADDRESSES-DATA-POSTAL-DATA-POSTL_COD1 = '999999'."PSTLZ . "邮政编码
LS_ADDRESSES-DATA-POSTAL-DATAX-POSTL_COD2 = 'X' .
LS_ADDRESSES-DATA-POSTAL-DATA-CITY = '中国北京'."ORT01. "城市
LS_ADDRESSES-DATA-POSTAL-DATAX-CITY = 'X'.
LS_ADDRESSES-DATA-POSTAL-DATA-HOUSE_NO = 'X'. "门牌号
LS_ADDRESSES-DATA-POSTAL-DATAX-HOUSE_NO = '301'."HOUSE_NUM1.
CLEAR: LS_PHONE,LT_PHONE.
LS_PHONE-CONTACT-DATA-TELEPHONE = '178663333' ."TELF1 ."电话
LS_PHONE-CONTACT-DATAX-TELEPHONE = ABAP_TRUE .
APPEND LS_PHONE TO LT_PHONE.
LS_ADDRESSES-DATA-COMMUNICATION-PHONE-PHONE = LT_PHONE.
APPEND LS_ADDRESSES TO LT_ADDRESSES.
LS_PARTNER-CENTRAL_DATA-ADDRESS-ADDRESSES = LT_ADDRESSES.
****客户数据表头************************************************
LS_HEADER-OBJECT_TASK = 'I'.
LS_CUSTOMER-HEADER = LS_HEADER.
"客户销售的出发票
IF LS_ADDRESSES-DATA-POSTAL-DATA-COUNTRY EQ 'CN' .
LS_TAX_IND-TASK = 'I'.
LS_TAX_IND-DATA_KEY-ALAND = 'CN'.
LS_TAX_IND-DATA_KEY-TATYP = 'MWST'.
LS_TAX_IND-DATA-TAXKD = '1' ."TAXKD. "税分类
LS_TAX_IND-DATAX-TAXKD = 'X'.
APPEND LS_TAX_IND TO LT_TAX_IND.
LS_CENTRAL_DATA-TAX_IND-TAX_IND = LT_TAX_IND.
ELSE.
LS_TAX_IND-TASK = 'I'.
LS_TAX_IND-DATA_KEY-ALAND = 'CN'.
LS_TAX_IND-DATA_KEY-TATYP = 'MWST'.
LS_TAX_IND-DATA-TAXKD = '1' ."TAXKD. "税分类
LS_TAX_IND-DATAX-TAXKD = 'X'.
APPEND LS_TAX_IND TO LT_TAX_IND.
LS_CENTRAL_DATA-TAX_IND-TAX_IND = LT_TAX_IND.
LS_TAX_IND-TASK = 'I'.
LS_TAX_IND-DATA_KEY-ALAND = 'HK'.
LS_TAX_IND-DATA_KEY-TATYP = 'MWST'.
LS_TAX_IND-DATA-TAXKD = '1' ."TAXKD. "税分类
LS_TAX_IND-DATAX-TAXKD = 'X'.
APPEND LS_TAX_IND TO LT_TAX_IND.
LS_CENTRAL_DATA-TAX_IND-TAX_IND = LT_TAX_IND.
ENDIF.
"LS_CENTRAL_DATA-TAX_IND-TAX_IND = LT_TAX_IND.
LS_CUSTOMER-CENTRAL_DATA = LS_CENTRAL_DATA.
****公司代码数据************************************************
BUKRS = 'GX10'.
AKONT = '0011220100'.
IF BUKRS IS NOT INITIAL.
CALL FUNCTION 'CONVERSION_EXIT_ALPHA_INPUT' " 统驭科目补零
EXPORTING
INPUT = AKONT
IMPORTING
OUTPUT = AKONT.
LS_COMPANY-TASK = 'I'.
LS_COMPANY-DATA_KEY-BUKRS = BUKRS. " 公司代码
LS_COMPANY-DATA-AKONT = AKONT. " 统驭科目
LS_COMPANY-DATA-ZTERM = 'T013'.
APPEND LS_COMPANY TO LT_COMPANY.
LS_COMPANY_DATA-COMPANY = LT_COMPANY.
LS_CUSTOMER-COMPANY_DATA = LS_COMPANY_DATA.
ENDIF.
*****销售数据****************************************************
VKORG = 'HK12'.
IF VKORG IS NOT INITIAL .
LS_SALES-TASK = 'I'.
LS_SALES-DATA_KEY-VKORG = VKORG. " 销售组织
LS_SALES-DATA_KEY-VTWEG = '20'. " 分销渠道
LS_SALES-DATA_KEY-SPART = '00'. " 产品组
LS_SALES-DATA-KDGRP = '02'."KDGRP. "客户组
LS_SALES-DATAX-KDGRP = ABAP_TRUE.
"LS_SALES-DATA-VKBUR = VKBUR. "销售部门
"LS_SALES-DATAX-VKBUR = ABAP_TRUE.
"LS_SALES-DATA-VKGRP = VKGRP. "销售组
"LS_SALES-DATAX-VKGRP = ABAP_TRUE.
LS_SALES-DATA-KALKS = '1' ."KALKS. "客户定价过程
LS_SALES-DATAX-KALKS = ABAP_TRUE.
"LS_SALES-DATA-VWERK = VWERK. "工厂
"LS_SALES-DATAX-VWERK = ABAP_TRUE.
LS_SALES-DATA-VSBED = 'Z1'. "装运条件
LS_SALES-DATAX-VSBED = ABAP_TRUE.
LS_SALES-DATA-WAERS = 'CNY'."币种
LS_SALES-DATAX-WAERS = ABAP_TRUE.
LS_SALES-DATA-ZTERM = 'T013'."ZTERM."付款条件
LS_SALES-DATAX-ZTERM = ABAP_TRUE.
LS_SALES-DATA-KTGRD = '01'."KTGRD."客户科目分配组
LS_SALES-DATAX-KTGRD = ABAP_TRUE.
LS_SALES-DATA-BZIRK = 'CH001'.
LS_SALES-DATAX-BZIRK = ABAP_TRUE.
LS_SALES-DATA-KONDA = '01'.
LS_SALES-DATAX-KONDA = ABAP_TRUE.
LS_SALES-DATA-INCO1 = 'FOB'."<FS_DATA>-INCO1."国际贸易术语解释通则
LS_SALES-DATA-INCO2_L ='离岸价'." <FS_DATA>-INCO2."国际贸易条款位置1
LS_SALES-DATAX-INCO1 = ABAP_TRUE.
LS_SALES-DATAX-INCO2_L = ABAP_TRUE.
"Function伙伴功能
"PARVW = 'ZP'. "销售员类别
LS_FUNCTIONS-TASK = 'I'.
CALL FUNCTION 'CONVERSION_EXIT_PARVW_INPUT'
EXPORTING
INPUT = C_PARVW1 "售达方
IMPORTING
OUTPUT = LS_FUNCTIONS-DATA_KEY-PARVW.
APPEND LS_FUNCTIONS TO LT_FUNCTIONS.
CALL FUNCTION 'CONVERSION_EXIT_PARVW_INPUT'
EXPORTING
INPUT = C_PARVW2 "收票方
IMPORTING
OUTPUT = LS_FUNCTIONS-DATA_KEY-PARVW.
APPEND LS_FUNCTIONS TO LT_FUNCTIONS.
CALL FUNCTION 'CONVERSION_EXIT_PARVW_INPUT'
EXPORTING
INPUT = C_PARVW3 "付款方
IMPORTING
OUTPUT = LS_FUNCTIONS-DATA_KEY-PARVW.
APPEND LS_FUNCTIONS TO LT_FUNCTIONS.
CALL FUNCTION 'CONVERSION_EXIT_PARVW_INPUT'
EXPORTING
INPUT = C_PARVW4 "送达方
IMPORTING
OUTPUT = LS_FUNCTIONS-DATA_KEY-PARVW.
APPEND LS_FUNCTIONS TO LT_FUNCTIONS.
LS_SALES-FUNCTIONS-FUNCTIONS = LT_FUNCTIONS.
APPEND LS_SALES TO LT_SALES.
LS_SALES_DATA-SALES = LT_SALES.
LS_CUSTOMER-SALES_DATA = LS_SALES_DATA.
ENDIF.
*****银行数据****************************************************
"LS_BANKS-DATA-BANK_KEY = BANKL. "银行代码
"LS_BANKS-DATAX-BANK_KEY = ABAP_TRUE.
"LS_BANKS-DATA-BANKACCOUNTNAME = BANKA. "开户行
"LS_BANKS-DATAX-BANKACCOUNTNAME = ABAP_TRUE. "开户行
"LS_BANKS-DATA-BANK_ACCT = BANKN. "账号
"LS_BANKS-DATAX-BANK_ACCT = ABAP_TRUE. "
"LS_BANKS-DATA-BANK_CTRY = 'CN'. "银行国家代码
"LS_BANKS-DATAX-BANK_CTRY = ABAP_TRUE. "
"APPEND LS_BANKS TO LT_BANKS.
"LS_PARTNER-CENTRAL_DATA-BANKDETAIL-BANKDETAILS = LT_BANKS.
"拿到PARTNER和CUSTOMER数据开始创建客户
LS_DATA-PARTNER = LS_PARTNER.
LS_DATA-CUSTOMER = LS_CUSTOMER.
APPEND LS_DATA TO LT_DATA.
CALL FUNCTION 'CVI_EI_INBOUND_MAIN'
EXPORTING
I_DATA = LT_DATA
* I_EXT_DATA =
IMPORTING
E_RETURN = LT_RETURN.
LOOP AT LT_RETURN INTO LS_RETURN.
LOOP AT LS_RETURN-OBJECT_MSG INTO LS_MSG WHERE TYPE = 'E' OR TYPE = 'A'.
CONCATENATE EV_ZMSG LS_MSG-MESSAGE INTO EV_ZMSG.
ENDLOOP.
ENDLOOP.
IF EV_ZMSG IS INITIAL.
CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'
EXPORTING
WAIT = ABAP_TRUE.
* 根据伙伴GUID取出客户编号
LS_PARTNERGUID_LIST = LS_PARTNER-HEADER-OBJECT_INSTANCE-BPARTNERGUID.
APPEND LS_PARTNERGUID_LIST TO LT_PARTNERGUID_LIST.
LT_CUSTOMER_LIST = CVI_MAPPER=>GET_INSTANCE( )->GET_ASSIGNED_CUSTOMERS_FOR_BPS(
I_PARTNER_GUIDS = LT_PARTNERGUID_LIST ).
IF LT_CUSTOMER_LIST IS NOT INITIAL.
READ TABLE LT_CUSTOMER_LIST INTO LS_CUSTOMER_LIST INDEX 1 .
IF SY-SUBRC EQ 0.
CONCATENATE '客户' LS_CUSTOMER_LIST-CUSTOMER '创建成功!' INTO EV_ZMSG.
KUNNR = LS_CUSTOMER_LIST-CUSTOMER. "导出KUNNR
EV_ZTYPE = 'S'.
STATUS = 'S02'.
ENDIF.
ENDIF.
WRITE:KUNNR,EV_ZTYPE.
ELSE.
EV_ZMSG = '客户创建出错,客户部分数据出错,请检查是否是BP伙伴功能问题。'.
EV_ZTYPE = 'E'.
STATUS = 'S03'.
WRITE:KUNNR,EV_ZTYPE.
ENDIF.
创建客户主数据 CVI_EI_INBOUND_MAIN
最新推荐文章于 2024-07-09 16:17:35 发布