Alternate to "CALL 'C_SAPGPARAM'"
Hi All,
To determine the SAP server name, I have been using the statement "CALL 'C_SAPGPARAM'". But I have just learnt that from Release 6.2 onwards these CALL statements must not be used and should be replaced by Kernal Methods.
Can anyone guide me how to use Kernel Methods to find out the SAP server name?
Thanks and Regards,
Vidya.
There are a series of Function Modules in SAP that you can use.
TH_GET_ACTIVE_SERVER will show the server you are currently logged on to
TH_GET_VIRT_SERVER show virtual server
TH_SERVER_LIST will show the list of servers for the System
I hope this helps...
Similar Messages
-
Help:alternate for calling function in where clause
Hi ,
In below query i'm calling function in where clause to avoid COMPLETE status records,due to this query taking 700 secs to return result.If i'm remove below function condition it's returning results with in 5 secs.Can you some one advice to any alternate idea for this?
WHERE mark_status != 'COMPLETE'
SELECT assessment_school,
subject,
subject_option,
lvl,
component,mark_status,
mark_status
NULL AS grade_status,
NULL AS sample_status,
:v_year,
:v_month,
:v_formated_date,
:v_type,
cand_lang
FROM
(SELECT assessment_school,
subject,
subject_option,
lvl,
programme,
component,
paper_code,
cand_lang,
mark_entry.get_ia_entry_status(:v_year, :v_month, assessment_school, subject_option, lvl, cand_lang, component, paper_code) AS mark_status
FROM
(SELECT DISTINCT ccr.assessment_school,
ccr.subject,
ccr.subject_option,
ccr.lvl,
ccr.programme,
ccr.language AS cand_lang,
ccr.paper_code,
ccr.component
FROM candidate_component_reg ccr
WHERE ccr.split_session_year = :v_year
AND ccr.split_session_month = :v_month
AND EXISTS
(SELECT 1
FROM IBIS.subject_component sc
WHERE sc.year = ccr.split_session_year
AND sc.month = ccr.split_session_month
AND sc.paper_code = ccr.paper_code
AND sc.assessment_type = 'INTERNAL'
AND sc.subject_option NOT LIKE '%self taught%'
AND sc.component NOT IN ('PERFORMANCE PRODUCTION','PRESENTATION WORK','REFLECTIVE PROJECT','SPECIAL SYLLABUS INT. ASSESSMENT')
AND NVL(ccr.withdrawn,'N') = 'N'
AND ccr.mark_status != 'COMPLETE'
AND EXISTS
(SELECT 1
FROM school s
WHERE s.school_code = ccr.assessment_school
AND s.training_school = 'N'
WHERE mark_status != 'COMPLETE';One thing you can test quickly is to put the function call in it's own select ...from dual.
This might make a difference.
However, only you can check this, I don't have your tables or data.
So, what happens if you use:
paper_code,
cand_lang,
(select mark_entry.get_ia_entry_status(:v_year, :v_month, assessment_school, subject_option, lvl, cand_lang, component, paper_code) from dual ) AS mark_status
FROM
(SELECT DISTINCT ccr.assessment_school, --<< is the DISTINCT really needed?
ccr.subject,
ccr.subject_option,
...Also, try to find out the purpose of that above DISTINCT, is it really needed or is there some join missing? -
Use of C-calls in file browser
Hello
I have a question pertaining to the use of C-calls in a class that I'm writing. The purpose of the class is to allow a user to browse files on either the current application server or a remote application server. Additionally the browser would be used in a product that our company is shipping to a number of clients so the code needs to be portable between different systems. I'm using the following C-calls: C_SAPGPARAM, C_DIR_READ_START, C_DIR_READ_FINISH and C_DIR_READ_NEXT.
Obviously these functions are fast but their portability to other systems might be an issue. The product would also be up for SAP certification later this year and I have no idea what the impact of the use of these functions would be.
The question that I have is whether there is an alternative way to browse for files on an application server? Basically what it should do is return a list of entries of a directory on the server and indicate whether an entry is a file or directory, it should of course be relatively fast in order to avoid unnecessary delays when browsing directories.
Anyway, help and advice in this regard would be greatly appreciated.
Bye
Ettienne HugoHi,
Statndard Transaction in SAP itself uses the same C-Calls.
For Eg , AL11 uses these C-Calls.
The Function module SUBST_GET_FILE_LIST fetch all the files in a specified folder.But still this too iuses C-Calls
Regards
Immanuel D -
Hi,
Can anybody tell me how to use C_SAPGPARAM C function. Are there any
security concerns in using this. I am using this to get the name of the stat
file in SAP systems. Is there any better way to read system parameters than
this function. This stat file is in each application server.
Thanks before hand.For instance, you can use it to get the server name :
DATA: w_server_name LIKE MSXXLIST-NAME.
CALL 'C_SAPGPARAM'
ID 'NAME' FIELD 'rdisp/myname' ID 'VALUE'
FIELD w_server_name.
Code Formatted by: Alvaro Tejada Galindo on Apr 25, 2008 4:07 PM -
Hi folks,
I have this abap code where I am trying to get the value for the timeout parameter..'rdisp/plugin_auto_logout'...but it does not seem to work it comes back with 0 whereas the system has a value of 900 (verified using rz11)....thanks...
<%
data: name TYPE String.
data: timeoutStr type String.
data: value type i.
data: timeout type i.
name = 'rdisp/plugin_auto_logout'.
call 'C_SAPGPARAM' id 'NAME' field name
id 'VALUE' field value.
timeout = value - 780.
timeout = timeout * 1000.
timeoutStr = timeout.
%>
Thanks,
VenkateshThanks for the reply,
The code works perfect when written as a standalone abap program,
but when I have it in the document_body.htm file in the BSP application
hap_document (for priorities in ESS) I get an error saying..thx for your help though..
Access is Denied..
and it does not work in the bsp page...here is my code....
<script type="text/javascript">
alert("You have just wasted 10 seconds of your life.");
function remind() {
var msg = "Your Session will be timed out in 5 minutes";
alert(msg);
</script>
<htmlb:content design="design2003" >
<%
DATA: NAME TYPE TPFYDOC-PARANAME.
DATA: TIMEOUTSTR TYPE STRING.
DATA: VALUE TYPE I.
DATA: TIMEOUT TYPE I,
USR_PARVALUE(60),
SHM_PARVALUE(60).
NAME = 'rdisp/plugin_auto_logout'.
CALL 'C_SAPGPARAM' ID 'NAME' FIELD NAME
ID 'VALUE34' FIELD USR_PARVALUE
ID 'VALUE44' FIELD SHM_PARVALUE.
MOVE USR_PARVALUE TO VALUE.
TIMEOUT = VALUE - 820.
TIMEOUT = TIMEOUT * 1000.
TIMEOUTSTR = TIMEOUT.
%>
</htmlb:content>
<script type="text/javascript">
setTimeout("remind()",<%=TIMEOUT %>);
</script> -
I don't have internet service since Friday Oct 15th. Verizon customer serv opened a ticket yesterday the 17th.( ticket {edited for privacy})A technician showed up today to fix the problem. He claimed the jack I have my router and modem were connected is not working. He moved them to the kitchen and left everything on the kitchen table with the modem sitting on top of the bananas in the fruit bowl. Very TACKY and unprofessional. How do you expect me to serve my family meals w/ all wires ,modem,router and telephone all over the table?
Do I have to unplug the the connection for me to use my wall outlet? I want someone to come and fix this mess your technician made. I called your customer serv and I was transferred 5 times and on hold for 55 minutes,finally an actual person answered but the connection was so poor. She asked for an alternate # to call me back. I gave her my cell # and it's been 20 minutes no call back yet. I am expecting a reply for my complaint.
Also, Another verizon technician to fix this mess made in my kitchen. This was my first experience for being dissatisfied for the work Verizon done. I have been a customer of yours for years and years and would like it RESOLVE!Just a friendly reminder, this is a forum where users help other users. Please have patience and wait for a return call. If you do not get one, contact our customer service team via live chat or email at:
http://www.verizon.com/contactus -
How to store multiple files from SAp in to Application server?
Hi Guys,
Can anybody tell me how to store multiple files from SAP into Application server.in my application i have to get the data from SAP tables BSEG , BKPF , BSAK and BSIK that to daily i have to do.
Any Logic or Code for how to do is welcomed.
plz help me urgently.
Thanks,
GopiHi,
directories creates basis. If you have task to store data in application server you already should have information into which folder you have to do it. If you don't have this information because it is just for example training for next task then you can use your personal folder into which you have access. To get list of all available folders please look at attached code and form get_directories (you get the list of folders you see in transaction AL11). But don't forget: If you are using open dataset you have to have rights to access application folder!
Here you are code which I use to upload text files from local disc into application folder
Regards,
Karol
*& Report FILE_PC_TO_SAP
REPORT FILE_PC_TO_SAP.
DATA: BEGIN OF searchpoints OCCURS 100,
DIRNAME(200) TYPE c, " name of directory.
sp_name(100) TYPE c," name of entry. (may end with *)
END OF searchpoints.
DATA: BEGIN OF isearchpoints OCCURS 10,
dirname(75) TYPE c, " name of directory.
aliass(75) TYPE c, " alias for directory.
svrname(75) TYPE c, " svr where directory is availabl
sp_name(75) TYPE c, " name of entry. (may end with *)
sp_cs(10) TYPE c, " ContainsString pattern for name
END OF isearchpoints.
data: l_file type filetable.
data: l_rc type i.
data: itab type TABLE OF string.
data: g_tmp_file_path type rlgrap-filename.
data: wa_itab type string.
data: h_destin(100) type c.
data: dat type string.
INITIALIZATION.
perform get_directories.
START-OF-SELECTION.
parameters: in_file type string OBLIGATORY LOWER CASE.
parameters: destin(100) type c OBLIGATORY LOWER CASE.
CALL FUNCTION 'GUI_UPLOAD'
EXPORTING
FILENAME = in_file
"FILETYPE = 'BIN'
FILETYPE = 'ASC'
HAS_FIELD_SEPARATOR = ' '
HEADER_LENGTH = 0
READ_BY_LINE = 'X'
DAT_MODE = ' '
TABLES
DATA_TAB = itab
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
OTHERS = 17.
IF sy-SUBRC <> 0.
write: / 'Error during loading input file!'.
ENDIF.
if h_destin is INITIAL.
h_destin = in_file.
endif.
CONCATENATE destin h_destin into dat SEPARATED BY '/'.
*TRANSLATE dat TO UPPER CASE.
OPEN DATASET dat FOR OUTPUT IN TEXT MODE ENCODING DEFAULT.
IF sy-SUBRC = 0.
loop at itab into wa_itab.
TRANSFER: wa_itab TO dat.
endloop.
CLOSE DATASET dat.
write: / 'File uploaded!'.
ELSE.
write: / 'Not possible to open dataset'.
ENDIF.
at selection-screen on value-request for in_file.
perform select_input_file_name.
loop at l_file into g_tmp_file_path.
move g_tmp_file_path to in_file.
h_destin = ''.
SPLIT g_tmp_file_path at '\' into table itab.
loop at itab into g_tmp_file_path.
h_destin = g_tmp_file_path.
endloop.
endloop.
at selection-screen on value-request for destin.
DATA: lt_dfies TYPE TABLE OF dfies.
DATA: lwa_dfies TYPE dfies.
CALL FUNCTION 'DDIF_FIELDINFO_GET'
EXPORTING
tabname = '/BI0/PCO_AREA'
lfieldname = 'CO_AREA'
IMPORTING
dfies_wa = lwa_dfies.
lwa_dfies-tabname = 'searchpoints'.
lwa_dfies-REPTEXT = 'Destination directory'.
lwa_dfies-LENG = 100.
lwa_dfies-INTLEN = 100.
lwa_dfies-OUTPUTLEN = 100.
lwa_dfies-fieldname = 'SP_NAME'.
APPEND lwa_dfies TO lt_dfies.
CALL FUNCTION 'F4IF_INT_TABLE_VALUE_REQUEST'
EXPORTING
RETFIELD = 'SP_NAME'
DYNPPROG = SY-REPID
DYNPNR = SY-DYNNR
DYNPROFIELD = 'destin'
VALUE_ORG = 'S'
TABLES
VALUE_TAB = searchpoints
FIELD_TAB = lt_dfies
EXCEPTIONS
PARAMETER_ERROR = 1
NO_VALUES_FOUND = 2
OTHERS = 3.
*& Form select_input_file_name
* text
form select_input_file_name.
* call function 'F4_FILENAME'
* exporting
* program_name = sy-repid
* dynpro_number = sy-dynnr
* field_name = 'PATH'
* importing
* file_name = g_tmp_file_path.
CALL METHOD CL_GUI_FRONTEND_SERVICES=>FILE_OPEN_DIALOG
EXPORTING
WINDOW_TITLE = 'Please choose a file'
"default_extension = '*.TXT'
"default_filename = 'C:\*.txt'
initial_directory = 'C:\'
file_filter = '*.*'
CHANGING
FILE_TABLE = l_file
RC = l_RC
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.
endform. "select_input_file_name
*& Form WRITE_DB_HOME
* Write DB home directory
* no parameters
FORM write_db_home.
CASE sy-dbsys(3).
WHEN 'ORA'.
CALL 'C_SAPGPARAM' ID 'NAME' FIELD 'DIR_ORAHOME'
ID 'VALUE' FIELD searchpoints-dirname.
*--- C5056155 Start of ALV -------------------------------*
* PERFORM flip_flop(rsora000) USING cflag.
* WRITE: / 'DIR_ORAHOME', 30 searchpoints-dirname.
MOVE: 'DIR_ORAHOME' TO searchpoints-sp_name.
APPEND searchpoints.
*--- C5056155 End of ALV -------------------------------*
WHEN 'ADA'.
CALL 'C_GETENV' ID 'NAME' FIELD 'DBROOT'
ID 'VALUE' FIELD searchpoints-dirname.
*--- C5056155 Start of ALV -------------------------------*
* PERFORM flip_flop(rsora000) USING cflag.
* WRITE: / 'DIR_ADA_DBROOT', 30 searchpoints-dirname.
MOVE: 'DIR_ADA_DBROOT' TO searchpoints-sp_name.
APPEND searchpoints.
*--- C5056155 End of ALV -------------------------------*
WHEN 'INF'.
CALL 'C_GETENV' ID 'NAME' FIELD 'INFORMIXDIR'
ID 'VALUE' FIELD searchpoints-dirname.
*--- C5056155 Start of ALV -------------------------------*
* PERFORM flip_flop(rsora000) USING cflag.
* WRITE: / 'DIR_INF_INFORMIXDIR', 30 searchpoints-dirname.
MOVE: 'DIR_INF_INFORMIXDIR' TO searchpoints-sp_name.
APPEND searchpoints..
*--- C5056155 End of ALV -------------------------------*
WHEN 'DB6'.
CALL 'C_GETENV' ID 'NAME' FIELD 'INSTHOME'
ID 'VALUE' FIELD searchpoints-dirname.
IF sy-subrc = 0.
*--- C5056155 Start of ALV -------------------------------*
* PERFORM flip_flop(rsora000) USING cflag.
* WRITE: / 'DIR_DB2_HOME', 30 searchpoints-dirname.
MOVE: 'DIR_DB2_HOME' TO searchpoints-sp_name.
APPEND searchpoints.
*--- C5056155 End of ALV -------------------------------*
ELSE.
EXIT.
ENDIF.
WHEN OTHERS.
EXIT.
ENDCASE.
ENDFORM. " WRITE_DB_HOME
FORM get_directories.
* get the name and aliases of ALL userdefined directories
SELECT * FROM user_dir INTO isearchpoints
WHERE svrname = sy-uname.
MOVE isearchpoints-dirname to searchpoints-dirname.
MOVE isearchpoints-aliass to searchpoints-sp_name.
APPEND searchpoints.
ENDSELECT.
SELECT * FROM user_dir INTO isearchpoints
WHERE svrname = 'all'.
MOVE isearchpoints-dirname to searchpoints-dirname.
MOVE isearchpoints-aliass to searchpoints-sp_name.
APPEND searchpoints.
ENDSELECT.
* Get DB home
IF sy-dbsys(3) = 'ADA'.
PERFORM write_db_home.
ENDIF.
* get name of directory with the error files
CALL 'C_SAPGPARAM' ID 'NAME' FIELD 'DIR_ATRA'
ID 'VALUE' FIELD searchpoints-dirname.
MOVE: 'DIR_ATRA' TO searchpoints-sp_name.
APPEND searchpoints.
* get name of directory with the error files
CALL 'C_SAPGPARAM' ID 'NAME' FIELD 'DIR_BINARY'
ID 'VALUE' FIELD searchpoints-dirname.
MOVE: 'DIR_BINARY' TO searchpoints-sp_name.
APPEND searchpoints.
* get name of directory $DIR_CCMS
CALL 'C_SAPGPARAM' ID 'NAME' FIELD 'DIR_CCMS'
ID 'VALUE' FIELD searchpoints-dirname.
MOVE: 'DIR_CCMS' TO searchpoints-sp_name.
APPEND searchpoints.
* get name of directory with the error files
CALL 'C_SAPGPARAM' ID 'NAME' FIELD 'DIR_CT_LOGGING'
ID 'VALUE' FIELD searchpoints-dirname.
MOVE: 'DIR_CT_LOGGING' TO searchpoints-sp_name.
APPEND searchpoints.
* get name of directory with the error files
CALL 'C_SAPGPARAM' ID 'NAME' FIELD 'DIR_CT_RUN'
ID 'VALUE' FIELD searchpoints-dirname.
MOVE: 'DIR_CT_RUN' TO searchpoints-sp_name.
APPEND searchpoints.
* get name of directory with the error files
CALL 'C_SAPGPARAM' ID 'NAME' FIELD 'DIR_DATA'
ID 'VALUE' FIELD searchpoints-dirname.
MOVE: 'DIR_DATA' TO searchpoints-sp_name.
APPEND searchpoints.
* Get DB home
IF sy-dbsys(3) = 'DB6'.
PERFORM write_db_home.
ENDIF.
* get name of directory with the error files
CALL 'C_SAPGPARAM' ID 'NAME' FIELD 'DIR_DBMS'
ID 'VALUE' FIELD searchpoints-dirname.
MOVE: 'DIR_DBMS' TO searchpoints-sp_name.
APPEND searchpoints.
* get name of directory with the error files
CALL 'C_SAPGPARAM' ID 'NAME' FIELD 'DIR_EXECUTABLE'
ID 'VALUE' FIELD searchpoints-dirname.
MOVE: 'DIR_EXECUTABLE' TO searchpoints-sp_name.
APPEND searchpoints.
* get name of directory with the error files
CALL 'C_SAPGPARAM' ID 'NAME' FIELD 'DIR_EXE_ROOT'
ID 'VALUE' FIELD searchpoints-dirname.
MOVE: 'DIR_EXE_ROOT' TO searchpoints-sp_name.
APPEND searchpoints.
*get name of directory with the error files
CALL 'C_SAPGPARAM' ID 'NAME' FIELD 'DIR_GEN'
ID 'VALUE' FIELD searchpoints-dirname.
MOVE: 'DIR_GEN' TO searchpoints-sp_name.
APPEND searchpoints.
* get name of directory with the error files
CALL 'C_SAPGPARAM' ID 'NAME' FIELD 'DIR_GEN_ROOT'
ID 'VALUE' FIELD searchpoints-dirname.
MOVE: 'DIR_GEN_ROOT' TO searchpoints-sp_name.
APPEND searchpoints.
* get name of directory with the error files
CALL 'C_SAPGPARAM' ID 'NAME' FIELD 'DIR_GLOBAL'
ID 'VALUE' FIELD searchpoints-dirname.
MOVE: 'DIR_GLOBAL' TO searchpoints-sp_name.
APPEND searchpoints.
CALL 'C_SAPGPARAM' ID 'NAME' FIELD 'DIR_GRAPH_EXE'
ID 'VALUE' FIELD searchpoints-dirname.
MOVE: 'DIR_GRAPH_EXE' TO searchpoints-sp_name.
APPEND searchpoints.
* get name of directory with the error files
CALL 'C_SAPGPARAM' ID 'NAME' FIELD 'DIR_GRAPH_LIB'
ID 'VALUE' FIELD searchpoints-dirname.
MOVE: 'DIR_GRAPH_LIB' TO searchpoints-sp_name.
APPEND searchpoints.
* get name of directory with the error files
CALL 'C_SAPGPARAM' ID 'NAME' FIELD 'DIR_HOME'
ID 'VALUE' FIELD searchpoints-dirname.
MOVE: 'DIR_HOME' TO searchpoints-sp_name.
APPEND searchpoints.
* Get DB home
IF sy-dbsys(3) = 'INF'.
PERFORM write_db_home.
ENDIF.
* get name of directory with the error files
CALL 'C_SAPGPARAM' ID 'NAME' FIELD 'DIR_INSTALL'
ID 'VALUE' FIELD searchpoints-dirname.
MOVE: 'DIR_INSTALL' TO searchpoints-sp_name.
APPEND searchpoints.
* get name of directory with the error files
CALL 'C_SAPGPARAM' ID 'NAME' FIELD 'DIR_INSTANCE'
ID 'VALUE' FIELD searchpoints-dirname.
MOVE: 'DIR_INSTANCE' TO searchpoints-sp_name.
APPEND searchpoints.
* get name of directory with the error files
CALL 'C_SAPGPARAM' ID 'NAME' FIELD 'DIR_LIBRARY'
ID 'VALUE' FIELD searchpoints-dirname.
MOVE: 'DIR_LIBRARY' TO searchpoints-sp_name.
APPEND searchpoints.
* get name of directory with the error files
CALL 'C_SAPGPARAM' ID 'NAME' FIELD 'DIR_LOGGING'
ID 'VALUE' FIELD searchpoints-dirname.
MOVE: 'DIR_LOGGING' TO searchpoints-sp_name.
APPEND searchpoints.
* get name of directory with the files written by the memory inspector
CALL 'C_SAPGPARAM' ID 'NAME' FIELD 'DIR_MEMORY_INSPECTOR'
ID 'VALUE' FIELD searchpoints-dirname.
MOVE: 'DIR_MEMORY_INSPECTOR' TO searchpoints-sp_name.
APPEND searchpoints.
* Get DB home
IF sy-dbsys(3) = 'ORA'.
PERFORM write_db_home.
ENDIF.
*get name of directory with the error files
CALL 'C_SAPGPARAM' ID 'NAME' FIELD 'DIR_PAGING'
ID 'VALUE' FIELD searchpoints-dirname.
MOVE: 'DIR_PAGING' TO searchpoints-sp_name.
APPEND searchpoints.
*get name of directory with the error files
CALL 'C_SAPGPARAM' ID 'NAME' FIELD 'DIR_PUT'
ID 'VALUE' FIELD searchpoints-dirname.
MOVE: 'DIR_PUT' TO searchpoints-sp_name.
APPEND searchpoints.
* get name of directory with the error files
CALL 'C_SAPGPARAM' ID 'NAME' FIELD 'DIR_PERF'
ID 'VALUE' FIELD searchpoints-dirname.
MOVE: 'DIR_PERF' TO searchpoints-sp_name.
APPEND searchpoints.
CALL 'C_SAPGPARAM' ID 'NAME' FIELD 'DIR_PROFILE'
ID 'VALUE' FIELD searchpoints-dirname.
MOVE: 'DIR_PROFILE' TO searchpoints-sp_name.
APPEND searchpoints.
* get name of directory with the error files
CALL 'C_SAPGPARAM' ID 'NAME' FIELD 'DIR_PROTOKOLLS'
ID 'VALUE' FIELD searchpoints-dirname.
MOVE: 'DIR_PROTOKOLLS' TO searchpoints-sp_name.
APPEND searchpoints.
* get name of directory with the error files
CALL 'C_SAPGPARAM' ID 'NAME' FIELD 'DIR_REORG'
ID 'VALUE' FIELD searchpoints-dirname.
MOVE: 'DIR_REORG' TO searchpoints-sp_name.
APPEND searchpoints.
* get name of directory with the error files
CALL 'C_SAPGPARAM' ID 'NAME' FIELD 'DIR_ROLL'
ID 'VALUE' FIELD searchpoints-dirname.
MOVE: 'DIR_ROLL' TO searchpoints-sp_name.
APPEND searchpoints.
* get name of directory with the error files
CALL 'C_SAPGPARAM' ID 'NAME' FIELD 'DIR_RSYN'
ID 'VALUE' FIELD searchpoints-dirname.
MOVE: 'DIR_RSYN' TO searchpoints-sp_name.
APPEND searchpoints.
* calculate directory for saphostagent (no sapparam available...)
IF ( sy-opsys(3) = 'WIN' ) OR ( sy-opsys(3) = 'Win' ).
DATA: windir_path(64), programfiles_path(64).
* hoping that ProgramFiles is set in service user environment
CALL 'C_GETENV' ID 'NAME' FIELD 'ProgramFiles'
ID 'VALUE' FIELD programfiles_path.
IF programfiles_path IS INITIAL.
* %ProgramFiles% not available. guess from windir
CALL 'C_GETENV' ID 'NAME' FIELD 'windir'
ID 'VALUE' FIELD windir_path.
* e.g. S:\WINDOWS ==> S:\Program Files
CONCATENATE windir_path(3) 'Program Files' INTO programfiles_path.
ENDIF.
CONCATENATE programfiles_path '\SAP\hostctrl'
INTO searchpoints-dirname.
ELSE.
* on UNIX, the path is hard coded
searchpoints-dirname = '/usr/sap/hostctrl'.
ENDIF.
MOVE: 'DIR_SAPHOSTAGENT' TO searchpoints-sp_name.
APPEND searchpoints.
* get name of directory with the error files
CALL 'C_SAPGPARAM' ID 'NAME' FIELD 'DIR_SAPUSERS'
ID 'VALUE' FIELD searchpoints-dirname.
IF searchpoints-dirname = '.'.
IF sy-opsys = 'Windows NT'.
searchpoints-dirname = '.\'.
ELSE.
searchpoints-dirname = './'.
ENDIF.
ENDIF.
MOVE: 'DIR_SAPUSERS' TO searchpoints-sp_name.
APPEND searchpoints.
* get name of directory with the error files
CALL 'C_SAPGPARAM' ID 'NAME' FIELD 'DIR_SETUPS'
ID 'VALUE' FIELD searchpoints-dirname.
MOVE: 'DIR_SETUPS' TO searchpoints-sp_name.
APPEND searchpoints.
* get name of directory with the error files
CALL 'C_SAPGPARAM' ID 'NAME' FIELD 'DIR_SORTTMP'
ID 'VALUE' FIELD searchpoints-dirname.
MOVE: 'DIR_SORTTMP' TO searchpoints-sp_name.
APPEND searchpoints.
*get name of directory with the error files
CALL 'C_SAPGPARAM' ID 'NAME' FIELD 'DIR_SOURCE'
ID 'VALUE' FIELD searchpoints-dirname.
MOVE: 'DIR_SOURCE' TO searchpoints-sp_name.
APPEND searchpoints.
* get name of directory with the error files
CALL 'C_SAPGPARAM' ID 'NAME' FIELD 'DIR_TEMP'
ID 'VALUE' FIELD searchpoints-dirname.
MOVE: 'DIR_TEMP' TO searchpoints-sp_name.
APPEND searchpoints.
* get name of directory with the error files
CALL 'C_SAPGPARAM' ID 'NAME' FIELD 'DIR_TRANS'
ID 'VALUE' FIELD searchpoints-dirname.
MOVE: 'DIR_TRANS' TO searchpoints-sp_name.
APPEND searchpoints.
CALL 'C_SAPGPARAM' ID 'NAME' FIELD 'DIR_TRFILES'
ID 'VALUE' FIELD searchpoints-dirname.
MOVE: 'DIR_TRFILES' TO searchpoints-sp_name.
APPEND searchpoints.
* get name of directory with the error files
CALL 'C_SAPGPARAM' ID 'NAME' FIELD 'DIR_TRSUB'
ID 'VALUE' FIELD searchpoints-dirname.
MOVE: 'DIR_TRSUB' TO searchpoints-sp_name.
APPEND searchpoints.
* get the name of the current server.
CALL 'C_SAPGPARAM' ID 'NAME' FIELD 'rdisp/myname'
ID 'VALUE' FIELD searchpoints-dirname.
data: h_ind type i.
LOOP AT searchpoints.
h_ind = sy-tabix.
IF searchpoints-sp_name IS INITIAL.
DELETE searchpoints INDEX h_ind.
ENDIF.
ENDLOOP.
ENDFORM. -
Hi all, need data file and co file after single transport in 6.4 or 6.7
hi all
following is the requirement
To process/compile the attached programs (given below) in 6.4/7 Kernel (SAP 6.4 version or 6.7 version )and send a single transport (Data File and Co File).
these data file and co file are flat files.
CAN ANYONE HELP ME GETTING THESE FLAT FILES. I need these flat files urgently.
WHAT U HAVE TO DO IS:
IF U HAVE 6.4 OR 6.7 VERSION, JUST TRANSPORT FOLLOWING 10 PROGRAMS IN SINGLE TRANSPORT IN TESTING SYSTEM OR DEVELOPEMENT SYSTEM AND AFTER GETTING DATA FILE AND CO FILE U CAN REVERT THE TRANSPORT.
Programs files are as follows: (total number of prog is 10)
1.
FUNCTION Z_3N_CKS_EXIST_USER .
""Local interface:
*" IMPORTING
*" VALUE(CKSUSRID) TYPE USR02-BNAME
*" VALUE(CKSMDTID) TYPE USR02-MANDT DEFAULT SY-MANDT
*" EXPORTING
*" VALUE(RCODE) TYPE SY-SUBRC
*" EXCEPTIONS
*" USER_DONT_EXIST
*" USER_EXISTS
FUNCTION TO CHECK IF USER EXISTS
CLEAR RCODE.
CALL FUNCTION 'USER_EXISTS'
EXPORTING
BNAME = CKSUSRID
CLIENT = CKSMDTID
EXCEPTIONS
USER_DONT_EXIST = 1
USER_EXISTS = 0.
RCODE = SY-SUBRC.
ENDFUNCTION.
2.
FUNCTION Z_3N_CKS_LOCKSTATE.
""Local interface:
*" IMPORTING
*" VALUE(CKSUSRID) TYPE USR02-BNAME
*" EXPORTING
*" VALUE(RCODE) TYPE SY-SUBRC
FUNCTION TO OBTAIN THE CURRENT LOCK STATUS FOR A USER
*{ PASSGOAPR06
*\DATA:LOCKSTATE(50) type c,
*\C_LOCKED_BY_ADMIN like usr02-uflag.
*\tables:usr02.
DATA:LOCKSTATE(50) type c.
*} PASSGOAPR06
CLEAR: RCODE, LOCKSTATE.
SELECT SINGLE * FROM USR02 WHERE BNAME = CKSUSRID.
IF SY-SUBRC <> 0.
RCODE = 01. "No such User
EXIT.
ENDIF.
*{ PASSGOAPR06
IF USR02-UFLAG Z C_LOCKED_BY_ADMIN AND
USR02-UFLAG Z C_LOCKED_BY_FAILED_LOGON.
LOCKSTATE = 'UNLOCKED'.
RCODE = 00.
ELSE.
IF USR02-UFLAG O C_LOCKED_BY_FAILED_LOGON.
LOCKSTATE = 'LOCKED_BY_FAILED_LOGON'.
RCODE = 02.
ENDIF.
IF USR02-UFLAG O C_LOCKED_BY_ADMIN.
LOCKSTATE = 'LOCKED_BY_ADMIN'.
RCODE = 02.
ENDIF.
ENDIF.
uflag = usr02-uflag.
IF UFLAG Z C_LOCKED_BY_ADMIN AND
UFLAG Z C_LOCKED_BY_FAILED_LOGON.
LOCKSTATE = 'UNLOCKED'.
RCODE = 00.
ELSE.
IF UFLAG O C_LOCKED_BY_FAILED_LOGON.
LOCKSTATE = 'LOCKED_BY_FAILED_LOGON'.
RCODE = 02.
ENDIF.
IF UFLAG O C_LOCKED_BY_ADMIN.
LOCKSTATE = 'LOCKED_BY_ADMIN'.
RCODE = 02.
ENDIF.
ENDIF.
*} PASSGOAPR06
ENDFUNCTION.
3.
FUNCTION Z_3N_CKS_PWDCHG_INITIAL.
""Local interface:
*" IMPORTING
*" VALUE(CKSUSRID) TYPE USR02-BNAME
*" VALUE(CKSUSRPWD) TYPE RSYST-BCODE
*" EXPORTING
*" VALUE(RCODE) TYPE SY-SUBRC
*" TABLES
*" RETURN STRUCTURE BAPIRET2
FUNCTION TO INITIALISE USERs PASSWORD, USER WILL BE FORCED
TO CHANGE PASSWORD ON NEXT LOGIN
CLEAR: USR02, RCODE.
SELECT SINGLE * from USR02 WHERE BNAME = CKSUSRID.
IF SY-SUBRC <> 0.
RCODE = 01.
else.
CALL FUNCTION 'BAPI_USER_CHANGE'
EXPORTING
USERNAME = CKSUSRID
PASSWORD = CKSUSRPWD
PASSWORDX = 'X'
TABLES
RETURN = RETURN.
loop at return.
if return-type eq 'E' or return-type eq 'A'.
rcode = 13.
endif.
endloop.
endif.
ENDFUNCTION.
4.
FUNCTION Z_3N_CKS_VERIFY_USER.
""Local interface:
*" IMPORTING
*" VALUE(CKSUSRID) TYPE RSYST-BNAME
*" VALUE(CKSUSRPWD) TYPE RSYST-BCODE OPTIONAL
*" EXPORTING
*" VALUE(RCODE) TYPE SY-SUBRC
FUNCTION TO VALIDATE A USER
*{ PASSGOAPR06
TABLES:USR02.
CLEAR: USR02, RCODE.
SELECT SINGLE * from USR02 WHERE BNAME = CKSUSRID.
IF SY-SUBRC = 4.
RCODE = 01. "no such user
EXIT.
ELSEIF CKSUSRPWD = SPACE.
RCODE = 03. "invalid old password
EXIT.
ELSE.
CALL FUNCTION 'SUSR_LOGIN_CHECK_RFC'
EXPORTING
BNAME = CKSUSRID
PASSWORD = CKSUSRPWD
EXCEPTIONS
WAIT = 1
USER_LOCKED = 2
USER_NOT_ACTIVE = 3
PASSWORD_EXPIRED = 4
WRONG_PASSWORD = 5
NO_CHECK_FOR_THIS_USER = 6
INTERNAL_ERROR = 7
OTHERS = 8
CASE SY-SUBRC.
WHEN '2'. RCODE = 02. "user disabled/blocked
WHEN '3'. RCODE = 02. "user disabled/blocked
WHEN '4'. RCODE = 03. "invalid old password
WHEN '5'. RCODE = 03. "invalid old password
WHEN '8'. RCODE = 12. "internal error
ENDCASE.
ENDIF.
*} PASSGOAPR06
ENDFUNCTION.
5.
*& Include ZMS01JTOP *
PROGRAM MS01JTOP MESSAGE-ID 01 LINE-SIZE 132. "Berechtigungsdatenpflege
13.08.93
INCLUDE MS01CTP2.
INCLUDE MS01CTCO.
TABLES: XU200, XU213, XU310, XU350, XU390, XU400.
TABLES: TSTC, TSP03, TPARA, TPARAT.
TABLES: *USR01, *USR03, USR15.
TABLES: SOUD, SOUD3.
*ABLES: ZCSA, ADRS.
*{ PASSGOAPR06
TABLES: usr02.
DATA: uflag type x.
DATA: begin of return occurs 0.
INCLUDE structure bapiret2.
DATA: end of return.
DATA calling_cksusrid like usr02-bname.
DATA: init_pass like BAPIPWD.
INCLUDE USER_CONSTANTS.
*} PASSGOAPR06
CONTROLS TC213 TYPE TABLEVIEW USING SCREEN 213.
CONTROLS TC520 TYPE TABLEVIEW USING SCREEN 350.
DATA: COPYOK TYPE I,
RENAMEOK TYPE I,
DATFM1,
DATFM2,
DATFM3,
DATFM4,
DCPFM1,
DCPFM2,
USERNAME LIKE USR01-BNAME,
LOCK,
UNLO,
STATFLAG TYPE I VALUE 0,
NAVIFLAG TYPE I VALUE 0,
PARTOPIX TYPE I,
PARFILL TYPE I,
PARAMETER LIKE USR05-PARVA,
PARID LIKE USR05-PARID,
PARLOOP LIKE SY-STEPL,
SHOW_ONLY VALUE ' ',
INTPRO_LOADED TYPE I VALUE 0,
EXT_SECURITY VALUE ' '.
DATA: H_201_USGRP LIKE USGRP-USERGROUP,
H_201_VALID TYPE C,
CC201 LIKE SY-CUCOL VALUE 2,
CR201 LIKE SY-CUROW VALUE 6,
SAVE_LINE201 LIKE SY-LILLI VALUE 1,
SAVE_LSIND201 LIKE SY-LSIND VALUE 1.
DATA: OFFICENAME LIKE SOUD-USRNAM.
DATA: BEGIN OF NAME_IN.
INCLUDE STRUCTURE SOUD3.
DATA: END OF NAME_IN.
DATA: BEGIN OF NAME_OUT.
INCLUDE STRUCTURE SOUD3.
DATA: END OF NAME_OUT.
DATA: BEGIN OF EMPTYPROF OCCURS 2.
INCLUDE STRUCTURE USREF.
DATA: END OF EMPTYPROF.
DATA: BEGIN OF PROFILES OCCURS 10.
INCLUDE STRUCTURE USREF.
DATA: END OF PROFILES.
DATA: MAXPAR TYPE I VALUE 300.
DATA: BEGIN OF TABPAR OCCURS 300,
PARID LIKE USR05-PARID,
PARVA LIKE USR05-PARVA,
END OF TABPAR.
DATA: BEGIN OF DELTAB OCCURS 50,
USGRP LIKE USR02-CLASS,
END OF DELTAB.
DATA: BEGIN OF ADDTAB OCCURS 50,
USGRP LIKE USR02-CLASS,
END OF ADDTAB.
DATA: BEGIN OF ADDRESS_DATA.
INCLUDE STRUCTURE SADRP_USR.
DATA: END OF ADDRESS_DATA.
DATA:
CLEAR TYPE X VALUE '00'.
*ATA: BEGIN OF ADRSDATEN.
INCLUDE STRUCTURE ADRS.
*ATA: END OF ADRSDATEN.
06.10.95 Tosun
DATA 930_FLAG.
"$$
6.
FUNCTION Z_3N_CKS_LOCK_USER.
""Local interface:
*" IMPORTING
*" VALUE(CKSUSRID) TYPE USR02-BNAME
*" EXPORTING
*" VALUE(RCODE) TYPE SY-SUBRC
CLEAR RCODE.
*{ PASSGOAPR06
*\ PERFORM LOCK_USER IN PROGRAM ZSAPMS01J USING CKSUSRID.
*\ IF SY-SUBRC <> 0.
*\ RCODE = SY-SUBRC.
*\ EXIT.
*\ ELSE.
*\ COMMIT WORK.
*\ ENDIF.
the report (form) is dumping.
so we try it with the correct BAPI
CALL FUNCTION 'BAPI_USER_LOCK'
EXPORTING
USERNAME = CKSUSRID
TABLES
RETURN = return
IF return-type <> 'S'.
RCODE = '8'.
rollback work.
EXIT.
ENDIF.
*} PASSGOAPR06
ENDFUNCTION.
7.
FUNCTION Z_3N_CKS_PWDCHG_DIRECT.
""Local interface:
*" IMPORTING
*" VALUE(CKSUSRID) TYPE USR02-BNAME
*" VALUE(CKSUSRPWD) TYPE RSYST-BCODE
*" EXPORTING
*" VALUE(RCODE) TYPE SY-SUBRC
*" TABLES
*" RETURN STRUCTURE BAPIRET2
FUNCTION TO CHANGE USERs PASSWORD
Password is initialised to a fixed value,
to avoid having to provide the valid old password
If the password change fails, the change is
rolled back - this is required because
BAPI_USER_CHANGE does an internal commit.
CLEAR: USR02, RCODE.
DATA: L_TIME LIKE SY-UZEIT,
ZLIN TYPE I.
*{ PASSGOAPR06
calling_cksusrid = cksusrid. "Save calling userid
init_pass = 'INITPASS'.
*} PASSGOAPR06
do 1 times.
SELECT SINGLE * from USR02 WHERE BNAME = CKSUSRID.
IF SY-SUBRC <> 0.
RCODE = 1.
else.
* Change login to initpass.
CALL FUNCTION 'BAPI_USER_CHANGE'
EXPORTING
USERNAME = CKSUSRID
*{ PASSGOAPR06
*\ PASSWORD = 'INITPASS'
PASSWORD = init_pass
*} PASSGOAPR06
PASSWORDX = 'X'
TABLES
RETURN = RETURN.
* Evaluate return table, if not success, rcode = 13
describe table return lines zlin.
IF zlin > 0.
IF return-type ne 'S'.
rcode = 13.
exit.
ENDIF.
ENDIF.
* Wait 1 second, otherwise table ush02 gets the same key as before.
* Not very good, but its the only way, because the wait up to
* statement includes a db-commit.
L_TIME = sy-uzeit.
WHILE L_TIME = sy-uzeit.
GET TIME.
ENDWHILE.
* Change 'INITPASS' to input login
CALL FUNCTION 'SUSR_USER_CHANGE_PASSWORD_RFC'
EXPORTING
BNAME = CKSUSRID
PASSWORD = 'INITPASS'
NEW_PASSWORD = CKSUSRPWD
NEW_BCODE = '0000000000000000'
NEW_CODVN = ' '
EXCEPTIONS
CHANGE_NOT_ALLOWED = 1
PASSWORD_NOT_ALLOWED = 2
INTERNAL_ERROR = 3
CANCELED_BY_USER = 4
OTHERS = 5.
case sy-subrc.
when '0'. rcode = 0.
when '1'. rcode = 2.
when '2'. rcode = 4.
when '3'. rcode = 12.
when '4'. rcode = 2.
when '5'. rcode = 12.
ENDCASE.
ENDIF.
exit. "end of do 1 times "
enddo.
* rollback if it didn't work
if not rcode is initial.
rollback work.
endif.
ENDFUNCTION.
8.
FUNCTION Z_3N_CKS_UNLOCK_USER.
""Local interface:
*" IMPORTING
*" VALUE(CKSUSRID) TYPE USR02-BNAME
*" EXPORTING
*" VALUE(RCODE) TYPE SY-SUBRC
CLEAR RCODE.
*{ PASSGOAPR06
*\ PERFORM UNLOCK_USER IN PROGRAM ZSAPMS01J USING CKSUSRID.
*\ IF SY-SUBRC <> 0.
*\ RCODE = SY-SUBRC.
*\ EXIT.
*\ ELSE.
*\ COMMIT WORK.
*\ ENDIF.
the report (form) is dumping.
so we try it with the correct BAPI
CALL FUNCTION 'BAPI_USER_UNLOCK'
EXPORTING
USERNAME = CKSUSRID
TABLES
RETURN = return
IF return-type <> 'S'.
RCODE = '8'.
rollback work.
EXIT.
ENDIF.
*} PASSGOAPR06
ENDFUNCTION.
9.
*& Include ZMS01JO10 *
MS01JO10 Module before Output
14.05.93
MODULE D150_SELECT *
Einen Eintrag aus der Liste uebernehmen. *
MODULE D150_SELECT OUTPUT.
IF SELE = 1.
IF SY-LILLI < 3.
MESSAGE S209.
ELSE.
IF USRFLAG = 10 AND SY-LILLI = 3.
MESSAGE S209.
ELSE.
IF USRFLAG = 10.
XU150-VON = SY-LISEL.
ELSE.
COUNTX = PUSR - 1.
ASSIGN SY-LISEL+COUNTX(12) TO <TEXT>. " unicode
WRITE <TEXT> TO XU150-VON.
ENDIF.
ENDIF.
ENDIF.
SELE = 0.
ENDIF.
IF FERTIG = 2.
FCODE = 'BACK'.
SUPPRESS DIALOG.
ENDIF.
ENDMODULE.
MODULE D150_SETSTATUS *
PF-Status setzen *
MODULE D150_SETSTATUS OUTPUT.
PERFORM SET_STATUS USING 150.
XU150-SELPROF = XU150-SELFEST = XU150-SELADRE = XU150-SELPARA = 'X'.
XU150-SELMENU = 'X'.
ENDMODULE.
MODULE D155_SETSTATUS *
PF-Status setzen *
MODULE D155_SETSTATUS OUTPUT.
PERFORM SET_STATUS USING 155.
ENDMODULE.
MODULE D200_SELECT *
Einen Eintrag aus der Liste ins Dynpro uebernehmen *
MODULE D200_SELECT OUTPUT.
IF SELE = 1.
IF SY-LILLI < 3.
MESSAGE S209.
ELSE.
XU200-XUSER = SY-LISEL.
ENDIF.
SELE = 0.
ENDIF.
IF FCODE2 = 'USER' OR FCODE2 = 'FEST' OR FCODE2 = 'ADRE' OR
FCODE2 = 'PARA' OR FCODE2 = 'ADMI' OR FCODE2 = 'RESE' OR
FCODE2 = 'N '.
SUPPRESS DIALOG.
ENDIF.
PERFORM SET_STATUS USING 200.
ENDMODULE.
MODULE D213_VALOUT *
Festwerte auf das Dynpro schreiben. *
MODULE D213_VALOUT OUTPUT.
DEL = 0.
XU213-DIA = '.'.
XU213-ODC = '.'.
XU213-BDC = '.'.
XU213-CPIC = '.'.
XU213-BATCH = '.'.
CASE USR02-USTYP.
WHEN TYPDIA.
XU213-DIA = 'X'.
WHEN TYPBATCH.
XU213-BATCH = 'X'.
WHEN TYPCPIC.
XU213-CPIC = 'X'.
WHEN TYPBDC.
XU213-BDC = 'X'.
WHEN TYPODC.
XU213-ODC = 'X'.
ENDCASE.
IF USR02-LTIME <> SPACE AND USR02-LTIME <> '000000'.
LOOP AT SCREEN.
CASE SCREEN-GROUP1.
WHEN 'MOD'.
SCREEN-INVISIBLE = '1'.
SCREEN-INPUT = '0'.
MODIFY SCREEN.
ENDCASE.
ENDLOOP.
SET CURSOR FIELD 'USR02-CLASS'.
IF F <> ' ' AND L <> 0.
SET CURSOR FIELD F LINE L.
ENDIF.
CODEFLAG = 1.
ELSE.
CLEAR XU213-BCODE.
CLEAR XU213-BCODE2.
IF USR02-BCODE <> '0000000000000000' AND BCODE_C = SPACE.
CODEFLAG = 0.
ENDIF.
IF CODEFLAG = -2.
SET CURSOR FIELD 'XU213-BCODE'.
MESSAGE S290.
ELSE.
SET CURSOR FIELD 'USR02-CLASS'.
IF F <> ' ' AND L <> 0.
SET CURSOR FIELD F LINE L.
ENDIF.
ENDIF.
ENDIF.
ENDMODULE.
MODULE D213_SELECT *
Einen Eintrag aus der Liste uebernehmen. *
MODULE D213_SELECT OUTPUT.
IF SELE = 1.
IF SY-LILLI < 4.
MESSAGE S209.
ELSE.
ASSIGN SY-LISEL(PROFLNG) TO <TEXT>.
MOVE <TEXT> TO XU213-PROFILE.
PERFORM AUTH_CHECK USING OBJ_PROF
XU213-PROFILE SPACE ACT_INCLUDE RC.
IF RC <> 0.
MESSAGE S478 WITH XU213-PROFILE.
ELSE.
FOUND = 0.
LOOP AT TABUSR.
IF TABUSR-PROFILE = XU213-PROFILE.
FOUND = 1.
MESSAGE S268 WITH XU213-PROFILE.
EXIT.
ENDIF.
ENDLOOP.
IF FOUND = 0.
PERFORM EXIST_USR10
USING XU213-PROFILE AKTIVATED SPACE RC.
CLEAR TABUSR.
TABUSR-PROFILE = XU213-PROFILE.
IF USR10-TYP = COLECTPROF.
TABUSR-SAMPROF = 'X'.
ENDIF.
Profiletext lesen
CLEAR USR11.
SELECT SINGLE * FROM USR11
WHERE LANGU = SY-LANGU
AND PROFN = TABUSR-PROFILE
AND AKTPS = AKTIVATED.
TABUSR-PTEXT = USR11-PTEXT.
APPEND TABUSR.
XU213-FILL = XU213-FILL + 1.
IF XU213-FILL >= MAXUSR.
MESSAGE S269.
ENDIF.
UCHANGE = 1.
PERFORM NOTSAVED.
ENDIF.
ENDIF.
ENDIF.
SELE = 0.
ENDIF.
PERFORM SET_STATUS USING 213.
PERFORM MESSAGE.
IF EXT_SECURITY <> '1'.
LOOP AT SCREEN.
IF SCREEN-GROUP1 = 'EXT'.
SCREEN-INPUT = '0'.
SCREEN-INVISIBLE = '1'.
SCREEN-ACTIVE = '0'.
MODIFY SCREEN.
ENDIF.
ENDLOOP.
ENDIF.
ENDMODULE.
MODULE D213_PROFOUT *
Profiles auf den Bildschirm ausgeben. *
MODULE D213_PROFOUT OUTPUT.
include <symbol>.
COUNTX = XU213-TOPIX + SY-STEPL - 1. "Bild-oben-Pos. in Tab. feststell
IF COUNTX <= XU213-FILL. "Am Ende der Tabelle ?
READ TABLE TABUSR INDEX COUNTX. "Tab. lesen
IF SY-SUBRC = 0.
MOVE-CORRESPONDING TABUSR TO XU213. "Daten auf den Bildschirm
xu213-samprof = sym_documents.
ENDIF.
ENDIF.
USRLOOP = SY-LOOPC.
ENDMODULE.
MODULE D254_SUPPRESS *
Dialog fuer Dynpro 254 unterdruecken *
MODULE D254_SUPPRESS OUTPUT.
SUPPRESS DIALOG.
ENDMODULE.
MODULE D310_SETSTATUS *
PF-Status setzen *
MODULE D310_SETSTATUS OUTPUT.
IF SHOW_ONLY = SPACE.
PERFORM SET_STATUS USING 310.
IF STATFLAG = 1.
LOOP AT SCREEN.
IF SCREEN-NAME = 'USR01-CATTKENNZ '.
AUTHORITY-CHECK OBJECT 'S_DEVELOP'
ID 'DEVCLASS' DUMMY
ID 'OBJTYPE' FIELD 'SCAT'
ID 'OBJNAME' DUMMY
ID 'P_GROUP' DUMMY
ID 'ACTVT' FIELD '70'.
IF SY-SUBRC <> 0.
SCREEN-INPUT = 0.
SCREEN-INVISIBLE = 1.
MODIFY SCREEN.
ENDIF.
ENDIF.
ENDLOOP.
ENDIF.
ELSE.
PERFORM SET_STATUS USING 330.
LOOP AT SCREEN.
IF SCREEN-GROUP1 = 'RO '.
SCREEN-INPUT = 0.
MODIFY SCREEN.
ENDIF.
ENDLOOP.
ENDIF.
CLEAR FCODE.
ENDMODULE.
MODULE D310_FORMAT_OUT. *
Datumsformat und Dezimalpunktformat entsprechend Daten aus usr01 *
ankreuzen. *
MODULE D310_FORMAT_OUT OUTPUT.
XU310-DATFM1 = ' '.
XU310-DATFM2 = ' '.
XU310-DATFM3 = ' '.
XU310-DATFM4 = ' '.
XU310-DATFM5 = ' '.
XU310-DCPFM1 = ' '.
XU310-DCPFM2 = ' '.
XU310-SPDB1 = ' '.
XU310-SPDA1 = ' '.
IF USR01-DATFM < 1 OR USR01-DATFM > 5.
CALL 'C_SAPGPARAM'
ID 'NAME' FIELD 'zcsa/moddatfm'
ID 'VALUE' FIELD USR01-DATFM.
ENDIF.
CASE USR01-DATFM.
WHEN 1.
XU310-DATFM1 = 'X'.
WHEN 2.
XU310-DATFM2 = 'X'.
WHEN 3.
XU310-DATFM3 = 'X'.
WHEN 4.
XU310-DATFM4 = 'X'.
WHEN 5.
XU310-DATFM5 = 'X'.
WHEN OTHERS.
XU310-DATFM1 = 'X'.
ENDCASE.
IF USR01-DCPFM = ' '.
XU310-DCPFM1 = 'X'.
ELSE.
XU310-DCPFM2 = 'X'.
ENDIF.
IF USR01-SPDB = 'G'.
XU310-SPDB1 = 'X'.
ENDIF.
IF USR01-SPDA = 'D'.
XU310-SPDA1 = 'X'.
ENDIF.
CLEAR TSP03.
SELECT SINGLE * FROM TSP03
WHERE PADEST = USR01-SPLD.
ENDMODULE.
MODULE D320_SETSTATUS *
PF-Status setzen *
MODULE D320_SETSTATUS OUTPUT.
IF SHOW_ONLY = SPACE.
PERFORM SET_STATUS USING 320.
ELSE.
PERFORM SET_STATUS USING 340.
LOOP AT SCREEN.
IF SCREEN-GROUP1 = 'RO '.
SCREEN-INPUT = 0.
MODIFY SCREEN.
ENDIF.
ENDLOOP.
ENDIF.
CLEAR FCODE.
ENDMODULE.
MODULE D330_SETSTATUS *
PF-Status setzen *
MODULE D330_SETSTATUS OUTPUT.
PERFORM SET_STATUS USING 330.
ENDMODULE.
MODULE D340_SETSTATUS *
PF-Status setzen *
MODULE D340_SETSTATUS OUTPUT.
PERFORM SET_STATUS USING 340.
ENDMODULE.
MODULE D350_SETSTATUS *
PF-Status setzen *
MODULE D350_SETSTATUS OUTPUT.
IF SELE = 1.
IF SY-LILLI < 3.
MESSAGE S209.
ELSE.
TABPAR-PARID = SY-LISEL.
APPEND TABPAR.
PARFILL = PARFILL + 1.
ENDIF.
SELE = 0.
ENDIF.
IF SHOW_ONLY = SPACE.
PERFORM SET_STATUS USING 350.
ELSE.
PERFORM SET_STATUS USING 360.
LOOP AT SCREEN.
IF SCREEN-GROUP1 = 'RO '.
SCREEN-INPUT = 0.
MODIFY SCREEN.
ENDIF.
ENDLOOP.
ENDIF.
CLEAR FCODE.
ENDMODULE.
MODULE D350_PAROUT *
Parameter auf den Bildschirm ausgeben. *
MODULE D350_PAROUT OUTPUT.
COUNTX = PARTOPIX + SY-STEPL - 1. "Bild-oben-Pos. in Tab. feststell
IF COUNTX <= PARFILL. "Am Ende der Tabelle ?
READ TABLE TABPAR INDEX COUNTX. "Tab. lesen
IF SY-SUBRC = 0.
MOVE-CORRESPONDING TABPAR TO XU350. "Daten auf den Bildschirm
SELECT SINGLE * FROM TPARAT
WHERE SPRACHE = SY-LANGU
AND PARAMID = TABPAR-PARID.
ENDIF.
ENDIF.
PARLOOP = SY-LOOPC.
ENDMODULE.
MODULE D351_SETSTATUS *
PF-Status setzen *
*ODULE D351_SETSTATUS OUTPUT.
IF SELE = 1.
IF SY-LILLI < 3.
MESSAGE S209.
ELSE.
XU350-PARID = SY-LISEL.
ENDIF.
SELE = 0.
ENDIF.
PERFORM SET_STATUS USING 352.
SUPPRESS DIALOG.
*NDMODULE.
MODULE D360_SETSTATUS *
PF-Status setzen *
MODULE D360_SETSTATUS OUTPUT.
PERFORM SET_STATUS USING 360.
ENDMODULE.
MODULE D390_STATUS *
PF-Status setzen. *
MODULE D390_STATUS OUTPUT.
data uflag_x type x. " unicode
SELECT SINGLE * FROM USR02
WHERE BNAME = XU200-XUSER.
uflag_x = USR02-UFLAG. " unicode
IF SY-SUBRC <> 0.
XU390-STATTEXT = ' Nicht vorhanden.'(222).
ELSE.
IF uflag_x Z YULOCK AND uflag_x Z YUSLOC. " unicode
PERFORM SET_STATUS USING 390.
XU390-STATTEXT = ' Nicht gesperrt. '(223).
ELSE.
IF uflag_x O YULOCK. " unicode
PERFORM SET_STATUS USING 391.
XU390-STATTEXT = ' Durch Falschanmeldungen gesperrt !!!'(224).
ENDIF.
IF uflag_x O YUSLOC. " unicode
PERFORM SET_STATUS USING 391.
XU390-STATTEXT = ' Durch Systemmanager gesperrt !!!'(225).
ENDIF.
ENDIF.
ENDIF.
LOCK = '.'.
UNLO = '.'.
ENDMODULE.
MODULE D400_CLEAR_CODE *
Passwortfeld loeschen. *
MODULE D400_CLEAR_CODE OUTPUT.
CLEAR XU400-NEWCODE.
CLEAR XU400-NEWCODE1.
ENDMODULE.
MODULE D400_SETSTATUS *
PF-Status setzen *
MODULE D400_SETSTATUS OUTPUT.
PERFORM SET_STATUS USING 400.
ENDMODULE.
MODULE D500_SUPPRESS *
Dynpro unterdruecken *
MODULE D500_SUPPRESS OUTPUT.
SET PF-STATUS '0200'.
SUPPRESS DIALOG.
ENDMODULE.
*& Module D214_SETSTATUS OUTPUT
MODULE D214_SETSTATUS OUTPUT.
SET PF-STATUS '0214'.
SET TITLEBAR '214'.
ENDMODULE. " D214_SETSTATUS OUTPUT
*& Module D216_PROFOUT OUTPUT
MODULE D216_PROFOUT OUTPUT.
COUNTX = XU213-TOPIX2 + SY-STEPL - 1. "Bild-oben-Pos. in Tab. festst
IF COUNTX <= XU213-FILL2. "Am Ende der Tabelle ?
READ TABLE INTPRO2 INDEX COUNTX. "Tab. lesen
IF SY-SUBRC = 0.
MOVE-CORRESPONDING INTPRO2 TO XU213. "Daten auf den Bildschirm
ENDIF.
ENDIF.
ENDMODULE. " D216_PROFOUT OUTPUT
*& Module D504_STATUS OUTPUT
MODULE D504_STATUS OUTPUT.
SET PF-STATUS '0504'.
SET TITLEBAR '604'.
ENDMODULE. " D504_STATUS OUTPUT
*& Module D217_SETSTATUS
MODULE D217_SETSTATUS OUTPUT.
PERFORM SET_STATUS USING 217.
PERFORM MESSAGE.
IF FERTIG = -1.
SUPPRESS DIALOG.
ENDIF.
ENDMODULE. " D217_SELECT OUTPUT
*& Module D202_SETSTATUS OUTPUT
text *
MODULE D202_SETSTATUS OUTPUT.
SET PF-STATUS '0203'.
SET TITLEBAR '203'.
ENDMODULE. " D202_SETSTATUS OUTPUT
*& Module D200_LESEN_MEMORY OUTPUT
Schnittstelle mit RSUSR008
call transaction su01 and skip first screen
MODULE D200_LESEN_MEMORY OUTPUT.
IMPORT FCODE FROM MEMORY ID 'OK_CODE'.
EXPORT FCODE FROM SPACE TO MEMORY ID 'OK_CODE'.
ENDMODULE. " D200_LESEN_MEMORY OUTPUT
"$$
10.
*& Report ZSAPMS01J *
23.10.92
set extended check off.
INCLUDE ZMS01JTOP.
*INCLUDE MS01JTOP. "Datendeklarationen
INCLUDE ZMS01JO10.
*INCLUDE MS01JO10. "PBO-Module
*INCLUDE ZMS01JI10.
INCLUDE MS01JI10. "PAI-Module
*INCLUDE ZMS01JF10.
INCLUDE MS01JF10. "Forms
*INCLUDE ZMS01JR10.
INCLUDE MS01JR10. "Reporting
*INCLUDE ZMS01CC10.
INCLUDE MS01CC10. "Checks
*INCLUDE ZMS01CD10.
INCLUDE MS01CD10. "Datenzugriffe
set extended check on.
see there are in total 10 prog that should go in one trasport order. this will creat data file and co file. these are flat files. i want these flat files.
do it in developement server or testing server and then delete it or revert it once you get data file or co file.
i will greatful to u if you could send me these flat files.
thanx in advance
rajhi all,
this can be done in 4.6 version also.
thanx for spending time on this.
thanx®ards
raj -
Error while starting data loading on InfoPackage
Hi everybody,
I'm new at SAP BW and I'm working in the "Step-By-Step: From Data Model to the BI Application in the web" document from SAP.
I'm having a problem at the (Chapter 9 in the item c - Starting Data Load Immediately).
If anyone can help me:
Thanks,
Thiago
Below are the copy of the error from my SAP GUI.
<><><><><><><><><><<><><><><><><><><><><><><><><><><><><><><><>
Runtime Errors MESSAGE_TYPE_X
Date and Time 19.01.2009 14:41:22
Short text
The current application triggered a termination with a short dump.
What happened?
The current application program detected a situation which really
should not occur. Therefore, a termination with a short dump was
triggered on purpose by the key word MESSAGE (type X).
What can you do?
Note down which actions and inputs caused the error.
To process the problem further, contact you SAP system
administrator.
Using Transaction ST22 for ABAP Dump Analysis, you can look
at and manage termination messages, and you can also
keep them for a long time.
Error analysis
Short text of error message:
Batch - Manager for BW Processes ***********
Long text of error message:
Technical information about the message:
Message class....... "RSBATCH"
Number.............. 000
Variable 1.......... " "
Variable 2.......... " "
Variable 3.......... " "
Variable 4.......... " "
How to correct the error
Probably the only way to eliminate the error is to correct the program.
If the error occures in a non-modified SAP program, you may be able to
find an interim solution in an SAP Note.
If you have access to SAP Notes, carry out a search with the following
keywords:
"MESSAGE_TYPE_X" " "
"SAPLRSBATCH" or "LRSBATCHU01"
"RSBATCH_START_PROCESS"
If you cannot solve the problem yourself and want to send an error
notification to SAP, include the following information:
1. The description of the current problem (short dump)
To save the description, choose "System->List->Save->Local File
(Unconverted)".
2. Corresponding system log
Display the system log by calling transaction SM21.
Restrict the time interval to 10 minutes before and five minutes
after the short dump. Then choose "System->List->Save->Local File
(Unconverted)".
3. If the problem occurs in a problem of your own or a modified SAP
program: The source code of the program
In the editor, choose "Utilities->More
Utilities->Upload/Download->Download".
4. Details about the conditions under which the error occurred or which
actions and input led to the error.
System environment
SAP-Release 701
Application server... "sun"
Network address...... "174.16.5.194"
Operating system..... "Windows NT"
Release.............. "5.1"
Hardware type........ "2x Intel 801586"
Character length.... 8 Bits
Pointer length....... 32 Bits
Work process number.. 2
Shortdump setting.... "full"
Database server... "localhost"
Database type..... "ADABAS D"
Database name..... "NSP"
Database user ID.. "SAPNSP"
Terminal.......... "sun"
Char.set.... "English_United State"
SAP kernel....... 701
created (date)... "Jul 16 2008 23:09:09"
create on........ "NT 5.2 3790 Service Pack 1 x86 MS VC++ 14.00"
Database version. "SQLDBC 7.6.4.014 CL 188347 "
Patch level. 7
Patch text.. " "
Database............. "MaxDB 7.6, MaxDB 7.7"
SAP database version. 701
Operating system..... "Windows NT 5.0, Windows NT 5.1, Windows NT 5.2, Windows
NT 6.0"
Memory consumption
Roll.... 8112
EM...... 11498256
Heap.... 0
Page.... 65536
MM Used. 6229800
MM Free. 1085264
User and Transaction
Client.............. 001
User................ "THIAGO"
Language key........ "E"
Transaction......... "RSA1 "
Transactions ID..... "CD47E6DDD55EF199B4E6001B782D539C"
Program............. "SAPLRSBATCH"
Screen.............. "SAPLRSS1 2500"
Screen line......... 7
Information on where terminated
Termination occurred in the ABAP program "SAPLRSBATCH" - in
"RSBATCH_START_PROCESS".
The main program was "RSAWBN_START ".
In the source code you have the termination point in line 340
of the (Include) program "LRSBATCHU01".
Source Code Extract
Line
SourceCde
310
endif.
311
l_lnr_callstack = l_lnr_callstack - 1.
312
endloop. " at l_t_callstack
313
endif.
314
315
*---- Eintrag für RSBATCHHEADER -
316
l_s_rsbatchheader-batch_id = i_batch_id.
317
call function 'GET_JOB_RUNTIME_INFO'
318
importing
319
jobcount = l_s_rsbatchheader-jobcount
320
jobname = l_s_rsbatchheader-jobname
321
exceptions
322
no_runtime_info = 1
323
others = 2.
324
call function 'TH_SERVER_LIST'
325
tables
326
list = l_t_server
327
exceptions
328
no_server_list = 1
329
others = 2.
330
data: l_myname type msname2.
331
call 'C_SAPGPARAM' id 'NAME' field 'rdisp/myname'
332
id 'VALUE' field l_myname.
333
read table l_t_server with key
334
name = l_myname.
335
if sy-subrc = 0.
336
l_s_rsbatchheader-host = l_t_server-host.
337
l_s_rsbatchheader-server = l_myname.
338
refresh l_t_server.
339
else.
>>>>>
message x000.
341
endif.
342
data: l_wp_index type i.
343
call function 'TH_GET_OWN_WP_NO'
344
importing
345
subrc = l_subrc
346
wp_index = l_wp_index
347
wp_pid = l_s_rsbatchheader-wp_pid.
348
if l_subrc <> 0.
349
message x000.
350
endif.
351
l_s_rsbatchheader-wp_no = l_wp_index.
352
l_s_rsbatchheader-ts_start = l_tstamps.
353
l_s_rsbatchheader-uname = sy-uname.
354
l_s_rsbatchheader-module_name = l_module_name.
355
l_s_rsbatchheader-module_type = l_module_type.
356
l_s_rsbatchheader-pc_variant = i_pc_variant.
357
l_s_rsbatchheader-pc_instance = i_pc_instance.
358
l_s_rsbatchheader-pc_logid = i_pc_logid.
359
l_s_rsbatchheader-pc_callback = i_pc_callback_at_end.Hi,
i am also getting related this issue kindly see this below short dump description.
Short text
The current application triggered a termination with a short dump.
What happened?
The current application program detected a situation which really
should not occur. Therefore, a termination with a short dump was
triggered on purpose by the key word MESSAGE (type X).
What can you do?
Note down which actions and inputs caused the error.
To process the problem further, contact you SAP system
administrator.
Using Transaction ST22 for ABAP Dump Analysis, you can look
at and manage termination messages, and you can also
keep them for a long time.
Error analysis
Short text of error message:
Variant RSPROCESS0000000000705 does not exist
Long text of error message:
Diagnosis
You selected variant 00000000705 for program RSPROCESS.
This variant does not exist.
System Response
Procedure
Correct the entry.
Technical information about the message:
Message class....... "DB"
Number.............. 612
Variable 1.......... "&0000000000705"
Variable 2.......... "RSPROCESS"
Variable 3.......... " "
Variable 4.......... " "
How to correct the error
Probably the only way to eliminate the error is to correct the program.
If the error occures in a non-modified SAP program, you may be able to
find an interim solution in an SAP Note.
If you have access to SAP Notes, carry out a search with the following
keywords:
"MESSAGE_TYPE_X" " "
"SAPLRSPC_BACKEND" or "LRSPC_BACKENDU05"
"RSPC_PROCESS_FINISH"
If you cannot solve the problem yourself and want to send an error
notification to SAP, include the following information:
1. The description of the current problem (short dump)
To save the description, choose "System->List->Save->Local File
(Unconverted)".
2. Corresponding system log
Display the system log by calling transaction SM21.
Restrict the time interval to 10 minutes before and five minutes
after the short dump. Then choose "System->List->Save->Local File
(Unconverted)".
3. If the problem occurs in a problem of your own or a modified SAP
program: The source code of the program
In the editor, choose "Utilities->More
Utilities->Upload/Download->Download".
4. Details about the conditions under which the error occurred or which
actions and input led to the error.
System environment
SAP-Release 701
Application server... "CMCBIPRD"
Network address...... "192.168.50.12"
Operating system..... "Windows NT"
Release.............. "6.1"
Hardware type........ "16x AMD64 Level"
Character length.... 16 Bits
Pointer length....... 64 Bits
Work process number.. 0
Shortdump setting.... "full"
Database server... "CMCBIPRD"
Database type..... "MSSQL"
Database name..... "BIP"
Database user ID.. "bip"
Terminal.......... "CMCBIPRD"
Char.set.... "C"
SAP kernel....... 701
created (date)... "Sep 9 2012 23:43:54"
create on........ "NT 5.2 3790 Service Pack 2 x86 MS VC++ 14.00"
Database version. "SQL_Server_8.00 "
Patch level. 196
Patch text.. " "
Database............. "MSSQL 9.00.2047 or higher"
SAP database version. 701
Operating system..... "Windows NT 5.0, Windows NT 5.1, Windows NT 5.2, Windows
NT 6.0, Windows NT 6.1, Windows NT 6.2"
Memory consumption
Roll.... 16192
EM...... 4189840
Heap.... 0
Page.... 16384
MM Used. 2143680
MM Free. 2043536
User and Transaction
Client.............. 001
User................ "BWREMOTE"
Language Key........ "E"
Transaction......... " "
Transactions ID..... "9C109BE2C9FBF18BBD4BE61F13CE9693"
Program............. "SAPLRSPC_BACKEND"
Screen.............. "SAPMSSY1 3004"
Screen Line......... 2
Information on caller of Remote Function Call (RFC):
System.............. "BIP"
Database Release.... 701
Kernel Release...... 701
Connection Type..... 3 (2=R/2, 3=ABAP System, E=Ext., R=Reg. Ext.)
Call Type........... "asynchron without reply and transactional (emode 0, imode
0)"
Inbound TID.........." "
Inbound Queue Name..." "
Outbound TID........." "
Outbound Queue Name.." "
Information on where terminated
Termination occurred in the ABAP program "SAPLRSPC_BACKEND" - in
"RSPC_PROCESS_FINISH".
The main program was "SAPMSSY1 ".
In the source code you have the termination point in line 75
of the (Include) program "LRSPC_BACKENDU05".
Source Code Extract
Line SourceCde
45 l_t_info TYPE rs_t_rscedst,
46 l_s_info TYPE rscedst,
47 l_s_mon TYPE rsmonpc,
48 l_synchronous TYPE rs_bool,
49 l_sync_debug TYPE rs_bool,
50 l_eventp TYPE btcevtparm,
51 l_eventno TYPE rspc_eventno,
52 l_t_recipients TYPE rsra_t_recipient,
52 l_t_recipients TYPE rsra_t_recipient,
53 l_s_recipients TYPE rsra_s_recipient,
54 l_sms TYPE rs_bool,
55 l_t_text TYPE rspc_t_text.
56
57 IF i_dump_at_error = rs_c_true.
58 * ==== Dump at error? => Recursive Call catching errors ====
59 CALL FUNCTION 'RSPC_PROCESS_FINISH'
60 EXPORTING
61 i_logid = i_logid
62 i_chain = i_chain
63 i_type = i_type
64 i_variant = i_variant
65 i_instance = i_instance
66 i_state = i_state
67 i_eventno = i_eventno
68 i_hold = i_hold
69 i_job_count = i_job_count
70 i_batchdate = i_batchdate
71 i_batchtime = i_batchtime
72 EXCEPTIONS
73 error_message = 1.
74 IF sy-subrc <> 0.
>>> MESSAGE ID sy-msgid TYPE 'X' NUMBER sy-msgno
76 WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
77 ELSE.
78 EXIT.
79 ENDIF.
80 ENDIF.
81 * ==== Cleanup ====
82 COMMIT WORK.
83 * ==== Get Chain ====
84 IF i_chain IS INITIAL.
85 SELECT SINGLE chain_id FROM rspclogchain INTO l_chain
86 WHERE log_id = i_logid.
87 ELSE.
88 l_chain = i_chain.
89 ENDIF.
90 * ==== Lock ====
91 * ---- Lock process ----
92 DO.
93 CALL FUNCTION 'ENQUEUE_ERSPCPROCESS'
94 EXPORTING
If we do this
Use table RSSDLINIT and in OLTPSOURCRE: enter the name of the data source
And in the logsys enter the name of the source system and delete the entry for that info package. what will happen is process chain will run suceesfully and short dump will not come or what kindly give the detail explanation about this RSSDLINIT.
Regards,
poluru -
Whom do I talk to about new printer or software for printer I have.
I have read in most of the posts this issue goes back and forth. I switched to a Mac 4 months ago and so what I am looking for is.....I am not Mac savvy.
Okay, I have the hp psc 1315 printer scanner and I would like to enlarge the patterns I have. There is no option to say make them poster size. I can only pick a photo size. I need to make them larger than 8x10. I know with a pc you can pick an option to have it print out in poster size but I lost that option in mac format. With the poster size the pattern would print out on more sheets of paper then I would tape them together, which is ok for what I am doing. Should I get a new printer with more options or have you all help me try to fix this one. Sorry so wordy but not sure what I should do.You might like to try an alternate driver called hpijs - it comes as a three-part install:
http://www.linuxfoundation.org/en/OpenPrinting/MacOSX/hpijs -
Transfer a xml file from application server to another server using FTP
Hi experts,
I am stuck in this situtaion.
My interface generates a xml file on an application server.
Now i need to read the xml file generated and transfer it to another system using FTP.
I can use READ DATASET to read the file from the application server.
And use the below function modules to transfer it to another system
HTTP_SCRAMBLE.
FTP_CONNECT
CONCATENATE 'put' src_file_dest into variable.
FTP_COMMAND with command = variable.
FTP_DISCONNECT.
Now my question is:
- Is it correct????
- I am getting an cerror = 3 while using FTP_CONNECT. is it an authorization issue???
if yes, what is the issue???
- How to connect the file read from READ DATASET to the FTP Function Modules ????
Thanks and Regards
Gaurav RaghavTry the following set of FTP commands..
This code gets the file (NOT the content) from the server and sends it to the FTP.
*********start send file to FTP********************
* FTP commands : 1. ascii
* 2. cd
* 3. lcd
* 4. put
call function 'HTTP_SCRAMBLE'
exporting
source = x_pwd
sourcelen = dstlen
key = key
importing
destination = destin.
clear pass.
pass = destin.
call function 'FTP_CONNECT'
exporting
user = x_user
* PASSWORD = X_PWD
password = pass
host = x_host
rfc_destination = x_dest
importing
handle = hdl.
* COMMAND ascii -->
refresh : x_result.
call function 'FTP_COMMAND'
exporting
handle = hdl
command = cmd_ascii
compress = compress
tables
data = x_result
exceptions
command_error = 1
tcpip_error = 2.
*command cd SAP\ -->
split x_file at '\' into dummy ftp_file.
concatenate x_cmd1 dummy into dummy2 separated by space.
concatenate dummy2 '\' into cmd_cd.
refresh : x_result.
call function 'FTP_COMMAND'
exporting
handle = hdl
command = cmd_cd
compress = compress
tables
data = x_result
exceptions
command_error = 1
tcpip_error = 2.
constants: winslash(1) value '\',
unixslash(1) value '/'.
call 'C_SAPGPARAM' id 'NAME' field 'DIR_HOME'
id 'VALUE' field tempdir.
* command lcd SERVER\usr\....\DIR_HOME --?
concatenate 'lcd' tempdir into cmd_lcd separated by space.
refresh : x_result.
call function 'FTP_COMMAND'
exporting
handle = hdl
command = cmd_lcd
compress = compress
tables
data = x_result
exceptions
command_error = 1
tcpip_error = 2.
* COMMAND put file -->
concatenate 'put' ftp_file into cmd_put separated by space.
refresh : x_result.
call function 'FTP_COMMAND'
exporting
handle = hdl
command = cmd_put
compress = compress
tables
data = x_result
exceptions
command_error = 1
tcpip_error = 2.
* command ls -->
refresh : x_result.
call function 'FTP_COMMAND'
exporting
handle = hdl
command = cmd2
compress = compress
tables
data = x_result
exceptions
command_error = 1
tcpip_error = 2.
call function 'FTP_DISCONNECT'
exporting
handle = hdl.
******* end send file to FTP*****
Edited by: Iria Koutsogianni on Jan 19, 2009 11:50 AM -
Download PDF file from Application Server in BSP
Hello,
We have a requirement on which we want to download a PDF file stored in Application server using BSP application. I have used function module ARCHIVFILE_SERVER_TO_CLIENT but this FM will help only if i want to download file from GUI it won't work in BSP application.
Further i have used class CL_BSP_UTILITY and download method to download file from application server but it is not working in desired manner.
I am attaching my code for your reference:
DATA: BUTTON_EVENT TYPE REF TO CL_HTMLB_EVENT_BUTTON ,
EVENT TYPE REF TO IF_HTMLB_DATA.
DATA: LS_HOURS LIKE LINE OF GT_HOURS.
DATA STR TYPE STRING.
DATA: OUTPUT TYPE STRING ,
L_XSTRING TYPE XSTRING ,
APP_TYPE TYPE STRING.
EVENT = CL_HTMLB_MANAGER=>GET_EVENT( REQUEST ).
DATA PHY_NAME_OUT TYPE SAPB-SAPPFAD.
IF EVENT IS NOT INITIAL AND EVENT->EVENT_NAME = HTMLB_EVENTS=>BUTTON .
BUTTON_EVENT ?= EVENT .
CASE EVENT->EVENT_SERVER_NAME.
WHEN 'test' .
IF GT_HOURS IS NOT INITIAL.
PHY_NAME_OUT = '/usr/sap/put/form16//01000200_2007.PDF'.
OPEN DATASET PHY_NAME_OUT FOR INPUT IN TEXT MODE ENCODING DEFAULT.
IF SY-SUBRC IS INITIAL.
DO.
READ DATASET PHY_NAME_OUT INTO STR.
IF SY-SUBRC IS INITIAL.
CONCATENATE
OUTPUT
str
cl_abap_char_utilities=>cr_lf
INTO output SEPARATED BY space. "cl_abap_char_utilities=>horizontal_tab
ELSE.
EXIT.
ENDIF.
ENDDO.
ENDIF.
*LOOP AT gt_hours INTO ls_hours.
*CONCATENATE
*OUTPUT
*ls_hours-hour
*cl_abap_char_utilities=>cr_lf
*INTO output SEPARATED BY space. "cl_abap_char_utilities=>horizontal_tab
*ENDLOOP.
APP_TYPE = 'APPLICATION/PDF;charset=utf-16le'.
CALL FUNCTION 'SCMS_STRING_TO_XSTRING'
EXPORTING
TEXT = OUTPUT
MIMETYPE = 'APPLICATION/PDF;charset=utf-16le'
IMPORTING
BUFFER = L_XSTRING.
CONCATENATE CL_ABAP_CHAR_UTILITIES=>BYTE_ORDER_MARK_LITTLE
L_XSTRING
INTO L_XSTRING IN BYTE MODE.
CALL METHOD CL_BSP_UTILITY=>DOWNLOAD
EXPORTING
OBJECT_S = L_XSTRING
CONTENT_TYPE = APP_TYPE
CONTENT_DISPOSITION = 'attachment;filename=webforms.pdf'
RESPONSE = _M_RESPONSE
NAVIGATION = NAVIGATION.
ENDIF.
ENDCASE.
ENDIF.
From this code i am able to download PDF file but it is not opening in local machine.
If any other way to download file then please suggest.
waiting for ur reply.
Regards,
GaganHi,
you do the file reading wrong:
have a look at:
Local declarations.
data:
components type stringtab,
component type string,
path type text255,
file type text255,
line_length type i,
filecontent_binary type sdokcntbin,
rows type sytabix,
content type sdokcntbin,
exception type ref to cx_sy_file_access_error,
exception_tmf type ref to cx_sy_too_many_files ,
block_size type i value 1022,
length type i.
field-symbols:
<hex_container> type x.
constants:
c_dms_blk_size type i value 2550.
clear file_size.
try.
open dataset file_name for input in binary mode message message.
catch cx_sy_file_open into exception.
case exception->textid.
when '4182174D03030063000000000A1551B1'. raise access_error.
when '41825AD355C3005E000000000A1551B1'. raise open_error.
when '47E8B03AECE5BA07E10000000A114829'. raise already_open.
when others.
endcase.
catch cx_sy_file_authority into exception.
case exception->textid.
when '4182174D03030063000000000A1551B1'. raise access_error.
when 'A70BB8396F051547E10000000A11447B'. raise authority_error.
when others.
endcase.
catch cx_sy_too_many_files into exception_tmf.
case exception_tmf->textid.
when '8708B73915F6B645E10000000A11447B'. raise too_many_files.
when others.
endcase.
endtry.
do.
try.
read dataset file_name into filecontent_binary-line.
if sy-subrc <> 0.
add line_length to file_size.
append filecontent_binary to file_content_binary.
exit.
else.
add line_length to file_size.
append filecontent_binary to file_content_binary.
endif.
catch cx_sy_file_open_mode into exception.
case exception->textid.
when '9207B73915F6B645E10000000A11447B'. raise cx_sy_file_open_mode.
when '9807B73915F6B645E10000000A11447B'. raise read_only.
when '9E07B73915F6B645E10000000A11447B'. raise not_open.
when '409D273A2D824360E10000000A11447B'. raise incompatible_mode.
when others.
endcase.
endtry.
enddo.
try.
close dataset file_name.
catch cx_sy_file_close into exception.
case exception->textid.
when '4182174D03030063000000000A1551B1'. raise access_error.
when 'C10BB8396F051547E10000000A11447B'. raise close_error.
when others.
endcase.
catch cx_sy_file_access_error into exception.
case exception->textid.
when '4182174D03030063000000000A1551B1'. raise access_error.
when others.
endcase.
endtry.
Get file size.
split file_name at '/' into table components.
describe table components lines sy-tfill.
read table components into component index sy-tfill.
path = file_name.
replace component in path with ''.
file = component.
call function '/EUH/MMS_GET_FILE_SIZE'
exporting
dir_name = path
file_name = file
importing
file_size = file_size.
and function /euh/mms_get_file_size.
""Local Interface:
*" IMPORTING
*" VALUE(DIR_NAME) TYPE TEXT255
*" VALUE(FILE_NAME) TYPE TEXT255
*" EXPORTING
*" VALUE(FILE_SIZE) TYPE SDOK_FSIZE
*" EXCEPTIONS
*" NO_AUTHORITY
*" ACTIVITY_UNKNOWN
*" NOT_A_DIRECTORY
*" NO_MEDIA_IN_DRIVE
*" TOO_MANY_ERRORS
*" TOO_MANY_FILES
*" BRACKET_ERROR_IN_FILENAME
*" NO_SUCH_PARAMETER
types: begin of files,
line like ocs_file,
end of files.
data: file type files,
f_subrc like sy-subrc value 0,
errno(3) type c,
errmsg(40) type c,
pos type i,
len type i,
parameter(120) type c,
help1(120) type c,
help2(120) type c,
error_counter type i.
data:
dir_list like ocs_file occurs 0 with header line.
CASE sy-subrc.
WHEN 1. f_subrc = 64.
WHEN 2. f_subrc = 65.
WHEN 0.
search dir_name for 'SY-HOST'. "Is SY-HOST used in directory name?
if sy-subrc = 0.
pos = sy-fdpos + 7.
move dir_name(sy-fdpos) to help1.
move dir_name+pos to help2.
concatenate help1 sy-host help2 into dir_name.
endif.
do 12 times. " To avoid endless loop
if dir_name cs '$('. " Replace parameter by their value
pos = sy-fdpos + 2.
if dir_name cs ')'.
len = sy-fdpos - pos.
if len le 0.
f_subrc = 4. exit.
else.
parameter = dir_name+pos(len).
call 'C_SAPGPARAM' id 'NAME' field parameter
id 'VALUE' field parameter.
if sy-subrc = 0.
len = pos + len + 1.
pos = pos - 2.
if pos > 0.
move dir_name(pos) to help1.
else.
help1 = ''.
endif.
pos = strlen( dir_name ).
if pos > len.
move dir_name+len to help2.
else.
help2 = ''.
endif.
concatenate help1 parameter help2 into dir_name.
else.
f_subrc = 8. exit.
endif.
endif.
else.
exit.
endif.
else.
exit.
endif.
enddo.
shift dir_name right deleting trailing '/\ '.
shift dir_name left deleting leading space.
call 'C_DIR_READ_FINISH' " this is from RSWATCH0
id 'ERRNO' field errno
id 'ERRMSG' field errmsg.
call 'C_DIR_READ_START'
id 'DIR' field dir_name
id 'FILE' field file_name
id 'ERRNO' field errno
id 'ERRMSG' field errmsg.
case sy-subrc.
when 1.
case errno.
when 2 or 20. f_subrc = f_subrc + 66.
when ' '. f_subrc = f_subrc + 67.
endcase.
when 0.
clear error_counter.
do.
clear file.
clear dir_list.
call 'C_DIR_READ_NEXT'
id 'TYPE' field file-line-type
id 'NAME' field file-line-name
id 'LEN' field file-line-len
id 'OWNER' field file-line-owner
id 'MTIME' field file-line-mtime
id 'MODE' field file-line-acc_mode
id 'ERRNO' field errno
id 'ERRMSG' field errmsg. "sy-subrc = 3 is e.g. if return
if sy-subrc = 0 or sy-subrc = 3."data do not fit into variables
perform p6_to_date_time_tz(rstr0400) using
file-line-mtime
file-line-mod_time
file-line-mod_date.
file_size = file-line-len.
dir_list = file-line.
append dir_list.
elseif sy-subrc = 1. " nothing (more) found
exit.
else.
if error_counter > 50.
call 'C_DIR_READ_FINISH'
id 'ERRNO' field errno
id 'ERRMSG' field errmsg.
pos = f_subrc mod 2.
if pos = 0. f_subrc = f_subrc + 1. endif.
exit.
endif.
add 1 to error_counter.
endif.
if sy-index > 1000.
pos = f_subrc mod 4.
if pos = 0. f_subrc = f_subrc + 2. endif.
exit.
endif.
enddo.
call 'C_DIR_READ_FINISH'
id 'ERRNO' field errno
id 'ERRMSG' field errmsg.
if sy-opsys(3) = 'Win' and not ( file_name cs '*' ).
describe table dir_list lines len.
if len = 0.
help1 = file_name.
translate help1 to upper case.
translate help1 using
'ABCDEFGHIJKLMNOPQRSTUVWXYZ'.
call 'C_DIR_READ_START'
id 'DIR' field dir_name
id 'FILE' field help1.
if sy-subrc = 0.
clear error_counter.
do.
clear file.
clear dir_list.
call 'C_DIR_READ_NEXT'
id 'TYPE' field file-line-type
id 'NAME' field file-line-name
id 'LEN' field file-line-len
id 'OWNER' field file-line-owner
id 'MTIME' field file-line-mtime
id 'MODE' field file-line-acc_mode
id 'ERRNO' field errno
id 'ERRMSG' field errmsg.
if sy-subrc = 0 or sy-subrc = 3.
help2 = file_name.
translate help2 to upper case.
help1 = file-line-name.
translate help1 to upper case.
if help1 = help2.
perform p6_to_date_time_tz(rstr0400) using
file-line-mtime
file-line-mod_time
file-line-mod_date.
dir_list = file-line.
append dir_list.
endif.
elseif sy-subrc = 1.
exit.
else.
if error_counter > 50.
call 'C_DIR_READ_FINISH'
id 'ERRNO' field errno
id 'ERRMSG' field errmsg.
pos = f_subrc mod 2.
if pos = 0. f_subrc = f_subrc + 1. endif.
exit.
endif.
add 1 to error_counter.
endif.
if sy-index > 1000.
pos = f_subrc mod 4.
if pos = 0. f_subrc = f_subrc + 2. endif.
exit.
endif.
enddo.
call 'C_DIR_READ_FINISH'
id 'ERRNO' field errno
id 'ERRMSG' field errmsg.
endif.
endif.
endif.
endcase.
ENDCASE.
CASE f_subrc.
WHEN 1 OR 3. RAISE too_many_errors.
WHEN 2. RAISE too_many_files.
WHEN 4 OR 5 OR 6 OR 7 OR 70 OR 71.
RAISE bracket_error_in_filename.
WHEN 8 OR 9 OR 10 OR 11 OR 74 OR 75.
RAISE no_such_parameter.
WHEN 64. RAISE no_authority.
WHEN 65. RAISE activity_unknown.
WHEN 66. RAISE not_a_directory.
WHEN 67. RAISE no_media_in_drive.
ENDCASE.
endfunction.
Now you will be able to get the filesize and the file in SDOK format sdokbin.
Okay.
You have to build an request and push the content to the user like:
call method server->response->set_header_field( name = 'Content-Type' value = value ).
describe field file_content_binary-line length line_length in byte mode.
bytes_rest = file-size.
loop at file_content_binaries assigning <file_content_binary>.
move <file_content_binary>-line to data.
if bytes_rest <= 0. "mismatch between line values and size
exit.
endif.
if bytes_rest >= line_length.
call method server->response->append_data( data = data
length = line_length ).
else.
call method server->response->append_data( data = data
length = bytes_rest ).
endif.
bytes_rest = bytes_rest - line_length.
endloop.
This will work.
You can set the header fields like you want. Have also a look at sicf node contentserver
and its handler: CL_HTTP_EXT_CSIF -
Column Masking in GUI _UPLOAD
Hi All,
I have to donwload an internal table with header data using column masking. But GUI_DOWNLOAD is downloading data for all the columns. I use one other alternate approach, call GUI_DOWNLOAD function two times, one for Header Data and another for Data Records. But the problem arise when data is downloaded into different rows for Header Data instead of a single column.Please let me know, if any one of you have any idea.
Thanks
PiyushHi Buddy,
Problem comes when i use GUI_DOWNLOAD two times , one for Header Data and Another time for Data.
First time when i call GUI_DOWNLOAD, i have to pass the Header Values to DATA_TAB and function download all the data in different rows, which is the problem. Header data must be downloaded in a single row.
If i call the GUI_DOWNLOAD with FIELDNAMES and without DATA_TAB, it showed an error. If you any alternate way, please let me know.
Thanks
Piysuh -
How to get the path of DIR_HOME?
Hi all,
In transaction AL11 there are several paths for SAP-directories. One of them is DIR_HOME. This path can vary from system to system.
Is there a function or command or such which can be called from an ABAP program and return the path of DIR_HOME?
Thanks in advance,
IoanaHi Ioana,
try this code:
report ZTEST.
data h_path(75) type c.
call 'C_SAPGPARAM' id 'NAME' field 'DIR_HOME'
id 'VALUE' field h_path.
write: / 'DIR_HOME:', h_path.
Regard,
Dirk -
Reading name of application server, not SY-HOST
Hey folks,
we have three application servers running on the same machine.
So in table SAPWLSERV you find three entries with following content as example:
NAME HOST ...
sys00 host00 ...
sys01 host00 ...
sys11 host00 ...
sys00, sys01 and sys11 are the three application servers running on the machine called host00.
No matter on which application server i am, SY-HOST is set to "host00". But i dont need the host, i need the name of the application server on which my program is running.
How can get the NAME of the actual application server i am running on?
Thank you and best regards,
khsI cannot test if my suggestion works for multiple app servers, but anyway...
The local server name is in profile parameter "rdisp/myname". You can read this value in your program:
call 'C_SAPGPARAM'
id 'NAME' field 'rdisp/myname'
id 'VALUE' field server_name.
Have look at function module GENERAL_GET_APP_SERVER_NAME, that's where this code is from.
Thomas
Maybe you are looking for
-
What is the maximum length of LONG data type in Forms 6i?
What is the maximum length of LONG data type in Forms 6i?
-
The file name of many songs are in my library but can't be heard or found, why?
My itunes library has been off-line for a year or more and when i updated everything my song file names are there and some songs are audible but the majority of them are not and my computer says it can't find the song in my computer, what do i do?
-
Photoshop Elements for Mac - Three Versions Installed
Hi there, I'm cleaning up stuff on my iMac and find I have three purchased versions of PhotoShop Elements for Mac installed, V4, V6 and now V8. Can I safely remove the old V4 and V6 versions without them affecting anything in V8? Also, there are oth
-
Flash 9w/Firefox and Safari
I have installed, uninstalled and re-installed several times and I can't display flash images. It says it's installed until I get to a page that needs it, such as comcast video or even the flash test page and then it says missing plug-in and when I c
-
Aperture 3.3.1 keep crashing
I upgraded Aperture to 3.3.1 When I open it, it crashes a minute of two after it opens - even if I am not doing anything. What am I supposed to do? It worked very well before the upgrade, and it might have something to do with 'upgrading' the libra