Problem with String Parameter in Command

I'm running CR XI. I have a report that I want to change the command to use a parameter rather than an hard-coded number that I used for testing. The text of the SQL is:
select j.instrument_type,j.cost_type_cd,j.customer,j.bs, j.product,j.del_pd, j.bl_num, j.date2,j.match,j.jrnl_ref,j.mot_name,
j.tank_name, j.trade_num ,  j.date3, j.volume,  j.invoice, j.trade_price,
j.mrkt_price,  j.book_pl,  j.pl,  o.strategy_name, j.snapshot
from JE_TABLE_{?TName} j,  ORG_STRATEGY o
where j.STRATEGY in (select o.external_ref from org_strategy o where o.strategy_name='{?StratName}')
and j.strategy=o.external_ref and j.cost_in_mtm=1
order by j.PL
When I added the '{?StratName}' to the SQL, CR started aslways failing telling me I had an invalid character. So, I changed to double quotes and the error message changed to the expected Oracle error becuase it does nto like  double quotes but I did not get the invalid character error.
This is a string parameter so I need the single quotes. What do I need to do to get CR to handle it? I've used this structure before ino other reports and it never objected to the single quotes before.
Could the command just be corrupt?

I decided to create a new blank report and added the command as before and then paramterized it. This time there was no problem. It must be that the other command was corrupt.

