File download Function Module
HI Experts
What is the Function Module for download a file into presentation server and Application Server.
where do i get brief info about BAPI and BADI
Thanks in advance
Hi
For presentation server download, u can use GUI_DOWNLOAD
For application server download, u can use Open Dataset and Close Dataset commands
what is BAPI?
BAPI stands for Business API(Application Program Interface).
A BAPI is remotely enabled function module ie it can be invoked from remote programs like standalone JAVA programs, web interface etc..
You can make your function module remotely enabled in attributes of Function module but
A BAPI are standard SAP function modules provided by SAP for remote access. Also they are part of Businees Objest Repository(BOR).
BAPI are RFC enabled function modules. the difference between RFc and BAPI are business objects. You create business objects and those are then registered in your BOR (Business Object Repository) which can be accessed outside the SAP system by using some other applications (Non-SAP) such as VB or JAVA. in this case u only specify the business object and its method from external system in BAPI there is no direct system call. while RFC are direct system call Some BAPIs provide basic functions and can be used for most SAP business object types. These BAPIs should be implemented the same for all business object types. Standardized BAPIs are easier to use and prevent users having to deal with a number of different BAPIs. Whenever possible, a standardized BAPI must be used in preference to an individual BAPI.
The following standardized BAPIs are provided:
Reading instances of SAP business objects
GetList ( ) With the BAPI GetList you can select a range of object key values, for example, company codes and material numbers.
The BAPI GetList() is a class method.
GetDetail() With the BAPI GetDetail() the details of an instance of a business object type are retrieved and returned to the calling program. The instance is identified via its key. The BAPI GetDetail() is an instance method. BAPIs that can create, change or delete instances of a business object type
The following BAPIs of the same object type have to be programmed so that they can be called several times within one transaction. For example, if, after sales order 1 has been created, a second sales order 2 is created in the same transaction, the second BAPI call must not affect the consistency of the sales order 2. After completing the transaction with a COMMIT WORK, both the orders are saved consistently in the database.
Create( ) and CreateFromData! ( )
The BAPIs Create() and CreateFromData() create an instance of an SAP business object type, for example, a purchase order. These BAPIs are class methods.
Change( )
The BAPI Change() changes an existing instance of an SAP business object type, for example, a purchase order. The BAPI Change () is an instance method.
Delete( ) and Undelete( ) The BAPI Delete() deletes an instance of an SAP business object type from the database or sets a deletion flag.
The BAPI Undelete() removes a deletion flag. These BAPIs are instance methods.
Cancel ( ) Unlike the BAPI Delete(), the BAPI Cancel() cancels an instance of a business object type. The instance to be cancelled remains in the database and an additional instance is created and this is the one that is actually canceled. The Cancel() BAPI is an instance method.
Add<subobject> ( ) and Remove<subobject> ( ) The BAPI Add<subobject> adds a subobject to an existing object inst! ance and the BAPI and Remove<subobject> removes a subobject from an object instance. These BAPIs are instance methods.
BAPI-step by step
http://www.sapgenie.com/abap/bapi/example.htm
list of all bapis
http://www.planetsap.com/LIST_ALL_BAPIs.htm
for BAPI's
http://www.sappoint.com/abap/bapiintro.pdf
http://www.sappoint.com/abap/bapiprg.pdf
http://www.sappoint.com/abap/bapiactx.pdf
http://www.sappoint.com/abap/bapilst.pdf
http://www.sappoint.com/abap/bapiexer.pdf
http://service.sap.com/ale
http://service.sap.com/bapi
http://help.sap.com/printdocu/core/Print46c/en/data/pdf/BCMIDAPII/CABFAAPIINTRO.pdf
http://help.sap.com/printdocu/core/Print46c/en/data/pdf/CABFABAPIREF/CABFABAPIPG.pdf
http://help.sap.com/printdocu/core/Print46c/en/data/pdf/BCFESDE8/BCFESDE8.pdf
http://www.planetsap.com/Bapi_main_page.htm
http://www.topxml.com/sap/sap_idoc_xml.asp
http://www.sapdevelopment.co.uk/
http://www.sapdevelopment.co.uk/java/jco/bapi_jco.pdf
Also refer to the following links..
www.sappoint.com/abap/bapiintro.pdf
www.sap-img.com/bapi.htm
www.sap-img.com/abap/bapi-conventions.htm
www.planetsap.com/Bapi_main_page.htm
www.sapgenie.com/abap/bapi/index.htm
Checkout !!
http://searchsap.techtarget.com/originalContent/0,289142,sid21_gci948835,00.html
http://techrepublic.com.com/5100-6329-1051160.html#
http://www.sap-img.com/bapi.htm
http://www.sap-img.com/abap/bapi-conventions.htm
http://www.sappoint.com/abap/bapiintro.pdf
u can check the below the material also
Example Code
U need to give the step_nr, item_nr, cond_count and cond_type so the correct conditon will be updated. If no condition exists for the given parameters, a new condition will be created.
U can find these parameters for a particular condition type in table KONV.
*& Form saveTransactionJOCR
text
--> p1 text
<-- p2 text
FORM saveTransactionJOCR .
data: salesdocument like BAPIVBELN-VBELN,
order_header_inx like bapisdh1x,
order_header_in like bapisdh1,
return type standard table of bapiret2 with header line,
conditions_in type standard table of bapicond with header line,
conditions_inx type standard table of bapicondx with header line,
logic_switch like BAPISDLS,
step_nr like conditions_in-cond_st_no,
item_nr like conditions_in-itm_number,
cond_count like conditions_in-cond_count,
cond_type like conditions_in-cond_type.
salesdocument = wa_order_information-VBELN.
LOGIC_SWITCH-COND_HANDL = 'X'.
order_header_inx-updateflag = 'U'.
conditions
clear conditions_in[].
clear conditions_inx[].
clear: step_nr,
item_nr,
cond_count,
cond_type.
step_nr = '710'.
item_nr = '000000'.
cond_count = '01'.
cond_type = 'ZCP2'.
CONDITIONS_IN-ITM_NUMBER = item_nr.
conditions_in-cond_st_no = step_nr.
CONDITIONS_IN-COND_COUNT = cond_count.
CONDITIONS_IN-COND_TYPE = cond_type.
CONDITIONS_IN-COND_VALUE = 666.
CONDITIONS_IN-CURRENCY = 'EUR'.
append conditions_in.
CONDITIONS_INX-ITM_NUMBER = item_nr.
conditions_inx-cond_st_no = step_nr.
CONDITIONS_INX-COND_COUNT = cond_count.
CONDITIONS_INX-COND_TYPE = cond_type.
CONDITIONS_INX-UPDATEFLAG = 'U'.
CONDITIONS_INX-COND_VALUE = 'X'.
CONDITIONS_INX-CURRENCY = 'X'.
append conditions_inx.
CALL FUNCTION 'BAPI_SALESORDER_CHANGE'
EXPORTING
SALESDOCUMENT = salesdocument
ORDER_HEADER_IN = order_header_in
ORDER_HEADER_INX = order_header_inx
LOGIC_SWITCH = logic_switch
TABLES
RETURN = return
CONDITIONS_IN = conditions_in
CONDITIONS_INX = conditions_inx
if return-type ne 'E'.
commit work and wait.
endif.
ENDFORM. " saveTransactionJOCR
Bdc to Bapi
The steps to be followed are :
1. Find out the relevant BAPI (BAPI_SALESORDER_CHANGE for VA02).
[for VA01 use BAPI_SALESORDER_CREATEFROMDAT2]
2. Create a Z program and call the BAPi (same as a Funtion module call).
2. Now, if you see this BAPi, it has
-> Importing structures.
eg: SALESDOCUMENT: this will take the Sales order header data as input.
-> Tables parameters:
eg: ORDER_ITEM_IN: this will take the line item data as input.
Note :
Only specify fields that should be changed
Select these fields by entering an X in the checkboxes
Enter a U in the UPDATEFLAG field
Always specify key fields when changing the data, including in the checkboxes
The configuration is an exception here. If this needs to be changed, you need to complete it again fully.
Maintain quantities and dates in the schedule line data
Possible UPDATEFLAGS:
U = change
D = delete
I = add
Example
1. Delete the whole order
2. Delete order items
3. Change the order
4. Change the configuration
Notes
1. Minimum entry:
You must enter the order number in the SALESDOCUMENT structure.
You must always enter key fields for changes.
You must always specify the update indicator in the ORDER_HEADER_INX.
2. Commit control:
The BAPI does not run a database Commit, which means that the application must trigger the Commit so that the changes are read to the database. To do this, use the BAPI_TRANSACTION_COMMIT BAPI.
For further details... refer to the Function Module documentation for the BAPi.
Bapi to VB(Visual Basic)
Long back I had used the following flow structure to acheive the same.
Report -> SM59 RFC destination -> COM4ABAP -> VB.exe
my report uses the rfc destination to create a COM session with com4abap. com4abap calls the vb.exe and manages the flow of data between sap and vb exe.
You need to have com4abap.exe
If com4abap is installed you will find it in sapgui installatin directory , C:\Program Files\SAPpc\sapgui\RFCSDK\com4abap.
else refer OSS note 419822 for installation of com4abap
after making the settings in com4abap to point to the vb program and setting up rfc destination in sm59 to point to com4abap session , you can use the following function modules to call the vb code.
for setting up com4abap and rfc destination please refer to the documentation for com4abap.
Invoke NEW DCOM session
call function 'BEGIN_COM_SESSION'
exporting
service_dest = service_dest "(this will be a RFC destination created in SM59)
importing
worker_dest = worker_dest
exceptions
connect_to_dcom_service_failed = 1
connect_to_dcom_worker_failed = 2
others = 3.
call function 'create_com_instance' destination worker_dest
exporting
clsid = g_c_clsid
typelib = g_c_typelib
importing
instid = g_f_oid
exceptions
communication_failure = 1 message g_f_msg
system_failure = 2 message g_f_msg
invalid_instance_id = 3
others = 4.
call function 'com_invoke' destination worker_dest
exporting
%instid = g_f_oid
%method = 'UpdatePDF'
sntemp = g_v_const_filent
snsysid = sy-sysid
snflag = 'N'
tables
rssaptable = g_t_pdfdetail1
%return = g_t_pdfdetail1 "t_test
exceptions
communication_failure = 1 message g_f_msg
system_failure = 2 message g_f_msg
invalid_instance_id = 3
others = 4.
then close the com session , using
FM delete_com_instance
FM END_COM_SESSION
http://help.sap.com/saphelp_nw2004s/helpdata/en/7e/5e114a4a1611d1894c0000e829fbbd/frameset.htm
http://www.sapgenie.com/abap/bapi/example.htm
http://help.sap.com/saphelp_46c/helpdata/en/9b/417f07ee2211d1ad14080009b0fb56/frameset.htm
http://searchsap.techtarget.com/originalContent/0,289142,sid21_gci948835,00.html
http://searchsap.techtarget.com/originalContent/0,289142,sid21_gci948835,00.html
http://techrepublic.com.com/5100-6329-1051160.html#
http://www.sap-img.com/bapi.htm
http://www.sap-img.com/abap/bapi-conventions.htm
http://www.sappoint.com/abap/bapiintro.pdf
http://www.sapgenie.com/abap/bapi/example.htm
http://help.sap.com/printdocu/core/Print46c/en/data/pdf/BCMIDAPII/CABFAAPIINTRO.pdf
http://help.sap.com/printdocu/core/Print46c/en/data/pdf/CABFABAPIREF/CABFABAPIPG.pdf
http://help.sap.com/printdocu/core/Print46c/en/data/pdf/BCFESDE8/BCFESDE8.pdf
http://help.sap.com/printdocu/core/Print46c/en/data/pdf/CABFABAPIREF/CABFABAPIPG.pdf
http://help.sap.com/printdocu/core/Print46c/en/data/pdf/BCMIDAPII/CABFAAPIINTRO.pdf
http://techrepublic.com.com/5100-6329-1051160.html#
http://www.sap-img.com/bapi.htm
http://www.sap-img.com/abap/bapi-conventions.htm
http://www.sappoint.com/abap/bapiintro.pdf
BADI
DEFINING THE BADI
1) execute Tcode SE18.
2) Specify a definition Name : ZBADI_SPFLI
3) Press create
4) Choose the attribute tab. Specify short desc for badi.. and specify the type :
multiple use.
5) Choose the interface tab
6) Specify interface name: ZIF_EX_BADI_SPFLI and save.
7) Dbl clk on interface name to start class builder . specify a method name (name,
level, desc).
Method level desc
Linese;ection instance methos some desc
8) place the cursor on the method name desc its parameters to define the interface.
Parameter type refe field desc
I_carrid import spfli-carrid some
I_connid import spefi-connid some
9) save , check and activate
adapter class proposed by system is
ZCL_IM_IM_LINESEL is genereated.
IMPLEMENTATION OF BADI DEFINITION
1) EXECUTE tcode se18.choose menuitem create from the implementation menubar.
2) Specify aname for implementation ZIM_LINESEL
3) Specify short desc.
4) Choose interface tab. System proposes a name fo the implementation class.
ZCL_IM_IMLINESEL which is already generarted.
5) Specify short desc for method
6) Dbl clk on method to insert code..(check the code in AAA).
7) Save , check and activate the code.
Some useful URL
http://www.esnips.com/doc/e06e4171-29df-462f-b857-54fac19a9d8e/ppt-on-badis.ppt
http://www.esnips.com/doc/10016c34-55a7-4b13-8f5f-bf720422d265/BADIs.pdf
http://www.esnips.com/doc/43a58f51-5d92-4213-913a-de05e9faac0d/Business-Addin.doc
http://www.esnips.com/doc/1e10392e-64d8-4181-b2a5-5f04d8f87839/badi.doc
www.sapgenie.com/publications/saptips/022006%20-%20Zaidi%20BADI.pdf
http://www.sapdevelopment.co.uk/enhance/enhance_badi.htm
http://help.sap.com/saphelp_nw04/helpdata/en/04/f3683c05ea4464e10000000a114084/content.htm
http://help.sap.com/saphelp_nw04/helpdata/en/e6/d54d3c596f0b26e10000000a11402f/content.htm
http://help.sap.com/saphelp_nw2004s/helpdata/en/c2/eab541c5b63031e10000000a155106/frameset.htm
Now write a sample program to use this badi method..
Look for BBB sample program.
AAA
data : wa_flights type sflight,
it_flights type table of sflight.
format color col_heading.
write:/ 'Flight info of:', i_carrid, i_connid.
format color col_normal.
select * from sflight
into corresponding fields of table it_flights
where carrid = i_carrid
and connid = i_connid.
loop at it_flights into wa_flights.
write:/ wa_flights-fldate,
wa_flights-planetype,
wa_flights-price currency wa_flights-currency,
wa_flights-seatsmax,
wa_flights-seatsocc.
endloop.
BBB
*& Report ZBADI_TEST *
REPORT ZBADI_TEST .
tables: spfli.
data: wa_spfli type spfli,
it_spfli type table of spfli with key carrid connid.
*Initialise the object of the interface.
data: exit_ref type ref to ZCL_IM_IM_LINESEL,
exit_ref1 type ref to ZIF_EX_BADISPFLI1.
selection-screen begin of block b1.
select-options: s_carr for spfli-carrid.
selection-screen end of block b1.
start-of-selection.
select * from spfli into corresponding fields of table it_spfli
where carrid in s_carr.
end-of-selection.
loop at it_spfli into wa_spfli.
write:/ wa_spfli-carrid,
wa_spfli-connid,
wa_spfli-cityfrom,
wa_spfli-deptime,
wa_spfli-arrtime.
hide: wa_spfli-carrid, wa_spfli-connid.
endloop.
at line-selection.
check not wa_spfli-carrid is initial.
create object exit_ref.
exit_ref1 = exit_ref.
call method exit_ref1->lineselection
EXPORTING
i_carrid = wa_spfli-carrid
i_connid = wa_spfli-connid.
clear wa_spfli.
http://help.sap.com/saphelp_nw04/helpdata/en/eb/3e7cf7940e11d295df0000e82de14a/frameset.htm
and
http://help.sap.com/saphelp_nw04/helpdata/en/eb/3e7cf7940e11d295df0000e82de14a/frameset.htm
Badihttp://help.sap.com/saphelp_erp2005/helpdata/en/73/7e7941601b1d09e10000000a155106/frameset.htm
http://support.sas.com/rnd/papers/sugi30/SAP.ppt
http://www.sts.tu-harburg.de/teaching/sap_r3/ABAP4/abapindx.htm
http://members.aol.com/_ht_a/skarkada/sap/
http://www.ct-software.com/reportpool_frame.htm
http://www.saphelp.com/SAP_Technical.htm
http://www.kabai.com/abaps/q.htm
http://www.guidancetech.com/people/holland/sap/abap/
http://www.planetsap.com/download_abap_programs.htm
http://help.sap.com/saphelp_nw04/helpdata/en/c8/1975cc43b111d1896f0000e8322d00/content.htm
/people/thomas.weiss/blog/2006/04/03/how-to-define-a-new-badi-within-the-enhancement-framework--part-3-of-the-series
/people/thomas.weiss/blog/2006/04/18/how-to-implement-a-badi-and-how-to-use-a-filter--part-4-of-the-series-on-the-new-enhancement-framework
http://esnips.com/doc/e06e4171-29df-462f-b857-54fac19a9d8e/ppt-on-badis.ppt
http://esnips.com/doc/43a58f51-5d92-4213-913a-de05e9faac0d/Business-Addin.doc
http://esnips.com/doc/10016c34-55a7-4b13-8f5f-bf720422d265/BADIs.pdf
http://esnips.com/doc/1e10392e-64d8-4181-b2a5-5f04d8f87839/badi.doc
http://esnips.com/doc/365d4c4d-9fcb-4189-85fd-866b7bf25257/customer-exits--badi.zip
http://esnips.com/doc/3b7bbc09-c095-45a0-9e89-91f2f86ee8e9/BADI-Introduction.ppt
http://help.sap.com//saphelp_470/helpdata/EN/eb/3e7cee940e11d295df0000e82de14a/frameset.htm
Thanks,.
Shakir
Similar Messages
-
How to replace obsolete download function module in ECC6.0?
Hi Experts,
How to replace obsolete download function module in ECC6.0?
Thanks,
Adi.Hi,
DOWNLOAD is obsolete FM in ECC 6. To get the same functionality , we need to use
CL_GUI_FRONTEND_SERVICES=>FILE_SAVE_DIALOG method (It provides the File selection feature)
and
GUI_DOWNLOAD function module.(It downloads the internal table from program to presentation server)
Please see the example below:
Example:
*CALL FUNCTION 'DOWNLOAD'
EXPORTING
FILENAME = p_filename
FILETYPE = DAT
TABLES
DATA_TAB = T_DOWNL
EXCEPTIONS
INVALID_FILESIZE = 1
INVALID_TABLE_WIDTH = 2
INVALID_TYPE = 3
NO_BATCH = 4
UNKNOWN_ERROR = 5
OTHERS = 6.
*End of deletion CH01-
Replacement Method for above code:
DATA: l_filename TYPE string,
l_filen TYPE string,
l_path TYPE string,
l_fullpath TYPE string,
l_usr_act TYPE I.
l_filename = P_filename.
CALL METHOD CL_GUI_FRONTEND_SERVICES=>FILE_SAVE_DIALOG
EXPORTING
DEFAULT_FILE_NAME = l_filename
CHANGING
FILENAME = l_filen
PATH = l_path
FULLPATH = l_fullpath
USER_ACTION = l_usr_act
EXCEPTIONS
CNTL_ERROR = 1
ERROR_NO_GUI = 2
NOT_SUPPORTED_BY_GUI = 3
others = 4.
IF sy-subrc = 0
AND l_usr_act <>
CL_GUI_FRONTEND_SERVICES=>ACTION_CANCEL.
CALL FUNCTION 'GUI_DOWNLOAD'
EXPORTING
FILENAME = l_fullpath
FILETYPE = 'DAT'
TABLES
DATA_TAB = T_DOWNL
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. -
Hi all,
My requirement is to replace download function module with cl_gui_frontend_services=>file_save_dialog.
When i give the window title it is not getting reflected in the save dialog box.how am i to get it ?
thanks in advance.class cl_gui_frontend_services definition load.
<b>data : l_title type string value 'FILE SAVE',</b>
l_fname type string,
l_path type string,
l_fpath type string,
l_enc type abap_bool value 'X',
l_ini type string value 'C:\',
l_usr type i ,
l_dname type string . " value 'C:\abc.xls'.
data :begin of idata_tab occurs 10,
a1 type c value 'A',
b1 type c value 'B',
c1 type c value 'C',
end of idata_tab.
move p_fname to l_dname.
call method cl_gui_frontend_services=>file_save_dialog
exporting
<b>window_title = l_title</b>
default_file_name = l_dname
with_encoding = l_enc
INITIAL_DIRECTORY = L_INI
changing
filename = l_fname
path = l_path
fullpath = l_fpath
user_action = l_usr
exceptions
cntl_error = 1
error_no_gui = 2
not_supported_by_gui = 3 . -
Download function module is obsolute
How to handle importing parameters of Download Function module in unicode conversion.
If i am converting my SAP from Non unicode to unicode environment how should i handle the importing parameters od download Function module in Cl_gui_frontend_services=> gui_download because there is only one importing paramter in that , where as in download function module i have 3 importing parametersHi,
Please see the below code .
Function module u2018DOWNLOADu2019
CALL FUNCTION 'DOWNLOAD'
EXPORTING
filename = p_file
filetype = 'WK1'
TABLES
data_tab = i_table.
would be replaced with:
data: gd_file type string.
DATA: ld_filename TYPE string,
ld_path TYPE string,
ld_fullpath TYPE string,
ld_result TYPE i.
types: t_uctable like line of i_table.
data: it_uctable type standard table of t_uctable.
gd_file = p_file.
shift gd_file RIGHT DELETING TRAILING '\'.
shift gd_file RIGHT DELETING TRAILING '/'.
shift gd_file left DELETING LEADING space.
CALL METHOD cl_gui_frontend_services=>file_save_dialog
EXPORTING
DEFAULT_EXTENSION = 'WK1'
default_file_name = gd_file
INITIAL_DIRECTORY = gd_file
CHANGING
filename = ld_filename
path = ld_path
fullpath = ld_fullpath
user_action = ld_result.
check ld_result eq 0.
gd_file = ld_fullpath.
gd_file = p_file.
it_uctable[] = i_table[].
CALL METHOD cl_gui_frontend_services=>gui_download
EXPORTING
filename = gd_file
filetype = 'ASC' " DAT,WK1
Append = ' ' "if mode = A then this would be X
CHANGING
data_tab = it_uctable
EXCEPTIONS
OTHERS = 1. -
DOWNLOAD function module not working in Portal
Hello,
We are in 4.6C. I have a piece of code that downloads an internal table to the presentation server using function module DOWNLOAD. This works fine in SAPGui. The function module DOWNLOAD does not work in the EP6 portal environment (the part where a popup is presented to the user to select the directory/file name to save the file in). Instead a screen is shown which says "This screen exists for technical reasons....".
I have been looking for options and have tried the GUI_DOWNLOAD method which does not work in the portal either.
Anyone face this issue? Please advice possible resolutions.
Thanks!Correct, but the following thread got me started:
Adobe Acrobat Reader and MIME-DOWNLOAD
Rob -
Application server File renaming function module creation - sample code
I want to rename a file from application server using function module.
Can somebody tell me is there is any such sap provided function module
is there?If not please tell me what should be abap routine to create such
a function module.
Thanks in advance....You need to create a logical file name using FILE transaction. Then create a logical path and assign the physical path (actual path on app. server) to the logical path. While defining the physical filne name you have the option of selecting from the list of 'reserved word' available. For e.g. <DATE>, <TIME> etc.
Steps are:
1) Execute transaction 'FILE'.
2) Create a logical file path.
3) Assign Syntax Grp (Operating Systems) to above logical file path. You need to create the syntax group to identify the physical path in the application server. This step actually assigns the physical path to the logical path.
4) Create a logical file.
5) Assign the physical file name to the logical file. You have lots of system reserved word to choose from to suffix your file name with date and time etc.
The physical file name is used by the function module FILE_GET_NAME at runtime to compose a complete platform-specific file name.
For more information, see [renaming a file on the application server;.
Regards. -
Unicode Error in DOWNLOAD function module
Hi ABAPpers,
I am getting the unicode error in using
CALL FUNCTION 'DOWNLOAD'
EXPORTING
bin_filesize = v_bytecount
filename = v_download_filename
filetype = 'WK1'
IMPORTING
act_filename = v_download_filename
TABLES
data_tab = i_download.
If i try to use GUI_DOWNLOAD, it doesn't have importing parameter act_filename.
What alternate function module should i use to rectify this unicode error?
Regards,
RahulHi,
The answer is similar to the one for your previous post. You need to use both CL_GUI_FRONTEND_SERVICES=>FILE_SAVE_DIALOG and GUI_DOWNLOAD
DATA: PRC_WINDOW_TITLE TYPE STRING,
PRC_DEFAULT_FILE_NAME TYPE STRING,
PRC_INITIAL_DIRECTORY TYPE STRING,
PRC_FILE_NAME TYPE STRING,
PRC_PATH TYPE STRING,
PRC_FULL_PATH TYPE STRING,
PRC_USER_ACTION TYPE I.
PRC_INITIAL_DIRECTORY = FILENAME.
PRC_DEFAULT_FILE_NAME = FILENAME.
PRC_WINDOW_TITLE = 'Debitoren-Saldenliste'.
CALL METHOD CL_GUI_FRONTEND_SERVICES=>FILE_SAVE_DIALOG
EXPORTING
WINDOW_TITLE = PRC_WINDOW_TITLE
DEFAULT_FILE_NAME = PRC_DEFAULT_FILE_NAME
INITIAL_DIRECTORY = PRC_INITIAL_DIRECTORY
CHANGING
FILENAME = PRC_FILE_NAME
PATH = PRC_PATH
FULLPATH = PRC_FULL_PATH
USER_ACTION = PRC_USER_ACTION
EXCEPTIONS
CNTL_ERROR = 1
ERROR_NO_GUI = 2
NOT_SUPPORTED_BY_GUI = 3
OTHERS = 4
IF SY-SUBRC = 0 AND PRC_USER_ACTION NE
CL_GUI_FRONTEND_SERVICES=>ACTION_CANCEL.
CALL FUNCTION 'GUI_DOWNLOAD'
EXPORTING
FILENAME = PRC_FILE_NAME
FILETYPE = 'ASC'
WRITE_FIELD_SEPARATOR = '#'
TABLES
DATA_TAB = TAB_EXCEL
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
ENDIF. -
How to create Business partner from uploaded file by Function module?
Hi Experts,
I have uploaded Business partner data from a file to server now from individual records I have to create Business partner and have to update the records in the tables. Means from on record i have to create one business partner in sap system.
I have uploaded the records in the system and stored in a internal table.Now my task is to create business partner and have to update tables.
I need a function module which create BP by each records uploaded and update the respective tables of BP and exports business partner ID.
Please respond soon Its a requirement form the client.
Prem.HI,
You can use the bapi 'BAPI_BUPA_CREATE_FROM_DATA' to create a business partner .
call function 'BAPI_BUPA_CREATE_FROM_DATA'
exporting
businesspartnerextern = g_bpartner-partn
partnercategory = partnercategory
partnergroup = partnegroup
centraldata = centraldata
centraldataperson = centraldataperson
centraldataorganization = centraldataorganization
* CENTRALDATAGROUP =
addressdata = addressdata
* DUPLICATE_MESSAGE_TYPE =
* IMPORTING
* BUSINESSPARTNER = G_BPARTNER-BUSINESSPARTNER
tables
telefondata = telefondata
faxdata = faxdata
e_maildata = e_maildata
return = return
* ADDRESSDUPLICATES =
addressnotes = addressnotes. -
ESS / MSS - download function module doens't work
Hi all,
We are working with SAP 4.6c, and using function GUI_DOWNLOAD to download data to xls file. When we access the application through ESS / MSS, we don't know why, but it doesn't take into consideration parameter WRITE_FIELD_SEPARATOR = "X". The result is, it'll download the data into the file, but when we open it, the entire record is contained in just one cell. Running the same program using SAP GUI, it works perfectly.
Any idea or suggestion?
Thanks in advance.
TAG: ESS, MSS, GUI_DOWNLOAD, WS_DOWNLOAD, EMPLOYEE SELF SERVICE, MANAGER SELF SERVICE.Hi Cassio,
Is the data in internal table is tab separated or not?
If not then make the data of internal tabel as tab separated before downloading.
Do like this:
DATA: c_tab TYPE c VALUE cl_abap_char_utilities=>horizontal_tab.
Suppose you have a comma as field separator then to make it as tab seprated use thsi syntex.
REPLACE ALL OCCURANCES OF SPACE IN ITAB WITH C_TAB.
Or Loop the internal table and append the data of 1st internal table into another int. table using c_tab as separaptor.
Then use GUI_DOWNLOAD. this time it will download the records properly.
Ashvender
Message was edited by:
Ashvender Kumar -
How to read the name of a PDF file? - function module
Hi,
I have <b>some individual pdf documents in my desktop</b>.I need to <b>bulk-upload it to the content server and document related information to the SAP-DB</b>.
Need your guidance.
Regards,
John.try this code it will convert file to PDF file
REPORT ZWARUN_CONVERSION_PDF .
***********Tables***************
TABLES:VBRK.
***********Data Declaration***************
DATA: LV_NUMBYTES TYPE I,
LV_SPOOLNO TYPE TSP01-RQIDENT.
DATA:C_LAYOUT LIKE PRI_PARAMS-PAART VALUE 'X_65_132', "Layout
C_X TYPE C VALUE 'X'.
DATA: NUMBYTES TYPE I,
CANCEL.
***************Internal table of Pdf************
DATA: IT_PDF LIKE TLINE OCCURS 10 WITH HEADER LINE.
DATA:BEGIN OF IT_VBRK OCCURS 2,
FKART LIKE VBRK-FKART,
FKTYP LIKE VBRK-FKTYP,
VBTYP LIKE VBRK-VBTYP,
END OF IT_VBRK.
SELECTION-SCREEN BEGIN OF BLOCK BLK WITH FRAME.
SELECT-OPTIONS: S_BUKRS FOR VBRK-BUKRS,
S_GJAHR FOR VBRK-GJAHR.
SELECTION-SCREEN END OF BLOCK BLK .
PARAMETERS:
spoolno like tsp01-rqident,
DOWNLOAD AS CHECKBOX DEFAULT 'X',
P_FILE LIKE RLGRAP-FILENAME DEFAULT 'C:\warun1.pdf'.
START-OF-SELECTION.
SELECT FKART
FKTYP
VBTYP
INTO TABLE IT_VBRK
FROM VBRK
WHERE BUKRS IN S_BUKRS
AND GJAHR IN S_GJAHR.
END-OF-SELECTION.
DATA: LK_PARAMS TYPE PRI_PARAMS,
LV_VALID.
if not p_mailid is initial.
All the parameters passed are constants, so exceptions
doesn't get raised
CALL FUNCTION 'GET_PRINT_PARAMETERS'
EXPORTING
IMMEDIATELY = ' '
LAYOUT = C_LAYOUT "'X_65_132'
NO_DIALOG = C_X
IMPORTING
OUT_PARAMETERS = LK_PARAMS
VALID = LV_VALID.
IF LV_VALID <> SPACE .
NEW-PAGE PRINT ON PARAMETERS LK_PARAMS NO DIALOG.
*--To display the final report
PERFORM PRINT_REPORT.
NEW-PAGE PRINT OFF.
*---To convert the download to PDF
PERFORM CONV_TO_PDF_DOWNLOAD.
PERFORM DOWNLOAD.
ENDIF.
endif.
*--To display the final report
PERFORM PRINT_REPORT.
*& Form print_report
FORM PRINT_REPORT .
*write:/ 'I will do it' color 4.
write:/ 'Yes' color 4.
write:/ 'we will do it' color 4.
write:/ 'lets talk abt changing life style' color 4.
write:/'By warun'.
LOOP AT IT_VBRK.
WRITE:/ IT_VBRK-FKART,IT_VBRK-FKTYP,IT_VBRK-VBTYP.
ENDLOOP.
ENDFORM. " print_report
*& Form conv_to_pdf_download
FORM CONV_TO_PDF_DOWNLOAD .
CLEAR IT_VBRK.
WAIT UP TO 2 SECONDS.
LV_SPOOLNO = SY-SPONO.
CALL FUNCTION 'CONVERT_ABAPSPOOLJOB_2_PDF'
EXPORTING
SRC_SPOOLID = LV_SPOOLNO
NO_DIALOG = ''
DST_DEVICE =
PDF_DESTINATION =
IMPORTING
PDF_BYTECOUNT = LV_NUMBYTES
PDF_SPOOLID = pdfspoolid
LIST_PAGECOUNT =
BTC_JOBNAME = jobname
BTC_JOBCOUNT = jobcount
TABLES
PDF = IT_PDF.
ENDFORM. " conv_to_pdf_download
*& Form download
FORM DOWNLOAD .
download PDF file ***********
CHECK DOWNLOAD = 'X'.
CALL FUNCTION 'DOWNLOAD'
EXPORTING
BIN_FILESIZE = LV_NUMBYTES
FILENAME = P_FILE
FILETYPE = 'BIN'
IMPORTING
ACT_FILENAME = P_FILE
FILESIZE = LV_NUMBYTES
CANCEL = CANCEL
TABLES
DATA_TAB = IT_PDF.
IF CANCEL = SPACE.
WRITE: / LV_NUMBYTES, P_FILE.
ENDIF.
ENDFORM. " download -
File download function when an action triggers
Hi,
I am having XSTRING.
When user click on popup action button, user has to get file browse functionallity.
after choosing the file path XSTRING has to convert into PDF format and store in the path.
My problem is how to get file browse functionallity without using UI element.
I tried F4_SEARCHFILE. But this is giving error like this is for GUI.
Please let meknow if any way is there.
Regards,
sarathHi,
You can use the static class cl_wd_runtime_services=>attach_file_to_response to download the file in WDA. It will produce a download box just as you get when you download something from the browser.
Refer to the below link to find out how to use the class method -
http://www.divulgesap.com/blog.php?p=NTc=
Cheers,
Ravi -
Function module upload and download
Hello All,
while using Upload and download function modules, how to avoid popup for providing file path, as am already passing it from reading from the selections screen. while running again i dont want to get the popup asking file path.
thx in advance,
sippy.Hi,
You can try with
CALL METHOD CL_GUI_FRONTEND_SERVICES=>GUI_UPLOAD
EXPORTING
FILENAME = I_DIR
READ_BY_LINE = 'X' " FILETYPE = 'ASC'
CHANGING
DATA_TAB = IT_TEXTO
EXCEPTIONS
FILE_OPEN_ERROR = 1
FILE_READ_ERROR = 2
BAD_DATA_FORMAT = 8
OTHERS = 19.
CALL METHOD CL_GUI_FRONTEND_SERVICES=>GUI_DOWNLOAD
EXPORTING
BIN_FILESIZE =
FILENAME = I_DIR2
FILETYPE = 'ASC'
APPEND = SPACE
WRITE_FIELD_SEPARATOR = SPACE
HEADER = '00'
TRUNC_TRAILING_BLANKS = SPACE
CHANGING
DATA_TAB = IT_TEXTO.
Best Regards
Ana -
Java WebDynpro's and IE security settings for file download
We have a EP 7.0 SP13 environment on which we have deployed a number of own developed java webdynpro's. In some of these webdynpro's we provide the file download functionality. The portal and webdynpro's are used by both internal personnel and external customers.
On the other hand the default Internet security settings for Internet Explorer, disable "Automatic prompting for file downloads".
When a user, with these default security settings active, tries to use our webdynpro's file download functionality, the screen seems to refreshes but no file download starts. When (s)he retries, the session runs for some minutes and gives following error message:
"com.sap.tc.webdynpro.services.session.LockException: Thread SAPEngine_Application_Thread[impl:3]_20 failed to acquire exclusive lock on client session ClientSession".
This behavior is explained in SAPNote 1234847. Webdynpro provides a single-thread module, meaning a user session is blocked for the during of the request. And because the previous file download isn't yet completed the new try can't start.
Issue now, although the users IE settings allow file downloads and don't block pop up's, he can't download the file and even isn't made aware of the cause of the failure.
How can we avoid this issue, without having to communicate the
application requires specific browser settings?Welcome to the Apple Support Communities
See > http://support.apple.com/kb/HT5290
You can install the program using different ways:
1. Right-click the application installer and choose Open.
2. Go to System Preferences > Security and Privacy and select Anywhere in Allow applications downloaded from -
How can i get currency values from flatfile to function module
Dear All,
I have to take currency values from flat file and i have to assign those flat file value to function module .
Eg: "Convert_to_local_currency". I need technical code how to calculate those amount in work area and how to assign those amount value function module.
I need sample program for currency conversion from flat file to function module. My requirement is based on flat file amount i have to calculate in work area and assign those work area to function module.
With Regards,
BaskaranHi Satish or Baskaran,
First conform in which format the flat file is present, as abhi mentioned if it is there in notepad
try to use F.M GUI_UPLOAD as shown below...
CALL FUNCTION 'GUI_UPLOAD'
EXPORTING
FILENAME = 'C:\Desktop\rpf1.TXT'
TABLES
DATA_TAB = ITAB.
Now loop at ITAB Into Work_area and press the respect currency fields which you want and in the same way
if the file is in EXCEL format use F.M ALSM_EXCEL_TO_INTERNAL_TABLE
CALL FUNCTION 'ALSM_EXCEL_TO_INTERNAL_TABLE'
EXPORTING
filename = P_FNAME
i_begin_col = 1
i_begin_row = 1
TABLES
intern = ITAB
LOOP AT ITAB INTO WA.
CALL FUNCTION 'CONVERT_TO_LOCAL_CURRENCY'
EXPORTING
foreign_currency = wa-waers
local_currency = wa-waers
IMPORTING
local_amount = tvals-gross.
ENDIF.
endloop.
And as mentioned loop the records into work area and process the currenct field which is present in the
ITAB according to its field name. And make sure within the loop you call your function module.
Regards
VEnk@
Edited by: Venkat Reddy on Dec 9, 2009 5:51 PM -
Table Types in Function Module
Hi,
How to use a table to capture the data from a file, in function module instead of using TABLES parameter.
This parameter should exist in IMPORT parameters of Function Module
Many Thanks in Advancehi
you can check out this thread
Re: Entering data into a dynamically created table.
hope it helps
regards
Aakash Banga
Maybe you are looking for
-
Hi I have just bought a new mac book and have migrated everything accross. I want to delete my itunes account so my husband can put his itunes on the computer. I have deauthorised the computer but my music etc is still say there. Any ideas? BW Sar
-
Send query results to a file using Toad
Hello, I have a select statement that generates xml rows, and I need to send the results to a file. I am using TOAD VI. The rows generate ok but when I right click and choose the save as option all I end up with is an empty file. Is there a way I can
-
Hi, I wanted to send mails from my solaris box. Below is the step i used # svcs | grep mail # svcadm enable smtp # svcs | grep mail online 14:24:58 svc:/network/smtp:sendmail # mail -s "HELLO" [email protected] Nothing happens after this... i tried w
-
New Portal Theme not showing up in list
Hello fellow experts, I'm using EP 7 sp10...I've created a new portal theme, it shows up on the Portal Display page, under my Themes, however it does not show up in the drop down list (Content admin/Portal Content/portal users/standard portal users/e
-
What are some ways to do split screen?
i am looking for some ways in fcp to divide up the screen to show two / four things going on at same time, but i want them all to be in the right proportion not all squashed or streched out, i currently do a picture in picture type thing by using sup