Download as txt, pdf, or txt
Download as txt, pdf, or txt
You are on page 1of 5

*&---------------------------------------------------------------------*

*& Report ZBC_READTEXT *


*& *
*&---------------------------------------------------------------------*
*& *
*& *
*&---------------------------------------------------------------------*
REPORT ZBC_READTEXT .
DATA: BEGIN OF LTEXT OCCURS 50.
INCLUDE STRUCTURE TLINE.
DATA: END OF LTEXT.
"Material: | "MATK" | MANDT+RSNUM+RSPOS | "AUFK"
DATA: BEGIN OF MATK_STRU,
RSNUM TYPE RESB-RSNUM,
RSPOS TYPE RESB-RSPOS,
AUFNR TYPE RESB-AUFNR,
TDOBJECT TYPE THEAD-TDOBJECT ,"VALUE 'AUFK',
TDNAME TYPE THEAD-TDNAME,
TDID TYPE THEAD-TDID," VALUE 'MATK',
TDSPRAS TYPE THEAD-TDSPRAS.
INCLUDE STRUCTURE TLINE.
DATA: END OF MATK_STRU.
DATA: BEGIN OF STRU,
AUFNR TYPE AUFK-AUFNR,
MATNR TYPE AFPO-AUFNR,
AUFPL TYPE AFVC-AUFPL,
END OF STRU.
DATA ITAB LIKE STANDARD TABLE OF STRU.
SELECT B~AUFNR B~MATNR INTO CORRESPONDING FIELDS OF TABLE ITAB
FROM AUFK AS A INNER JOIN AFPO AS B ON A~AUFNR = B~AUFNR
WHERE B~MATNR NE ''.
DATA MATK_ITAB LIKE STANDARD TABLE OF MATK_STRU.
SELECT RSNUM RSPOS AUFNR FROM RESB INTO TABLE MATK_ITAB
FOR ALL ENTRIES IN ITAB WHERE AUFNR EQ ITAB-AUFNR .
LOOP AT MATK_ITAB INTO MATK_STRU .
MATK_STRU-TDNAME = SY-MANDT.
MATK_STRU-TDNAME+3 = MATK_STRU-RSNUM.
MATK_STRU-TDNAME+13 = MATK_STRU-RSPOS.
MODIFY MATK_ITAB FROM MATK_STRU.
ENDLOOP.
DATA :BEGIN OF STXH_S,
TDNAME TYPE STXH-TDNAME,
TDOBJECT TYPE STXH-TDOBJECT,
TDID TYPE STXH-TDID,
TDSPRAS TYPE STXH-TDSPRAS,
END OF STXH_S.
DATA STXH_IT LIKE STANDARD TABLE OF STXH_S.
SELECT * FROM STXH INTO CORRESPONDING FIELDS OF TABLE STXH_IT
WHERE TDOBJECT = 'AUFK' AND TDID = 'MATK' OR TDID = 'AVOT'
OR TDID = 'KOPF'.
LOOP AT STXH_IT INTO STXH_S.
LOOP AT MATK_ITAB INTO MATK_STRU.
IF MATK_STRU-TDNAME EQ STXH_S-TDNAME.
MATK_STRU-TDID = STXH_S-TDID.
MATK_STRU-TDOBJECT = STXH_S-TDOBJECT.
MATK_STRU-TDSPRAS = STXH_S-TDSPRAS.
MODIFY MATK_ITAB FROM MATK_STRU.
ENDIF.
ENDLOOP.
ENDLOOP.
LOOP AT MATK_ITAB INTO MATK_STRU.
IF MATK_STRU-TDID EQ ''.
DELETE TABLE MATK_ITAB FROM MATK_STRU.
ENDIF.
ENDLOOP.
LOOP AT MATK_ITAB INTO MATK_STRU.
CALL FUNCTION 'READ_TEXT'
EXPORTING
ID = MATK_STRU-TDID
LANGUAGE = MATK_STRU-TDSPRAS
NAME = MATK_STRU-TDNAME
OBJECT = MATK_STRU-TDOBJECT
TABLES
LINES = LTEXT
EXCEPTIONS
NOT_FOUND = 4
.
IF SY-SUBRC EQ 0.
READ TABLE LTEXT INDEX 1.
MATK_STRU-TDLINE = LTEXT-TDLINE.
MODIFY MATK_ITAB FROM MATK_STRU .
WRITE LTEXT-TDLINE.
ENDIF.
WRITE LTEXT-TDLINE.
MODIFY MATK_ITAB FROM MATK_STRU .
ENDLOOP.
LOOP AT LTEXT. WRITE LTEXT-TDLINE.
"MODIFY MATK_ITAB FROM MATK_STRU INDEX SY-TABIX TRANSPORTING TDLINE.
ENDLOOP.
DATA: BEGIN OF KOPF_STRU,
AUFNR TYPE AUFK-AUFNR,
TDOBJECT TYPE THEAD-TDOBJECT ,"VALUE 'AUFK',
TDNAME TYPE THEAD-TDNAME,
TDID TYPE THEAD-TDID," VALUE 'MATK',
TDSPRAS TYPE THEAD-TDSPRAS.
INCLUDE STRUCTURE TLINE.
DATA: END OF KOPF_STRU.
DATA KOPF_ITAB LIKE STANDARD TABLE OF KOPF_STRU.

