Character conversion and NLS parameter

Hi forms gurus,
After deploy forms on IAS/Linux, i'm encountring the following situations:
- Conversion of some characters: (é) becomes (e), (°) becomes (?).As i'm a french speaker, these subsitution are not interesting for me.
- NLS Parameter: Errors, loggon dialog are in english.I want to put them in french.
What setting may i do to solve these problems?
Thank for ur help!
TYAG

Not familiar with Linux.
But your problem seems to be based on the DB characterset.
If the characters are not proper in the DB tables change the NLS_CHARACTERSET in DB. If the forms labels are showing the error change the NLS_LANG in the forms (default)*.env file

Similar Messages

  • Character conversion and NLS_LANG

    Hi,
    The Oracle doc says that character encoding conversion for Java programs using the OCI driver is dependent on NLS_LANG. But the description of this was a bit confusing. As per the doc
    "The JDBC OCI driver transfers the data from the server to the client in the character set of the database. Depending on the value of the NLS_LANG environment variable, the driver handles character set conversions in one of two ways.
    1)If the value of NLS_LANG is not specified, or if it is set to the US7ASCII or WE8ISO8859P1 character set, then the JDBC OCI driver uses Java to convert the character set from US7ASCII or WE8ISO8859P1 directly to UCS-2.
    2)If the value of NLS_LANG is set to a non-US7ASCII or non-WE8ISO8859P1 character set, then the driver changes the value of the NLS_LANG parameter on the client to UTF-8. This happens automatically and does not require any user-intervention. OCI uses the value of NLS_LANG to convert the data from the database character set to UTF-8; the JDBC driver then converts the UTF-8 data to UCS-2. "
    Now refering to case1, assume the database character set is multibyte.Does this mean that the OCI C libraries first convert this to US7ASCII or WE8ISO8859P1 and then the Java driver does the conversion from US7ASCII or WE8ISO8859P1 directly to UCS-2. If that is the case, wouldnt information get lost during the first conversion.
    Thanks,
    Tom.

    "Now refering to case1, assume the database character set is
    multibyte.Does this mean that the OCI C libraries first convert
    this to US7ASCII or WE8ISO8859P1 and then the Java driver
    does the conversion from US7ASCII or WE8ISO8859P1 directly to
    UCS-2. If that is the case, wouldnt information get lost during
    the first conversion. "
    Yes this is true. For a multibyte database character set caution
    must be taken that the client application NLS_LANG is not
    US7ASCII or WE8ISO8859P1 or data loss can occur. An effort will
    be made to remove the NLS_LANG dependency in a future release
    because the current solution is imperfect.

  • Character sets and conversions

    Hi all,
    were facing a quite complex problem, for which I'am not even able to specify were it is going wrong or what needs configuring, partly for lack of experience and partly for combining different tecnical areas from which I'm only responible for some of them.
    So I'll sketch breefly the situation, and hopefully you might give me some guidelines or hints as to where to look at.
    The setup : web application (so clients access by use of browser) on Weblogic- Linux platform, Tuxedo on Iseries , and as far as I understand some DB internally to Iseries where data is stored.
    Data is entered in the DB by use of some data-entry application that comes with the iSeries.
    The problem: consulting data by use of the web-aplication , some characters dont show up correctly , e.g. @ in email addresses, e's with accents, ...
    For the chain being "browser <-> WL <-> Tuxedo <-> DB" , the problem might be different points. But from trace beeing activated , we could see that the response going out of tuxedo to WL is not correct...
    Any hint as to what to look for, what can configuration is important, would be welcome ...
    Some sub-questions:
    - I understand Tuxedo is always "installed" in English , with no other option. This means that f.e. logs are in English.
    But can/need to define some character set?
    - Between Tuxedo <-> DB you can use som conversion tables ?
    Any help would be apreciated , were quite lost ..

    Hi,
    Given that you are running Tuxedo on iSeries, I'm guessing you are running Tuxedo 6.5 as the port for the current Tuxedo release on iSeries hasn't been released yet. Tuxedo 6.5 does not directly support multi-byte character strings. The two common buffer formats for string data in Tuxedo are STRING which doesn't support multi-byte characters, or CARRAY which does support multi-byte characters as a CARRAY is essentially a blob. Do you know what buffer type the Tuxedo application is using to send data to WebLogic Server?
    In Tuxedo 9.0 and later, direct support for multi-byte strings was added in the form of the MBSTRING buffer type. This buffer type supports multi-byte strings with a variety of character sets and encodings.
    Regards,
    Todd Little
    Oracle Tuxedo Chief Archiitect

  • XMLELEMENT and suppress character conversion for brackets etc...

    Hi,
    I want use XMLElement, XMLAgg to create a large XML-file from database.
    However I have the problem that I already SELECT valid XML chunks from
    the database. I this case I don't want a character conversion,e.g.
    open angle bracket (<) becomes &lt;
    quotation mark (") becomes &quot;
    and so on.
    Is it possible with my Oracle 9.2 ?

    Hi,
    ok finally I think I found now a solution for my problem which is:
    printing a large XML file in one transaction within sqlplus.
    I let a function create the XML and write it to a CLOB variable.
    In sqlplus I do simply
    -- 1 GB is acceptable
    SET LONG 1073741824;
    SPOOL myspoolfile
    SELECT MYFUNTION FROM DUAL;
    I still have to proof it with mass data.

  • Printing ZPL (Zebra) data to printer spooler without character conversion

    Hi all,
    We are printing shipping labels from UPS, with a process where we recive the ZPL label code directly from UPS, and we just need to pass the data to the printer to get the labels. We have already implemented this with Fedex and some custom labels, and it works perfectly. The problem with the UPS label data is that it contains non-printable characters (in the MaxiCode data field). When passed to the SAP printer spooler (see code example below), the data gets corrupted because SAP interprets these non-printable characters as printer control codes.
    I have verified this by saving the ZPL data to a local file, before printing it through the SAP spooler. I then print this raw data and compare the output with the labels printed from the spooler. The MaxiCode (the big 2D barcode) is different in these labels. UPS has also tested the labels, and rejected them because of incorrect data in the barcode.
    For printing, we are using printers defined as type "PLAIN", but I also tried using the "LZEB2" device type with the same result. The error we see in the spooler entry is this:
    Print ctrl S_0D_ is not defined for this printer. Page 1, line 2, col. 2201
    Print output may not be as intended
    The printer ctrl code differs, depending om the label. I have examined the spooler data in "raw" mode, and there is always an ASCII character 28 (hex 1C) in front of the characters that SAP think are control codes, and this is why I think these non-printable characters are the reason for the problems.
    This is the function module I use to print the ZPL data (and as stated above, this works fine for Fedex and custom labels). The ZPL data is converted to binary format before passed to the function module, but I also tried to send the data in text format with another FM, but the result is the same. I have experimented with the "codepage" parameter, and this one gives the least amount of errors, and some labels actually get through without errors. But still at least 50% of the labels gets corrupted, with log entries like above.
    CALL FUNCTION 'RSPO_SR_WRITE_BINARY'
          EXPORTING
            handle           = lv_spool_handle
            data             = lv_label_line_bin
            length           = lv_len
            codepage         = '2010'
          EXCEPTIONS
            handle_not_valid = 1
            operation_failed = 2
            OTHERS           = 3.
    Does anyone know if there is a way to send data to the spooler without character conversion or interpretation of printer control codes? Or is there any other smart way to get around this problem?
    /Leif

    I do a more direct output to the spooler, to avoid any issues with the WRITE statement and SAP's report output processing. At the same time, I insert line breaks so that the output is easy to debug in the spooler if needed. Also included is the code to to detect the escape code (ASCII #28) and to insert a control code ZZUPS in its place (you can skip this for Fedex). Here's a simplified example, but please note this is for a Unicode system, some minor changes is required in a non-Unicode system.
    CONSTANTS: lc_spcode TYPE c LENGTH 5 VALUE 'ZZUPS',
               lc_xlen TYPE i VALUE 5.
       DATA: lv_print_params TYPE pri_params,
             lv_spool_handle TYPE sy-tabix,
             lv_name TYPE tsp01-rq0name,
             lv_spool_id TYPE rspoid,
             lv_crlf(2) TYPE c,
             lv_lf TYPE c,
             lstr_label_data TYPE zship_label_data_s,
             lv_label_line TYPE char512,
             lv_label_line_bin TYPE x LENGTH 1024,
             lv_len TYPE i,
             ltab_label_data_255 TYPE TABLE OF char512,
             ltab_label_data TYPE TABLE OF x,
             lv_c1 TYPE i,
             lv_c2 TYPE i,
             lv_cnt1 TYPE i,
             lv_cnt2 TYPE i,
             lv_x(2) TYPE x.
       FIELD-SYMBOLS: <n> TYPE x.
       lv_crlf = cl_abap_char_utilities=>cr_lf.
       lv_lf = lv_crlf+1(1).
       lv_name = 'ZPLLBL'.
    CALL FUNCTION 'RSPO_SR_OPEN'
         EXPORTING
           dest                   = i_dest
           name                   = lv_name
           prio                   = '5'
           immediate_print        = 'X'
           titleline              = i_title
           receiver               = sy-uname
    *      lifetime               = '0'
           doctype                = ''
         IMPORTING
           handle                 = lv_spool_handle
           spoolid                = lv_spool_id
         EXCEPTIONS
           device_missing         = 1
           name_twice             = 2
           no_such_device         = 3
           operation_failed       = 4
           OTHERS                 = 5.
       IF sy-subrc <> 0.
         RAISE spool_open_failed.
       ENDIF.
    LOOP AT i_label_data INTO lstr_label_data.
         CLEAR ltab_label_data_255.
         SPLIT lstr_label_data-label_data AT lv_lf INTO TABLE ltab_label_data_255.
         LOOP AT ltab_label_data_255 INTO lv_label_line.
           IF lv_label_line NE ''.
             lv_len = STRLEN( lv_label_line ).
    *       Convert character to hex type
             lv_c1 = 0.
             lv_c2 = 0.
             DO lv_len TIMES.
               ASSIGN lv_label_line+lv_c1(1) TO <n> CASTING.
               MOVE <n> TO lv_x.
               IF lv_x = 28.
                 lv_cnt1 = 0.
                 lv_label_line_bin+lv_c2(1) = lv_x.
                 lv_c2 = lv_c2 + 1.
                 DO lc_xlen TIMES.
                   ASSIGN lc_spcode+lv_cnt1(1) TO <n> CASTING.
                   MOVE <n> TO lv_x.
                   lv_cnt2 = lv_c2 + lv_cnt1.
                   lv_label_line_bin+lv_c2(2) = lv_x.
                   lv_c2 = lv_c2 + 2.
                   lv_cnt1 = lv_cnt1 + 1.
                   lv_len = lv_len + 1.
                 ENDDO.
               ELSE.
                 lv_label_line_bin+lv_c2(2) = lv_x.
                 lv_c2 = lv_c2 + 2.
               ENDIF.
               lv_c1 = lv_c1 + 1.
             ENDDO.
    *       Print binary data to spool
             lv_len = lv_len * 2. "Unicode is 2 bytes per character
             CALL FUNCTION 'RSPO_SR_WRITE_BINARY'
               EXPORTING
                 handle                 = lv_spool_handle
                 data                   = lv_label_line_bin
                 LENGTH                 = lv_len
               EXCEPTIONS
                 handle_not_valid       = 1
                 operation_failed       = 2
                 OTHERS                 = 3.
             IF sy-subrc <> 0.
               RAISE spool_write_failed.
             ENDIF.
           ENDIF.
         ENDLOOP.
       ENDLOOP.
       CALL FUNCTION 'RSPO_SR_CLOSE'
         EXPORTING
           handle = lv_spool_handle.
       IF sy-subrc <> 0.
         RAISE spool_close_failed.
       ENDIF.

  • Character conversion problems when calling FM via RFC from Unicode ECC 6.0?

    Hi all,
    I faced a Cyrillic character convertion problem while calling an RFC function from R/3 ECC 6.0 (initialized as Unicode system - c.p. 4103). My target system is R/3 4.6C with default c.p. 1500.
    The parameter I used in my FM interface in target system is of type CHAR10 (single-byte, obviously).
    I have defined rfc-connection (SM59) as an ABAP connection and further client/logon language/user/password are supplied.
    The problem I faced is, that Cyrillic symbols are transferred as '#' in the target system ('#' is set as default symbol in RFC-destination definition in case character convertion error is met).
    Checking convertions between c.p. 4103  and target c.p. 1500 in my source system using tools of transaction i18n shows no errors - means conversion passed O.K. It seems default character conversion executed by source system whithin the scope of RFC-destination definition is doing something wrong.
    Further, I played with MDMP & Unicode settings whithin the RFC-destination definition with no successful result - perhaps due to lack of documentation for how to set and manage these parameters.
    The question is: have someone any experience with any conversion between Unicode and non-Unicide systems via RFC-call (non-English target obligatory !!!), or can anyone share valuable information regarding this issue - what should be managed in the RFC-destination in order to get character conversion working? Is it acceptable to use any character parameter in the target function module interface at all?
    Many thanks in advance.
    Regards,
    Ivaylo Mutafchiev
    Senior SAP ABAP Consultant

    hey,
    I had a similar experience. I was interfacing between 4.6 (RFC), PI and ECC 6.0 (ABAP Proxy). When data was passed from ECC to 4.6, RFC received them incorrectly. So i had to send trimmed strings from ECC and receive them as strings in RFC (esp for CURR and QUAN fields). Also the receiver communication channel in PI (between PI and  RFC) had to be set as Non unicode. This helped a bit. But still I am getting 2 issues, truncation of values and some additional digits !! But the above changes resolved unwanted characters problem like "<" and "#". You can find a related post in my id. Hope this info helps..

  • Oracle 8.1.7.4 + JDBC Driver 10.2.0.3.0=invalid or unknown NLS parameter...

    I'm having an issue trying to update the jdbc driver from 10.1.0.2.0 to 10.2.0.3.0 to access an Oracle 8.1.7.4 instance. Using this code I'm getting the following exception, any ideas how to fix it?
    Thanks,
    Johann
    Connection c = null;
    try {
         Driver dr = new oracle.jdbc.OracleDriver();
         DriverManager.registerDriver(dr);
         Properties props = new Properties();
         props.put("user", "congiromsr");
         props.put("password", "the password");
         String url = "jdbc:oracle:thin:@cholguaco:1533:lobo";
         c = dr.connect(url, props);
         System.out.println("The driver is "
                   + c.getMetaData().getDriverVersion());
         System.out.println("The DBMS is "
                   + c.getMetaData().getDatabaseProductVersion());
    } catch (Exception e) {
         e.printStackTrace();
    } finally {
         try {
              c.close();
         } catch (Exception ignore) {
    java.sql.SQLException: ORA-00604: error occurred at recursive SQL level 1
    ORA-12705: invalid or unknown NLS parameter value specified
         at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:112)
         at oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java:331)
         at oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java:283)
         at oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java:278)
         at oracle.jdbc.driver.T4CTTIoauthenticate.receiveOauth(T4CTTIoauthenticate.java:791)
         at oracle.jdbc.driver.T4CConnection.logon(T4CConnection.java:362)
         at oracle.jdbc.driver.PhysicalConnection.<init>(PhysicalConnection.java:439)
         at oracle.jdbc.driver.T4CConnection.<init>(T4CConnection.java:165)
         at oracle.jdbc.driver.T4CDriverExtension.getConnection(T4CDriverExtension.java:35)
         at oracle.jdbc.driver.OracleDriver.connect(OracleDriver.java:801)
         at TestClass.main(TestClass.java:14)

    JDBC drivers set NLS parameters based on your locale settings. There are three based parameters: language, territory and character set. Maybe in your case JDBC driver 10.2.0.3.0 sets one of them with value that is not supported in Oracle Database 8.1.7.4. Character set is the first candidate for this. JDBC drivers use only Unicode character sets - there are a few new of them in Oracle Database 10g. 8 and 9 versions of JDBC drivers use UTF8 which is Unicode version 3.0 but in 10g is added Al32UTF8 which is Unicode version 4.0.

  • TO_NUMBER and NLS parameters......don't understand

    I am trying to get my head around the use of format elements and NLS parameters with TO_NUMBER and TBH am at my wits end. So I'm going to start with something simple. I've never bothered or had to bother with the third parameter 'nls params' for NLS settings and now that I have I really regret it.
    This works even though the '.' and ',' characters are not in their normal positions....
    SQL> SELECT TO_NUMBER(  '17.000,23', '999G999D99', 'nls_numeric_characters='',.'' ') FROM DUAL;
    TO_NUMBER('17.000,23','999G999D99','NLS_NUMERIC_CHARACTERS='',.''')
                                                               17000.2
    So why is this version throwing up an error?   (I should say all I've changed is the order of ',' and '.' in the string)
    SQL> SELECT TO_NUMBER(  '17,000.23', '999G999D99', 'nls_numeric_characters='',.'' ') FROM DUAL;
    SELECT TO_NUMBER(  '17,000.23', '999G999D99', 'nls_numeric_characters='',.'' ') FROM DUAL
    ERROR at line 1:
    ORA-01722: invalid number
    Also does the order of characters matter here  'nls_numeric_characters='',.'' ')  ?
    I apologise but when marking code in my spl*plus CLI and trying to paste here as 'SQL insert' lines ended up missing or wrapping or line spacing changing seconds later. I ended up with one line written over the other and the missing lines only being visible when highlighted!!!

    Also does the order of characters matter here  'nls_numeric_characters='',.'' ')  ?
    Of course the order is important. How would you tell the meaning of each character if it wasn't?
    First character is the decimal separator, and the second is the thousand separator.
    Your first query is OK because the decimal separator used in the input string is '.' and the thousand separator is ',', which matches exactly the characters specified in the NLS parameter.
    The second query failed for the opposite reason.

  • SAXParseException: character conversion error: Illegal character 0x9A...

    This is my problem:
    I use JDom to parse remote XML document with DTD linked to it. But I get that error. Request is:
    SAXBuilder builder = new SAXBuilder();
    Document doc = builder.build(new URL(url));
    This works fine when I use these XML and DTD docs locally, which means that I give xml file name as a parameter from console. Then everything goes well. But when I move my program to server and try to run it there, SAXParseException is thrown. Why???
    Error is:
    error on line 1 of document "http://server.net/doc.dtd" Character conversion error: Illegal ASCII character 0x9A (line number may be too low)
    What this means? And why this just happens when I run program in server? Help, please
    tia J_J

    Exactly that's the problem.
    String class :
    * This class is implemented to map an ordinary java.lang.String
    * into an xml compliant String
    public class String2Xml
         private final String invalidChars [] = {"�",
                                                           "�",
                                                           "�",
                                                           "�",
                                                           "�",
                                                           "�",
                                                           "�",
                                                           "�",
                                                           "�",
                                                           "�",
                                                           "`",
                                                           "�",
                                                           "<",
                                                           ">",
         private final String replaceChars [] = {"��",
                                                           "&#223;",
                                                           "&#228;",
                                                           "&#246;",
                                                           "&#252;",
                                                           "&#196;",
                                                           "&#214;",
                                                           "&#220;",
                                                           "&#167;",
                                                           "&#128;",
                                                           "&#96;",
                                                           "&#180;",
                                                           "<",
                                                           ">",
                                                           "&apos;"};
         * Constructor
         public String2Xml();
         * This operation is implemented to check if the given String
         * matches one of the invalidChars. If an invalid char is found
         * it'll be replaced.
         * @return String - the correct xml String
         public String checkString(String check)
              for (int i = 0; i < invalidChars.length; i++)
                   check = check.replaceAll(invalidChars, replaceChars[i]);
              System.out.println("Check : " + check);
              return check;

  • Sqldeveloper ORA-12705 NLS parameter problem

    Hi,
    I just have installed sqldeveloper 1.2.1.
    I´m using Oracle 9i with american_america character set.
    My Win XP regional settings: Español (Ecuador) = Spanish (Ecuador)
    I configured sqldevloper with Language=American, Territory=Ecuador, Sort=Spanish, Comp=Binary and Date Language=American. However, I get connected to the db succesfully, but I got an annoying message (2 times):
    An error was encountered performing the following operation:
    ORA-12705: Invalid or unknown NLS parameter value especifed.........
    It could be great if someone could help me to get rid of this messages...
    Regards,
    Santiago

    Fixed ORA-12705 with sqldeveloper Version 1.5.1 Build MAIN-5440 on Windows XP
    I also had ORA-12705 Cannot access NLS data files or invalid environment specified on connect to DBMS instance and was able to track it down to the environemnt variable ORACLE_HOME which I had set in the dos command box as below:
    ORACLE_HOME=C:\programs\oracle\product\10.2
    That pointed to an Oracle Client ORACLE_HOME.
    I realized that the error goes away if:
    a) I remove ORACLE_HOME from the environment, i.e. "set ORACLE_HOME=" in the does box or
    b) I set ORACLE_HOME=C:\programs\oracle\product\11.1, where this is an 11.1 SERVER ORACLE_HOME
    Using regmon I saw that sqldeveloper does not access the Windows registry. Unfortunately I was unable to determine the root cause why the error occured when ORACLE_HOME pointed to the 10.2 client ORACLE_HOME. All I can say is it was not due to file access permissions.
    I was also unable to determine why sqldeveloper kept using C:\programs\oracle\product\10.2\jdbc\lib\ojdbc14.jar even when ORACLE_HOME did not point to C:\programs\oracle\product\10.2.
    With ORACLE_HOME=C:\programs\oracle\product\11.1 the following jar file was used for JDBC:
    C:\programs\oracle\product\11.1\jdbc\lib\ojdbc5.jar
    When I'm setting "set ORACLE_HOME=C:\programs\sqldeveloper", which is the installation directory of sqldeveloper, then it works fine and filemon utility shows that it uses this JDBC jar file:
    C:\programs\sqldeveloper\jdbc\lib\ojdbc5.jar
    Unfortunately neither Oracle&reg; Database SQL Developer Installation Guide Release 1.5 E12153-02 nor Oracle&reg; Database
    SQL Developer User&rsquo;s Guide Release 1.5 E12152-05 (the latest editions as of Dec 08) say anything about ORACLE_HOME that applies.
    However this info in the "User's Guide" is noteworthy: "_Note that SQL Developer does not use default values from the current system for globalization support parameters_;"
    This seems to indicate that any NLS_* parameters in the registry and environment (DOS box) are ignored. Go to Tools &gt; Preferences &gt; Database &gt; NLS in sqldeveloper to set them. But there is no way to set the character set!

  • Datatype conversion and Range

    Ok here i am back again..
    I am creating a database upgrade tool,
    the column types are also subject to change.
    I use the CAST(col_name AS newtype) function to cast types,
    this often works. But not for all cases.
    @see http://download-west.oracle.com/docs/cd/A91202_01/901_doc/server.901/a90125/functions15.htm
    For example a change from VARCHAR(255) to CHAR(3) does not work if the row currently
    contains a row with more than 3 character.
    A simple conversion that solves this problem is:
    CAST(CAST(col_name AS VARCHAR(3)) AS CHAR(3))
    I tested it using the following statement:
    select CAST(CAST('wtfomgbbq' AS VARCHAR(3)) AS CHAR(3)) from dual;
    Does this always work?
    Some type changes can be done directly on a table like this:
    ALTER TABLE table_name MODIFY ( col_name <NEWTYPE>)
    But this only works if the range is either the same or increased,
    or the table does not contain any rows, or the columns has only null values.
    (i checked the reference)
    But is there a way to always use this MODIFY statement and force the data to be transformed to the new type?
    My current approach is to create a temporary table, drop the current table, and recreate the current (with correct schema) and put the old data in the new table using the CAST function as described above.
    Maybe you experts now some way to do this faster?
    And how can i handle range decreases without getting oracle errors?
    (the update process may take several hours, so the DBA does not want an error message when updating the database)

    It would be easier as you still have to convert the output of SUBSTR to CHAR(3), else you are doing an implicit type conversion... Which is not bad, but i really want to be explicit:
    CAST(SUBSTR(col1, 1, 3) AS CHAR(3))
    Note that the sql code that does the type conversions is automatically generated, so it doesnt matter if it looks more complex.
    Anyway the main problem question is:
    Can i always use ALTER TABLE MODIFY to modify the data types of columns or do i have to use temporary cols, or temporary tables?
    Isnt there an option to force data type conversions and let oracle handle the casting (ans loss of data if the data-range is decreased) ?
    Thanks in advance

  • 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

  • Changing locale generates ORA-12705: invalid or unknown NLS parameter error

    By mistake I changed the default locale with following code:
    Locale.setDefault(new Locale(localeCode))
    and I get:
    JBO-30003: The application pool (com.photoswing.model.site.WebPhotographerGlobalAMLocal) failed to checkout an application module due to the following exception:
    oracle.jbo.JboException: JBO-29000: Unexpected exception caught: oracle.jbo.JboException, msg=JBO-29000: Unexpected exception caught: oracle.jbo.JboException, msg=JBO-29000: Unexpected exception caught: oracle.jbo.DMLException, msg=JBO-26061: Error while opening JDBC connection.
         at oracle.jbo.JboException.<init>(JboException.java:343)
    ## Detail 0 ##
    java.sql.SQLException: ORA-00604: error occurred at recursive SQL level 1
    ORA-12705: invalid or unknown NLS parameter value specified
    Thanks
    Fred

    Can somebody explain the relation between default locale and NLS application pool connection parameter?
    Thanks
    Fred

  • Error occurred during character conversion in SXMB_MONI

    Hello Experts,
    Good Day!
    I would like to seek your help here. When i used tcode SXMB_MONI to search for messages i get this error : Error occurred during character conversion.
    So far no problem with the program. Its work for all other dates. Just for one particular day and specific time period, im geting this error.
    Does anyone know what is this error means? Please reply..
    Thanks for your help.
    Looking forward for ur replies..

    Hi Presheela,
    Basically this problem occurs when ur payload contains any special characters like '&' ,'>'...etc .So you have to take care of how to deal with these characters in XI.
    Refer the following documentation:
    How to Work with Character Encodings in Process Integration
    https://www.sdn.sap.com/irj/sdn/go/portal/prtroot/docs/library/uuid/502991a2-45d9-2910-d99f-8aba5d79fb42
    Regards,
    Vinod.

  • OAS 4.0.8.2 and NLS problem

    Hi,
    I migrated from OAS 4.0.8.1 to ...2.
    When I setup the net80 configuration using Easynet config I get the following error from the testing of the connection:
    ORA-12705: Invalid or unknown NLS parameter value specified.
    It just worked fine with the earlier version of OAS.
    Anyone...pls...

    Problem solved.
    I deleted OAS 4.0.8.2.0 and installed Web-to-go. Then I installed OAS 4.0.8.2.0.

Maybe you are looking for

  • Why can't I use my Adobe ID if I have to reinstall the digital reader?

    I already have an Adobe ID.  I had to reinstall the Digital Reader and it will not authorize using my Adobe ID because it says another computor is already using that ID.  It is the same computor it is only that I had to reinstall the program.

  • Web Service Connector Export Issue

    Hi, Version: Crystal Xcelsius Designer 4.5 I have a Crystal Xcelsius dashboard with a Web Service Connector component on it, as well as some graph components. When I "Preview" the file, the display works fine and the graph is filled with data obtaine

  • I cant edit an CS4 file open in CS6. Colours, Most of the tools are in-active

    I cant edit an CS4 file open in CS6. Colours, Most of the tools are in-activeC

  • Sales Document Type K with negative price

    Hi Please, I have the following error. I defined a sales document type ZS01 with sales document category "K - Credit memo Request". When i create a sales order ZS01 and define price 1000 USD in PR00 condition type the price is converted to negative (

  • W500 Wireless Issues

    Lately I've been having issues with my wireless.  Most of the time it works fine, but sometimes (getting more and more frequent) it will fail to get network access (though Windows claims it's connected but with no internet; shows an IP configuration