Sie sind auf Seite 1von 2

www.biportal.

org

3. Create infoobject ZBPSHIE that will contain the hierarchy


Create a new infoobject (ZBPSHIE) compounded with Credit Segment (0CDM_CSEG), insert
characteristic as infoprovider and prepare for loading hierarchy and texts from a flat file.

4. Introduce logic in the Transformation to the Open Hub so that


the proper hierarchy file is generated
I suggest using an Expert routine so that we can easily combine source fields with the target
fields in one code.

FIELD-SYMBOLS: <RESULT_FIELDS> TYPE _ty_s_TG_1.


TYPES: ty_bptext TYPE /BI0/TBPARTNER.
DATA: t_bptxt TYPE SORTED TABLE OF ty_bptext
WITH UNIQUE KEY BPARTNER.
FIELD-SYMBOLS: <txt> TYPE ty_bptext.

DATA: t_bp TYPE SORTED TABLE OF _ty_s_SC_1


WITH NON-UNIQUE KEY BPARTNER2 CDM_CSEG.
FIELD-SYMBOLS: <bp> TYPE _ty_s_SC_1.

DATA: nid TYPE N LENGTH 8.

2
www.biportal.org

DATA: rp TYPE _ty_s_TG_1.


DATA: nname TYPE C LENGTH 32.
FIELD-SYMBOLS: <rp> TYPE _ty_s_TG_1.

IF t_bptxt IS INITIAL.
SELECT * FROM /BI0/TBPARTNER INTO TABLE t_bptxt.
ENDIF.

DELETE SOURCE_PACKAGE WHERE BP_RELDIR <> '1'.


SORT SOURCE_PACKAGE BY BPARTNER2 CDM_CSEG BPRELATION DESCENDING.
DELETE ADJACENT DUPLICATES FROM SOURCE_PACKAGE COMPARING BPARTNER2
CDM_CSEG.
t_bp[] = SOURCE_PACKAGE[].

nid = 1.
rp-LANGU = 'EN'.
rp-IOBJNM = 'ZBPSHIE'.

LOOP AT SOURCE_PACKAGE ASSIGNING <SOURCE_FIELDS>.

* Insert upper most level node


READ TABLE t_bp ASSIGNING <bp>
WITH TABLE KEY BPARTNER2 = <SOURCE_FIELDS>-BPARTNER1 CDM_CSEG =
<SOURCE_FIELDS>-CDM_CSEG.

IF sy-subrc <> 0.
rp-NODEID = nid. nid = nid + 1.
CONCATENATE <SOURCE_FIELDS>-BPARTNER1 '.'
<SOURCE_FIELDS>-CDM_CSEG INTO nname.
rp-NODENAME = nname.

* read text from master data


READ TABLE t_bptxt ASSIGNING <txt>
WITH TABLE KEY BPARTNER = <SOURCE_FIELDS>-BPARTNER1.
IF sy-subrc = 0.
rp-TXTSH = <txt>-TXTSH.
rp-TXTMD = <txt>-TXTMD.
rp-TXTLG = <txt>-TXTLG.
ENDIF.
INSERT rp INTO TABLE RESULT_PACKAGE.
ENDIF.

rp-NODEID = nid. nid = nid + 1.

CONCATENATE <SOURCE_FIELDS>-BPARTNER2 '.' <SOURCE_FIELDS>-CDM_CSEG


INTO nname.
rp-NODENAME = nname.

* read text from master data


READ TABLE t_bptxt ASSIGNING <txt>
WITH TABLE KEY BPARTNER = <SOURCE_FIELDS>-BPARTNER2.
IF sy-subrc = 0.
rp-TXTSH = <txt>-TXTSH.

Das könnte Ihnen auch gefallen