SO_SPLIT_FILE_AND_PATH
Hi Experts,
The FM SO_SPLIT_FILE_AND_PATH is used to separate a file and directory.
That means if i give full path of a file ,it will separate the directory name and file name in to two return variables.But it is not working in ECC6.0.If i run in SE37 directly it is working.But if i call that i my ABAP pgm it is giving SY-subrc = 0 after exicuting..but it is not showing any data for filename variable.
Can any body tell me any alternative for this in ECC6.0?
Regards
Ravi.
report ztest_hy.
data: file(255), path(100), name(100) .
file = 'c:\desktop\ file.doc'.
CALL FUNCTION 'SO_SPLIT_FILE_AND_PATH'
EXPORTING
FULL_NAME = file
IMPORTING
STRIPPED_NAME = name
FILE_PATH = path
EXCEPTIONS
X_ERROR = 1
OTHERS = 2
IF SY-SUBRC <> 0.
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
write:/ name.
This is the test program i have just written. i tested, it is working fine. probably u have give '/' instead of '\'.
Similar Messages
-
Function Module CALL FUNCTION 'SO_SPLIT_FILE_AND_PATH'
Hello All,
While using CALL FUNCTION 'SO_SPLIT_FILE_AND_PATH' to download to Unix file in GLD (Version 4.5b) the F.M is working fine, but in KLD(Version ECC 6.0) CALL FUNCTION 'SO_SPLIT_FILE_AND_PATH' is not working & the error message is displayed saying incomplete filename.
Could you let me know any alternate Function Module/ Method in this regard.
ThanksHi,
In ECC6 also Its Working fine only.
1. Go to SE37 -> Enter FM Name -> Test(F8).
2. Give any file path and test it.
Thanks,
Reward If Helpful. -
How to get text file from app server and process it.
Hello experts,
I created a test data based form my recording. Now, I do not know where can I find it.
Also, I want to create a program that lets users input the file name in the input parameter
(selection screen) and it would automatically process/split that file. Again, thank you guys
and take care!hi viray,
im sorry i thought it was reading from presentation server....:-)
>>I want to create a program that lets users input the file name in the input parameter
(selection screen)
at selection-screen on value-request for p_file.
perform file_help using p_file.
form file_help using p_p_file.
call function 'RZL_READ_DIR_LOCAL'
exporting
name = p_dir
tables
file_tbl = t_filetab
EXCEPTIONS
ARGUMENT_ERROR = 1
NOT_FOUND = 2
OTHERS = 3
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_help
Splitting File and path.
use the FM <b>SO_SPLIT_FILE_AND_PATH</b>
hope this helps,
do reward if it helps,
priya.
Message was edited by: Priya -
Problems in uploading from excel sheet to internal table
hi experts,
i got one problem regarding uploading data from excel sheet to int.table. I used FM ALSM_EXCEL_TO_INTERNAL_TABLE but in that the value is char of 50. but i need a case where i have to send value more than 50 characters. please suggest me any other FM to overcome this problem.
advanced thanks
vijayHi,
>
Vijay Krishna Arvapalli wrote:
> hi tarun,
>
> thank you for your reply
>
> but when i tried to use FM TEXT_CONVERT_XLS_TO_SAP it is giving error actually that 'Error generating the test frame'.
>
> so can you suggest me with some other option where i can upload the field with more than 50 character length.
>
> thank you
> regards
> vijay
Yes, when you execute the FM from SE37, then it displays a message.
Just copy the below code and paste it in a report (SE38) and execute.
Create a file in C:/ with name test.xls and execute it will display the records even with more than 50 characters of length.
I have tested and its working.
I have taken three fields in the excel file empid, name and doj.
TYPE-POOLS : truxs.
PARAMETERS : p_file TYPE rlgrap-filename DEFAULT 'C:\TEST.XLS'.
DATA : BEGIN OF itab OCCURS 0,
empid(150) TYPE c,
name(150) TYPE c,
doj(150) TYPE c,
END OF itab.
DATA: it_raw TYPE truxs_t_text_data.
AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_file.
PERFORM f4_file_process USING p_file.
AT SELECTION-SCREEN.
PERFORM validate_file_path USING p_file.
START-OF-SELECTION.
PERFORM upload_data.
END-OF-SELECTION.
PERFORM display_data.
*& Form F4_FILE_PROCESS
* text
* -->P_FILE_PATH text
FORM f4_file_process USING p_file.
CALL FUNCTION 'F4_FILENAME'
EXPORTING
program_name = syst-cprog
dynpro_number = syst-dynnr
field_name = 'P_FILE'
IMPORTING
file_name = p_file.
IF sy-subrc NE 0.
MESSAGE e000(zsd).
ENDIF.
ENDFORM. " F4_FILE_PROCESS
*& Form VALIDATE_FILE_PATH
* text
* -->P_FILE text
FORM validate_file_path USING p_file.
DATA : lv_dir TYPE string,
lv_file TYPE string,
lv_result(1) TYPE c.
DATA : lv_filename TYPE string.
lv_filename = p_file.
CALL FUNCTION 'SO_SPLIT_FILE_AND_PATH'
EXPORTING
full_name = p_file
IMPORTING
stripped_name = lv_file
file_path = lv_dir
EXCEPTIONS
x_error = 1
OTHERS = 2.
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 METHOD cl_gui_frontend_services=>directory_exist
EXPORTING
directory = lv_dir
RECEIVING
result = lv_result
EXCEPTIONS
cntl_error = 1
error_no_gui = 2
wrong_parameter = 3
not_supported_by_gui = 4
OTHERS = 5.
IF lv_result IS INITIAL.
MESSAGE 'Invalid Directory' TYPE 'E'.
ENDIF.
CLEAR lv_result.
CALL METHOD cl_gui_frontend_services=>file_exist
EXPORTING
file = lv_filename
RECEIVING
result = lv_result
EXCEPTIONS
cntl_error = 1
error_no_gui = 2
wrong_parameter = 3
not_supported_by_gui = 4
OTHERS = 5.
IF lv_result IS INITIAL.
MESSAGE 'Invalid File' TYPE 'E'.
ENDIF.
ENDFORM. " VALIDATE_FILE_PATH
*& Form UPLOAD_DATA
* text
* --> p1 text
* <-- p2 text
FORM upload_data .
CALL FUNCTION 'TEXT_CONVERT_XLS_TO_SAP'
EXPORTING
i_field_seperator = 'X'
i_line_header = 'X'
i_tab_raw_data = it_raw
i_filename = p_file
TABLES
i_tab_converted_data = itab[]
EXCEPTIONS
conversion_failed = 1
OTHERS = 2.
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. " UPLOAD_DATA
*& Form DISPLAY_DATA
* text
* --> p1 text
* <-- p2 text
FORM display_data .
LOOP AT itab.
WRITE : / itab-empid, itab-name, itab-doj.
ENDLOOP.
ENDFORM. " DISPLAY_DATA
Hope this helps you.
Regards,
Tarun -
Save filename in application server
i am uploading multiples files from desktop to application server and its working good. But user can upload same file name more than 4 or 5 times together.And i have to write the file on server by appending _2 _2 _2 for every new file. Right now i am able to do for one file name(.i.e. the file if already exsist its appending _2 with the new file name). but if i am uploading the same file third or fourth time its not writting the file on server. I have to just append _2 _2 with file that already exsist.
here is the code that i had built up...
DATA: BEGIN OF t_itab OCCURS 0,
soldto(10) TYPE c,
enumber(10) TYPE c,
ename(35) TYPE c,
land1(35) TYPE c,
name2(35) TYPE c,
matnr(18) TYPE c,
quantity(13) TYPE c,
shipdate like sy-datum,
invoiceno(35) TYPE c,
scost(13) TYPE c,"DECIMALS 2,
ucost(13) TYPE c,"DECIMALS 2,
dlno(10) TYPE c,
END OF t_itab.
DATA DECLARATION *
DATA :file TYPE string.
DATA :in_file(150) TYPE c.
DATA: stripped TYPE rlgrap-filename.
DATA: file_path TYPE rlgrap-filename.
DATA: new_file_name TYPE rlgrap-filename.
DATA :l_date(10) TYPE c,
x_date TYPE d.
DATA: xtitle1(132),
xtitle2 LIKE xtitle1,
xtitle3 LIKE xtitle1,
xtitle4 LIKE xtitle1.
CONSTANTS:EMAIL_KEY(20) TYPE c VALUE 'DISTY_POS_ERRORS'.
P A R A M E T E R S *
SELECTION-SCREEN BEGIN OF BLOCK b1 WITH FRAME TITLE text-001.
SELECT-OPTIONS s_uload FOR rlgrap-filename VISIBLE LENGTH 128
NO INTERVALS.
SELECTION-SCREEN END OF BLOCK b1.
AT SELECTION-SCREEN ON VALUE-REQUEST FOR s_uload-low.
CALL FUNCTION 'F4_FILENAME'
EXPORTING
program_name = 'ZSR00340'
dynpro_number = syst-dynnr
field_name = ' '
IMPORTING
file_name = s_uload-low.
AT SELECTION-SCREEN ON BLOCK b1.
IF s_uload IS INITIAL.
MESSAGE e000(0k) WITH 'Please enter the file path'.
ENDIF.
TOP-OF-PAGE.
CALL FUNCTION 'Z_REPORT_HEADERS'
EXPORTING
columns = 140
period = space
rpt_name = 'ZSR00340'
rpt_title1 = sy-title
RPT_TITLE2 =
RPT_TITLE3 =
COMP_CODE =
IMPORTING
text01 = xtitle1
text02 = xtitle2
text03 = xtitle3
text04 = xtitle4.
WRITE: / xtitle1,
/ xtitle2,
/ xtitle3.
IF NOT xtitle4 = space.
WRITE: / xtitle4.
ENDIF.
ULINE.
FORMAT COLOR COL_HEADING ON INTENSIFIED OFF .
START-OF-SELECTION *
START-OF-SELECTION.
LOOP AT s_uload.
CALL FUNCTION 'WS_UPLOAD'
EXPORTING
filename = s_uload-low
filetype = 'DAT'
HEADLEN = ' '
LINE_EXIT = ' '
TRUNCLEN = ' '
USER_FORM = ' '
USER_PROG = ' '
DAT_D_FORMAT = ' '
IMPORTING
FILELENGTH =
TABLES
data_tab = t_itab
EXCEPTIONS
conversion_error = 1
file_open_error = 2
file_read_error = 3
invalid_type = 4
no_batch = 5
unknown_error = 6
invalid_table_width = 7
gui_refuse_filetransfer = 8
customer_error = 9
no_authority = 10
OTHERS = 11
IF sy-subrc <> 0.
MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
PERFORM sub_send_mail." using g_text.
EXIT.
ENDIF.
*function to get customer name as ten digit
CALL FUNCTION 'CONVERSION_EXIT_ALPHA_INPUT'
EXPORTING
input = t_itab-soldto
IMPORTING
output = t_itab-soldto.
Function to prefix the Filename
CALL FUNCTION 'SO_SPLIT_FILE_AND_PATH'
EXPORTING
full_name = s_uload-low
IMPORTING
stripped_name = stripped
file_path = file_path.
*format date as mmddyyyy from yyyymmdd
x_date = sy-datum.
CONCATENATE x_date4(2) x_date6(2) x_date+0(4) INTO l_date.
CLEAR new_file_name.
*conactenated the directory with system and with the path name
CONCATENATE '/xapp' sy-sysid 'disti/pos/' INTO in_file
SEPARATED BY '/'.
CONCATENATE in_file 'POS' l_date t_itab-soldto
INTO new_file_name SEPARATED BY '_'.
REPLACE FIRST OCCURRENCE OF '_' IN new_file_name WITH ''.
*check for exsistency of file
OPEN DATASET new_file_name FOR UPDATE IN LEGACY TEXT MODE.
IF sy-subrc = 0.
*if exists then append '2' again with the new filename
CONCATENATE new_file_name '2' INTO new_file_name
SEPARATED BY '_'.
CLOSE DATASET new_file_name.
ENDIF.
*to write data on server
OPEN DATASET new_file_name FOR OUTPUT IN LEGACY TEXT MODE.
*looping on Internal table to write all data
LOOP AT t_itab.
TRANSFER t_itab TO new_file_name .
ENDLOOP.
*if successfully uploaded then success message
IF sy-subrc EQ 0.
WRITE:/ 'Files are uploaded'.
ENDIF.
CLOSE DATASET new_file_name.
so cananyone plz suggest what should i do for appending _2 with the file that is already there on server...Hi
I don't understand your problem well:
If there is a file on server: should you insert a new file with the data of old file and new data?
if it's so:
DATA: WA(1000),
last_file(100).
CLEAR LAST_FILE.
DO.
OPEN DATASET new_file_name FOR UPDATE IN LEGACY TEXT MODE.
IF sy-subrc = 0.
Save the name of last file:
last_file = new_file_name.
CLOSE DATASET new_file_name.
ELSE.
EXIT.
ENDIF.
CONCATENATE new_file_name '2' INTO new_file_name
SEPARATED BY '_'.
ENDDO.
Now before downloading new data, you should transfer old data:
OPEN DATASET new_file_name FOR OUTPUT IN LEGACY TEXT MODE.
IF NOT LAST_FILE IS INITIAL.
OPEN DATASET LAST_FILE FOR UPDATE IN LEGACY TEXT MODE.
DO.
READ DATASET LAST_FILE INTO WA.
IF SY-SUBRC <> 0. EXIT. ENDIF.
TRANSFER WA TO new_file_name.
ENDDO.
CLOSE DATASET LAST_FILE.
ENDIF.
*looping on Internal table to write all data
LOOP AT t_itab.
TRANSFER t_itab TO new_file_name .
ENDLOOP.
*if successfully uploaded then success message
IF sy-subrc EQ 0.
WRITE:/ 'Files are uploaded'.
ENDIF.
CLOSE DATASET new_file_name.
Max
Message was edited by: max bianchi
Message was edited by: max bianchi -
Functional module to get the File from a given Directory
Hi all,
I am using a FM name 'subst_get_file_list' to get the file from a given directory but it is accepting only 40 Character length file only my requirement is to accept file name other than 40 char,
give me good sugestion
regards
paulHi Paul,
Check the Function Module Gayathri has given. ie. 'SO_SPLIT_FILE_AND_PATH'.
In the exporting parameter FULL_NAME , give the path name and in the importing parameter stripped_name , you will get the filename.
Check this code.
REPORT ZSHAIL_SPLITFILE.
data: it_tab type filetable with header line,
gd_subrc type i.
tables: rlgrap.
data: path type string,
file_name type string.
parameters file_nam type rlgrap-filename .
data: user_act type i.
at selection-screen on value-request for file_nam.
CALL METHOD cl_gui_frontend_services=>file_open_dialog
EXPORTING
WINDOW_TITLE = 'select a file'
DEFAULT_EXTENSION = '*.txt
DEFAULT_FILENAME = ''
FILE_FILTER = '*.txt'
INITIAL_DIRECTORY = ''
MULTISELECTION = abap_false
WITH_ENCODING =
CHANGING
file_table = it_tab[]
rc = gd_subrc
USER_ACTION = user_act
FILE_ENCODING =
EXCEPTIONS
FILE_OPEN_DIALOG_FAILED = 1
CNTL_ERROR = 2
ERROR_NO_GUI = 3
NOT_SUPPORTED_BY_GUI = 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.
if user_act = '0'.
loop at it_tab.
file_nam = it_tab-filename.
endloop.
endif.
path = file_nam.
CALL FUNCTION 'SO_SPLIT_FILE_AND_PATH'
EXPORTING
full_name = path
IMPORTING
STRIPPED_NAME = file_name
FILE_PATH =
EXCEPTIONS
X_ERROR = 1
OTHERS = 2
IF sy-subrc <> 0.
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
at selection-screen.
message i001(zmess) with file_name.
Regards,
SP. -
How to pass variable to data tab which replace text in Word attachment
Dear ABAP folks,
I use METHOD cl_gui_frontend_services=>gui_upload to upload my word doc in BINARY and sucessful sent this word doc as attachment with Thomas Jung's FUNCTION 'Z_E_KEG_SEND_SIMPLE_EMAIL'.
However, inside the word file, i need insert varible personnel number p0000-pernr.
*How to pass the value p0000-pernr to data tab (lt_data) which replace symbol text &s_pernr& in doc before created as attachment ? *
I try 'SCMS_BINARY_TO_TEXT' and 'SCMS_BINARY_TO_STRING' but fail.
Need expert 's help.
Thanks & Rgds,
Felice
Below are my code:
** Upload file to read data as binary
CALL METHOD cl_gui_frontend_services=>gui_upload
IF lt_data[] IS NOT INITIAL.
CALL FUNCTION 'SO_SPLIT_FILE_AND_PATH'
EXPORTING
full_name = lv_filename
IMPORTING
stripped_name = lv_str_filename
EXCEPTIONS
x_error = 1
OTHERS = 2.
SPLIT lv_str_filename AT '.' INTO lv_junk lv_filetype.
ls_attach-type = lv_filetype.
ls_attach-subject = lv_str_filename.
ls_attach-CONTENT_HEX[] = lt_data[].
APPEND ls_attach TO lt_attach.
CLEAR ls_attach.
ENDIF.
CALL FUNCTION 'Z_E_KEG_SEND_SIMPLE_EMAIL'
EXPORTING
REQUESTED_STATUS = 'E'
DOCUMENTS = lt_attach
RECIPIENTS = lt_rec
MESSAGE = t_objtxt
SUBJECT = 'Confirmation Review'.
COMMIT WORK.
clear lt_rec.
clear ls_rec-i_copy.Dear Luigi,
Do you have sample code which replace the value in Word file ?
I try sample code below, but the mergefield 'Title' in Word file not replace instead it override the whole file.
Even i try with different download path, it also not update field 'Title'.
The mergefield i insert by microsoft word > mailings > insert merge field >Title.
report ztestmail_c.
data: global_filename LIKE RLGRAP-FILENAME.
data: begin of imerge occurs 0,
Title(85) type c, field02(85) type c,
field03(85) type c, field04(85) type c,
end of imerge.
data: begin of itabf occurs 31,
ff(10),
end of itabf.
itabf-ff = 'Title'. "append itabf.
imerge-Title = 'test0'.
append imerge. clear imerge.
global_filename = 'c:\temp\confirm-form0508.doc'.
CALL FUNCTION 'WORD_OLE_FORMLETTER'
EXPORTING
WORD_DOCUMENT = global_filename
* hidden =
* word_password = " Password for the mail merge file (.DOC)
* password_option = 1 " i Controls password use
* file_name = 'confirm-form0508' " rlgrap-filename Name of download file (w/o ext.)
* new_document = " Create new Word document
DOWNLOAD_PATH = 'C:\temp\confirm-form0615.doc'
TABLES
DATA_TAB = imerge
FIELDNAMES = itabf
EXCEPTIONS
INVALID_FIELDNAMES = 1
USER_CANCELLED = 2
DOWNLOAD_PROBLEM = 3
COMMUNICATION_ERROR = 4
OTHERS = 5. -
Unable to delete the BDS attachment
Hi,
I am using the FM BDS_BUSINESSDOCUMENT_CREA_TAB in my ztable to attach file to the BO. I am able to attach the file and open it from the document but i am unable to delete the same document.
Dd anyone know the solution? Pls suggest.
This is my code:
CALL METHOD cl_gui_frontend_services=>gui_upload
EXPORTING
filename = lv_file
filetype = 'BIN' "Binary Mode
IMPORTING
filelength = lv_filelength
CHANGING
data_tab = lt_data
EXCEPTIONS
file_open_error = 1
file_read_error = 2
no_batch = 3
gui_refuse_filetransfer = 4
invalid_type = 5
no_authority = 6
unknown_error = 7
bad_data_format = 8
header_not_allowed = 9
separator_not_allowed = 10
header_too_long = 11
unknown_dp_error = 12
access_denied = 13
dp_out_of_memory = 14
disk_full = 15
dp_timeout = 16
not_supported_by_gui = 17
error_no_gui = 18
OTHERS = 19.
CALL FUNCTION 'OWN_LOGICAL_SYSTEM_GET'
IMPORTING
own_logical_system = lv_logical_system.
CALL FUNCTION 'SO_SPLIT_FILE_AND_PATH'
EXPORTING
full_name = lv_file
IMPORTING
stripped_name = lv_filename
file_path = lv_filepath
EXCEPTIONS
x_error = 1
OTHERS = 2.
SPLIT lv_filename AT '.' INTO lv_strip lv_extension.
CALL FUNCTION 'SDOK_MIMETYPE_GET'
EXPORTING
extension = lv_extension
IMPORTING
mimetype = lv_mimetype.
ls_files-doc_count = '1'.
ls_files-comp_count = '1'.
MOVE lv_filename TO ls_files-filename.
MOVE lv_filepath TO ls_files-directory.
APPEND ls_files TO lt_files.
CLEAR ls_files.
ls_components-doc_count = '1'.
ls_components-comp_count = '1'.
ls_components-mimetype = lv_mimetype.
ls_components-comp_size = lv_filelength.
ls_components-comp_id = lv_filename.
APPEND ls_components TO lt_components.
CLEAR ls_components.
ls_signature-doc_count = '1'.
ls_signature-doc_id = space.
ls_signature-doc_ver_no = 1.
ls_signature-doc_var_id = 1.
ls_signature-doc_var_tg = 'OR'.
ls_signature-comp_count = 1.
APPEND ls_signature TO lt_signature.
ls_signature-prop_name = 'DESCRIPTION'.
ls_signature-prop_value = lv_filename.
APPEND ls_signature TO lt_signature.
ls_signature-prop_name = 'LANGUAGE'.
ls_signature-prop_value = sy-langu.
APPEND ls_signature TO lt_signature.
ls_signature-prop_name = 'BDS_DOCUMENTTYPE'.
ls_signature-prop_value = 'ATTACHMENT'.
APPEND ls_signature TO lt_signature.
case lv_extension.
when 'txt'.
ls_signature-prop_name = 'BDS_DOCUMENTCLASS'.
ls_signature-prop_value = 'TXT'.
APPEND ls_signature TO lt_signature.
when 'pdf'.
ls_signature-prop_name = 'BDS_DOCUMENTCLASS'.
ls_signature-prop_value = 'PDF'.
APPEND ls_signature TO lt_signature.
when 'xls'.
ls_signature-prop_name = 'BDS_DOCUMENTCLASS'.
ls_signature-prop_value = 'XLS'.
APPEND ls_signature TO lt_signature.
endcase.
CLEAR ls_signature.
CALL FUNCTION 'CONVERSION_EXIT_ALPHA_INPUT'
EXPORTING
input = P_QMNUM
IMPORTING
output = lv_qmnum.
move '005000011781' to lv_object_key.
MOVE '0000000402' TO lv_object_key.
CALL FUNCTION 'BDS_BUSINESSDOCUMENT_CREA_TAB'
EXPORTING
logical_system = lv_logical_system
classname = 'BUS2088'
classtype = 'BO'
object_key = lv_object_key
binary_flag = 'X'
TABLES
signature = lt_signature
components = lt_components
content = lt_data
EXCEPTIONS
nothing_found = 1
parameter_error = 2
not_allowed = 3
error_kpro = 4
internal_error = 5
not_authorized = 6
OTHERS = 7.
Best Regards,
Pavan Jhawar.Hello Francois,
Thanks for the reply. I guess ur code which u have metioned to check is not pasted. Can u reply back with the code?
Regards,
Pavan Jhawar. -
Urgent.......pls advice
Hi All,
I have a parameter.This calls the function
"CALL FUNCTION 'F4_FILENAME' to get the file from C drive.
After selecting the file the path is displayed in the Parameter field.
My problem is I need to extract only file name from the path.Please advice.
Example : Prameter id C:\folder\file.xls
I shd extract only file.xls from the path.Please advice.Hi,
after calling the function
"CALL FUNCTION 'F4_FILENAME' to get the file from C drive.
use call another function
CALL FUNCTION 'SO_SPLIT_FILE_AND_PATH' in which you pass the complete path you get from the above function and pass the variable in which you want the filename.
See example below.
CALL FUNCTION 'SO_SPLIT_FILE_AND_PATH'
EXPORTING
full_name = p_file "
IMPORTING
STRIPPED_NAME = v_filename "Filename
FILE_PATH = v_path
EXCEPTIONS
X_ERROR = 1
OTHERS = 2
IF sy-subrc <> 0.
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
Reward Points, if useful.
Regards
Manoj Kumar -
How to separate file path and file name
Hi All,
Is there any FM which will separate the filepath and filename? I have whole string is like /test/test.txt. I want to separate this to two parts one is /test/ and another is test.txt. How to achieve this?
Regards,
Jeetuuse this FM - PC_SPLIT_COMPLETE_FILENAME or
'SO_SPLIT_FILE_AND_PATH
Regards,
Amit
Reward all helpful replies. -
Seperating file name from the path
Hi,
im trying to validate the file path and trying to seperate file name from the path.
for eg.
if the path is f:\sapfilepath\doc\ext.txt
need to get f:\sapfilepath\doc im looking for a dynamic way of doing this.
your help will be appreciated.
Regards,
ravi.Hi,
Use the function module
SO_SPLIT_FILE_AND_PATH
Thanks,
Naren -
How to delete Services For Objects Attachments?
How can I delete records from SOFFCONT1 selectively, to recover Database space, without corruption of Database integrity in other tables?
Thousands of scanned images have been uploaded to SAP R3 as 'Attachments' to Financial documents, and produced massive amounts of binary data in table SOFFCONT1. It was thought that 'Links' were being created until Basis saw the size of table SOFFCONT1.
A new methodolgy creates 'Links' to files on a network filer instead.
The bleeding has stopped!
The original methodology for creating the relationship included the following:
SO_FOLDER_ROOT_ID_GET
SO_OBJECT_UPLOAD
SO_SPLIT_FILE_AND_PATH
SO_LOIO_PHIO_CREATE
SO_OBJECT_INSERT
BINARY_RELATION_CREATE
New records are thereby added to the following tables:
SOFFLOIO
SOFFPHIO
SOFFCONT1
SOFFPHF
SOOD
SOC3
SOFM
SRGBTBREL
A debug session of the transaction FB03, display attachments, and delete revealed the following function modules:
BINARY_RELATION_DELETE
SO_OBJECT_DELETE_IN_VB
This only deletes the relationship records in tables:
SOFM
SRGBTBREL
What I really want to do is delete all traces (records in tables) of these image/document relationships in R3 and recover the Database space.
Is anyone experienced with this recovery process, and has a solution to this requirement?
Any suggestions welcome.
Thanks, Marlon(for the OP)
Roger Wilmut1 wrote:
The User Library is hidden by default but in Mavericks you can make it visible - open your Home Folder the from the Finder's View menu, choose show View Options and check Show User Library.
or just hold Option then Finder menu Go > Library. -
Function module for calculating sigma balance
Is there any function module available in SAP for calculating sigma balance.
Thanks
Gauravhi
ABAP_DOCU_DOWNLOAD Download ABAP documentation in HTML format.
APPL_LOG_DELETE With this function module you delete logs in the database according to specified selection conditions
APPL_LOG_DISPLAY With this function module you can analyze logs in the database.
APPL_LOG_DISPLAY_INTERN With this function module you can analyze logs in local memory, e.g. when you have only collected log records at runtime and do not want to write to the database.
APPL_LOG_INIT This function module checks whether the specified object or sub-object exists and deletes all existing associated data in local memory.
APPL_LOG_READ_DB With this function module you read the log data in the database for an object or sub-object according to specified selection conditions.
APPL_LOG_READ_INTERN With this function module you read all log data whose log class has at least the specified value, from local memory, for the specified object or sub-object.
APPL_LOG_SET_OBJECT With this function module, you create a new object or sub-object for writing in local memory. With a flag you can control whether the APPL_LOG_WRITE_... messages are written in local memory or are output on the screen.
APPL_LOG_WRITE_DB With this function module you write all data for the specified object or sub-object in local memory to the database. If the log for the object or sub-object in question is new, the log number is returned to the calling program.
APPL_LOG_WRITE_HEADER With this function module, you write the log header data in local memory.
APPL_LOG_WRITE_LOG_PARAMETERS With this function module, you write the name of the log parameters and the associated values for the specified object or sub-object in local memory. If this function module is called repeatedly for the same object or sub-object, the existing parameters are updated accordingly. If you do not specify an object or sub-object with the call, the most recently used is assumed.
APPL_LOG_WRITE_MESSAGE_PARAMS With this function module you write a single message, with parameters, in local memory. Otherwise the function module works like APPL_LOG_WRITE_SINGLE_MESSAGE.
APPL_LOG_WRITE_MESSAGES With this function module you write one or more messages, without parameters, in local memory.
APPL_LOG_WRITE_SINGLE_MESSAGE With this function module you write a single message, without parameters, in local memory. If no header entry has yet been written for the object or sub-object, it is created. If you do not specify an object or sub-object with the call, the most recently used is assumed.
ARFC_GET_TID will return the IP address of the terminal in hex.
BAL_CNTL_CREATE Create Control for log display
BAL_CNTL_FREE Release Control
BAL_CNTL_REFRESH Put new data in log display
BAL_DB_DELETE Delete logs from the database
BAL_DB_DEQUEUE Unlock log
BAL_DB_ENQUEUE Lock log
BAL_DB_LOAD Load logs from the database
BAL_DB_LOAD Load log(s)
BAL_DB_SAVE Save logs in the database
BAL_DB_SAVE Save log(s)
BAL_DB_SAVE_PREPARE Prepare save
BAL_DB_SEARCH Find logs in the database
BAL_DSP_LOG_DISPLAY Display messages in memory
BAL_DSP_LOG_DISPLAY Display Log
BAL_DSP_LOG_PARAMETERS Either output extended long text or call a callback routine (based on the data in BAL_S_LOG-PARAMS)
BAL_DSP_LOG_TECHNICAL_DATA Output all log header data
BAL_DSP_MSG_LONGTEXT Display message long text
BAL_DSP_MSG_PARAMETERS Either output extended long text or call a callback routine (based on the data in BAL_S_MSG-PARAMS)
BAL_DSP_MSG_TECHNICAL_DATA Output technical data of a message such as work area, error number, etc.
BAL_DSP_OUTPUT_FREE End output
BAL_DSP_OUTPUT_INIT Initialize output
BAL_DSP_OUTPUT_SET_DATA Set dataset to be displayed
BAL_DSP_PROFILE_DETLEVEL_GET Message hierarchy in DETLEVEL
BAL_DSP_PROFILE_NO_TREE_GET Display without tree (fullscreen)
BAL_DSP_PROFILE_POPUP_GET Display without tree (popup)
BAL_DSP_PROFILE_SINGLE_LOG_GET Standard profile (SLG1) for one log
BAL_DSP_PROFILE_STANDARD_GET Standard profile (SLG1) for a lot of logs
BAL_GLB_AUTHORIZATION_GET Assign authorization
BAL_GLB_AUTHORIZATION_RESET Reset authorization
BAL_GLB_CONFIG_GET Read configuration
BAL_GLB_CONFIG_SET Set configuration
BAL_GLB_MEMORY_EXPORT Put function group memory in ABAP-MEMORY
BAL_GLB_MEMORY_IMPORT Get function group memory from ABAP-MEMORY
BAL_GLB_MEMORY_REFRESH (Partially) reset global memory
BAL_GLB_MEMORY_REFRESH (Partially) initialize memory
BAL_GLB_MSG_CURRENT_HANDLE_GET Get current message handle
BAL_GLB_MSG_DEFAULTS_GET Get message defaults
BAL_GLB_SEARCH_LOG Find logs in memory
BAL_GLB_SEARCH_MSG Find messages in memory
BAL_LOG_CREATE Create log with header data
BAL_LOG_CREATE Create log with header data
BAL_LOG_DELETE Delete log (from database also at Save)
BAL_LOG_EXIST Check existence of a log in memory
BAL_LOG_HDR_CHANGE Change log header
BAL_LOG_HDR_CHECK Check log header data for consistency
BAL_LOG_HDR_READ Read log header and other data
BAL_LOG_MSG_ADD Put message in log
BAL_LOG_MSG_ADD Put message in log
BAL_LOG_MSG_CHANGE Change message
BAL_LOG_MSG_CHANGE Change message
BAL_LOG_MSG_CHECK Check message data for consistency
BAL_LOG_MSG_CUMULATE Add message cumulated
BAL_LOG_MSG_DELETE Delete message
BAL_LOG_MSG_DELETE Delete message
BAL_LOG_MSG_EXIST Check existence of a message in memory
BAL_LOG_MSG_READ Read message and other data
BAL_LOG_MSG_REPLACE Replace last message
BAL_LOG_REFRESH Delete log from memory
BAL_LOG_REFRESH Delete log from memory
BAL_MSG_DISPLAY_ABAP Output message as ABAP-MESSAGE
BAL_OBJECT_SELECT Read Application Log objects table record
BAL_OBJECT_SUBOBJECT Check whether object and subobject exist and the combination is allowed
BAL_SUBOBJECT_SELECT Read subobject table record
BP_EVENT_RAISE Trigger an event from ABAP/4 program
BP_JOBLOG_READ Fetch job log executions
CHANGEDOCUMENT_READ_HEADERS Get the change document header for a sales document, and put the results in an internal table.
Example:
CALL FUNCTION 'CHANGEDOCUMENT_READ_HEADERS'
EXPORTING
objectclass = 'EINKBELEG'
objectid = l_objectid
username = space
TABLES
i_cdhdr = lt_cdhdr.
LOOP AT lt_cdhdr WHERE udate IN s_aedat.
CALL FUNCTION 'CHANGEDOCUMENT_READ_POSITIONS'
EXPORTING
changenumber = lt_cdhdr-changenr
TABLES
editpos = lt_editpos.
LOOP AT lt_editpos WHERE fname = 'LOEKZ'
AND f_new = 'L'.
p_desc = text-r01. " Cancel Contract
ENDLOOP.
ENDLOOP.
CHANGEDOCUMENT_READ_POSITIONS Get the details of a change document, and store them in an internal table. This will tell you whether a field was changed, deleted, or updated.
Example:
CALL FUNCTION 'CHANGEDOCUMENT_READ_HEADERS'
EXPORTING
objectclass = 'EINKBELEG'
objectid = l_objectid
username = space
TABLES
i_cdhdr = lt_cdhdr.
LOOP AT lt_cdhdr WHERE udate IN s_aedat.
CALL FUNCTION 'CHANGEDOCUMENT_READ_POSITIONS'
EXPORTING
changenumber = lt_cdhdr-changenr
TABLES
editpos = lt_editpos.
LOOP AT lt_editpos WHERE fname = 'LOEKZ'
AND f_new = 'L'.
p_desc = text-r01. " Cancel Contract
ENDLOOP.
ENDLOOP.
CLAF_CLASSIFICATION_OF_OBJECTS Return all of the characteristics for a material
CLOI_PUT_SIGN_IN_FRONT Move the negative sign from the left hand side of a number, to the right hand side of the number. Note that The result will be left justified (like all character fields), not right justifed as numbers normally are.
CLPB_EXPORT Export a text table to the clipboard (on presentation server)
CLPB_IMPORT Import a Text Table from the Clipboard (on presentation server)
COMMIT_TEXT To load long text into SAP
CONVERSION_EXIT_ALPHA_INPUT converts any number into a string fill with zeroes, with the number at the extreme right
Example:
input = 123
output = 0000000000000...000000000000123
CONVERSION_EXIT_ALPHA_OUTPUT converts any number with zeroes right into a simple integer
Example:
input = 00000000000123
output = 123
CONVERT_ABAPSPOOLJOB_2_PDF convert abap spool output to PDF
CONVERT_OTF Convert SAP documents (SAPScript) to other types.
Example:
CALL FUNCTION "CONVERT_OTF"
EXPORTING FORMAT = "PDF"
IMPORTING BIN_FILESIZE = FILE_LEN
TABLES OTF = OTFDATA
LINES = PDFDATA
EXCEPTIONS ERR_MAX_LINEWIDTH = 1
ERR_FORMAT = 2
ERR_CONV_NOT_POSSIBLE = 3
OTHERS = 4.
CONVERT_OTFSPOOLJOB_2_PDF converts a OTF spool to PDF (i.e. Sapscript document)
CONVERT_TO_FOREIGN_CURRENCY Convert local currency to foreign currency.
CONVERT_TO_LOCAL_CURRENCY Convert from foreign currency to local currency
DATE_CHECK_PLAUSIBILITY Check to see if a date is in a valid format for SAP. Works well when validating dates being passed in from other systems.
DATE_COMPUTE_DAY Returns a number indicating what day of the week the date falls on. Monday is returned as a 1, Tuesday as 2, etc.
DATE_GET_WEEK will return the week that a date is in.
DATE_IN_FUTURE Calculate a date N days in the future.
DAY_ATTRIBUTES_GET
Return useful information about a day. Will tell you the day of the week as a word (Tuesday), the day of the week (2 would be Tuedsay), whether the day is a holiday, and more.(provided by Francois Henrotte)
DOWNLOAD download a file to the presentation server (PC)
DYNP_VALUES_READ Read the values from a dynpro. This function can be used to read the values from a report's selection screen too (Another example).
DYNP_VALUES_UPDATE Similar to DYNP_VALUES_READ, this function will allow the updating of fields on a dynpro. Very useful when you want to change a field based on the value entered for another field.
ENQUE_SLEEP Wait a specified period of time before continuing processing.
ENQUEUE_ESFUNCTION Lock an abap program so that it cannot be executed.
Example:
Set the parameters as follows:
RELID = 'ZZ'
SRTF2 = 0
SRTF = (your report name)
Please note that you should not use SY-REPID to pass your report name to the function. The value of SY-REPID will change as it is being passed to the function module, and will no longer hold the value of the calling report.
EPS_GET_DIRECTORY_LISTING return a list of filenames from a local or network drive
EPS_GET_FILE_ATTRIBUTES Pass in a filename and a path, and will return attributes for the file
F4_DATE displays a calendar in a popup window and allows user to choose a date, or it can be displayed read only.
F4_IF_FIELD_VALUE_REQUEST Use values from a DDIC table to provide a list of possible values. TABNAME and FIELDNAME are required fields, and when MULTIPLE_CHOICE is selected, more than one value can be returned.
F4IF_INT_TABLE_VALUE_REQUEST F4 help that returns the values selected in an internal table. Very handy when programming your very own F4 help for a field.
Example:
data:
begin of t_values occurs 2,
value like kna1-begru,
end of t_values,
t_return like ddshretval occurs 0 with header line.
t_values = 'PAR*'.
append t_values.
t_values = 'UGG'.
append t_values.
call function 'F4IF_INT_TABLE_VALUE_REQUEST'
exporting
retfield = 'BEGRU'
value_org = 'S'
tables
value_tab = t_values
return_tab = t_return
exceptions
parameter_error = 1
no_values_found = 2
others = 3.
if sy-subrc = 0.
read table t_return index 1.
o_begru-low = t_return-fieldval.
if o_begru-low = 'PAR*'.
o_begru-option = 'CP'.
else.
o_begru-option = 'EQ'.
endif.
o_begru-sign = 'I'.
append o_begru to s_begru.
else.
o_begru = i_begru.
endif.
F4IF_SHLP_EXIT_EXAMPLE documents the different reasons to use a search help exit, and shows how it is done.
F4IP_INT_TABLE_VALUE_REQUEST This function does not exist in 4.6 and above. Use F4IF_INT_TABLE_VALUE_REQUEST instead.
FILENAME_GET popup to get a filename from a user, returns blank filename if user selects cancel
FORMAT_MESSAGE Takes a message id and number, and puts it into a variable. Works better than WRITE_MESSAGE, since some messages use $ as a place holder, and WRITE_MESSAGE does not accommadate that, it only replaces the ampersands (&) in the message.
FTP_COMMAND Execute a command on the FTP server
FTP_CONNECT Open a connection (and log in) to an FTP server
FTP_DISCONNECT Close the connection (and log off) the FTP server
FU CSAP_MAT_BOM_READ You can use this function module to display simple material BOMs. You cannot display BOM groups (for example, all variants of a variant BOM). as in transaction CS03. Current restrictions: You cannot display long texts. You cannot display sub-items. You cannot display classification data of BOM items for batches. You can only display one alternative or variant. You cannot enter an alternative for module CSAP_MAT_BOM_READ, so you always see alternative 01. The following example came from a posting on the SAP-R3-L mailing list.
Example:
data: begin of tstk2 occurs 0.
include structure stko_api02.
data: end of tstk2.
data: begin of tstp2 occurs 0.
include structure stpo_api02.
data: end of tstp2.
data: begin of tdep_data occurs 0.
include structure csdep_data.
data: end of tdep_data.
data: begin of tdep_descr occurs 0.
include structure csdep_descr.
data: end of tdep_descr.
data: begin of tdep_source occurs 0.
include structure csdep_source.
data: end of tdep_source.
data: begin of tdep_order occurs 0.
include structure csdep_order.
data: end of tdep_order.
data: begin of tdep_doc occurs 0.
include structure csdep_doc.
data: end of tdep_doc.
data: flg_warning like capiflag-flwarning.
call function 'CSAP_MAT_BOM_READ'
exporting
material = 'MAT100'
plant = '0001'
bom_usage = '1'
valid_from = '20.12.1996'
valid_to
importing
fl_warning = flg_warning
tables
t_stko = tstk2
t_stpo = tstp2
t_dep_data = tdep_data
t_dep_descr = tdep_descr
t_dep_source = tdep_source
t_dep_order = tdep_order
t_dep_doc = tdep_doc
exceptions
error = 1.
Function Group GRAP is now obsolete. SAP recommends using functions in function group SFES instead. Below is an overview of the changes.
G_SET_GET_ALL_VALUES Fetch values from a set.
GET_CURRENT_YEAR Get the current fiscal year.
Example:
CALL FUNCTION 'GET_CURRENT_YEAR'
EXPORTING
BUKRS = '1000' " Company Code
DATE = SY-DATUM " Date to find fiscal year for
IMPORTING
CURRM = w_currm " Current Fiscal Month
CURRY = w_curry " Current Fiscal Year
PREVM = w_prevm " Previous Fiscal Month
PREVY = w_prevy. " Previous Fiscal Year
GET_GLOBAL_SYMBOLS Returns a list of all tables, select options, texts, etc for a program. Even includes the text definitions for the selection screen
GET_INCLUDETAB Returns a list of all INCLUDES in a program
GET_JOB_RUNTIME_INFO
Get the current job number from a program. Also returns other useful info about the current job.
GUI_CREATE_DIRECTORY Create a directory on the presentation server
GUI_DELETE_FILE Replaces WS_FILE_DELETE. Delete a file on the presentation server
GUI_DOWNLOAD Replaces WS_DOWNLOAD. Download table from the app server to presentation server
GUI_EXEC Replaces WS_EXECUTE. Start a File or Program Asynchronously with WinExec
GUI_GET_DESKTOP_INFO Replaces WS_QUERY. Delivers Information About the Desktop (client)
GUI_REMOVE_DIRECTORY Delete a directory on the presentation server
GUI_RUN Start a File or Program Asynchronously with ShellExecute
GUI_UPLOAD Replaces WS_UPLOAD. Upoad file from presentation server to the app server
HELP_START Display help for a field. Useful for doing AT SELECTION SCREEN ON VALUE REQUEST for those fields that do not provide F4 help at the DDIC level.
HELP_VALUES_GET_WITH_TABLE Show a list of possible values for F4 popup help on selection screens. This function module pops up a screen that is just like all the other F4 helps, so it looks like the rest of the SAP system. Very useful for providing dropdowns on fields that do not have them predefined.
Example:
tables: t001w.
DATA: lc_werks LIKE t001w-werks,
ltab_fields LIKE help_value OCCURS 0 with header line,
BEGIN OF ltab_values OCCURS 0,
feld(40) TYPE c,
END OF ltab_values.
*-- Set up fields to retrieve data
ltab_fields-tabname = 'T001W'.
ltab_fields-fieldname = 'WERKS'.
ltab_fields-selectflag = 'X'.
APPEND ltab_fields.
ltab_fields-tabname = 'T001W'.
ltab_fields-fieldname = 'NAME1'.
ltab_fields-selectflag = space.
APPEND ltab_fields.
*-- Fill values
select * from t001w.
ltab_values-feld = t001w-werks.
append ltab_values.
ltab_values-feld = t001w-name1.
append ltab_values.
endselect.
CALL FUNCTION 'HELP_VALUES_GET_WITH_TABLE'
EXPORTING
fieldname = 'WERKS'
tabname = 'T001W'
title_in_values_list = 'Select a value'
IMPORTING
select_value = lc_werks
TABLES
fields = ltab_fields
valuetab = ltab_values
EXCEPTIONS
field_not_in_ddic = 01
more_then_one_selectfield = 02
no_selectfield = 03.
HOLIDAY_CHECK_AND_GET_INFO Useful for determining whether or not a date is a holiday. Give the function a date, and a holiday calendar, and you can determine if the date is a holiday by checking the parameter HOLIDAY_FOUND.
Example:
data: ld_date like scal-datum default sy-datum,
lc_holiday_cal_id like scal-hcalid default 'CA',
ltab_holiday_attributes like thol occurs 0 with header line,
lc_holiday_found like scal-indicator.
CALL FUNCTION 'HOLIDAY_CHECK_AND_GET_INFO'
EXPORTING
date = ld_date
holiday_calendar_id = lc_holiday_cal_id
WITH_HOLIDAY_ATTRIBUTES = 'X'
IMPORTING
HOLIDAY_FOUND = lc_holiday_found
tables
holiday_attributes = ltab_holiday_attributes
EXCEPTIONS
CALENDAR_BUFFER_NOT_LOADABLE = 1
DATE_AFTER_RANGE = 2
DATE_BEFORE_RANGE = 3
DATE_INVALID = 4
HOLIDAY_CALENDAR_ID_MISSING = 5
HOLIDAY_CALENDAR_NOT_FOUND = 6
OTHERS = 7.
if sy-subrc = 0 and
lc_holiday_found = 'X'.
write: / ld_date, 'is a holiday'.
else.
write: / ld_date, 'is not a holiday, or there was an error calling the function'.
endif.
HOLIDAY_GET Provides a table of all the holidays based upon a Factory Calendar &/ Holiday Calendar.
HR_DISPLAY_BASIC_LIST is an HR function, but can be used for any data. You pass it data, and column headers, and it provides a table control with the ability to manipulate the data, and send it to Word or Excel. Also see the additional documentation here.
HR_GET_LEAVE_DATA Get all leave information (includes leave entitlement, used holidays/paid out holidays)
HR_IE_NUM_PRSI_WEEKS Return the number of weeks between two dates.
HR_PAYROLL_PERIODS_GET
Get the payroll period for a particular date. (provided by Francois Henrotte)
Example:
DATA: IT_T549Q TYPE T549Q OCCURS 0 WITH HEADER LINE,
IT_ZL TYPE PC2BF OCCURS 0 WITH HEADER LINE.
W_BEGDA = '20010101'.
W_PERNR = '00000001'.
CALL FUNCTION 'HR_PAYROLL_PERIODS_GET'
EXPORTING
get_begda = w_begda
TABLES
get_periods = it_t549q
EXCEPTIONS
no_period_found = 1
no_valid_permo = 2.
CHECK sy-subrc = 0.
CALL FUNCTION 'HR_TIME_RESULTS_GET'
EXPORTING
get_pernr = w_pernr
get_pabrj = it_t549q-pabrj
get_pabrp = it_t549q-pabrp
TABLES
get_zl = it_zl
EXCEPTIONS
no_period_specified = 1
wrong_cluster_version = 2
no_read_authority = 3
cluster_archived = 4
technical_error = 5.
NOTE: it_zl-iftyp = 'A' absence
it_zl-iftyp = 'S' at work
HR_TIME_RESULTS_GET
Get the time results for a payroll period. (provided by Francois Henrotte)
Example:
DATA: IT_T549Q TYPE T549Q OCCURS 0 WITH HEADER LINE,
IT_ZL TYPE PC2BF OCCURS 0 WITH HEADER LINE.
W_BEGDA = '20010101'.
W_PERNR = '00000001'.
CALL FUNCTION 'HR_PAYROLL_PERIODS_GET'
EXPORTING
get_begda = w_begda
TABLES
get_periods = it_t549q
EXCEPTIONS
no_period_found = 1
no_valid_permo = 2.
CHECK sy-subrc = 0.
CALL FUNCTION 'HR_TIME_RESULTS_GET'
EXPORTING
get_pernr = w_pernr
get_pabrj = it_t549q-pabrj
get_pabrp = it_t549q-pabrp
TABLES
get_zl = it_zl
EXCEPTIONS
no_period_specified = 1
wrong_cluster_version = 2
no_read_authority = 3
cluster_archived = 4
technical_error = 5.
NOTE: it_zl-iftyp = 'A' absence
it_zl-iftyp = 'S' at work
INIT_TEXT To load long text into SAP
K_WERKS_OF_BUKRS_FIND Return a list of all plants for a given company code.
LIST_FROM_MEMORY Retrieves the output of a report from memory when the report was executed using SUBMIT... EXPORTING LIST TO MEMORY. See also WRITE_LIST.
LIST_TO_ASCII convert an ABAP report (displayed on screen) from OTF to ASCII format
MBEW_EXTEND
Get the stock position for the previous month. This displays the same info that you see in MM03.
MONTH_NAMES_GET It returns all the month and names in repective language.
MONTH_PLUS_DETERMINE Add or subtract months from a date. To subtract a month, enter a negative value for the 'months' parameter.
Example:
data: new_date type d.
CALL FUNCTION 'MONTH_PLUS_DETERMINE'
EXPORTING
months = -5 " Negative to subtract from old date, positive to add
olddate = sy-datum
IMPORTING
NEWDATE = new_date.
write: / new_date.
MS_EXCEL_OLE_STANDARD_OLE will build a file, and automatically start Excel
OTF_CONVERT wraps several other function modules. Will convert OTF to ASCII or PDF
POPUP_TO_CONFIRM_LOSS_OF_DATA Create a dialog box in which you make a question whether the user wishes to perform a processing step with loss of data.
POPUP_TO_CONFIRM_STEP Create a dialog box in which you make a question whether the user wishes to perform the step.
POPUP_TO_CONFIRM_WITH_MESSAGE Create a dialog box in which you inform the user about a specific decision point during an action.
POPUP_TO_CONFIRM_WITH_VALUE Create a dialog box in which you make a question whether the user wishes to perform a processing step with a particular object.
POPUP_TO_DECIDE Provide user with several choices as radio buttons
POPUP_TO_DECIDE_WITH_MESSAGE Create a dialog box in which you inform the user about a specific decision point via a diagnosis text.
POPUP_TO_DISPLAY_TEXT Create a dialog box in which you display a two line message
POPUP_TO_SELECT_MONTH Popup to choose a month
POPUP_WITH_TABLE_DISPLAY Provide a display of a table for user to select one, with the value of the table line returned when selected.
PRICING Return pricing conditions in an internal table. Use structure TCOMK for parameter COMM_HEAD_1, and structure TCOMP for parameter COMM_ITEM_1, and set CALCULATION_TYPE to B. The pricing conditions will be returned in XOMV. You must fill TCOMP, and TCOMK with the appropriate values before callling the function in order for it to work.
PROFILE_GET Read an Entry in an INI File on the frontend
PROFILE_SET Write an Entry in an INI File on the frontend
READ_TEXT To load long text into SAP
REGISTRY_GET Read an Entry from the Registry
REGISTRY_SET Set an entry in the Registry
RFC_ABAP_INSTALL_AND_RUN Runs an ABAP program that is stored in the table PROGRAM when the MODE = 'F'. Table WRITES contains the ouput of the program. Allows you to run a program without having the source code in the target system.
RH_GET_ACTIVE_WF_PLVAR Return the active HR Plan
RH_GET_DATE_DAYNAME return the day based on the date provied
RH_START_EXCEL_WITH_DATA starts Excel with the contents of an internal table. This function finds Excel in the desktop registry. It also uses a local PC working directory to save the file (that's what the 'W' value for data path flag does). Very transparent to user!
RH_STRUC_GET Returns all related org info
RHP0_POPUP_F4_SEARK
is a matchcode for any type of HR Planning object, including the possibility to fill the field that you want
Example:
Examples: search for any organizational structure
F4 = 'X'
PLVAR = '01'
OTYPE = 'O '
search for any persons
F4 = 'X'
PLVAR = '01'
OTYPE = 'P '
MULTI_SELECT = 'X' to allow multiple selection
EASY = 'X' for user-dependent matchcode
Unfortunately, the use of table BASE_OBJIDS is disabled, so you can't specify
a root for the hierarchy you display
RKD_WORD_WRAP Convert a long string or phrase into several lines.
RP_CALC_DATE_IN_INTERVAL Add/subtract years/months/days from a date
RP_LAST_DAY_OF_MONTHS Determine last day of month
RPY_DYNPRO_READ Read dynpro, including screen flow
RPY_TRANSACTION_READ Given a transaction, return the program and screen or given a program and screen, return the transactions that use the program and screen.
RS_COVERPAGE_SELECTIONS Returns an internal table that contains a formatted list of all the selection parameters entered for a report. Table is ready to print out.
RS_REFRESH_FROM_SELECTOPTIONS Get the current contents of selection screen
RS_SEND_MAIL_FOR_SPOOLLIST Send message from ABAP/4 program to SAPoffice.
RS_VARIANT_CONTENTS Returns the contents of the specified variant in a table.
RSPO_DOWNLOAD_SPOOLJOB Download the spool from a program to a file. Requires spool number.
RSPO_RETURN_ABAP_SPOOLJOB Fetch printer spool according to the spool number informed.
RZL_READ_DIR If the server name is left blank, it reads a directory from local presentation server, otherwise it reads the directory of the remote server
RZL_READ_DIR_LOCAL Read a directory on the Application Server
RZL_READ_FILE Read a file from the presentation server if no server name is given, or read file from remote server. Very useful to avoid authority checks that occur doing an OPEN DATASET. This function using a SAP C program to read the data.
RZL_SLEEP Hang the current application from 1 to 5 seconds.
RZL_SUBMIT Submit a remote report.
RZL_WRITE_FILE_LOCAL Saves table to the presentation server (not PC). Does not use OPEN DATASET, so it does not suffer from authority checks!
SAP_CONVERT_TO_XLS_FORMAT Convert data to Microsoft Excel format.
SAPGUI_PROGRESS_INDICATOR Display a progress bar on the SAP GUI, and give the user some idea of what is happening
SAVE_TEXT To load long text into SAP
SCROLLING_IN_TABLE If you are coding a module pool and using a table control, you can use this function SCROLLING_IN_TABLE to handle any scrolling. (provided by Paul Kjaer)
SD_DATETIME_DIFFERENCE Give the difference in Days and Time for 2 dates
SO_NEW_DOCUMENT_ATT_SEND_API1 Send a document as part of an email. The documentation is better than normal for this function, so please read it.
SO_SPLIT_FILE_AND_PATH Split a fully pathed filename into a filename and a path.
SO_SPOOL_READ Fetch printer spool according to the spool number informed. See also RSPO_RETURN_ABAP_SPOOLJOB
SO_WIND_SPOOL_LIST Browse printer spool numbers according to user informed.
SWD_HELP_F4_ORG_OBJECTS
HR Matchcode tailored for organizational units. Includes a button so that you can browse the hierarchy too.
SX_OBJECT_CONVERT_OTF_PDF Conversion From OTF to PDF (SAPScript conversion)
SX_OBJECT_CONVERT_OTF_PRT Conversion From OTF to Printer Format (SAPScript conversion)
SX_OBJECT_CONVERT_OTF_RAW Conversion From OTF to ASCII (SAPScript conversion)
SXPG_CALL_SYSTEM you can check the user's authorization for the specified command and run the command. The command runs on the host system on which the function module is executed. The function module is RFC capable. It can therefore be run on the host system at which a user happens to be active or on another designated host system at which an R/3 server is active.
SXPG_COMMAND_CHECK Check whether the user is authorized to execute the specified command on the target host system with the specified arguments.
SXPG_COMMAND_DEFINITION_GET Read the definition of a single external OS command from the R/3 System's database.
SXPG_COMMAND_EXECUTE Check a user's authorization to use a command, as in SXPG_COMMAND_CHECK. If the authorization check is successful, then execute the command on the target host system.
SXPG_COMMAND_LIST_GET Select a list of external OS command definitions.
TERMINAL_ID_GET Return the terminal id
TH_DELETE_USER Logoff a user. Similar results to using SM04.
TH_ENVIRONMENT Get the UNIX environment
TH_POPUP Display a popup system message on a specific users screen.
TH_REMOTE_TRANSACTION Run a transaction on a remote server. Optionally provide BDC data to be used in the transaction
TH_USER_INFO Give information about the current user (sessions, workstation logged in from, etc)
TH_USER_LIST Show which users are logged into an app server
TMP_GUI_DIRECTORY_LIST_FILES Retrieve all of the files and subdirectories on the Presentation Server (PC) for a given directory.
When a value other than * or . is used for the filter, you will not get any directories, unless they match your wildcard filter. For example, if you entered *.png, then only files and directories that end in png will be returned by the function.
Example:
data: lc_directory like bdschko16-target_dir value 'C:\TEMP\',
lc_filter(20) type c default '.'.
li_file_count type i,
li_dir_count type i,
ltab_dir_table like sdokpath occurs 0 with header line,
ltab_file_file_table like sdokpath occurs 0 with header line.
call function 'TMP_GUI_DIRECTORY_LIST_FILES'
exporting
directory = lc_directory
filter = lc_filter importing
file_count = li_file_count
dir_count = li_dir_count
tables
file_table = ltab_file_table
dir_table = ltab_dir_table
exceptions
cntl_error = 1
others = 2.
UNIT_CONVERSION_SIMPLE convert weights from one UOM to another.
UPLOAD upload a file to the presentation server (PC)
UPLOAD_FILES Will load one or more files from app or presentation server
WEEK_GET_FIRST_DAY For a given week (YYYYMM format), this function returns the date of the Monday of that week.
WRITE_LIST Useful for writing out the list contents that result from the function LIST_FROM_MEMORY.
WS_DOWNLOAD Save Internal Table as File on the Presentation Server
WS_EXCEL Start EXCEL on the PC
WS_EXECUTE execute a program on a windows PC
WS_FILE_DELETE Delete File at the Frontend
WS_FILENAME_GET Call File Selector
WS_MSG Create a dialog box in which you display an one line message
WS_UPLOAD Load Files from the Presentation Server to Internal ABAP Tables
WS_VOLUME_GET Get the label from a frontend device.
WWW_LIST_TO_HTML After running a report, call this function to convert the list output to HTML.
hope it will help you.
Regards,
Sreelatha gullapalli -
Find the path of a string using methods
Dear Gurus ,
I have the path "
filestltrv\sap\mauals\text.xls' and i want using Methods in ABAP to find the path '"
filestltrv\sap\mauals\'.
I suppose using loops and with finding '\' i will do it .
Is any other Way ????
Thanks a lot !!!!Hello,
The FM: SO_SPLIT_FILE_AND_PATH is what you are looking for.
BR,
Suhas -
Hi Friends,
here am uploading text file from desktop into int tab using GUI_upload. then i want to down load that data from int tab into other file formate like Excel sheet.
how to do? what is the FM for that?
Thanks in advance,
murali.hi,
check this code
REPORT zmm_basic_data .
Report to View Detail Of Material Master BASIC DATA.
Start Date 07.05.2007
Request No.-GR3K931783
TABLES: mara,marc,makt.
DATA: gi_mara LIKE mara OCCURS 1 WITH HEADER LINE,
gi_marc LIKE marc OCCURS 1 WITH HEADER LINE,
gi_makt LIKE makt OCCURS 1 WITH HEADER LINE.
DATA: BEGIN OF gi_download OCCURS 1,
matnr LIKE mara-matnr,"material no
maktx LIKE makt-maktx,"material description
matkl LIKE mara-matkl,"material group
werks LIKE marc-werks,"plant
ekgrp LIKE marc-ekgrp,"purchasing group
spart LIKE mara-spart,"division
meins LIKE mara-meins,"base uit of measure
bismt LIKE mara-bismt,"old material no.
prdha LIKE mara-prdha,"product hierarchy
brgew LIKE mara-brgew,"gross weight
ntgew LIKE mara-ntgew,"net weight
gewei LIKE mara-gewei,"weight unit
volum LIKE mara-volum,"volume
voleh LIKE mara-voleh,"volume unit
zeinr LIKE mara-zeinr,"document no.
zeiar LIKE mara-zeiar,"document type
zeivr LIKE mara-zeivr,"document version
zeifo LIKE mara-zeifo,"page format of document
blanz LIKE mara-blanz,"number of sheets
spras LIKE makt-spras,"language key
END OF gi_download.
<b>DATA: BEGIN OF gi_fieldnames OCCURS 1,
mandt(50),
END OF gi_fieldnames.</b>
*file path and file name data declaration.
DATA: stripped_name LIKE rlgrap-filename,
file_path LIKE rlgrap-filename.
DATA: inpath LIKE ltran-path01,
file LIKE ltran-file01,
outpath LIKE ltran-path02.
Field Symbols ************
FIELD-SYMBOLS <mara> LIKE gi_mara.
FIELD-SYMBOLS <marc> LIKE gi_marc.
FIELD-SYMBOLS <makt> LIKE gi_makt.
FIELD-SYMBOLS <download> LIKE gi_download.
SELECTION-SCREEN: BEGIN OF BLOCK b1 WITH FRAME TITLE text-001.
SELECTION-SCREEN: SKIP.
SELECT-OPTIONS: s_werks FOR marc-werks.
SELECT-OPTIONS: s_ekgrp FOR marc-ekgrp.
SELECT-OPTIONS: s_matnr FOR mara-matnr.
SELECT-OPTIONS: s_matkl FOR mara-matkl.
SELECT-OPTIONS: s_spart FOR mara-spart.
SELECTION-SCREEN: SKIP.
PARAMETER fnm TYPE rlgrap-filename OBLIGATORY.
SELECTION-SCREEN: SKIP.
SELECTION-SCREEN: END OF BLOCK b1.
AT SELECTION-SCREEN ON VALUE-REQUEST FOR fnm.
CALL FUNCTION 'KD_GET_FILENAME_ON_F4'
EXPORTING
static = 'X'
CHANGING
file_name = fnm
EXCEPTIONS
mask_too_long = 1
OTHERS = 2.
IF sy-subrc <> 0.
MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
ENDIF.
*For fetching the baisc data.
START-OF-SELECTION.
*Getting the general data based on material no,division and material
*group.
SELECT * FROM mara INTO TABLE gi_mara
WHERE matnr IN s_matnr
AND spart IN s_spart
AND matkl IN s_matkl.
*Getting the plant data based on material no,plant and purchasing
*group.
IF NOT gi_mara[] IS INITIAL.
SELECT * FROM marc INTO TABLE gi_marc
FOR ALL ENTRIES IN gi_mara
WHERE matnr EQ gi_mara-matnr
AND werks IN s_werks
AND ekgrp IN s_ekgrp.
ENDIF.
*Getting the material description based on material no
IF NOT gi_mara[] IS INITIAL.
SELECT * FROM makt INTO TABLE gi_makt
FOR ALL ENTRIES IN gi_mara
WHERE matnr = gi_mara-matnr.
ENDIF.
Fetching all data into single internal table ********
SORT gi_mara BY matnr.
SORT gi_makt BY matnr.
SORT gi_marc BY matnr.
*****Transfering the data into gi_download*******
IF s_werks[] IS INITIAL and s_ekgrp[] IS INITIAL.
LOOP AT gi_mara ASSIGNING <mara>.
MOVE-CORRESPONDING <mara> TO gi_download.
READ TABLE gi_marc ASSIGNING <marc>
WITH KEY matnr = <mara>-matnr
BINARY SEARCH.
IF sy-subrc = 0.
MOVE <marc>-werks TO gi_download-werks.
MOVE <marc>-ekgrp TO gi_download-ekgrp.
ENDIF.
READ TABLE gi_makt ASSIGNING <makt>
WITH KEY matnr = <mara>-matnr
BINARY SEARCH.
IF sy-subrc = 0.
MOVE <makt>-maktx TO gi_download-maktx.
MOVE <makt>-spras TO gi_download-spras.
ENDIF.
APPEND gi_download.
CLEAR gi_download.
ENDLOOP.
ELSE.
LOOP AT gi_marc ASSIGNING <marc>.
READ TABLE gi_mara ASSIGNING <mara>
WITH KEY matnr = <marc>-matnr
BINARY SEARCH.
IF sy-subrc = 0.
MOVE-CORRESPONDING <mara> TO gi_download.
ENDIF.
READ TABLE gi_makt ASSIGNING <makt>
WITH KEY matnr = <marc>-matnr
BINARY SEARCH.
IF sy-subrc = 0.
MOVE <makt>-maktx TO gi_download-maktx.
MOVE <makt>-spras TO gi_download-spras.
ENDIF.
MOVE <marc>-werks TO gi_download-werks.
MOVE <marc>-ekgrp TO gi_download-ekgrp.
APPEND gi_download.
CLEAR gi_download.
ENDLOOP.
ENDIF.
IF gi_download[] IS INITIAL.
MESSAGE i001(sa) WITH 'Data not found'.
LEAVE LIST-PROCESSING.
ENDIF.
*******Downloading the basic data********
<b> gi_fieldnames-mandt = 'Material no'.
APPEND gi_fieldnames.
CLEAR gi_fieldnames.
gi_fieldnames-mandt = 'Material description'.
APPEND gi_fieldnames.
CLEAR gi_fieldnames.
gi_fieldnames-mandt = 'Material group'.
APPEND gi_fieldnames.
CLEAR gi_fieldnames.
gi_fieldnames-mandt = 'Plant'.
APPEND gi_fieldnames.
CLEAR gi_fieldnames.
gi_fieldnames-mandt = 'Purchasing group'.
APPEND gi_fieldnames.
CLEAR gi_fieldnames.
gi_fieldnames-mandt = 'Division'.
APPEND gi_fieldnames.
CLEAR gi_fieldnames.
gi_fieldnames-mandt = 'Base uit of measure'.
APPEND gi_fieldnames.
CLEAR gi_fieldnames.
gi_fieldnames-mandt = 'Old material no.'.
APPEND gi_fieldnames.
CLEAR gi_fieldnames.
gi_fieldnames-mandt = 'Product hierarchy'.
APPEND gi_fieldnames.
CLEAR gi_fieldnames.
gi_fieldnames-mandt = 'Gross weight'.
APPEND gi_fieldnames.
CLEAR gi_fieldnames.
gi_fieldnames-mandt = 'Net weight'.
APPEND gi_fieldnames.
CLEAR gi_fieldnames.
gi_fieldnames-mandt = 'Weight unit'.
APPEND gi_fieldnames.
CLEAR gi_fieldnames.
gi_fieldnames-mandt = 'Volume'.
APPEND gi_fieldnames.
CLEAR gi_fieldnames.
gi_fieldnames-mandt = 'Volume unit'.
APPEND gi_fieldnames.
CLEAR gi_fieldnames.
gi_fieldnames-mandt = 'Document no.'.
APPEND gi_fieldnames.
CLEAR gi_fieldnames.
gi_fieldnames-mandt = 'Document type'.
APPEND gi_fieldnames.
CLEAR gi_fieldnames.
gi_fieldnames-mandt = 'Document version'.
APPEND gi_fieldnames.
CLEAR gi_fieldnames.
gi_fieldnames-mandt = 'Page format of document'.
APPEND gi_fieldnames.
CLEAR gi_fieldnames.
gi_fieldnames-mandt = 'Number of sheets'.
APPEND gi_fieldnames.
CLEAR gi_fieldnames.
gi_fieldnames-mandt = 'Language key'.
APPEND gi_fieldnames.
CLEAR gi_fieldnames.</b> CALL FUNCTION 'SO_SPLIT_FILE_AND_PATH'
EXPORTING
full_name = fnm
IMPORTING
stripped_name = stripped_name
file_path = file_path
EXCEPTIONS
x_error = 1
OTHERS = 2.
IF sy-subrc <> 0.
MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
ENDIF.
CLEAR fnm.
CONCATENATE file_path stripped_name INTO fnm.
CLEAR: inpath,file,stripped_name,file_path,outpath.
<b>CALL FUNCTION 'WS_DOWNLOAD'
EXPORTING
filename = fnm
filetype = 'DAT'
TABLES
data_tab = gi_download
fieldnames = gi_fieldnames
EXCEPTIONS
file_open_error = 1
file_write_error = 2
invalid_filesize = 3
invalid_type = 4
no_batch = 5
unknown_error = 6
invalid_table_width = 7
gui_refuse_filetransfer = 8
customer_error = 9
OTHERS = 10.
IF sy-subrc <> 0.
MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
ELSE.
MESSAGE i003(sa) WITH 'File downloaded successfuly' fnm.</b>
ENDIF.
REFRESH: gi_download,gi_mara,gi_marc,gi_makt.
CLEAR: gi_download,gi_mara,gi_marc,gi_makt.
regards
siva
Message was edited by:
siva prasad
Maybe you are looking for
-
Hi All, I have a requirement like creating a view with deptno and employee information like below. How to create a view to get the result set in the below fromat. DEPTNO EMPNO ENAME JOB 10 7788 SMITH CLERK
-
Is it possible to reinstall Tiger (OSX 10.4)?
I'm desperate - Too many things aren't working in Leopard and they're critical eg. Adobe apps and Filemaker Pro 9. I want to go back to using Tiger. Any ideas how to do it and if it's possible? Thanks
-
I am experimenting with buffered images in a servlet. This "Hello World" servlet crashes TOMCAT. java version "1.4.1" Java(TM) 2 Runtime Environment, Standard Edition (build 1.4.1) Java HotSpot(TM) Client VM (build 1.4.1, mixed mode) JAVA_OPTS '-Xmx5
-
Having problem with the volume on my Iphone 4. Advise greatly appreciated.
My mom gave my daughter her Iphone 4. We have updated everything but now the volume is not working when she plays music. Any helpful ideas on what is causing this issue.
-
Dear ABAPers, I am in Cement Implementation Project and they asked for an interface between ERP and Weigh Bridge in SD cycle . Kindly could anyone tell me how can i start with this task? or can anyone provide methodology for performing this interface