- 1、BP 一般数据 - BUT000
创建BP数据时,外部给号,需要校验是否已经存在。如果存在使用系统标准的partner_guid,
不存在的情况下使用方法类自动生成cl_system_uuid=>create_uuid_x16_static( )
-
data:
CS_BPDATA TYPE CVIS_EI_EXTERN.
-
-
SELECT
SINGLE partner_guid
-
INTO
@DATA(lv_guid)
-
FROM
but000
-
WHERE
partner = @lv_partner.
-
IF
sy-subrc NE 0 .
-
lv_guid =
cl_system_uuid=>create_uuid_x16_static( ).
-
ENDIF.
-
-
cs_bpdata-partner-header-object_instance-bpartnerguid =
lv_guid.
- 2、BP地址 - BUT020
BP地址数据维护(新建或修改)时,需要基本此表进行相关的判断
-
DATA:
-
ls_addr
TYPE bus_ei_bupa_address.
-
-
SELECT
SINGLE address_guid
-
INTO
@DATA(lv_addrguid)
-
FROM
but020
-
WHERE
partner = @cs_bpdata-partner-header-object_instance-bpartner.
-
ls_addr-data_key-guid =
lv_addrguid.
如果存在则获取原地址的addrguid,实现对应存在地址的更新
没有查询到地址数据的情况下,ls_addr-data_key-guid没有值,系统自动生成一个新的addrguid
- 3、BP 角色 - BUT100
存放BP数据对应的角色数据,常用角色如下:
客户角色:FLCU00 / FLCU01
供应商角色:FLVN00 / FLVN01
FLCU00角色中创建客户的公司代码数据
FLCU01角色中创建客户的销售和分销数据
一般通过如下代码校验客商的角色是否存在
-
data:
ls_role TYPE bus_ei_bupa_roles,
-
CS_BPDATA
TYPE CVIS_EI_EXTERN.
-
"检查角色是否已经存在
-
SELECT
COUNT(*)
-
FROM
but100
-
WHERE
partner = is_data-partner
-
AND
rltyp = 'FLVN00'.
-
IF
sy-subrc NE 0.
-
CLEAR
ls_role.
-
ls_role-task =
'I'.
-
"供应商(公司代码)
-
ls_role-data_key =
cn_role_flvn00.
-
ls_role-data-valid_from =
sy-datum.
-
ls_role-data-valid_to =
'99991231'.
-
APPEND
ls_role TO cs_bpdata-partner-central_data-role-roles.
-
ENDIF.
- 4、BP 银行明细 - BUT0BK
- 5、供应商公司视图 :LFB1
- 6、供应商采购视图:LFM1
- 7、客户公司视图 :KNB1
- 8、客户销售和分销视图:KNVV
- 9、BP销售和分销视图:销项税 - KNVI
BP 维护参数位置CVIS_EI_EXTERN -> CUSTOMER->CENTRAL_DATA->TAX_IND