Similar Messages

  • I have a problem with ALV Grid User Command?

    Hi Experts,
    I have a problem with ALV GRID User Command.
    I am calling TCODE IW33 (Order Display) from the ALV output at first time by selecting an order. But, User command is calling IW33 Initial screen with blank value of order. Even I checked in debugging the value what I selected is passing properly, but once that screen (IW33 Initial) displays, value doesn't appear. Then, Manually, I  created another session and gone to TCODE IW33 and displayed an order. After that I came out from that order. Then again run my ALV program and selected another order, now order is displaying, but not what I selected current order instead of displaying previous order what I just displayed manually. If I selected any other order, system will display the same order what I dislayed manually.
    Here is my code.
    FORM user_command_alv  USING u_ucomm TYPE sy-ucomm
                           us_self_field TYPE slis_selfield.
    CASE u_ucomm.
    WHEN '&IC1'.
    READ TABLE it_final INDEX us_self_field-tabindex INTO wa_final.
            WHEN 'ORDER'.
              IF NOT wa_final-order IS INITIAL.
                SET PARAMETER ID 'COK' FIELD wa_final-order.
                CALL TRANSACTION 'IW33' AND SKIP FIRST SCREEN.
              ENDIF.
    endform.
    PARAMETER ID 'COK'  also the standard one.
    Could you please help me out, Where I did wrong?
    If I select any order, that order only should display.
    Thanks in advance.
    Regards,
    Sarayu.
    Code Formatted by: Alvaro Tejada Galindo on Jan 8, 2009 2:33 PM

    hi,
    Please check it once the Paramater ID is 'ANR' for IW33 order number.
    Hope this may help.
    Regards,
    Sravanthi

  • Problem with String variable

    I am new to Java Programming.
    I have a line of code that works and does what is supposed to.
    faceData.getProfile("Lisa").removeFriend("Curtis");
    If I assign the strings to variables such as-
    String name = "Lisa";
    String fName = "Curtis";
    and then plug those into the same line of code, it does not work
    faceData.getProfile(name).removeFriend(fName);
    What could be causing the problem?
    I even added some lines to print out what is stored in the variables to verify that they are what they should be, but for some reason the variables do not work while putting the strings in quotes does. Any ideas?

    I guarantee that something about your assertions are incorrect. Those variables are either not equal to the values you claim, or something else is going on. But it's not a problem with string variables versus string constants.
    Edit: My best guess in lack of a real example from you, is that the strings in question have non-printable characters in them, such as trailing spaces or line feeds.

  • Little problem with Strings.

              I have an little problem with Strings, i make one comparision like this.
              String nombre="Javier";
              if( nombre.equalsIgnoreCase(output.getStringValue("CN_NOMBRESf",null)) )
              Wich output.getStringValue("CN_NOMBRESf",null) is "Javier" too, because I display
              this before and are equals.
              What I do wrong?.
              

    You are actually making your users key in things like
    "\026"? Not very user-friendly, I would say. But
    assuming that is the best way for you to get your
    input, or if it's just you doing the input, the way to
    change that 4-character string into the single
    character that Java represents by '\026', you would
    use a bit of code like this:char encoded =
    (char)Integer.parseInt(substring(inputString, 1),
    16);
    DrClap has the right idea, except '\026' is octal, not hex. So change the radix from 16 to 8. Unicode is usually represented like '\u002A'. So it looks like you want:String s = "\\077";
    System.out.println((char)Integer.parseInt(s.substring(1), 8));Now all you have to do is parse through the String and replace them, which I think shouldn't be too hard for you now :)

  • Problem with String to Int conversion

    Dear Friends,
    Problem with String to Int conversion
    I am having a column where most of the values are numeric. Only 4 values are non numeric.
    I have replaces those non numeric values to numeric in order to maintain the data type.
    CASE Grade.Grade  WHEN 'E4' THEN '24'  WHEN 'E3' THEN '23'  WHEN 'E2' THEN '22' WHEN 'E1' THEN '21' ELSE Grade.Grade  END
    This comes the result as down
    Grade
    _0_
    _1_
    _10_
    _11_
    _12_
    _13_
    _14_
    _15_
    _16_
    _17_
    _18_
    _19_
    _2_
    _20_
    _21_
    _22_
    _23_
    _24_
    _3_
    _4_
    _5_
    _6_
    _7_
    _8_
    _9_
    Refresh
    Now I want to convert this value to numeric and do some calculation
    So I changed the formula as below
    cast (CASE Grade.Grade  WHEN 'E4' THEN '24'  WHEN 'E3' THEN '23'  WHEN 'E2' THEN '22' WHEN 'E1' THEN '21' ELSE Grade.Grade  END as INT)
    Now I get the following error
    View Display Error
    _     Odbc driver returned an error (SQLExecDirectW)._
    Error Details
    Error Codes: OPR4ONWY:U9IM8TAC:OI2DL65P
    _State: HY000. Code: 10058. [NQODBC] [SQL_STATE: HY000] [nQSError: 10058] A general error has occurred. [nQSError: 17001] Oracle Error code: 1722, message: ORA-01722: invalid number at OCI call OCIStmtFetch. [nQSError: 17012] Bulk fetch failed. (HY000)_
    SQL Issued: SELECT cast ( CASE Grade.Grade WHEN 'E4' THEN '24' WHEN 'E3' THEN '23' WHEN 'E2' THEN '22' WHEN 'E1' THEN '21' ELSE Grade.Grade END as Int) saw0 FROM "Human Capital - Manpower Costing" WHERE LENGTH(CASE Grade.Grade WHEN 'E1' THEN '20' WHEN 'E2' THEN '21' WHEN 'E3' THEN '22' WHEN 'E4' THEN '23' ELSE Grade.Grade END) > 0 ORDER BY saw_0_
    Refresh
    Could anybody help me
    Regards
    Mustafa
    Edited by: Musnet on Jun 29, 2010 5:42 AM
    Edited by: Musnet on Jun 29, 2010 6:48 AM

    Dear Kart,
    This give me another hint, Yes you are right. There was one row which returns neither blank nor any value.
    I have done the code like following and it works fine
    Thanks again for your support
    Regards
    Code: cast (CASE (CASE WHEN Length(Grade.Grade)=0 THEN '--' ELSE Grade.Grade END) WHEN 'E4' THEN '24' WHEN 'E3' THEN '23' WHEN 'E2' THEN '22' WHEN 'E1' THEN '21' when '--' then '-1' ELSE Grade.Grade END as Int)

  • Having problems with using shift alt command when using the square tool

    having problems with using shift alt command when using the square tool

    Marco,
    If no good reason, such as the one suggested by Silkrooster, is present, you may try the list, hoping for one of the easy ones at the top.
    The following is a general list of things you may try when the issue is not in a specific file, and when it is not caused by issues with opening a file from external media. You may have tried/done some of them already; 1) and 2) are the easy ones for temporary strangenesses, and 3) and 4) are specifically aimed at possibly corrupt preferences); 5) is a list in itself, and 6) is the last resort.
    If possible/applicable, you should save current artwork first, of course.
    1) Close down Illy and open again;
    2) Restart the computer (you may do that up to at least 5 times);
    3) Close down Illy and press Ctrl+Alt+Shift/Cmd+Option+Shift during startup (easy but irreversible);
    4) Move the folder (follow the link with that name) with Illy closed (more tedious but also more thorough and reversible), for CS3 - CC you may find the folder here:
    https://helpx.adobe.com/illustrator/kb/preference-file-location-illustrator.html
    5) Look through and try out the relevant among the Other options (follow the link with that name, Item 7) is a list of usual suspects among other applications that may disturb and confuse Illy, Item 15) applies to CC, CS6, and maybe CS5);
    Even more seriously, you may:
    6) Uninstall (ticking the box to delete the preferences), run the Cleaner Tool (if you have CS3/CS4/CS5/CS6/CC), and reinstall.
    http://www.adobe.com/support/contact/cscleanertool.html

  • Setting VarChar Variable with String Parameter in Crystal Report Add Command

    Setting a VarChar Variable with a String Parameter in a Crystal Report 2008 SP6.3 Add Command is causing an error with a SQL State of 42000.  The Error Code depends on which value I select for the parameter.  I created the @DateOpt string parameter in the Modify Command window, not in the report. If I comment out line 14 of the SQL the error does not occur.
    I have attached the SQL Code and screen shots of the errors.   Please tell me what I am doing wrong.

    Since your parameter is of type STRING, you need to enclose references to it within the Command inside single quotes.
    For example, instead of
    SET @BeginDate ={?BeginDate}
    use
    SET @BeginDate ='{?BeginDate}'
    hth,
    - ido

  • Problems with String[] Class Object

    Hi guys,
    I'm writing a web server who should invoke a method of a class when asked by a client.
    My problem is that if the method that should be invoked has a String[] parameter the web server is unable to invoke it and throws a java.lang.IllegalArgumentException: argument type mismatch.
    Useful pieces of code to understand are the following:
    //create the Class[] to pass as parameter to the getMethod method
    Class[] paramType = {String[].class};
    //find the class "className" and create a new instance
    Class c = Class.forName(className);
    Object obj = c.newInstance();
    //the getMethod should find in the class c the method called nameMeth
    // having paramType (i.e. String[]) as parameter type...
    Method theMethod = c.getMethod(nameMeth, paramType);
    //here's the problematic call!!
    theMethod.invoke(obj, params);I've noted that System.out.println(theMethod); prints the signature of the method with the parameter type java.lang.String[].
    System.out.println(paramType[0]); instead prints [Ljava.lang.String;
    I know that [L means that it is an array, so why do you think that I'm having an argument type mismatch?
    Thank you                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       

    I had no problems making that work.import java.lang.reflect.Method;
    public final class StringArray {
        public static final String CLASSNAME = "StringArray";
        public static final String METHODNAME = "myMethod";
        public static final String[] sa = { "a", "b"};
        // automatic no-args constructor
        public final void myMethod(String[] sa) {
            for(int i=0;i<sa.length;++i) {
                System.out.println(sa);
    public static final void main(String[] arg) throws Exception {
    //create the Class[] to pass as parameter to the getMethod method
    Object[] params = { sa };
    Class[] paramType = {sa.getClass()};
    //find the class "className" and create a new instance
    Class c = Class.forName(CLASSNAME);
    Object obj = c.newInstance();
    //the getMethod should find in the class c the method called nameMeth
    // having paramType (i.e. String[]) as parameter type...
    Method theMethod = c.getMethod(METHODNAME, paramType);
    //here's the problematic call!!
    theMethod.invoke(obj, params);

  • Problem with zip operating system command

    Hello,
    i have the following configuration in the file receiver adapter:
    Directory: /tmp/
    File Name Scheme: %name%.txt
    Variable substitution:
    Variable Name: name                 Reference: payload: record,1,name,1
    Run Operating system command:
    /usr/bin/zip /tmp/%f.zip %F
    The execution is succesful, but i have a small problem. The file name is "file.txt.zip", the .txt should appear but i dont know how to skip it, I have tried so many ways but it doesnt work, I should receive a file called "file.zip" With a file inside in txt format...
    Thanks,
    Luis

    Hi Sriram,
    Thanks, but that wouldnt work out, Im using the %f for my file name, so this move command shouldnt work for me, because my filename changes in every execution, so I cant write something like this: mv file.txt.zip file.zip
    The only solution I see would would be a command which deals with strings and that could remove the four last characters of "%f"..but I havent found anything for doing it.
    Regards,
    Luis

  • Problem with GET PARAMETER in "O4K_LICENSE" Transaction

    Hi folks,
    I am facing a problem with the usage of "GET PARAMETER ID" in the transaction O4K_LICENSE (IS-oil).
    I have written a BDC which feeds in the License Type, External License type and a few other Mandatory fields to the Transaction, and on saving the transaction, SAP generates an "Internal License Number". This field has a Parameter ID "OIH", and I am using the command
    GET PARAMETER ID 'OIH' FIELD lw_licin.
    For the first pass of the loop, there is a value coming into lw_licin, but in the later loops this Value is not refreshing and the value which is coming into lw_licin is not changing. But the Database table OIHL is getting updated with the correct Internal License number values.
    So, my question is, is there anyway by which i can refresh the SAP Global Memory after every loop pass?
    Or, is there any way out to get the new generated values into lw_licin ?
    Thanks in advance,
    Vijay.

    Hi
    If you clear the parameter, you should transfer a blank value to it:
    DATA: NO_VALUE.
    SET PARAMETER ID <ID> FIELD NO_VALUE.
    Now the problem is this statament should be into loop and i think the transaction only does the GET PARAMETER.
    If transaction doesn't do the SET PARAMETER yuo can do anything.
    In your standard program there should be something like:
    LOOP...
    IF SY-TABIX > 1.
      SET PARAMETER ID <ID> FIELD NO_VALUE.
    ENDIF.
    ENDLOOP.
    but I think it's very hard there is a piece of code like that, and you can do nothing, because you can only set the parameter before calling the transaction (in bdc mode) and after calling the transaction but not while the transaction is working.
    You should change the standard program to do this.
    Max
    Message was edited by: max bianchi

  • Problem with String in a Vector

    I'm making a small hangman game. And I got a problem with putting words in a Vector... This is the code... Can someone tell me what I'm doing wrong?
    // First I define it.
    Vector Words;
    //  Then add the words
    Vector Words = new Vector();
    Words.add(new String("HELLO"));
    Words.add(new String("GOOD BYE"));
    // When I try to get a string from the Vector I use this.
    // The program compiles but when I try to run it I get NullPointerExeption here
    W = (String) Words.elementAt(0);

    Not sure since I cant see all of your code but looks like this might be your problem:
    // First I define it.
    Vector Words; //<-- here you define a Vector named Words that is null
    // Then add the words
    Vector Words = new Vector(); //<-- here you define another vector named Words that holds a reference to a new Vector. This is a different reference than the one created above so you should probably remove the "Vector" part from the beginning of this line. Is this a local variable to a method and the one before is a global variable?
    //Here you probably access the locally created Words vector which is initialized
    Words.add(new String("HELLO"));
    // When I try to get a string from the Vector I use this.
    // The program compiles but when I try to run it I get NullPointerExeption here
    W = (String) Words.elementAt(0); //<--and here my guess is that this statement is inside another method than the one with the local Words vector defined. Thus this one accesses the global Words Vector that is never initalized and is Null. And that gives you the NullPointerException.
    So try changing the statement
    Vector Words = new Vector();
    to
    Words = new Vector();
    or just remove it totally and move the Vector creation to the place where you introduce the global variable.
    Of course I might be totally wrong since I cant see all of your code but that is my guess.
    Hope it helps,
    -teka

  • Problem with Date Parameter

    Hi
    I am new to reporting services/report designer but have created a number of simple reports with Parameters using data from queries that have worked but I have a problem with this using Date and Time. 
    I am using MS Visual Studio 2008 (BIDS) and our SQL Server is Windows Server 2008 R2
    I need to allow the users of the report to choose a start date and an end date
    The Start Dates are held in a field called PhaseStartDate
    The End Dates are held in a field called PhaseEndDates
    I have tried multiple ways to try to get this to work with no success and with the latest attempt I get the message  
    "An error occurred during local report processing. The definition of the report 'JKVoidLoss' is invalid. The report parameter 'StartDate' has a default value or ValidValue that depends on the report parameter"Startdate". Forward dependancies
    are not valid"
    I will explain how I set up the Startdate. The EndDate is set up the same with the relevant values and fields.
    I created a new data source called StartDate. Under QUERY I have Select PhaseStartDate from QLHRA_VoidPhases. This runs okay when tested in Query designer and RUN.
    Under FIELDS I have Field name as PhaseStartDate and Field Source as PhaseStartdate
    Under PARAMETERS I have Parameter Name as PhaseStartDate and Parameter Value as [@StartDate]
    I set up a Parameter called StartDate with Data type as Date/Time
    Under Available Values I selected Get values from a query with Dataset being StartDate, Value field being PhaseStartdate and Label field being PhaseStartDate
    There are no Default Values
    I have tried moving the parameters up and down using the blue arrows under report data. I have tried multiple different methods to resolve this by changing values in the Properties screens.
    I also tried removing the DataSets and just using the Parameters with default settings. in preview, this ran the report but no matter what dates where entered the output was always the same.
    Any assistance will be greatly appreciated as I have spent hours on this so far
    Regards
    John

    Hi
    I am new to reporting services/report designer but have created a number of simple reports with Parameters using data from queries that have worked but I have a problem with this using Date and Time. 
    I am using MS Visual Studio 2008 (BIDS) and our SQL Server is Windows Server 2008 R2
    I need to allow the users of the report to choose a start date and an end date
    The Start Dates are held in a field called PhaseStartDate
    The End Dates are held in a field called PhaseEndDates
    I have tried multiple ways to try to get this to work with no success and with the latest attempt I get the message  
    "An error occurred during local report processing. The definition of the report 'JKVoidLoss' is invalid. The report parameter 'StartDate' has a default value or ValidValue that depends on the report parameter"Startdate". Forward dependancies are not valid"
    I will explain how I set up the Startdate. The EndDate is set up the same with the relevant values and fields.
    I created a new data source called StartDate. Under QUERY I have Select PhaseStartDate from QLHRA_VoidPhases. This runs okay when tested in Query designer and RUN.
    Under FIELDS I have Field name as PhaseStartDate and Field Source as PhaseStartdate
    Under PARAMETERS I have Parameter Name as PhaseStartDate and Parameter Value as [@StartDate]
    I set up a Parameter called StartDate with Data type as Date/Time
    Under Available Values I selected Get values from a query with Dataset being StartDate, Value field being PhaseStartdate and Label field being PhaseStartDate
    There are no Default Values
    I have tried moving the parameters up and down using the blue arrows under report data. I have tried multiple different methods to resolve this by changing values in the Properties screens.
    I also tried removing the DataSets and just using the Parameters with default settings. in preview, this ran the report but no matter what dates where entered the output was always the same.
    Any assistance will be greatly appreciated as I have spent hours on this so far
    Regards
    John
    As I understand what you need to do is to just remove parameter from the dataset query for populating the date values and then it should work fine
    Please Mark This As Answer if it helps to solve the issue Visakh ---------------------------- http://visakhm.blogspot.com/ https://www.facebook.com/VmBlogs

  • Problem with exexuting an OS command

    Hello!
    Our SAP System runs on Solaris. I want to move files from a directory in a subdirectory, similiar to this:
    from:
    /dir/file1.csv
    /dir/file2.csv
    /dir/file3.csv
    to:
    /dir/subdir
    I made an OS command with the SM69 and executed it with SM49. The command was:
    mv /dir/file* /dir/subdir
    Unfortanately it doesn't work. There's the message:
    mv: no access to /dir/file*
    return code 2
    If i execute
    mv /dir/file1.csv /dir/subdir
    it works, but that's not what i want.
    Has anybody an idea?
    Best wishes
    Georg

    Hello,
    I dont know exactly your problem why you want to do file*. But if your problem is finding the exact filename at runtime...and then move to some archive folder
    Try this
    Use GET_JOB_RUNTIME_INFO function module to get the exact file name and then you can do the move with the exact file name using external os command. Either you can use event raise or write an ABAP program.
    GSM.

  • StringTokenizer class problem with strings in double quotes

    Hello Technocrats,
    I have a problem with tokenizing following string enclosed in (). (abc," India, Asia", computer engineer). My separator is ",", thus StringTokenizer class gives me 4 tokens namely abc, "India, Asia" and computer engineer. But I require that String in double quotes should be a single token. How to achieve this using StringTokenizer class? Or is there any other way?
    Thanks in advance.

    Try
    String[] str="abc,\" India, Asia\",computer engineer".split(",",1);
              for(String s: str)
                   System.out.println(s);
              }Thanks.

  • Problem with SAP Script (Control Commands)

    Dear friends,
          I am facing one problem withg control commands. When i use <b>PROTECT.....ENDPROTECT</b> with <b>VAR type</b> window then it is not working instead i use with <b>MAIN type</b> window it is working fine. Another problem with <b>BOX command</b> when i use with <b>MAIN type</b> window then it is not working but when i use with VAR type window then it is working fine. SO i am little bit confused that is there any relation between control commands and window type?
    THanks & Regards,
    Bhavin

    Hi,
    There is no restriction to use any control commands on any windows.
    The SAP doesnt give any error, but the point of using Protect Endprotect in windows other than main window doesnt apply.
    Only main window carries from one page to another. So in order to print certain lines in a single page we use this control command.
    Regarding BOX command it works fine on any window.
    Thanks and Regards.
    Lavanya.

Maybe you are looking for