‎2006 Nov 17 11:52 AM
hi,
i am using gui_down load fm to down load the data into excel,but i need the excel sheet with headers,how to extract the data with field names.
i am using following code.
&----
*& Report ZTEST *
*& *
&----
*& *
*& *
&----
REPORT ZTEST .
*DATA: BEGIN OF IT_PO_HEADER OCCURS 20,
BSART LIKE EKKO-BSART,
EBELN LIKE EKKO-EBELN,
SUPERFIELD LIKE MEPO_TOPLINE-SUPERFIELD,
BEDAT LIKE EKKO-BEDAT,
ZTERM LIKE EKKO-ZTERM,
NETWR LIKE EKKO-NETWR,
*
TABLES: EKKO.
*PARAMETERS : P_EBELN TYPE EBELN.
SELECT-OPTIONS: S_EBELN FOR EKKO-EBELN OBLIGATORY.
TYPES: BEGIN OF T_PO,
EBELN TYPE EBELN,
END OF T_PO.
DATA: IT_PO TYPE STANDARD TABLE OF T_PO,
WA_PO TYPE T_PO.
DATA : IT_ITEMS TYPE TABLE OF BAPIEKPO WITH HEADER LINE.
DATA: PO_ITEMS_SHEDULE TYPE TABLE OF BAPIEKET WITH HEADER LINE.
DATA: PO_ITEM_TEXT TYPE TABLE OF BAPIEKPOTX WITH HEADER LINE.
DATA: PO_ITEM_ACCOUNT_ASSIGNMENT TYPE TABLE OF BAPIEKKN
WITH HEADER LINE.
DATA: PO_HEADER_TEXTS TYPE TABLE OF BAPIEKKOTX WITH HEADER LINE.
DATA: PO_HEADER TYPE BAPIEKKOL.
DATA: RETURN1 TYPE TABLE OF BAPIRETURN WITH HEADER LINE.
data : begin of itab1 occurs 0,
line(750) type c,
end of itab1.
SELECT EBELN INTO TABLE IT_PO FROM EKKO WHERE EBELN IN S_EBELN.
PERFORM DOWNLOAD_DATA: TABLES IT_ITEMS USING SPACE.
LOOP AT IT_PO INTO WA_PO.
CLEAR: PO_HEADER_TEXTS[], IT_ITEMS[], PO_ITEM_ACCOUNT_ASSIGNMENT[],
PO_ITEMS_SHEDULE[], PO_ITEM_TEXT[], RETURN1[].
CALL FUNCTION 'BAPI_PO_GETDETAIL'
EXPORTING
PURCHASEORDER = WA_PO-EBELN
ITEMS = 'X'
ACCOUNT_ASSIGNMENT = 'x'
SCHEDULES = ' '
HISTORY = 'X'
ITEM_TEXTS = 'X'
HEADER_TEXTS = 'X'
TABLES
PO_HEADER_TEXTS = PO_HEADER_TEXTS
PO_ITEMS = IT_ITEMS
PO_ITEM_ACCOUNT_ASSIGNMENT = PO_ITEM_ACCOUNT_ASSIGNMENT
PO_ITEM_SCHEDULES = PO_ITEMS_SHEDULE
PO_ITEM_TEXTS = PO_ITEM_TEXT
RETURN = RETURN1.
PERFORM DOWNLOAD_DATA: TABLES PO_HEADER_TEXTS USING 'X',
TABLES IT_ITEMS USING 'X',
TABLES PO_ITEM_ACCOUNT_ASSIGNMENT USING 'X',
TABLES PO_ITEMS_SHEDULE USING 'X',
TABLES PO_ITEM_TEXT USING 'X'.
ENDLOOP.
&----
*& Form DOWNLOAD_DATA
&----
FORM DOWNLOAD_DATA TABLES IT_TAB
USING P_APP.
CALL FUNCTION 'GUI_DOWNLOAD'
EXPORTING
FILENAME = 'C:/poextract.xls'
APPEND = P_APP
WRITE_FIELD_SEPARATOR = 'X'
TABLES
DATA_TAB = IT_TAB
FIELDNAMES = FIELDNAME
EXCEPTIONS
FILE_WRITE_ERROR = 1
NO_BATCH = 2
GUI_REFUSE_FILETRANSFER = 3
INVALID_TYPE = 4
NO_AUTHORITY = 5
UNKNOWN_ERROR = 6
HEADER_NOT_ALLOWED = 7
SEPARATOR_NOT_ALLOWED = 8
FILESIZE_NOT_ALLOWED = 9
HEADER_TOO_LONG = 10
DP_ERROR_CREATE = 11
DP_ERROR_SEND = 12
DP_ERROR_WRITE = 13
UNKNOWN_DP_ERROR = 14
ACCESS_DENIED = 15
DP_OUT_OF_MEMORY = 16
DISK_FULL = 17
DP_TIMEOUT = 18
FILE_NOT_FOUND = 19
DATAPROVIDER_EXCEPTION = 20
CONTROL_FLUSH_ERROR = 21
OTHERS = 22.
IF SY-SUBRC <> 0.
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
ENDFORM. " DOWNLOAD_DATA
Thanks,
Rammohan.
‎2006 Nov 21 5:25 AM
hi eswar,
Good morning,yes i am getting the headers,thanks for u r response but headers is comming for each item,i mean if i am extracting 60 purchase orders headers r comming 60 times,is there any change let meknow,i am also looking in to it,
Thanks once again,
Rammohan.
‎2006 Nov 17 11:54 AM
Hi,
Refer sample code below:
Download Header and Table Entry in same Excel.
Please use the following option to dowload the header, footer & grid data in one excel sheet.
1.First of all upload the header using table for it say itab_header.
CALL FUNCTION 'GUI_DOWNLOAD'
EXPORTING
filename = 'C:\download.xls'
filetype = 'ASC'
append = 'X'
write_field_separator = 'X'
TABLES
data_tab = itab_header[]."Header data in this table
2. Then download the grid as under:
CALL FUNCTION 'GUI_DOWNLOAD'
EXPORTING
filename = 'C:\download.xls'
filetype = 'ASC'
append = 'X'
write_field_separator = 'X'
TABLES
data_tab = itab_data[]."Grid data in this table
Reward points if this helps.
Manish
‎2006 Nov 17 11:56 AM
You did not fill the fieldnames internal table anywhere.
You should fill that also.
Regards,
Ravi
‎2006 Nov 20 5:21 AM
hi,
i am getting the data into the excel,but that related headers also should come automatically with data,how to do this ,can any body have idea pls let me know.
Thanks,
Rammohan.
‎2006 Nov 20 5:25 AM
hi ram,
Use that FM GUI_DOWNLOAD twice:
First time download only header
Second time append table contents to the same file (import parameter append = 'X')
egx:
or example if your itab used for writing the abap list is like below.
data: begin of details occurs 0 ,
customer type kna1-kunnr,
name type kna1-name1 ,
end of details.
declare another internal table.
data: begin of headers occurs 0 ,
customer(100) ,
name(100),
end of headers.
move: '010101' to headers-customer ,
'Anver' to headers-name .
append headers.
now call GUI_download to download headers to filename c:/tem.xls
again call gui_download with APPEND = 'X' to the same file name and download details itab.
Regards
Anver
‎2006 Nov 20 5:53 AM
HI Ram
Please check if below code helps you:
TABLES: EKKO.
*PARAMETERS : P_EBELN TYPE EBELN.
SELECT-OPTIONS: S_EBELN FOR EKKO-EBELN OBLIGATORY.
TYPES: BEGIN OF T_PO,
EBELN TYPE EBELN,
END OF T_PO.
DATA: IT_PO TYPE STANDARD TABLE OF T_PO,
WA_PO TYPE T_PO.
DATA : IT_ITEMS TYPE TABLE OF BAPIEKPO WITH HEADER LINE.
DATA: PO_ITEMS_SHEDULE TYPE TABLE OF BAPIEKET WITH HEADER LINE.
DATA: PO_ITEM_TEXT TYPE TABLE OF BAPIEKPOTX WITH HEADER LINE.
DATA: PO_ITEM_ACCOUNT_ASSIGNMENT TYPE TABLE OF BAPIEKKN
WITH HEADER LINE.
DATA: PO_HEADER_TEXTS TYPE TABLE OF BAPIEKKOTX WITH HEADER LINE.
DATA: PO_HEADER TYPE BAPIEKKOL.
DATA: RETURN1 TYPE TABLE OF BAPIRETURN WITH HEADER LINE.
SELECT EBELN INTO TABLE IT_PO FROM EKKO WHERE EBELN IN S_EBELN.
PERFORM DOWNLOAD_DATA: TABLES IT_ITEMS USING SPACE 'BAPIEKPO'.
LOOP AT IT_PO INTO WA_PO.
CLEAR: PO_HEADER_TEXTS[], IT_ITEMS[], PO_ITEM_ACCOUNT_ASSIGNMENT[],
PO_ITEMS_SHEDULE[], PO_ITEM_TEXT[], RETURN1[].
CALL FUNCTION 'BAPI_PO_GETDETAIL'
EXPORTING
PURCHASEORDER = WA_PO-EBELN
ITEMS = 'X'
ACCOUNT_ASSIGNMENT = 'X'
SCHEDULES = ' '
HISTORY = 'X'
ITEM_TEXTS = 'X'
HEADER_TEXTS = 'X'
TABLES
PO_HEADER_TEXTS = PO_HEADER_TEXTS
PO_ITEMS = IT_ITEMS
PO_ITEM_ACCOUNT_ASSIGNMENT = PO_ITEM_ACCOUNT_ASSIGNMENT
PO_ITEM_SCHEDULES = PO_ITEMS_SHEDULE
PO_ITEM_TEXTS = PO_ITEM_TEXT
RETURN = RETURN1.
PERFORM DOWNLOAD_DATA: TABLES PO_HEADER_TEXTS USING 'X' 'BAPIEKKOTX',
TABLES IT_ITEMS USING 'X' 'BAPIEKPO',
TABLES PO_ITEM_ACCOUNT_ASSIGNMENT USING 'X'
'BAPIEKKN',
TABLES PO_ITEMS_SHEDULE USING 'X' 'BAPIEKET',
TABLES PO_ITEM_TEXT USING 'X' 'BAPIEKPOTX'.
ENDLOOP.
*&---------------------------------------------------------------------
*
*& Form DOWNLOAD_DATA
*&---------------------------------------------------------------------
*
FORM DOWNLOAD_DATA TABLES IT_TAB
USING P_APP
STRUC_NAME.
DATA: IT_DD03P TYPE TABLE OF DD03P WITH HEADER LINE,
IT_DD03P1 TYPE TABLE OF DD03P WITH HEADER LINE.
TYPES: BEGIN OF T_HEAD,
TEXT TYPE AS4TEXT,
END OF T_HEAD.
DATA: IT_HEAD TYPE TABLE OF T_HEAD.
IF NOT IT_TAB[] IS INITIAL.
CALL FUNCTION 'DD_GET_DD03P_ALL'
EXPORTING
TABNAME = STRUC_NAME
TABLES
A_DD03P_TAB = IT_DD03P
N_DD03P_TAB = IT_DD03P1
EXCEPTIONS
ILLEGAL_VALUE = 1
OTHERS = 2.
IF SY-SUBRC EQ 0.
LOOP AT IT_DD03P.
APPEND IT_DD03P-DDTEXT TO IT_HEAD.
ENDLOOP.
ENDIF.
ENDIF.
CALL FUNCTION 'GUI_DOWNLOAD'
EXPORTING
FILENAME = 'C:poextract.xls'
APPEND = P_APP
WRITE_FIELD_SEPARATOR = 'X'
TABLES
DATA_TAB = IT_TAB
FIELDNAMES = IT_HEAD
EXCEPTIONS
FILE_WRITE_ERROR = 1
NO_BATCH = 2
GUI_REFUSE_FILETRANSFER = 3
INVALID_TYPE = 4
NO_AUTHORITY = 5
UNKNOWN_ERROR = 6
HEADER_NOT_ALLOWED = 7
SEPARATOR_NOT_ALLOWED = 8
FILESIZE_NOT_ALLOWED = 9
HEADER_TOO_LONG = 10
DP_ERROR_CREATE = 11
DP_ERROR_SEND = 12
DP_ERROR_WRITE = 13
UNKNOWN_DP_ERROR = 14
ACCESS_DENIED = 15
DP_OUT_OF_MEMORY = 16
DISK_FULL = 17
DP_TIMEOUT = 18
FILE_NOT_FOUND = 19
DATAPROVIDER_EXCEPTION = 20
CONTROL_FLUSH_ERROR = 21
OTHERS = 22.
IF SY-SUBRC <> 0.
* MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
* WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
ENDFORM. " DOWNLOAD_DATAKind Regards
Eswar
‎2006 Nov 20 5:56 AM
Hi Ram,
Check this , it will clear u r issue
U r keeping in file name C:/poextract.xls change it to
C:\poextract.xls it may solve u r problem.
If still if doesnot solve u r issue follow the code below
DATA : it_fields TYPE dfies OCCURS 0 WITH HEADER LINE.
DATA : BEGIN OF it_fnames OCCURS 0,
reptext LIKE dfies-reptext,
END OF it_fnames.
CALL FUNCTION 'GET_FIELDTAB'
EXPORTING
LANGU = SY-LANGU
ONLY = ' '
tabname = it_tab
WITHTEXT = 'X'
IMPORTING
HEADER =
RC =
TABLES
fieldtab = it_fields
EXCEPTIONS
internal_error = 1
no_texts_found = 2
table_has_no_fields = 3
table_not_activ = 4
OTHERS = 5
.
IF sy-subrc <> 0.
MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
ENDIF.
LOOP AT it_fields.
it_fnames-reptext = it_fields-reptext.
APPEND it_fnames.
ENDLOOP.
CALL FUNCTION 'GUI_DOWNLOAD'
EXPORTING
FILENAME = 'C:\poextract.xls'
APPEND = P_APP
WRITE_FIELD_SEPARATOR = 'X'
TABLES
DATA_TAB = IT_TAB
FIELDNAMES = it_fnames
EXCEPTIONS
FILE_WRITE_ERROR = 1
NO_BATCH = 2
GUI_REFUSE_FILETRANSFER = 3
INVALID_TYPE = 4
NO_AUTHORITY = 5
UNKNOWN_ERROR = 6
HEADER_NOT_ALLOWED = 7
SEPARATOR_NOT_ALLOWED = 8
FILESIZE_NOT_ALLOWED = 9
HEADER_TOO_LONG = 10
DP_ERROR_CREATE = 11
DP_ERROR_SEND = 12
DP_ERROR_WRITE = 13
UNKNOWN_DP_ERROR = 14
ACCESS_DENIED = 15
DP_OUT_OF_MEMORY = 16
DISK_FULL = 17
DP_TIMEOUT = 18
FILE_NOT_FOUND = 19
DATAPROVIDER_EXCEPTION = 20
CONTROL_FLUSH_ERROR = 21
OTHERS = 22.
IF SY-SUBRC <> 0.
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
‎2006 Nov 20 8:01 AM
HI ESWAR,
Thanks for reply agin,but what u have given ,i gone through the code,but it is not woring,the headers is not comming in the excel sheet,any how if u have idea let me know,thanks for yur fast response.
Thanks,
Rammohan.
‎2006 Nov 20 8:06 AM
Hi Ram
Kindly let me know the exact problem. Please try by copying the whole code to a temporary program and executing the same. Please make sure that the file is not open while you are executing the program.
Regards
Eswar
‎2006 Nov 20 9:46 AM
hi eswar,
I got the all the po related data in the excel sheet,thats fine,but the ting is i am not getting coloumn headings(i mean field names),i tried with closing the files.
Thanks,
Rammohan.
‎2006 Nov 20 9:51 AM
HI Ram
Can you place a break-point while downloading data using GUI_DOWNLOAD FM and check the data in table IT_HEAD.
Can you see that details are populated in this internal table.
Also check whatz the output that you see when you execute FM: 'DD_GET_DD03P_ALL' for structure BAPIEKPO.
Kind Regards
Eswar
‎2006 Nov 20 10:11 AM
hi ESWAR,
yes i have checked in the debugging mode,The data is Comming into the internal table when it is in the following code(i mean upto this point).
IF NOT IT_TAB[] IS INITIAL.
CALL FUNCTION 'DD_GET_DD03P_ALL'
EXPORTING
TABNAME = STRUC_NAME
TABLES
A_DD03P_TAB = IT_DD03P
N_DD03P_TAB = IT_DD03P1
EXCEPTIONS
ILLEGAL_VALUE = 1
OTHERS = 2.
IF SY-SUBRC EQ 0.
LOOP AT IT_DD03P.
APPEND IT_DD03P-DDTEXT TO IT_HEAD.
ENDLOOP.
i mean i put the break point in this function module,here data is comming perfectly,But when icheck in the GUI down load function modulem for (it_head) data is not there,in the created excel sheet also only data avilable,but there is no headers,mean while i am also checking,if there is any mistake kindly let me know.
Thanks for u r cooperation.
Rammohan.
‎2006 Nov 20 10:17 AM
HI Ram
Have you used the code the way that i have provided you. I dont have any problem while downloading.
Below is the same again for your reference: Please try using as it is...
TABLES: EKKO.
*PARAMETERS : P_EBELN TYPE EBELN.
SELECT-OPTIONS: S_EBELN FOR EKKO-EBELN OBLIGATORY.
TYPES: BEGIN OF T_PO,
EBELN TYPE EBELN,
END OF T_PO.
DATA: IT_PO TYPE STANDARD TABLE OF T_PO,
WA_PO TYPE T_PO.
DATA : IT_ITEMS TYPE TABLE OF BAPIEKPO WITH HEADER LINE.
DATA: PO_ITEMS_SHEDULE TYPE TABLE OF BAPIEKET WITH HEADER LINE.
DATA: PO_ITEM_TEXT TYPE TABLE OF BAPIEKPOTX WITH HEADER LINE.
DATA: PO_ITEM_ACCOUNT_ASSIGNMENT TYPE TABLE OF BAPIEKKN
WITH HEADER LINE.
DATA: PO_HEADER_TEXTS TYPE TABLE OF BAPIEKKOTX WITH HEADER LINE.
DATA: PO_HEADER TYPE BAPIEKKOL.
DATA: RETURN1 TYPE TABLE OF BAPIRETURN WITH HEADER LINE.
SELECT EBELN INTO TABLE IT_PO FROM EKKO WHERE EBELN IN S_EBELN.
PERFORM DOWNLOAD_DATA: TABLES IT_ITEMS USING SPACE 'BAPIEKPO'.
LOOP AT IT_PO INTO WA_PO.
CLEAR: PO_HEADER_TEXTS[], IT_ITEMS[], PO_ITEM_ACCOUNT_ASSIGNMENT[],
PO_ITEMS_SHEDULE[], PO_ITEM_TEXT[], RETURN1[].
CALL FUNCTION 'BAPI_PO_GETDETAIL'
EXPORTING
PURCHASEORDER = WA_PO-EBELN
ITEMS = 'X'
ACCOUNT_ASSIGNMENT = 'X'
SCHEDULES = ' '
HISTORY = 'X'
ITEM_TEXTS = 'X'
HEADER_TEXTS = 'X'
TABLES
PO_HEADER_TEXTS = PO_HEADER_TEXTS
PO_ITEMS = IT_ITEMS
PO_ITEM_ACCOUNT_ASSIGNMENT = PO_ITEM_ACCOUNT_ASSIGNMENT
PO_ITEM_SCHEDULES = PO_ITEMS_SHEDULE
PO_ITEM_TEXTS = PO_ITEM_TEXT
RETURN = RETURN1.
PERFORM DOWNLOAD_DATA: TABLES PO_HEADER_TEXTS USING 'X' 'BAPIEKKOTX',
TABLES IT_ITEMS USING 'X' 'BAPIEKPO',
TABLES PO_ITEM_ACCOUNT_ASSIGNMENT USING 'X'
'BAPIEKKN',
TABLES PO_ITEMS_SHEDULE USING 'X' 'BAPIEKET',
TABLES PO_ITEM_TEXT USING 'X' 'BAPIEKPOTX'.
ENDLOOP.
*&---------------------------------------------------------------------
*
*& Form DOWNLOAD_DATA
*&---------------------------------------------------------------------
*
FORM DOWNLOAD_DATA TABLES IT_TAB
USING P_APP
STRUC_NAME.
DATA: IT_DD03P TYPE TABLE OF DD03P WITH HEADER LINE,
IT_DD03P1 TYPE TABLE OF DD03P WITH HEADER LINE.
TYPES: BEGIN OF T_HEAD,
TEXT TYPE AS4TEXT,
END OF T_HEAD.
DATA: IT_HEAD TYPE TABLE OF T_HEAD.
IF NOT IT_TAB[] IS INITIAL.
CALL FUNCTION 'DD_GET_DD03P_ALL'
EXPORTING
TABNAME = STRUC_NAME
TABLES
A_DD03P_TAB = IT_DD03P
N_DD03P_TAB = IT_DD03P1
EXCEPTIONS
ILLEGAL_VALUE = 1
OTHERS = 2.
IF SY-SUBRC EQ 0.
LOOP AT IT_DD03P.
APPEND IT_DD03P-DDTEXT TO IT_HEAD.
ENDLOOP.
ENDIF.
ENDIF.
CALL FUNCTION 'GUI_DOWNLOAD'
EXPORTING
FILENAME = 'C:poextract.xls'
APPEND = P_APP
WRITE_FIELD_SEPARATOR = 'X'
TABLES
DATA_TAB = IT_TAB
FIELDNAMES = IT_HEAD
EXCEPTIONS
FILE_WRITE_ERROR = 1
NO_BATCH = 2
GUI_REFUSE_FILETRANSFER = 3
INVALID_TYPE = 4
NO_AUTHORITY = 5
UNKNOWN_ERROR = 6
HEADER_NOT_ALLOWED = 7
SEPARATOR_NOT_ALLOWED = 8
FILESIZE_NOT_ALLOWED = 9
HEADER_TOO_LONG = 10
DP_ERROR_CREATE = 11
DP_ERROR_SEND = 12
DP_ERROR_WRITE = 13
UNKNOWN_DP_ERROR = 14
ACCESS_DENIED = 15
DP_OUT_OF_MEMORY = 16
DISK_FULL = 17
DP_TIMEOUT = 18
FILE_NOT_FOUND = 19
DATAPROVIDER_EXCEPTION = 20
CONTROL_FLUSH_ERROR = 21
OTHERS = 22.
IF SY-SUBRC <> 0.
* MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
* WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
ENDFORM. " DOWNLOAD_DATAKind Regards
Eswar
‎2006 Nov 20 11:07 AM
hi eswar,
i am using the same code what u sent,but u r telling headers is comming in the excel sheet,but for me only data is comming in the excel sheet headers r not comming.finally after program ends it is giving the message '0' bytes transfers but there is data in excel,i am using folllowing same code.
report ztest1.
TABLES: EKKO.
*PARAMETERS : P_EBELN TYPE EBELN.
SELECT-OPTIONS: S_EBELN FOR EKKO-EBELN OBLIGATORY.
TYPES: BEGIN OF T_PO,
EBELN TYPE EBELN,
END OF T_PO.
DATA: IT_PO TYPE STANDARD TABLE OF T_PO,
WA_PO TYPE T_PO.
DATA : IT_ITEMS TYPE TABLE OF BAPIEKPO WITH HEADER LINE.
DATA: PO_ITEMS_SHEDULE TYPE TABLE OF BAPIEKET WITH HEADER LINE.
DATA: PO_ITEM_TEXT TYPE TABLE OF BAPIEKPOTX WITH HEADER LINE.
DATA: PO_ITEM_ACCOUNT_ASSIGNMENT TYPE TABLE OF BAPIEKKN
WITH HEADER LINE.
DATA: PO_HEADER_TEXTS TYPE TABLE OF BAPIEKKOTX WITH HEADER LINE.
DATA: PO_HEADER TYPE BAPIEKKOL.
DATA: RETURN1 TYPE TABLE OF BAPIRETURN WITH HEADER LINE.
SELECT EBELN INTO TABLE IT_PO FROM EKKO WHERE EBELN IN S_EBELN.
PERFORM DOWNLOAD_DATA: TABLES IT_ITEMS USING SPACE 'BAPIEKPO'.
LOOP AT IT_PO INTO WA_PO.
CLEAR: PO_HEADER_TEXTS[], IT_ITEMS[], PO_ITEM_ACCOUNT_ASSIGNMENT[],
PO_ITEMS_SHEDULE[], PO_ITEM_TEXT[], RETURN1[].
CALL FUNCTION 'BAPI_PO_GETDETAIL'
EXPORTING
PURCHASEORDER = WA_PO-EBELN
ITEMS = 'X'
ACCOUNT_ASSIGNMENT = 'X'
SCHEDULES = ' '
HISTORY = 'X'
ITEM_TEXTS = 'X'
HEADER_TEXTS = 'X'
TABLES
PO_HEADER_TEXTS = PO_HEADER_TEXTS
PO_ITEMS = IT_ITEMS
PO_ITEM_ACCOUNT_ASSIGNMENT = PO_ITEM_ACCOUNT_ASSIGNMENT
PO_ITEM_SCHEDULES = PO_ITEMS_SHEDULE
PO_ITEM_TEXTS = PO_ITEM_TEXT
RETURN = RETURN1.
PERFORM DOWNLOAD_DATA: TABLES PO_HEADER_TEXTS USING 'X' 'BAPIEKKOTX',
TABLES IT_ITEMS USING 'X' 'BAPIEKPO',
TABLES PO_ITEM_ACCOUNT_ASSIGNMENT USING 'X'
'BAPIEKKN',
TABLES PO_ITEMS_SHEDULE USING 'X' 'BAPIEKET',
TABLES PO_ITEM_TEXT USING 'X' 'BAPIEKPOTX'.
ENDLOOP.
*&----
*
*& Form DOWNLOAD_DATA
*&----
*
FORM DOWNLOAD_DATA TABLES IT_TAB
USING P_APP
STRUC_NAME.
DATA: IT_DD03P TYPE TABLE OF DD03P WITH HEADER LINE,
IT_DD03P1 TYPE TABLE OF DD03P WITH HEADER LINE.
TYPES: BEGIN OF T_HEAD,
TEXT TYPE AS4TEXT,
END OF T_HEAD.
DATA: IT_HEAD TYPE TABLE OF T_HEAD.
IF NOT IT_TAB[] IS INITIAL.
CALL FUNCTION 'DD_GET_DD03P_ALL'
EXPORTING
TABNAME = STRUC_NAME
TABLES
A_DD03P_TAB = IT_DD03P
N_DD03P_TAB = IT_DD03P1
EXCEPTIONS
ILLEGAL_VALUE = 1
OTHERS = 2.
IF SY-SUBRC EQ 0.
LOOP AT IT_DD03P.
APPEND IT_DD03P-DDTEXT TO IT_HEAD.
ENDLOOP.
ENDIF.
ENDIF.
CALL FUNCTION 'GUI_DOWNLOAD'
EXPORTING
FILENAME = 'C:\poextract.xls'
APPEND = P_APP
WRITE_FIELD_SEPARATOR = 'X'
TABLES
DATA_TAB = IT_TAB
FIELDNAMES = IT_HEAD
EXCEPTIONS
FILE_WRITE_ERROR = 1
NO_BATCH = 2
GUI_REFUSE_FILETRANSFER = 3
INVALID_TYPE = 4
NO_AUTHORITY = 5
UNKNOWN_ERROR = 6
HEADER_NOT_ALLOWED = 7
SEPARATOR_NOT_ALLOWED = 8
FILESIZE_NOT_ALLOWED = 9
HEADER_TOO_LONG = 10
DP_ERROR_CREATE = 11
DP_ERROR_SEND = 12
DP_ERROR_WRITE = 13
UNKNOWN_DP_ERROR = 14
ACCESS_DENIED = 15
DP_OUT_OF_MEMORY = 16
DISK_FULL = 17
DP_TIMEOUT = 18
FILE_NOT_FOUND = 19
DATAPROVIDER_EXCEPTION = 20
CONTROL_FLUSH_ERROR = 21
OTHERS = 22.
IF SY-SUBRC <> 0.
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
ENDFORM. " DOWNLOAD_DATA
‎2006 Nov 21 2:50 AM
Hi Ram
Please try with below code and let us know if you are still encountering the problem while downloading headers:
TABLES: EKKO.
*PARAMETERS : P_EBELN TYPE EBELN.
SELECT-OPTIONS: S_EBELN FOR EKKO-EBELN OBLIGATORY.
TYPES: BEGIN OF T_PO,
EBELN TYPE EBELN,
END OF T_PO.
DATA: IT_PO TYPE STANDARD TABLE OF T_PO,
WA_PO TYPE T_PO.
DATA : IT_ITEMS TYPE TABLE OF BAPIEKPO WITH HEADER LINE.
DATA: PO_ITEMS_SHEDULE TYPE TABLE OF BAPIEKET WITH HEADER LINE.
DATA: PO_ITEM_TEXT TYPE TABLE OF BAPIEKPOTX WITH HEADER LINE.
DATA: PO_ITEM_ACCOUNT_ASSIGNMENT TYPE TABLE OF BAPIEKKN
WITH HEADER LINE.
DATA: PO_HEADER_TEXTS TYPE TABLE OF BAPIEKKOTX WITH HEADER LINE.
DATA: PO_HEADER TYPE BAPIEKKOL.
DATA: RETURN1 TYPE TABLE OF BAPIRETURN WITH HEADER LINE.
DATA: RC TYPE I.
SELECT EBELN INTO TABLE IT_PO FROM EKKO WHERE EBELN IN S_EBELN.
PERFORM FILE_DELETE.
LOOP AT IT_PO INTO WA_PO.
CLEAR: PO_HEADER_TEXTS[], IT_ITEMS[], PO_ITEM_ACCOUNT_ASSIGNMENT[],
PO_ITEMS_SHEDULE[], PO_ITEM_TEXT[], RETURN1[].
CALL FUNCTION 'BAPI_PO_GETDETAIL'
EXPORTING
PURCHASEORDER = WA_PO-EBELN
ITEMS = 'X'
ACCOUNT_ASSIGNMENT = 'X'
SCHEDULES = ' '
HISTORY = 'X'
ITEM_TEXTS = 'X'
HEADER_TEXTS = 'X'
TABLES
PO_HEADER_TEXTS = PO_HEADER_TEXTS
PO_ITEMS = IT_ITEMS
PO_ITEM_ACCOUNT_ASSIGNMENT = PO_ITEM_ACCOUNT_ASSIGNMENT
PO_ITEM_SCHEDULES = PO_ITEMS_SHEDULE
PO_ITEM_TEXTS = PO_ITEM_TEXT
RETURN = RETURN1.
PERFORM DOWNLOAD_DATA: TABLES PO_HEADER_TEXTS USING 'BAPIEKKOTX',
TABLES IT_ITEMS USING 'BAPIEKPO',
TABLES PO_ITEM_ACCOUNT_ASSIGNMENT USING
'BAPIEKKN',
TABLES PO_ITEMS_SHEDULE USING 'BAPIEKET',
TABLES PO_ITEM_TEXT USING 'BAPIEKPOTX'.
ENDLOOP.
*&---------------------------------------------------------------------
*
*& Form DOWNLOAD_DATA
*&---------------------------------------------------------------------
*
FORM DOWNLOAD_DATA TABLES IT_TAB
USING STRUC_NAME.
DATA: IT_DD03P TYPE TABLE OF DD03P WITH HEADER LINE,
IT_DD03P1 TYPE TABLE OF DD03P WITH HEADER LINE.
DATA: IT_HEAD TYPE TABLE OF STRING,
WA_HEAD TYPE STRING.
DATA: L_TAB(1) TYPE C VALUE CL_ABAP_CHAR_UTILITIES=>HORIZONTAL_TAB.
IF NOT IT_TAB[] IS INITIAL.
CALL FUNCTION 'DD_GET_DD03P_ALL'
EXPORTING
TABNAME = STRUC_NAME
TABLES
A_DD03P_TAB = IT_DD03P
N_DD03P_TAB = IT_DD03P1
EXCEPTIONS
ILLEGAL_VALUE = 1
OTHERS = 2.
IF SY-SUBRC EQ 0.
LOOP AT IT_DD03P.
IF SY-TABIX EQ 1.
MOVE IT_DD03P-DDTEXT TO WA_HEAD.
ELSE.
CONCATENATE WA_HEAD IT_DD03P-DDTEXT INTO WA_HEAD SEPARATED BY L_TAB.
ENDIF.
ENDLOOP.
APPEND WA_HEAD TO IT_HEAD.
ENDIF.
ENDIF.
CALL FUNCTION 'GUI_DOWNLOAD'
EXPORTING
FILENAME = 'C:poextract.xls'
APPEND = 'X'
WRITE_FIELD_SEPARATOR = 'X'
TABLES
DATA_TAB = IT_HEAD
* FIELDNAMES = IT_HEAD
EXCEPTIONS
FILE_WRITE_ERROR = 1
NO_BATCH = 2
GUI_REFUSE_FILETRANSFER = 3
INVALID_TYPE = 4
NO_AUTHORITY = 5
UNKNOWN_ERROR = 6
HEADER_NOT_ALLOWED = 7
SEPARATOR_NOT_ALLOWED = 8
FILESIZE_NOT_ALLOWED = 9
HEADER_TOO_LONG = 10
DP_ERROR_CREATE = 11
DP_ERROR_SEND = 12
DP_ERROR_WRITE = 13
UNKNOWN_DP_ERROR = 14
ACCESS_DENIED = 15
DP_OUT_OF_MEMORY = 16
DISK_FULL = 17
DP_TIMEOUT = 18
FILE_NOT_FOUND = 19
DATAPROVIDER_EXCEPTION = 20
CONTROL_FLUSH_ERROR = 21
OTHERS = 22.
IF SY-SUBRC <> 0.
* MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
* WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
CALL FUNCTION 'GUI_DOWNLOAD'
EXPORTING
FILENAME = 'C:poextract.xls'
APPEND = 'X'
WRITE_FIELD_SEPARATOR = 'X'
TABLES
DATA_TAB = IT_TAB
* FIELDNAMES = IT_HEAD
EXCEPTIONS
FILE_WRITE_ERROR = 1
NO_BATCH = 2
GUI_REFUSE_FILETRANSFER = 3
INVALID_TYPE = 4
NO_AUTHORITY = 5
UNKNOWN_ERROR = 6
HEADER_NOT_ALLOWED = 7
SEPARATOR_NOT_ALLOWED = 8
FILESIZE_NOT_ALLOWED = 9
HEADER_TOO_LONG = 10
DP_ERROR_CREATE = 11
DP_ERROR_SEND = 12
DP_ERROR_WRITE = 13
UNKNOWN_DP_ERROR = 14
ACCESS_DENIED = 15
DP_OUT_OF_MEMORY = 16
DISK_FULL = 17
DP_TIMEOUT = 18
FILE_NOT_FOUND = 19
DATAPROVIDER_EXCEPTION = 20
CONTROL_FLUSH_ERROR = 21
OTHERS = 22.
IF SY-SUBRC <> 0.
* MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
* WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
ENDFORM. " DOWNLOAD_DATA
*&---------------------------------------------------------------------*
*& Form FILE_DELETE
*&---------------------------------------------------------------------*
FORM FILE_DELETE .
CALL METHOD CL_GUI_FRONTEND_SERVICES=>FILE_DELETE
EXPORTING
FILENAME = 'C:poextract.xls'
CHANGING
RC = RC
EXCEPTIONS
FILE_DELETE_FAILED = 1
CNTL_ERROR = 2
ERROR_NO_GUI = 3
FILE_NOT_FOUND = 4
ACCESS_DENIED = 5
UNKNOWN_ERROR = 6
NOT_SUPPORTED_BY_GUI = 7
WRONG_PARAMETER = 8
OTHERS = 9.
IF SY-SUBRC <> 0.
* MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
* WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
ENDFORM. " FILE_DELETEKind Regards
Eswar
‎2006 Nov 21 5:25 AM
hi eswar,
Good morning,yes i am getting the headers,thanks for u r response but headers is comming for each item,i mean if i am extracting 60 purchase orders headers r comming 60 times,is there any change let meknow,i am also looking in to it,
Thanks once again,
Rammohan.
‎2006 Nov 21 5:35 AM
Hi Ram
I guess the logic should be that way, bcoz for each PO we are populating various structures. So whenenever there is a change in the structure the Headers for the structure will be populated.
Kind Regards
Eswar
‎2006 Nov 21 5:43 AM
Yes you may right,i will clarify from my functional consultant,if it same for all what type od change we should do,if u have any idea pl give.
Thanks,
Rammohan.
‎2006 Nov 21 10:42 AM
hi eswar ,
how to create the PO by using the same excel sheet,and also one more thing what ever i haveextracted the data in that item conditions are not comming so is there any FM to bring the details of condtions,if u have any idea let me know.
Thanks,
Rammohan.