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.
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 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.
| User | Count |
|---|---|
| 6 | |
| 1 | |
| 1 | |
| 1 | |
| 1 | |
| 1 | |
| 1 | |
| 1 | |
| 1 | |
| 1 |