SELECT AUFNR FROM AUFK INTO TABLE KOPF_ITAB


FOR ALL ENTRIES IN ITAB WHERE AUFNR EQ ITAB-AUFNR .
LOOP AT KOPF_ITAB INTO KOPF_STRU .
MATK_STRU-TDNAME = SY-MANDT.
MATK_STRU-TDNAME+3 = MATK_STRU-AUFNR.
MODIFY KOPF_ITAB FROM KOPF_STRU.
ENDLOOP.
LOOP AT STXH_IT INTO STXH_S.
LOOP AT KOPF_ITAB INTO KOPF_STRU.
IF KOPF_STRU-TDNAME EQ STXH_S-TDNAME.
KOPF_STRU-TDID = STXH_S-TDID.
KOPF_STRU-TDOBJECT = STXH_S-TDOBJECT.
KOPF_STRU-TDSPRAS = STXH_S-TDSPRAS.
MODIFY KOPF_ITAB FROM KOPF_STRU.
ENDIF.
ENDLOOP.
ENDLOOP.

LOOP AT KOPF_ITAB INTO KOPF_STRU.


IF KOPF_STRU-TDID EQ ''.
DELETE TABLE KOPF_ITAB FROM KOPF_STRU.
ENDIF.
ENDLOOP.
BREAK-POINT.
LOOP AT KOPF_ITAB INTO KOPF_STRU.
CALL FUNCTION 'READ_TEXT'
EXPORTING
ID = KOPF_STRU-TDID
LANGUAGE = KOPF_STRU-TDSPRAS
NAME = KOPF_STRU-TDNAME
OBJECT = KOPF_STRU-TDOBJECT
TABLES
LINES = LTEXT
EXCEPTIONS
NOT_FOUND = 4
.
IF SY-SUBRC EQ 0.
READ TABLE LTEXT INDEX 1.
KOPF_STRU-TDLINE = LTEXT-TDLINE.
MODIFY KOPF_ITAB FROM KOPF_STRU .
WRITE LTEXT-TDLINE.
ENDIF.
WRITE LTEXT-TDLINE.
MODIFY KOPF_ITAB FROM KOPF_STRU .
ENDLOOP.
BREAK-POINT.
LOOP AT LTEXT. WRITE LTEXT-TDLINE.
"MODIFY MATK_ITAB FROM MATK_STRU INDEX SY-TABIX TRANSPORTING TDLINE.
ENDLOOP.
DATA: BEGIN OF AVOT_STRU,
AUFNR TYPE AUFK-AUFNR,
AUFPL TYPE AFVC-AUFPL,
APLZL TYPE AFVC-APLZL,
TDOBJECT TYPE THEAD-TDOBJECT ,"VALUE 'AUFK',
TDNAME TYPE THEAD-TDNAME,
TDID TYPE THEAD-TDID, " VALUE 'MATK',
TDSPRAS TYPE THEAD-TDSPRAS.
INCLUDE STRUCTURE TLINE.
DATA: END OF AVOT_STRU.
DATA AVOT_ITAB LIKE STANDARD TABLE OF AVOT_STRU.
SELECT B~AUFNR B~MATNR D~AUFPL INTO CORRESPONDING FIELDS OF TABLE ITAB
FROM AUFK AS A INNER JOIN AFPO AS B ON A~AUFNR = B~AUFNR
INNER JOIN AFKO AS C ON B~AUFNR = C~AUFNR
INNER JOIN AFVC AS D ON D~AUFPL = C~AUFPL
WHERE B~MATNR NE ''.
SELECT AUFPL APLZL FROM AFVC INTO TABLE AVOT_ITAB
FOR ALL ENTRIES IN ITAB WHERE AUFPL EQ ITAB-AUFPL .
BREAK-POINT.
*LOOP AT MATK_ITAB INTO MATK_STRU .
*AVOT_STRU-TDNAME = SY-MANDT.
*AVOT_STRU-TDNAME+3 = AVOT_STRU-AUFPL.
*AVOT_STRU-TDNAME+13 = AVOT_STRU-APLZL.
*MODIFY AVOT_ITAB FROM AVOT_STRU.
*ENDLOOP.
*
*"510-0000005953-00000001
*
*LOOP AT STXH_IT INTO STXH_S.
* LOOP AT AVOT_ITAB INTO AVOT_STRU.
* IF AVOT_STRU-TDNAME EQ STXH_S-TDNAME.
* AVOT_STRU-TDID = STXH_S-TDID.
* AVOT_STRU-TDOBJECT = STXH_S-TDOBJECT.
* AVOT_STRU-TDSPRAS = STXH_S-TDSPRAS.
* MODIFY AVOT_ITAB FROM AVOT_STRU.
* ENDIF.
* ENDLOOP.
* ENDLOOP.
*
*
*LOOP AT AVOT_ITAB INTO AVOT_STRU.
* IF AVOT_STRU-TDID EQ ''.
* DELETE TABLE AVOT_ITAB FROM AVOT_STRU.
* ENDIF.
*ENDLOOP.

You might also like