bapi_customer_get_children in fms









T Get Customer level hierarchy using RKE_READ_CUSTOMER_HIERARCHY


D Get Customer level hierarchy using RKE_READ_CUSTOMER_HIERARCHY
& Help Get Customer level hierarchy using RKE_READ_CUSTOMER_HIERARCHY


*&---------------------------------------------------------------------*
*& Report ZCUST_HIER
*&---------------------------------------------------------------------*
*& Check if entered sold to is within customer hierarchy
*&---------------------------------------------------------------------*
REPORT zcust_hier.

PARAMETERS: p_kunnr TYPE knvh-kunnr,
p_soldto TYPE knvh-kunnr.

DATA: it_knvh TYPE STANDARD TABLE OF knvh,
wa_knvh TYPE knvh,
it_vbpavb TYPE STANDARD TABLE OF vbpavb,
wa_vbpavb TYPE vbpavb,
it_node_list TYPE STANDARD TABLE OF bapikna1_knvh,
wa_node_list TYPE bapikna1_knvh,
ld_customer_found TYPE c.

CLEAR: ld_customer_found.

IF p_kunnr = p_soldto.
ld_customer_found = 'X'.
WRITE: 'Soldto is same as customer'.

ELSE.
SELECT *
FROM knvh
INTO TABLE it_knvh
WHERE kunnr = p_soldto.


SORT it_knvh BY hityp kunnr.
DELETE ADJACENT DUPLICATES FROM it_knvh COMPARING hityp kunnr.
LOOP AT it_knvh INTO wa_knvh.
REFRESH it_vbpavb.


CALL FUNCTION 'BAPI_CUSTOMER_GET_CHILDREN'
EXPORTING
* VALID_ON = SY-DATUM
custhityp = wa_knvh-hityp
* NODE_LEVEL = '00'
customerno = wa_knvh-hkunnr
* IMPORTING
* RETURN =
TABLES
* SALES_AREA =
node_list = it_node_list.

READ TABLE it_node_list TRANSPORTING NO FIELDS WITH KEY customer = p_kunnr.

* CALL FUNCTION 'RKE_READ_CUSTOMER_HIERARCHY'
* EXPORTING
* customer = wa_knvh-hkunnr " use hkunnr not kunnr
** DATE = SY-DATUM
* htype = wa_knvh-hityp
* sales_channel = wa_knvh-vtweg
* sales_division = wa_knvh-spart
* sales_org = wa_knvh-vkorg
* TABLES
* hpath = it_vbpavb.
*
* READ TABLE it_vbpavb TRANSPORTING NO FIELDS WITH KEY kunnr = iv_kunnr.
IF sy-subrc EQ 0.
ld_customer_found = 'X'.

WRITE: 'Soldto found in customer hierarchy'.
ENDIF.

ENDLOOP.
IF sy-subrc NE 0.
WRITE: 'No customer hierarchy found'.
ELSE.
IF ld_customer_found NE 'X'.
WRITE: 'Soldto not found in customer hierarchy'.
ENDIF.
ENDIF.
ENDIF.