OnDisconnect and client parameter
Hello,
I am wondering about the OnDisconnect event handler's
internal. From that handler, I access the client parameter, which
is a pointer to the actual client connection. The problem is that
recently I am fetching some data from an external webpage using
LoadVars first, and then accessing the client variable. Sometimes,
randomly, some of the client's properties are undefined, as if
maybe the client object was being deleted from memory before I
could access it.
Will the client object usually be deleted AFTER the
OnDisconnect event handler has been fully executed, or is it done
simultenously, thus imposing a limit in the period of time we can
access the object before it gets deleted?
See this links for more clarification.
http://sap.ittoolbox.com/documents/popular-q-and-a/differentiating-between-dependent-and-independent-data-1957
http://help.sap.com/saphelp_nw2004s/helpdata/en/a9/bb963a570b4b5de10000000a114084/frameset.htm
http://help.sap.com/saphelp_nw2004s/helpdata/en/b7/8a9a3aaf894871e10000000a114084/frameset.htm
Re: What is the concept of Client
Message control records (NAST records) must exist for the trading contracts for which you want to print out messages. Print output is selected as the transmission medium and Send with application own transaction is selected as the time.
The NAST records for trading contracts are created automatically. For this, the necessary settings must be maintained in Customizing, and condition records must be created
Similar Messages
-
NET8의 LOGGING AND TRACE관련 PARAMETER에 대한 Q & A
제품 : SQL*NET
작성날짜 : 1999-07-30
NET8의 LOGGING AND TRACE관련 PARAMETER에 대한 Q & A
==================================================
PURPOSE
NET8의 LOGGING AND TRACE관련 PARAMETER에 대해 알아 보도록한다
Explanation
1. NET8에서 trace를 왜 사용하고 어떤 component들에 trace를 할 수 있나요 ?
Trace의 특징은 네트워크을 수행하게 될때 network event들을 기술한다
즉 trace와 관련된 일련의 문장들이 자세하게 생성된다.
"Tracing"의 운영으로 log파일에 제공되어 있는 것 보다 NET8의 component들의
내부적인 정보를 보다 많이 얻을 수 있다.
이러한 정보는 에러의 결과로 인하여 발생하는 동일한 event들로 파일들에
결과가 생성되어 이를 이용하여 문제의 원인을 판단할 수 있다.
주의 : trace의 기능을 이용하는 경우 충분한 disk space와 system
performance의 현격한 저하를 가져올 수 있다.
즉 trace의 기능은 반드시 필요할 경우에만 사용할 것을 권한다.
Example
Reference Ducumment
<< trace의 기능을 이용하여 trace를 할수 있는 component들 >>
* Network listener
* Net8 components on the client and server
* Connection Manager
* Oracle Names Server
* Oracle Names Control Utility
* TNSPING utility
2. 어떤 parameter들을 설정하면 trace 기능을 이용할 수 있는가 ?
tracing을 하기 위해서는 특정 trace parameter들을 설정함으로써 가능하며
아래에 주어진 방법들과 또는 utility들중 하나를 선택하여 설정함으로써
사용할 수 있다.
* Component Configuration Files
* Component Control Utilities
* Oracle Trace
component의 configuration 파일을 이용하여 traceing parameter를 설정하려면
1) component의 configuration 파일에 다음의 traceing parameter를 설정한다.
- SQLNET.ORA for client or server, LISTENER.ORA for listener:
TRACE_LEVEL_<CLIENT/LISTENER/SERVER>=(0/4/10/16)
TRACE_DIRECTORY_<CLIENT/LISTENER/SERVER>=<directory name>
LOG_DIRECTORY_<CLIENT/LISTENER/SERVER>=<directory name>
2) 만일 component들이 수행중인 동안 configuration 파일의 수정이 있었다면
변경된 parameter들을 사용하기 위해 component들을 다시 시작하여야 한다.
component control utility들을 이용하여 trace parameter들을 설정하려면
1) listener의 경우, Listener Control Utility(lsnrctl)에서 TRACE 명령어를
이용하여 listener가 수행중인 동안에도 trace level을 설정할 수 있다.
EX)
RC80:/mnt3/rctest80> lsnrctl
LSNRCTL for SVR4: Version 8.0.4.0.0 - Production on 01-SEP-98 15:16:52
(c) Copyright 1997 Oracle Corporation. All rights reserved.
Welcome to LSNRCTL, type "help" for information.
LSNRCTL> trace admin
Connecting to (ADDRESS=(PROTOCOL=ipc)(KEY=PNPKEY))
Opened trace file: /mnt4/coe/app/oracle/product/8.0.4/network/trace/
lsnr_coe.trc
The command completed successfully
LSNRCTL> trace off
Connecting to (ADDRESS=(PROTOCOL=ipc)(KEY=PNPKEY))
The command completed successfully
LSNRCTL> exit
RC80:/mnt3/rctest80>
2) Oracle Names의 경우, Names Control Utility(namesctl)에서 TRACE_LEVEL
명령어를 이용하여 Oracle Names가 수행중인 동안에도 trace level을
설정할 수 있다.
주의 : Connection Manager의 경우, trace level은 configuration 파일인
CMAN.ORA 에서만 설정할 수 있다.
Oracle Enterprose manager(이하 OEM)에 있는 Oracle Trace는 trace parameter
들을 설정하고 GUI를 통해 trace data의 형태를 볼수 있도록 하는 tracing tool
이다.
3. Trace된 data를 해석할 수 있는 다른 utility들이 있다면 ?
Trace Assistant를 사용하면 사용자의 *.trc 파일 (SQL*Net v2의 형식에 의해
생성된) 또는 *.txt (Orace Trace 과 TRCFMT에 의해 생성된 출력물)을 통해
trac된 정보를 해석할 수 있다.
이 유틸리티 네트워크의 문제들로 인해 발생하는 문제점들을 진단하고
해결하는 데 보다 많은 정보를 제공하여 사용자의 이해를 돕는다.
* the source and destination of trace files
* the flow of packets between network nodes
* which component of Net8 is failing
* pertinent error codes
다음에 주어진 명령어를 수행하므로써 Trace Assistant 실행할 수 있다.
trcasst [options] <filename>
Trace Assistant Text Formatting Options
-o Displays connectivity and Two Task Common (TTC) information.
After the -o the following options may be used:
c (for summary connectivity information)
d (for detailed connectivity information)
u (for summary TTC information)
t (for detailed TTC information)
q (displays SQL commands enhancing summary TTC
information)
-p Oracle Internal Use Only
-s Displays statistical information
-e Enables display of error information After the -e, zero
or one error decoding level may follow:
0 or nothing (translates the NS error numbers dumped
from the nserror function plus lists all
other errors)
1 (displays only the NS error translation from
the nserror function)
2 (displays error numbers without translation)
만일 option들이 제공되지 않는다면 기본적으로 -odt -e -s가 지정되어 자세한
connectivity, Two-Task Common, 에러 level 0 그리고 통계정보들이 tracing
된다.
4. SQL*Net v2 tracing과 어떻게 다른가 ?
Net8 tracing에서는 이전 버전인 SQL*NET V2에서 제공 되는 모든 option을
포함하고 있고 Oracle Trace의 기능이 추가되었다.
이것은 Oracle Trace Repository를 OEM 콘솔을 통하여 사용자의 trace 정보를
관리할 수 있도록 허용한다.
5. *.cdf와 *.dat은 어떤 파일 인가 ?
*.cdf 와 *.dat 파일들은 Oracle Trace에 의해 생성되는 파일들로서 이 파일들을
읽기 위해서는 반드시 trcfmt utility를 이용해야만 한다.
trcfmt는 binary (*.dat와 *.cdf의 확장자) 파일내에 있는 data를 일반text
(.txt의 확장자)로 정보를 추출한다. 이 tool을 사용하기 위해서는 다음의
명령어를 이용하면 된다.
$ trcfmt collection.cdf
주의 : .cdf와 .dat파일이 존재하는 디렉토리가 아닌 곳에서 이 tool을 이용
한다면 path가 포함되야 한다. 만일 하나의 .cdf 와 .dat 파일들내에
여러 프로세스들의 traceing정보가 수집된다면 그것들은 process_id.txt
의 이름과 함께 파일이 추출될 것이다.
6. trac관련 configuration은 어떤 것이 있으며 설정할 수 있는 parameter는
무엇이 있는가 ?
==========================================================================
|| SQLNET.ORA Parameters ||
==========================================================================
DAEMON.TRACE_DIRECTORY
Purpose: Controls the destination directory of the Oracle
Enterprise Manager daemon trace file
Default Value: $ORACLE_HOME/network/trace
Description
Available Oracle Enterprise Manager Installation Guide
Example: DAEMON.TRACE_DIRECTORY=/oracle/traces
DAEMON.TRACE_LEVEL
Purpose: Turns tracing on/off to a certain specified level for
the Oracle Enterprise Manager daemon.
Default Value: 0 or OFF
* 0 or OFF - No trace output
* 4 or USER - User trace information
Available Values
* 10 or ADMIN - Administration trace information
* 16 or SUPPORT - WorldWide Customer Support trace
information
Description
Available Oracle Enterprise Manager Installation Guide
Example: DAEMON.TRACE_LEVEL=10
DAEMON.TRACE_MASK
Purpose: Specifies that only the Oracle Enterprise Manager daemon
trace entries are logged into the trace file.
Default Value: $ORACLE_HOME/network/trace
Description
Available Oracle Enterprise Manager Installation Guide
Example: DAEMON.TRACE_MASK=(106)
LOG_DIRECTORY_CLIENT
Purpose: Controls the directory for where the log file is written
Default Value: Current directory where executable is started from.
Example: LOG_DIRECTORY_CLIENT=/oracle/network/trace
LOG_DIRECTORY_SERVER
Purpose: Controls the directory for where the log file is written
Default Value: Current directory where executable is started from.
Valid in File: SQLNET.ORA
Example: LOG_DIRECTORY_SERVER=/oracle/network/trace
LOG_FILE_CLIENT
Purpose: Controls the log output filename for an Oracle client.
Default Value: SQLNET.LOG
Example: LOG_FILE_CLIENT=client
LOG_FILE_SERVER
Purpose: Controls the log output filename for an Oracle server.
Default Value: SQLNET.LOG
Example: LOG_FILE_SERVER=svr
NAMESCTL.TRACE_LEVEL
Purpose: Indicates the level at which the NAMESCTL program should
be traced.
Default Value: OFF
Values: OFF, USER, or ADMIN
Example: NAMESCTL.TRACE_LEVEL=ADMIN
NAMESCTL.TRACE_FILE
Purpose: Indicates the file in which the NAMESCTL trace output is
placed.
Default Value: namesctl_PID.cdf and namesctl_PID.dat
Example: NAMESCTL.TRACE_FILE=NMSCTL
NAMESCTL.TRACE_DIRECTORY
Purpose: Indicates the directory where trace output from the NAMESCTL
utility is placed.
Default
Value: $ORACLE_HOME/network/trace
Example: NAMESCTL.TRACE_DIRECTORY=/ORACLE/TRACE
NAMESCTL.TRACE_UNIQUE
Indicates whether a process identifier is appended to the
Purpose: name of each trace file generated, so that several can
coexist.
Default
Value: OFF
Values: OFF or ON
Example: NAMESCTL.TRACE_UNIQUE = ON
TNSPING.TRACE_DIRECTORY
Purpose: Control the destination directory of the trace file
Default Value: $ORACLE_HOME/network/trace
Example: TNSPING.TRACE_DIRECTORY=/oracle/traces
TNSPING.TRACE_LEVEL
Purpose: Turns tracing on/off to a certain specified level
Default Value: 0 or OFF
* 0 or OFF - No trace output
* 4 or USER - User trace information
Available Values
* 10 or ADMIN - Administration trace information
* 16 or SUPPORT - WorldWide Customer Support trace
information
Example: TNSPING.TRACE_LEVEL=10
TRACE_DIRECTORY_CLIENT
Purpose: Control the destination directory of the trace file
Default Value: $ORACLE_HOME/network/trace
Example: TRACE_DIRECTORY_CLIENT=/oracle/traces
TRACE_DIRECTORY_SERVER
Purpose: Control the destination directory of the trace file
Default Value: $ORACLE_HOME/network/trace
Example: TRACE_DIRECTORY_SERVER=/oracle/traces
TRACE_FILE_CLIENT
Purpose: Controls the name of the client trace file
Default Value: SQLNET.CDF and SQLNET.DAT
Example: TRACE_FILE_CLIENT=cli
TRACE_FILE_SERVER
Purpose: Controls the name of the server trace file
Default Value: SVR_PID.CDF and SVR_PID.DAT
Example: TRACE_FILE_SERVER=svr
TRACE_LEVEL_CLIENT
Purpose: Turns tracing on/off to a certain specified level
Default Value: 0 or OFF
* 0 or OFF - No trace output
* 4 or USER - User trace information
Available Values
* 10 or ADMIN - Administration trace information
* 16 or SUPPORT - WorldWide Customer Support trace
information
Example: TRACE_LEVEL_CLIENT=10
TRACE_LEVEL_SERVER
Purpose: Turns tracing on/off to a certain specified level
Default Value: 0 or OFF
* 0 or OFF - No trace output
* 4 or USER - User trace information
Available Values
* 10 or ADMIN - Administration trace information
* 16 or SUPPORT - WorldWide Customer Support trace
information
Example: TRACE_LEVEL_SERVER=10
TRACE_UNIQUE_CLIENT
Used to make each client trace file have a unique name to
Purpose: prevent each trace file from being overwritten with the next
occurrence of the client. The PID is attached to the end of
the filename.
Default
Value: OFF
Example: TRACE_UNIQUE_CLIENT=ON
USE_CMAN
If the session is in an Enhanced Discovery Network with a
Purpose: Names Server, this parameter forces all sessions to go
through a Connection Manager to get to the server.
Default
Value: FALSE
Values: TRUE or FALSE
Example: USE_CMAN=TRUE
==========================================================================
|| LISTENER.ORA Parameters ||
==========================================================================
LOG_DIRECTORY_listener_name
Purpose: Controls the directory for where the log file is written
Default Value: Current directory where executable is started from.
Example: LOG_DIRECTORY_LISTENER=/oracle/traces
LOG_FILE_listener_name
Purpose: Specifies the filename where the log information is
written
Default Value: listener_name.log
Example: LOG_FILE_LISTENER=lsnr
TRACE_DIRECTORY_listener_name
Purpose: Control the destination directory of the trace file
Default Value: $ORACLE_HOME/network/trace
Example: TRACE_DIRECTORY_LISTENER=/oracle/traces
TRACE_FILE_listener_name
Purpose: Controls the name of the listener trace file
Default Value: LISTENER_NAME.CDF and LISTENER_NAME.DAT
Example: TRACE_FILE_LISTENER=lsnr
TRACE_LEVEL_listener_name
Purpose: Turns tracing on/off to a certain specified level
Default Value: 0 or OFF
* 0 or OFF - No trace output
* 4 or USER - User trace information
Available Values
* 10 or ADMIN - Administration trace information
* 16 - WorldWide Customer Support trace information
Example: TRACE_LEVEL_LISTENER=10
==========================================================================
|| NAMES.ORA Parameters ||
==========================================================================
NAMES.TRACE_DIRECTORY
Purpose: Indicates the name of the directory to which trace files
from a Names Server trace session are written.
Default
Value: platform specific
Example: names.trace_directory = complete_directory_name
NAMES.TRACE_FILE
Purpose: Indicates the name of the output file from a Names Server
trace session. The filename extension is always.trc
Default
Value: names
Example: names.trace_file = filename
NAMES.TRACE_LEVEL
Purpose: Indicates the level at which the Names Server is to be
traced.
Default Value: OFF
Example: names.trace_level = OFF
NAMES.TRACE_UNIQUE
indicates whether each trace file has a unique name, allowing
Purpose: multiple trace files to coexist. If the value is set to ON, a
process identifier is appended to the name of each trace file
generated.
Default
Value: OFF
Example: names.trace_unique = ON
names.trace_file = names_05.trc
==========================================================================
CMAN.ORA Parameters
==========================================================================
TRACING
Default
Value: NO
Example: TRACING = NO
References
7. listener.log 파일에 loggin정보를 남기지 않게 하는 방법이 있나요 ?
고객이 개발하여 사용중인 application에서 NET8을 이용하여 접속하거나 접속을
종료하는 경우 listener.log에 이와 관련된 정보가 남으며, 수 많은 사용자가
접속을 하게 되므로서 급속하게 listener.log 파일이 커져 $ORACLE_HOME이 있는
file system이 꽉 차서 데이터베이스가 hang이 되는 결과를 초래하는 경우가 있다.
고객들은 listener.log에 write할수 있는 메세지의 양에 제한을 두기를 원하는
경우가 있으나 이러한 기능은 제공되지 않는다. 하지만 listener의 logging은
ON 또는 OFF는 설정을 통해서 가능하다.
Net8에서는 listener.ora에 "LOGGING_(the listener name)=off"를 설정하게
되면 listener의 logging을 멈출 수 있다.
물론 설정후 listener stop후 재기동을 하셔야 변경된 paramerter에 의해
이 기능이 enable됩니다.
참고 : SQL*NET 2.3.x 에서도 이 parameter가 유효한가요 ?
물론 사용이 가능합니다. NET8에서 사용하는 것과 동일하게 parameter를
listener.ora에 설정함으로서 가능합니다.
EX)
LOGGING_LISTENER=OFF
이 parameter는 listener의 전체 logging을 disable하는 parameter로 일부만
여과하여 logging할 수 있는 기능은 아니다.
이 parameter는 NET8에 알려진 parameter로 SQL*NET 2.3.x manuals에 나와
있지는 않지만 정상적으로 사용할 수 있다. -
Hi Experts,
Need a Function Module which can give me the current Server Name and Client name .
Please help me out.
Thanks
ChandanHi,
Check out :
1. "FIND_DB_APPLICATION_SERVER" gives the server name via the export parameter "SERVERNAME" .
2. "TH_GET_ACTIVE_SERVER" gives the server name via the export parameter "SERVER" .
3. "RFC_GET_LOCAL_SERVERS" will give a list containing some info about servers, then you can use the FM "TH_USER_INFO" to get user's host address from the exporting parameter "HOSTADDR". Then you can look-up the list you retrieved by the first FM where the first four characters at the field "HOSTADR" is the same with the user's. The server name is contained at the field "NAME" of the same row.
4. sy-sysid might also be usefull
5. Try this too:
CALL 'C_SAPGPARAM'
ID 'NAME' FIELD 'rdisp/myname'
ID 'VALUE' FIELD ev_server_name.
where ev_server_name is function module export parameter of type BTCTGTSRVR-SRVNAME.
Hope it helps
Best Regards
Sumana -
Setting "sap-client" parameter in mx:HTTPService object
Hi there,
I am having problems setting the "sap-client" parameter on a HTTPService object due to the "-" in the parameter name.
If I do it like...
<mx:HTTPService id="vmsplan" url="http://mysaphost.domain.com/sap/bc/bsp/sap/yvms1/vmsdata.xml">
<mx:request>
<sap-client>410</sap-client>
</mx:request>
</mx:HTTPService>
... I get the compile time error
"1084: Syntax error: expecting colon before minus"
If I do it in ActionScript like this...
var parameters:Object = new Object;
parameters.sap-client = "410";
vmsplan.request = parameters;
...the compile time error is...
"1050: Cannot assign to a non-reference value."
Can anyone help me with this one?
Thanks
Graham RobboWithout running it you should be able to do the actionscript one like this:
parameters["sap-client"] = 4.10;
Object type objects in the actionscript sense are dynamic and you can think of their properties as nothing more then a dictionary which you can edit freely. -
When CDB gets populated? what is load parameters and syn parameter?
hi all,
myself have a query with regards to consolidated database where would to like to know when does the CDB gets populated. when we deploy the MBO does the mbo bring the data from backend sys or when we call it from UI client.
what is load parameters and syn parameter got confused. please explain in very normal term.
thnaks
skthanks rincy and reddy for reply
myself understood the concepts of load and sync parameters thanks for your inputs....
we are doing a scenario with backend as SAP and front end ui with ios. we have done all the things in place and when executing from ui front end only the last record is displayed. for example if it is returning 6 records then it displays only the last record.
check in CDB and foun only the last record is ther in it but when doing the PREVIEW of MBO to test it their it displays all the record but from UI it is displaying only 6th record
this where my query is that hw and when CDB gets populated and where i have to look in to rectify it....
thanks
SK -
Server 8i and client 9.2 : Caractere problems
Dear all,
We use a software (server and client) and this software is running under Oracle 8i on the server side.
For some reasons, several PC-Client migrated to 9.2 client. But when we launch the Software Client, some fields appeared with Kanji Font, Square and Pipe.
SELECT *
FROM v$nls_parameters
WHERE parameter LIKE '%CHARACTERSET%';
---> NLS_CHARACTERSET UTF8
---> NLS_NCHAR_CHARACTERSET UTF8
The common configuration of the NLS_LANG is AMERICAN_AMERICA.UTF8. This configuration works with Oracle 8i clients.
Well, i'm looking for a solution about this problem.
I have to change something in the server ?
I have to edit some registry keys in Clients ?
Thanks for all,
VLEHi,
I have read the followed 2 documents :
"setting Up a Globalization Support Environment"
"Supporting Multilingual Databases With Unicode"
I see the the environment problem and I think that we're in a good way.
But, if I understand well, ma DATABASE is under UTF8, so I used in the NLS_LANG : AMERICAN_AMERICA.UTF8 (for client 8i) and the same for client 9.2. The second one don't work as i told you before.
I have read in the document that oracle 9i use Unicode 3.1, but not oracle 8i. But if I change the NLS_LANG in Oracle 9.2 Client, this client will already use Unicode 3.1 ?
Maybe I wrong.
For me, this is the first way, In a second step maybe this problem is due to the ODBC Oracle 9.2 ? -
9i installation (network problem b'n server and client
Hi
I installed 9i in windows 2003 server and client system (win xp). I configured listener.ora file in server and tns.ora file in client mechine. while trying to ping (i.e tnsping) i m getting follwoing errors in both systems.
C:\>tnsping tns_tekhub3
TNS Ping Utility for 32-bit Windows: Version 9.2.0.1.0 - Production on 13-DEC-20
06 11:28:25
Copyright (c) 1997 Oracle Corporation. All rights reserved.
Used parameter files:
f:\Orahome92\network\admin\sqlnet.ora
TNS-03505: Failed to resolve name
C:\>Hi,
i made chages in sqlnet.ora file.
C:\>lsnrctl services
LSNRCTL for 32-bit Windows: Version 9.2.0.1.0 - Production on 14-DEC-2006 09:23:
04
Copyright (c) 1991, 2002, Oracle Corporation. All rights reserved.
Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=IPC)(KEY=EXTPROC1)))
Services Summary...
Service "PLSExtProc" has 1 instance(s).
Instance "PLSExtProc", status UNKNOWN, has 1 handler(s) for this service...
Handler(s):
"DEDICATED" established:0 refused:0
LOCAL SERVER
Service "tekhub" has 2 instance(s).
Instance "tekhub", status UNKNOWN, has 1 handler(s) for this service...
Handler(s):
"DEDICATED" established:0 refused:0
LOCAL SERVER
Instance "tekhub", status READY, has 1 handler(s) for this service...
Handler(s):
"DEDICATED" established:1 refused:0 state:ready
LOCAL SERVER
Service "tekhubXDB" has 1 instance(s).
Instance "tekhub", status READY, has 1 handler(s) for this service...
Handler(s):
"D000" established:0 refused:0 current:0 max:1002 state:ready
DISPATCHER <machine: SERVER, pid: 3684>
(ADDRESS=(PROTOCOL=tcp)(HOST=server)(PORT=1064))
The command completed successfully -
Memory Problem with SEt and GET parameter
hi,
I m doing exits. I have one exit for importing and another one for changing parameter.
SET PARAMETER exit code is ....
*data:v_nba like eban-bsart,
v_nbc like eban-bsart,
v_nbo like eban-bsart.
v_nbc = 'CAPX'.
v_nbo = 'OPEX'.
v_nba = 'OVH'.
if im_data_new-werks is initial.
if im_data_new-knttp is initial.
if im_data_new-bsart = 'NBC' or im_data_new-bsart = 'SERC' or im_data_new-bsart = 'SERI'
or im_data_new-bsart = 'SER' or im_data_new-bsart = 'SERM' or im_data_new-bsart = 'NBI'.
set parameter id 'ZC1' field v_nbc.
elseif im_data_new-bsart = 'NBO' or im_data_new-bsart = 'NBM' or im_data_new-bsart = 'SERO'.
set parameter id 'ZC2' field v_nbo.
elseif im_data_new-bsart = 'NBA' or im_data_new-bsart = 'SERA'.
set parameter id 'ZC3' field v_nba.
endif.
endif.
endif. *
and GET PARAMETER CODE IS....
get parameter id 'ZC1' field c_fmderive-fund.
get parameter id 'ZC2' field c_fmderive-fund.
get parameter id 'ZC3' field c_fmderive-fund.
FREE MEMORY ID 'ZC1'.
FREE MEMORY ID 'ZC2'.
FREE MEMORY ID 'ZC3'.
In this code i m facing memory problem.
It is not refreshing the memory every time.
So plz give me proper solution.
Its urgent.
Thanks
RanveerHi,
I suppose you are trying to store some particular value in memory in one program and then retieve it in another.
If so try using EXPORT data TO MEMORY ID 'ZC1'. and IMPORT data FROM MEMORY ID 'ZC1'.
To use SET PARAMETER/GET PARAMETER the specified parameter name should be in table TPARA. Which I don't think is there in your case.
Sample Code :
Data declarations for the function codes to be transferred
DATA : v_first TYPE syucomm,
v_second TYPE syucomm.
CONSTANTS : c_memid TYPE char10 VALUE 'ZCCBPR1'.
Move the function codes to the program varaibles
v_first = gv_bdt_fcode.
v_second = sy-ucomm.
Export the function codes to Memory ID
EXPORT v_first
v_second TO MEMORY ID c_memid. "ZCCBPR1 --- Here you are sending the values to memory
Then retrieve it.
Retrieve the function codes from the Memory ID
IMPORT v_first TO v_fcode_1
v_second TO v_fcode_2
FROM MEMORY ID c_memid. "ZCCBPR1
FREE MEMORY ID c_memid. "ZCCBPR1
After reading the values from memory ID free them your problem should be solved.
Thanks
Barada
Edited by: Baradakanta Swain on May 27, 2008 10:20 AM -
what is set parameter and get parameter ? give me one example.
Hi Pradeep,
SET PARAMETER and GET PARAMETER, is mainly used when you are dealing with SAP MEMORY.
Meaning - You have multiple sessions open. Now you want to access from variables declared locally in different sessions.
You can use
SET PARAMETER
to assign the value to SAP Memory and using
GET PARAMETER
you can retreive the values assigned by previous statement in a different session.
<b>Reward points for helpful answers</b>.
Best Regards,
Ram. -
Hi,
I need to store one variable value and I need to retrieve the same variable value in same program. For this I have written set and get parameter ids in the same program. It is working fine but if I log off the system and if I logon the system it is not working I mean before log off the variable is showing some value if I log on again that variable is showing empty. But I want to capture the field values after log off and log on also. Is there any other option can I use table?
Please help me I will give points.
Thanks.Hi
SAP memory is a memory area to which all main sessions within a SAPgui have access. You can use SAP memory either to pass data from one program to another within a session, or to pass data from one session to another. Application programs that use SAP memory must do so using SPA/GPA parameters (also known as SET/GET parameters). These parameters can be set either for a particular user or for a particular program using the SET PARAMETER statement. Other ABAP programs can then retrieve the set parameters using the GET PARAMETER statement. The most frequent use of SPA/GPA parameters is to fill input fields on screens
SAP global memory retains field value through out session.
set parameter id 'MAT' field v_matnr.
get parameter id 'MAT' field v_matnr.
They are stored in table <b>TPARA</b>.
ABAP memory is a memory area that all ABAP programs within the same internal session can access using the EXPORT and IMPORT statements. Data within this area remains intact during a whole sequence of program calls. To pass data
to a program which you are calling, the data needs to be placed in ABAP memory before the call is made. The internal session of the called program then replaces that of the calling program. The program called can then read from the ABAP memory. If control is then returned to the program which made the initial call, the same process operates in reverse.
ABAP memory is temporary and values are retained in same LUW.
export itab to memory id 'TEST'.
import itab from memory Id 'TEST'.
Here itab should be declared of same type and length.
http://www.sap-img.com/abap/difference-between-sap-and-abap-memory.htm
ABAP Memmory & SAP Memmory
http://www.sap-img.com/abap/difference-between-sap-and-abap-memory.htm
http://www.sap-img.com/abap/type-and-uses-of-lock-objects-in-sap.htm
Regards
Anji -
SET PARAMETER AND GET PARAMETER
What is the difference between Set parameter and Get parameter?
Hi,
Set parameter is used to put some value into ABAP memory area, get paramter is used to retrive values form ABAP memory.
refer the below sample code.
here i am taking one material number and i am passing that mateial number by using 'set parameter id', the material number will be stored in ABAP-memory area 'MAT', and then i am calling the Tcode 'MM03', after executing the Tcode (from program) automatically 'MM03' will reads that material number from that ABAP-memory area and it will displays the 'MM03' tcode along with material number.
you can find the parameter-id's from data element of that field.
parameters: p_matnr like mara-matnr.
set parameter id 'MAT' field p_matnr.
call transaction 'MM03'.
Reward if useful.
Thanks,
Sreeram. -
Default sales org on selection screen using set and get parameter!!
Hi,
I need to default value on selection screen using SET n GET parameter...logic to be used should be:
Sales Organisation:
This field should be filled by default using the user parameter id VKO. (using sentence GET PARAMETER and SET PARAMETER)...
Hope i need to write the code in initialisation and what shud b the content?
Regards
Gunjanhi,
TABLES <table name>.
SET PARAMETER ID VKO FIELD <tablename-fieldname>.
call transaction 'zxx'.
try this sample program,
REPORT BOOKINGS NO STANDARD PAGE HEADING.
TABLES SBOOK.
START-OF-SELECTION.
WRITE: 'Select a booking',
SKIP.
GET SBOOK.
WRITE: SBOOK-CARRID, SBOOK-CONNID,
SBOOK-FLDATE, SBOOK-BOOKID.
HIDE: SBOOK-CARRID, SBOOK-CONNID,
SBOOK-FLDATE, SBOOK-BOOKID.
AT LINE-SELECTION.
SET PARAMETER ID: 'CAR' FIELD SBOOK-CARRID,
'CON' FIELD SBOOK-CONNID,
'DAY' FIELD SBOOK-FLDATE,
'BOK' FIELD SBOOK-BOOKID.
CALL TRANSACTION 'BOOK'.
regards,
siva
Message was edited by:
Shan -
How to use SET and GET parameter commands ?
Explain these two giving an example?As which is used for what?
Hi Albert,
SAP allows you to make use of SPA/GPA technique to fill the input fields of a called transaction with data from the calling program.SPA/GPA parameters are values that the system stores in the global, user-specific SAP memory. SAP memory allows you to pass values between programs. A user can access the values stored in the SAP memory during one terminal session for all parallel sessions. Each SPA/GPA parameter is identified by a 20-character code. You can maintain them in the Repository Browser in the ABAP Workbench. The values in SPA/GPA parameters are user-specific.
ABAP programs can access the parameters using the SET PARAMETER and GET PARAMETER statements.
To fill one, use:
SET PARAMETER ID <pid> FIELD <f>.
This statement saves the contents of field <f> under the ID <pid> in the SAP memory. The code <pid> can be up to 20 characters long. If there was already a value stored under <pid>, this statement overwrites it. If the ID <pid> does not exist, double-click <pid> in the ABAP Editor to create a new parameter object.
To read an SPA/GPA parameter, use:
GET PARAMETER ID <pid> FIELD <f>.
This statement fills the value stored under the ID <pid> into the variable <f>. If the system does not find a value for <pid> in the SAP memory, it sets SY-SUBRC to 4, otherwise to 0.
To fill the initial screen of a program using SPA/GPA parameters, you normally only need the SET PARAMETER statement.
The relevant fields must each be linked to an SPA/GPA parameter.
On a selection screen, you link fields to parameters using the MEMORY ID addition in the PARAMETERS or SELECT-OPTIONS statement. If you specify an SPA/GPA parameter ID when you declare a parameter or selection option, the corresponding input field is linked to that input field.
On a screen, you link fields to parameters in the Screen Painter. When you define the field attributes of an input field, you can enter the name of an SPA/GPA parameter in the Parameter ID field in the screen attributes. The SET parameter and GET parameter checkboxes allow you to specify whether the field should be filled from the corresponding SPA/GPA parameter in the PBO event, and whether the SPA/GPA parameter should be filled with the value from the screen in the PAI event.
When an input field is linked to an SPA/GPA parameter, it is initialized with the current value of the parameter each time the screen is displayed. This is the reason why fields on screens in the R/3 System often already contain values when you call them more than once.
When you call programs, you can use SPA/GPA parameters with no additional programming overhead if, for example, you need to fill obligatory fields on the initial screen of the called program. The system simply transfers the values from the parameters into the input fields of the called program.
However, you can control the contents of the parameters from your program by using the SET PARAMETER statement before the actual program call. This technique is particularly useful if you want to skip the initial screen of the called program and that screen contains obligatory fields.
If you want to set SPA/GPA parameters before a program call, you need to know which parameters are linked to which fields on the initial screen. A simple way of doing this is to start the program that you want to call, place the cursor on the input fields, and choose F1 followed by Technical info. The Parameter ID field contains the name of the corresponding SPA/GPA parameter. Alternatively, you can look at the screen definition in the Screen Painter.
The SPA/GPA parameter for the input field Company has the ID CAR. Use this method to find the IDs CON, DAY, and BOK for the other input fields.
The following executable program is connected to the logical database F1S and calls an update transaction:
REPORT BOOKINGS NO STANDARD PAGE HEADING.
TABLES SBOOK.
START-OF-SELECTION.
WRITE: 'Select a booking',
SKIP.
GET SBOOK.
WRITE: SBOOK-CARRID, SBOOK-CONNID,
SBOOK-FLDATE, SBOOK-BOOKID.
HIDE: SBOOK-CARRID, SBOOK-CONNID,
SBOOK-FLDATE, SBOOK-BOOKID.
AT LINE-SELECTION.
SET PARAMETER ID: 'CAR' FIELD SBOOK-CARRID,
'CON' FIELD SBOOK-CONNID,
'DAY' FIELD SBOOK-FLDATE,
'BOK' FIELD SBOOK-BOOKID.
CALL TRANSACTION 'BOOK'.
The basic list of the program shows fields from the database table SBOOK according to the user entries on the selection screen. These data are also stored in the HIDE areas of each line.
Cheers
Nishanth -
How set and get parameter for a session of a portlet (Java)
I would like get parameter and set parameter for a portlet in portal 9.02. This parameter must be availbale during the session of the portal.
With Java Servlet
// I retrieve my session
HttpServletRequest httpreq = (HttpServletRequest)req;
HttpServletResponse httpresp = (HttpServletResponse)resp;
HttpSession session = httpreq.getSession();
//And after i can get or set some parameter for this servlet
//Example
session.setAttribute("MyEmployeeNumber","600000");
String id = (String)session.getAttribute("MyEmployeeNumber");
// But with Portlet in portal, i can't do it.
PortletRenderRequest pr= (PortletRenderRequest)httpreq.getAttribute(HttpCommonConstants.PORTLET_RENDER_REQUEST);
String sUser=pr.getUser().getName();
ProviderSession session=pr.getSession();
// But after if i want get or set a value in this session i have a internal error 500
session.setAttribute("MyEmployeeNumber","600000");
I would like my parameter is avalaible during a session for a user in each page of the portal, because my portlet is on each page.I have almost the same problem. I tried as you suggested, but it doesn't work yet.
provider.xml
<session>true</session>
<passAllUrlParams>true</passAllUrlParams>
My code in my jsp-portlet is
<%@page contentType="text/html; charset=windows-1252"
import="oracle.portal.provider.v2.render.PortletRenderRequest"
import="oracle.portal.provider.v2.render.PortletRendererUtil"
import="oracle.portal.provider.v2.http.HttpCommonConstants"
import="oracle.portal.provider.v2.ParameterDefinition"
import="oracle.portal.provider.v2.render.http.HttpPortletRendererUtil"
%>
<%@page session="true"%>
<%
PortletRenderRequest pReq = (PortletRenderRequest)request.getAttribute(HttpCommonConstants.PORTLET_RENDER_REQUEST);
String valueSession = (String)pReq.getAttribute("sesion");
if (valueSession != null) {
pReq.setAttribute("session", "value1");
out.println("<br>(1)valueSession != null");
out.println("<br>(1)valueSession : " + pReq.getAttribute("session"));
} else {
pReq.setAttribute("session", "value2");
out.println("<br>(2)valueSession == null");
out.println("<br>(2)valueSession : " + pReq.getAttribute("session"));
%>
And i always get as result:
(2)valueSession == null
(2)valueSession : value2
Even when i send values (post) at the same page or browsing between tabs:
I check my provider registration and it has the value "once per session"
I have portal 9.0.2.2.14
Thanks -
Try to use one comupter as both server and client
Hello, everyone, I am just trying to use my own computer as both server and client to test some codes about networking. For example, use the sample code in java tutorial which is used to test Echo server(code is listed below). Is there anything I have to do to set my computer, such as set my hostname or something like that?
I am a pure newbie. And the purpose of this question is to test some code including socket on one PC without connect to internet.
I have tried to change the name "taranis" in the following code to the computer name of my own PC, but it doesn't work, and said: Couldn't get I/O for the connection to: (my computer name).
import java.io.*;
import java.net.*;
public class EchoClient {
public static void main(String[] args) throws IOException {
Socket echoSocket = null;
PrintWriter out = null;
BufferedReader in = null;
try {
echoSocket = new Socket("taranis", 7);
out = new PrintWriter(echoSocket.getOutputStream(), true);
in = new BufferedReader(new InputStreamReader(
echoSocket.getInputStream()));
} catch (UnknownHostException e) {
System.err.println("Don't know about host: taranis.");
System.exit(1);
} catch (IOException e) {
System.err.println("Couldn't get I/O for "
+ "the connection to: taranis.");
System.exit(1);
BufferedReader stdIn = new BufferedReader(
new InputStreamReader(System.in));
String userInput;
while ((userInput = stdIn.readLine()) != null) {
out.println(userInput);
System.out.println("echo: " + in.readLine());
out.close();
in.close();
stdIn.close();
echoSocket.close();Did you write the EchoServer and start it on your
machine, listening on port 7?
You can have the client and server running on the same
machine or different machines, but they have to be
separate pieces of software.
Write a separate EchoServer class that starts up and
listens on that port. Then start the EchoClient and
make the connection.
%yeah, I didn't wrote the EchoServer class. But I thought it is automaticly included and therefore has run once I start my computer.
If I write a EchoServer class, then how should I set the host name of the EchoClient, just simply change "taranis" to my computer name (change "echoSocket = new Socket("taranis", 7);" to echoSocket = new Socket("(my comptuer name)", 7);"?
Maybe you are looking for
-
can u please tell me how can i update my old version ios 6.1.4 is it possible???? plz help me i update ios 8.1.3 but it is toooo slow and some times hang my iphone 5 please suggest how can i speedup my phone:(
-
How to disable loud speaker beep during install
Is there a way to disable the the speaker beeping during install? Or at least lower its volume? Its extremely loud. Ive already removed the pcspkr module, but the beeping is still present. (I reinstall arch often and this is why I'm asking )
-
How to refer the trigger written in one form from another form ?
How to refer the trigger written in one form from another form ? Thanks, Ravi Shankar
-
Camera Raw Defaults & Presets not showing menus (BRIDGE)
Hi There I just upgraded to a new version of PS CS3 & Bridge and the option to apply Presets, or to Apply Camera Raw Defaults is not showing when I right click a file in Bridge. It also doesnt show up in the menu. I need to be able to Batch process h
-
Hi All, We're running exchange 2010 w/ SP3. We have a requirement of gathering the data of who is accessing emails using what ip address and using which device (outlook, mobile, owa etc)? What is the best and easiest way to do this? Thanks, Vik