Default Logic error

Hi Experts,
I have this line of code in my default logic and it is not validating when I try to validate it. What am I doing wrong here?
[ACCOUNT].[#VATTAX_DOLR] AS -[ACCOUNT].[120]*.05
I am using the SAP BPC 7.0 SP07 version. Any help is greatly appreciated!
Thanks.
Edited by: Srinivas Paluri on Apr 30, 2010 6:46 PM

Hi Srinivas,
I would suggest you to use the below code
[ACCOUNT].[#VATTAX_DOLR] = [ACCOUNT].[120]*(-0.05)
or
*WHEN ACCOUNT
*IS 120
   *REC(FACTOR=-0.05, ACCOUNT=VATTAX_DOLR)
*ENDWHEN
*COMMIT
In the above 2 codes, "VATTAX_DOLR" and "120" are dimension members of account dimension.
Hope this helps.

Similar Messages

  • Error in Executing Default Logic

    Hi,
    I included a formula in default logic which is a simple multiplication of two account dimension members:
    *BEGIN
    [P_ACCT].[#CE0004220] = [P_ACCT].[CE0004210]*[P_ACCT].[CE0004230]
    *END
    Was able to successfully validate and save the logic. However, when I tried to send data, the system threw an error:
    "- Error Message -
    Error running default logic (Error checking work status)
              - Rejected record List -
    Error converting records: The root element is missing."
    Have checked the work status and nothing seems to be amiss. Also, I tried removing the formula from the default logic and then sending the data - this worked.
    So there must be some error with the default logic / work status. Could someone please help me out here?
    Thanks in advance
    Regards,
    Meiyalagan
    Edited by: Meiyalagan Kulandaivel on Nov 27, 2008 10:06 AM

    Hi Meiyalagan,
    Can you please indicate which BPC release you are using ?
    I would suggest that you first make the following 2 corrections on your formula:
    1. Add a "#" to the member on the left of the equal sign
    2. Put square brackets around the dimension and member names
    [P_ACCT].[#CE0004220] = [P_ACCT].[CE0004210]*[P_ACCT].[CE0004230]
    After that, you also may need to setup your workstatus. There are two places where you can defined workstatus.
    1. On the application set level, you define a list of the status (like unlocked, submitted, approved, locked, ...) and who is allowed to do what (like that only the manager is allowed to post journal for example)
    2. On the application, you indicate which dimension are used to set that workstatus (usually the combination category / entity / time is used to set and track these workstatus)
    In the Entity (or the dimension you have the OWNER property), you defined the owner of that entity (can also be a list of user or a team). Each owner of a parent is considered as a manager of that entity. If I for example own the entity France, the owner of the Entity Europe will be considered as my manager (as well as the owner of the Entity World). The settings Owner and Manager are used in the Work Status table on the application set, to define who can do which task and who is allowed to change the workstatus (promote it to the next status).
    Regards,
    Marcel

  • JFrames + Returning a Variable... Beginner's Logical Error

    Hi,
    I'm new to Java and programming in general. I'm trying to do something that seems pretty simple, but I'm making a logical error that is preventing my little program from working.
    All I'm trying to do is this... I've created a little JFrame that asks a user for a university's name, address, and the number of students in the university. All of this is within a class called InputWindowSmall. I just want to be able to return those Strings, univName, univAdress, univStudents, to my main program so I can put them into a different class.
    I've tried get methods, but that's silly, it doesn't work, it returns null because the program doesn't wait for the user's input.
    Does anyone have any suggestions?
    Also... I'm a terribly poor Object-Oriented-Thinker... If I'm doing anything that doesn't make sense in an Object-Oriented-Mindset, please point it out! I'd like to try and get better! Thanks!
    CODE
    InputWindowSmall
    package FinalProject;
    import javax.swing.JFrame;
    import javax.swing.JLabel;
    import java.awt.GridLayout;
    import javax.swing.JTextField;
    import java.awt.event.ActionListener;
    import java.awt.event.ActionEvent;
    import javax.swing.JButton;
    /** Class Definition: Input Window - small input window that asks for University name and address*/
    public class InputWindowSmall extends JFrame
         private JLabel nameLabel;
         private JLabel addressLabel;
         private JLabel numberStudentsLabel;
         private JLabel whiteSpace;
         private JTextField nameField;
         private JTextField addressField;
         private JTextField numberStudentsField;
         private JButton okButton;
         private String univName;
         private String univAddress;
         private String univStudents;
         /** Constructor with extra parameters     */
         public InputWindowSmall(University univ)
              //Names title bar of window
              super("Welcome!");
              //Sets layout of window
              setLayout(new GridLayout(4,2));
              //Sets text for nameLabel and adds to window
              JLabel nameLabel = new JLabel("    University Name: ");
              add(nameLabel);
              //Sets and adds nameField to window
              nameField = new JTextField(10);
              add(nameField);
              //Sets text for addressLabel and adds to window
              JLabel addressLabel = new JLabel("    University Address: ");
              add(addressLabel);
              //Sets and adds addressField to window
              addressField = new JTextField(10);
              add(addressField);
              //Sets text for numberStudentsLabel and adds to window
              JLabel numberStudentsLabel = new JLabel("    Number of Students: ");
              add(numberStudentsLabel);
              //Sets and adds numberStudentsField to window
              numberStudentsField = new JTextField(10);
              add(numberStudentsField);
              //Sets and adds white space
              JLabel whiteSpace = new JLabel("         ");
              add(whiteSpace);
              //Sets and adds button
              okButton = new JButton("OK");
              add(okButton);
              //create new ButtonHandler for button event handling
              ButtonHandlerSmall handler = new ButtonHandlerSmall();
              okButton.addActionListener(handler);
         }//end InputWindowSmall
         private class ButtonHandlerSmall implements ActionListener
              public void actionPerformed(ActionEvent event)
                   String univName = nameField.getText();
                   String univAddress = addressField.getText();
                   String univStudents = numberStudentsField.getText();
              }//end actionPerformed
         }//end ButtonHandlerSmall
         public String getUniversityName()
              return univName;
         }//end getUniversityName
         public String getUniversityAddress()
              return univAddress;
         public String getUniversityNumberStudents()
              return univStudents;
    }//ProjectTest (contains main)
    /** Class Definition: ProjectTest - contains main*/
    package FinalProject;
    import javax.swing.JFrame;
    public class ProjectTest {
         public static void main(String args[])
              //Creates a new university
              University univ = new University();
              //Instantiates and sets up the initial small window which asks for university name, address, and # students
              InputWindowSmall inputWindowSmall = new InputWindowSmall(univ);
              inputWindowSmall.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
              inputWindowSmall.setSize(350, 120);
              inputWindowSmall.setVisible(true);
              inputWindowSmall.setLocationRelativeTo(null);
              String univN = inputWindowSmall.getUniversityName();
              String univA = inputWindowSmall.getUniversityAddress();
              String univS = inputWindowSmall.getUniversityNumberStudents();
              System.out.println(univN);
              System.out.println(univA);
              System.out.println(univS);
         }//end main
    }Edited by: heathercmiller on Apr 28, 2008 5:57 AM
    Edited by: heathercmiller on Apr 28, 2008 5:58 AM

    Oh! ...Here is a somewhat important detail I forgot to mention...
    There's another class called University (I've included it below). The main part of the program instantiates an object of type University, and that object is passed to the InputWindowSmall class. In the end, I want those variables I mentioned above to be placed within the University object I created. ...And I've already passed a University object to InputWindowSmall... I'm just not entirely sure how to assign values to the variables within the University object while in a different class. ...Does that make any sense?
    University
    package FinalProject;
    import java.util.Arrays;
    /** Class Definition: University*/
    public class University extends ProjectTest implements TuitionGenerate 
         private String universityName;     /** refers to the name of the University     */
         private String address;               /** refers to the address of the University     */
         private Student studentList[];     /** an array of Student objects                    */
         /** Default Constructor */
         University()
              setuniversityName("University_of_Miami");
              setaddress("555_Coral_Gables_St.");               
         /** Constructor with parameters */
         University(String name,String add)
              setuniversityName(name);
              setaddress(add);
         /** Constructor with extra parameters */
         University(String name,String add, Student array[])
              setuniversityName(name);
              setaddress(add);
              setstudentList(array);
         /** method: gets universityName*/
         public String getuniversityName()
              return universityName;
         /** method: gets address*/
         public String getaddress()
              return address;
         /** method: gets studentList*/
         public Student[] getstudentList()
              return studentList;
         /** method: sets universityName*/
         public void setuniversityName(String name)
              universityName=name;
         /** method: sets address*/
         public void setaddress(String add)
              address=add;
         /** method: sets studentList*/
         public void setstudentList(Student array[])
              studentList=new Student[array.length];
              studentList=array;
         /** method: returns a string representation of universityName and address*/
         public String toString()
              String output="University Name: " + universityName + "\nAddress: " + address + "\n\n";
              return output;
         /** method: sorts the array of students alphbetically by last name*/
         public void studentSort()
              String temp[]=new String[studentList.length];
              for(int i=0;i<studentList.length;i++)
                   temp=studentList[i].getlastName();
              Arrays.sort(temp);
              Student temp2[]=new Student[studentList.length];
              for(int i=0;i<temp.length;i++)
                   for(int j=0;j<studentList.length;j++)
                        if(temp[i].equals(studentList[j].getlastName()))
                             temp2[i]=studentList[j];
                             break;
              studentList=temp2;               
         /** method: prints the list of students*/
         public void printStudentList()
              System.out.println("Students:\n");
              for(int i=0;i<studentList.length;i++)
                   System.out.println(studentList[i].toString());
         /** method: prints tuition from interface GenerateTuition*/
         public void printTuition()
              for(int i=0;i<studentList.length;i++)
                   System.out.println(studentList[i].toString());
                   System.out.println(" Tuition: $" + studentList[i].calTuition() + "0");
         /** method: gets tuition from calTuition method*/
         public double getTuition(Student x)
                   return x.calTuition();
    Edited by: heathercmiller on Apr 28, 2008 6:07 AM                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               

  • Default Cache Error on a G4 Quicksilver

    So I've got a G4 quicksilver and it will not boot.
    I tried all the different ways to get it to boot. Holding "c" with a boot disk, checking the battery, unplugging ram one at a time, etc...
    The problem is, when I hold "option" to get into the disk boot option screen, is sees the drives (Operating System Drive & a Boot CD). I select either one, and a which screen pops up and says: "Default Cache Error, type "mac-boot" to boot the computers or type "shut-down" to shut down the computer.
    I've tried every combo and it does one of these things:
    Locks up on black screen
    White screen pops back up and crashes
    Starts loading (apple logo on screen) then the circle slash (ø) pops up like there
    Please help.

    Ok, So I got the OEM install disks with the Aplle Hardware tester. Here are some pictures of the issues I had durring this:
    Boot 1) In inserted the Hardware disk and got it to boot first time, here are those pictures:
    It looks like I had a issue with the Logic board or somthing that was plugged into it. as seen here: http://meistergaugefaces.com/mac/mac_6.JPG
    My hardware profile: http://meistergaugefaces.com/mac/mac_7. JPG
    It got all the way though the Logic board and mass storage scan, but half way through the RAM the crashes started back up. Here are a few more pictures of those misc errors:
    Booted off the hardware disk and got these 2 on the 2nd boot:
    http://meistergaugefaces.com/mac/mac_8.JPG
    http://meistergaugefaces.com/mac/mac_9.JPG
    Another Default catch error on the second attemp of the 3rd boot:
    http://meistergaugefaces.com/mac/mac_10.JPG
    This crash happened durring the 3rd boot:
    http://meistergaugefaces.com/mac/mac_11.JPG
    Message was edited by: MEISTERGAUGEFACES

  • Dynamic re-scoping of default logic

    Hi all,
    I'm hoping someone can help on this logic problem -- BPC 5.1 SP5 on SQL 2005.
    My sales planning application has a dimension SKU with 20,000 members, in a very well structured hierarchy. Each SKU is at level 6, and the profit centers are at level 5.
    The default logic calculates sales & cogs amounts (unit * price for each SKU) as well as some discounts (which are planned at the profit center, not SKU level). There is a dummy base member for each profit center to store these discount rates.
    My problem in the default logic is to expand the SKU dim scope
    - when a profit-center driver changes, expand to include all SKUs in that profit center
    - when a SKU quantity or price changes, expand to include the profit-center dummy member
    - and of course, some times a user changes values for not just one, but many, profit centers & SKUs in a single data submission.
    A SKU.ProfitCenter property flags all the relevant members to pick up, but I can't figure out how to do this in default logic. (Batch logic with *SELECTs is not a problem.)
    Option 1. Use a *RUNLOGIC calling SecondLogic.LGF file, with a *SELECT inside -- this doesn't seem to work. The debug log shows that the SKU scope remains the same as the data submission, and it appears that the *SELECT is not being performed in SecondLogic.
    Option 2. Use a *RUNLOGIC calling SecondLogic.LGX, as follows:
    *RUNLOGIC
    *DIMENSION SKU=filter([SKU].members,[SKU].properties("ProfitCenter"=[SKU].CurrentMember.Properties("ProfitCenter")))
    *LOGIC=SecondLogic
    *ENDRUNLOGIC
    I was hoping that would work, but I get an error message after data submission:
    ExecuteBaseLogic::user has no write access to the selected members of dimension : SKU
    SKU dimension is secured R/W, but my user ID has write access to all members (confirmed in my ability to submit data, plus acsSKU table).
    I even simplified this to hard-code a particular profit center, but still the same error:
    *RUNLOGIC
    *DIMENSION SKU=filter([SKU].members,[SKU].properties("PROFITCENTER"="500143"))
    *LOGIC=SecondLogic
    *ENDRUNLOGIC
    I'd appreciate any tips on how to use this MDX filtering, or any other approach that gives this type of dynamic re-scoping in default logic.
    Thanks,
    Tim

    Hi Tim,
    You are missing  a bracket in your examples, after the name of the property (bracket should be closed)
    I used the following statement in an *XDIM_MEMBERSET and it is working fine. I have a also a .CurrentMember, not sure if this one makes any difference.
    Filter([Time].Members,[Time].CurrentMember.Properties("TIMEID")="20071200")
    Regards,
    Marcel

  • Logic error in a class I wrote...help

    I wrote this class to filter a simplified version of Military time; basically it
    returns a true or false statement to whether a specified string contains
    the appropriate character sequence. My problem is that it seems to
    report false even if my time format is correct.
    example:
    correct time: "0700"
    incorrect time: "700" or invlalid characters "asdf "
    maybe you all could catch me logic error...my head is bust
    class SimpleMilitaryTime
         //Verify that their are only 4 characters in the string
         public boolean verifyLength(String time)
              int textFieldLength;
              boolean flag = true;
              textFieldLength = time.length();
              if (textFieldLength == 4)
                   flag = true;
              else
                   flag = false;
              return flag;
         }//end verify length
         //Method for comparing characters that can be used
         public boolean verifyNumerals( String time )
              boolean flag = true;
              int flagCounter = 0;
              char theChar;
    //testing characters to see if they match or dont
    //match the below lists of char numerals
    //If they don't, the flagcounter is increased by 
    //one and the flag is returned as false
    //because the flagcounter is greater than 0 
    //indicating that they are not all numerals but
    //some other sort of character
              for (int i = 0; i <= time.length(); i++)
                     theChar = (char)time.indexOf(i);
                   switch (theChar)
                        case '0':
                             break;
                        case '1':
                             break;
                        case '2':
                             break;
                        case '3':
                             break;
                        case '4':
                             break;
                        case '5':
                             break;
                        case '6':
                             break;
                        case '7':
                             break;
                        case '8':
                             break;
                        case '9':
                             break;
                        default:
                              flagCounter = flagCounter + 1;
                   }//end of switch
              }//end of for loop
              if (flagCounter < 0 )
                   flag = true;
              else
                   flag = false;
              return flag;
         }//End of Method
         //Method to determine numeral format
         public boolean verifyFormat( String time )
              boolean flag = true;
              boolean hrFlag = true;
              boolean minFlag = true;
              String hr, min;
              hr = time.substring(0, 1);
              min = time.substring(2, 3);
              hrFlag = verifyHrRange( hr );
              //return true if its in the hour range of 0 to 23
              minFlag = verifyMinRange( min );     
                                              //return true if its in the minutes range of 0 to 59
              //If hrFlag or minFlag is false then format does
                                               //not meet the Military Time Format
              if (hrFlag == false || minFlag == false)
                   flag = false;
              else
                   flag = true;
         return flag;
         }//end of Method
         //Verify the Range of Hr  between 0 and 23
         public boolean verifyHrRange( String hr )
              int hrTime;
              boolean flag = true;
              hrTime = Integer.parseInt( hr );
              if ( hrTime >= 0 && hrTime <= 23 )
                   flag = true;
              else
                   flag = false;
         return flag;
         }//End of Method
         //Verify the Range of Minutes  between 0 and 59
         public boolean verifyMinRange( String min )
              int minTime;
              boolean flag = true;
              minTime = Integer.parseInt( min );
              if ( minTime >= 0 && minTime <= 59 )
                   flag = true;
              else
                   flag = false;
         return flag;
         }//End of Method
         //Method validates total time content
         public boolean validateTime( String time )
              boolean flag = true;
              boolean flagLength = true;
              boolean flagNumerals = true;          
              boolean flagFormat = true;          
              flagLength = verifyLength( time );                         //Is the length  == to 4 characters long
              if( flagLength == true )
                   flagNumerals = verifyNumerals( time );               //Is the content made up of numerals
                   if( flagNumerals == true )
                        flagFormat = verifyFormat( time );               //Is the format within MilitaryTime Specs
                        if( flagFormat == true )
                             flag = true;
                        else
                             flag = false;                                             //IF one or all are FALSE then FLAG is set to false
                   else
                        flag = false;
              else
                   flag = false;
              //return status of test run
              return flag;               
         }//End of Method
    }//End of Class

    Interestingly enough, although both examples simplify the logic, I still
    recieve a "false" when testing it. Here is some more code that I use
    when a text field has lost focus. Right now the code is set to just test
    the input.
    The field is inialized to "1234". Once the field gains focus, it immediately sets to "false"...not sure why.?.? Even after resetting field
    to another 4 digit numeral sequence I still get a "false" return instead of
    verifying it as "true. " any ideas?
    here is the code for testing the MilitaryTime class:
    private class TextFieldListener extends FocusAdapter
         //method that listens losing focus of textfield
         public void focusLost( FocusEvent ev )
              boolean flag;
              String indFALSE, indTRUE;
              indFALSE = "FALSE";
              indTRUE = "TRUE";
              int strLength;
              flag = mt.isValidTime(sunMornStartTime_str); //mt is for MilitaryTime
              if (flag == false)
              sunMornStartTime.setText(new String(indFALSE));
              if (flag == true)
              sunMornStartTime.setText(new String(indTRUE));
         }//End of Method
    }//End of private class TextFieldAction

  • Defaulting logic in entity create method

    Hi
    As suggested by BC4J I use the create method of my entity object to insert defaulting logic for some attributes. The code looks like this:
    protected void create(AttributeList attributeList)
    super.create(attributeList);
    Number seqNumber = new Number();
    SequenceImpl s = new SequenceImpl("REV_SEQ", getDBTransaction());
    seqNumber = s.getSequenceNumber();
    setRevId(seqNumber);
    setCreationDate(SamUtils.getSystemDate());
    ApplicationModule am = getDBTransaction().getRootApplicationModule();
    if (am instanceof SecuredApplicationModule)
    setUsrId(((MyApplicationModule) am).getUsrId());
    But executing this code results in an Exception: "JBO-25014: Other User has changed the Row". If I remove the code between the lines above everything works ok.
    My questions are:
    - Is it ok to use set-Methods in the entity create method? Or should I set my default values to the "attributeList" instead?
    - do you think it is a problem to use the ApplicationModule as shown? I should mention that am.getUsrId() simply returns a previously stored variable and does not perform any queries or alike.
    Thanks for your help
    Frank Brandstetter

    It's definitely fine to setAttributes - I've done it myself (but not using "specific" setters).
    I haven't used the built-insequences before - this bit of your code looks a bit wasteful in terms of object creation, but that's obviously not your issue....
    It looks fine to use an application module in such a way; I coded a "current user id" function on mine too.
    I actually suspect the date-attribute, since I (me again!) had some "concurrent user" problems too. The issue was the fact that a Java date is accurate to the millisecond, and the database storage and retrieval wasn't. (I wasn't using Oracle so I'm not sure how it goes there....) A "concurrent user" exception gets thrown when bc4j goes to update an entity and finds that the date-value in the object doesn't match the "rounded" one it retrieves (as a check, just before it does the update - this is the optimistic locking) from the database. [So does the error occur only when you've saved the new entity once, then update it and try to save it again?]
    I got around it by setting the millisecond portion of any dates I used to zero (since the "storage" was accurate to a second) - so you might try that. (Did it generically in prepareForDML in my own Entity superclass, I think.)
    Otherwise, try setting the attribute, but not in the create method, and seeing if you get the same problem...
    HTH
    Mike.

  • Default logic not running for a particular team

    Hello,
    I have a financial consolidation application in BPC 7.5 NW. We have a particular problem, whereby the default logic is not running for one team when they are uploading data. The error message is "Error running default logic. Error converting records. The root element is missing".
    Users in other teams are not affected by this and they are able to upload data successfully without any problems and are able to view converted records.
    Can someone please explain how this is possible in BPC?
    Also, our development consultant created 2 copies of the default logic in the Finance application. In the admin consol, one is called "Default.LGF" and the other one "DEF BU 9 Mar 2011.LGF". Can anyone kindly explain whether it is possible to have 2 copies of the default logic and if so, how does BPC decide which one to run.
    In both versions of the default logic, the following code is inserted for FX translation:
    // Query 6  - Perform currency translations - run currency translation stored procedure
    *XDIM_MEMBERSET CATEGORY=%CATEGORY_SET%
    *XDIM_MEMBERSET TIME=%TIME_SET%
    *XDIM_MEMBERSET ENTITY=%ENTITY_SET%
    *XDIM_MEMBERSET MEASURES=YTD
    *RUN_PROGRAM CURR_CONVERSION
          CATEGORY = %CATEGORY_SET% 
          CURRENCY = GBP
          TID_RA = %TIME_SET%
          RATEENTITY = GLOBAL
          OTHER = [ENTITY = %ENTITY_SET%]
    *ENDRUN_PROGRAM
    *COMMIT
    Thank you very much.
    Edited by: kashifmehmood on Jun 17, 2011 4:12 PM

    Hi
    1.Users in other teams are not affected by this and they are able to upload data successfully without any problems and are able to view converted records.
    One of the reason may be there are some secured dimensions involved like Entity, which is not assigned to the team. Refer to the HTG document below:
    http://www.sdn.sap.com/irj/scn/go/portal/prtroot/docs/library/uuid/207995e8-deb8-2d10-3cb9-8ab146c95a09?quicklink=index&overridelayout=true
    2.Also, our development consultant created 2 copies of the default logic in the Finance application. In the admin consol, one is called "Default.LGF" and the other one "DEF BU 9 Mar 2011.LGF". Can anyone kindly explain whether it is possible to have 2 copies of the default logic and if so, how does BPC decide which one to run.
    In my opinion your consultant created "DEF BU 9 Mar 2011.LGF" and maintained the logic in that logic file. To run the logic by default, he has to call the earlier logic file in DEFAULT.LGF.
    *INCLUDE DEF BU 9 Mar 2011.LGF ( Nothing wrong in  keeping the entire logic, but it is not required)
    Logic file ""DEF BU 9 Mar 2011.LGF" can be called by DM packages.
    Thanks

  • Logical error in the query

    create table my_employee
    (id number(4)primary key,
    last_name varchar2(25),
    first_name varchar2(25),
    userid varchar2(8),
    salary number(9,2)
    I want to write an INSERT statement to MY_EMPLOYEE table . Concatenate the first letter of the first name and first seven characters of the last name to produce user ID using a single sql statement
    I wrote the query like this and i am getting logical error
    insert into my_employee
    values(&id,'&last_name','&first_name',substr('&&first_name',1,1)||substr('&last_name',1,7),&salary);
    SQL> insert into my_employee
    2 values(&id,'&last_name','&first_name',substr('&&first_name',1,1)||substr('&last_name',1,7),&sal
    ary);
    Enter value for id: 20
    Enter value for last_name: popopopp
    Enter value for last_name: qwertyyuu
    Enter value for salary: 300000
    old 2: values(&id,'&last_name','&first_name',substr('&&first_name',1,1)||substr('&last_name',1,7),
    new 2: values(20,'popopopp','o',substr('o',1,1)||substr('qwertyyuu',1,7),300000)
    1 row created.
    it is asking the last_name two times

    you can do it with a .sql script
    c:\my_emp.sql
    PROMPT
    PROMPT instering my_employees
    PROMPT
    ACCEPT ID NUMBER PROMPT 'ID ? : '
    ACCEPT FIRST_NAME CHAR PROMPT 'FIRST_NAME ?: '
    ACCEPT LAST_NAME CHAR PROMPT 'LAST_NAME ?: '
    ACCEPT SALARY NUMBER PROMPT 'SALARY ? : '
    insert into my_employee values(&id,'&last_name','&first_name',substr('&&first_name',1,1)||substr('&last_name',1,7),&salary);
    SELECT * FROM my_employee where id=&&id;
    and then from sqlplus @c:\my_emp.sql
    scott@ORCL> @C:\MY_EMP
    instering my_employees
    ID ? : 20
    FIRST_NAME ?: john
    LAST_NAME ?: papas
    SALARY ? : 1000
    old 1: insert into my_employee values(&id,'&last_name','&first_name',substr('&&first_name',1,1)||substr('&last_name',1,7),&salary)
    new 1: insert into my_employee values( 20,'papas','john',substr('john',1,1)||substr('papas',1,7), 1000)
    1 row created.
    old 1: SELECT * FROM my_employee where id=&&id
    new 1: SELECT * FROM my_employee where id= 20
    ID LAST_NAME FIRST_NAME USERID SALARY
    20 papas john jpapas 1000
    scott@ORCL>

  • Finding "Default Logical System Name Model Instance" in DC Project

    Hi,
    While Creating an Adaptive RFCModel, one defines the
    Default Logical System Name for Model Instance & the
    Default Logical System Name for RFCMetadata.
    In which file can I find these settings at a later stage in the Project File Structure.
    Ofcourse, I can view them in the WedynproContentAdministrator under the Jco Destinations.
    But is there anyway to access them in the NWDS?
    Regards
    MK

    Hello MK,
    You'll find the Logical System Names of the JCo destinations in the file ".wdproperties" under the project structure.
    Bala

  • ABAP LOGICAL ERRORS

    Expalin about ABAP Logical errors?
    Help me sending appropriate link to understand more.
    Moderator Message: Read the Rules of Engagement of this forum.
    Edited by: kishan P on Dec 27, 2011 9:50 PM

    Hi Vinay,
         You can't delete the ABAP Runtime errors. But  you can catch the errors using catch exception Statement.
    For Example,
    Class-based exceptions are handled in the following control structure:
    TRY.
      ...                       " TRY block (application coding)
    CATCH cx_... cx_... ...
        ...                     " CATCH block (exception handler)
    CATCH cx_... cx_... ...
        ...                     " CATCH block (exception handler)
      CLEANUP.
        ...                     " CLEANUP block (cleanup context)
    ENDTRY.
    Try This Sample Code,
    *--EXAMPLE FOR RUNTIME ERROR--
    *DATA : VALUE1 TYPE I.
    *VALUE1 = 1 / 0.        -
    >>>>>> IT MAKES RUN TIME ERROR.
    *WRITE : VALUE1.
    *-EXAMPLE FOR HOW TO CATCH THE ARITHMETIC ERROR AT THE RUN TIME USING SUBRC----
    DATA : VALUE1 TYPE I.
    CATCH SYSTEM-EXCEPTIONS ARITHMETIC_ERRORS = 1.
    VALUE1 = 1 / 0.
    WRITE : VALUE1.
    ENDCATCH.
    IF SY-SUBRC = 1.
    WRITE : ' IT MAKES ERROR'.
    ELSE.
    WRITE : VALUE1.
    ENDIF.
    Thanks,
    Reward If Helpful.

  • Default logical system names for application and metadata in models.

    hi,
    I have a dbt in web dynpro java. When we create a model, we give the logical system names. When our developement is over, do we have to change these names because in test system and subsequently production system, the backends will be oviously different than developement ?
    how do we change them and re import after changing? in abap we cant change our code in test and prod systems right  so how is it in web dynpro java ?
    thanks

    Hi Jeschael,
    thanks for the reponse.
    When I create the model, I give the default logical system names and on the next screen I give the
    ip address of the backend system, client , login, password etc
    Even though the logical system names wud be same in Dev, Test and Prod systems, the ip address, login password is different so how do I give it ?
    thanks
    B

  • Logical Error in Script Logic

    Hello Experts,
    Please provide your guidance for the following scenario.
    I need to calculate the 'Accumulated Depreciation' for every month, based on the amounts in the 'AccumDep' and the 'Depreciation' accounts.
    In other words, the value of the Accumulated Depreciation for the month of Feb should be equal to (Accumulated Depreciation in Jan + Depreciation in Jan), and so on.
    To accomplish this, I have written the following script logic.
    *WHEN ACCOUNT
    *IS AccumDep, Depreciation
         *FOR %MON% = 2009.FEB,2009.MAR,2009.APR
              *REC(FACTOR=1, ACCOUNT=AccumDep, TIME=%MON%)
         *NEXT
    *ENDWHEN
    *COMMIT
    The above logic was validated without any 'syntax' errors.  However, I do not see the desired results, as the Accumulated Depreciation is not getting updated every month.  The amount from FEB appears for MAR & APR also.
    Therefore, could you please review the above script and let me know if there are any 'logical' errors?
    All your guidance is greatly appreciated.  Thanks...

    Hi,
    You are not getting the desired result because you are trying to aggregate the depreciation and the accumulated depreciation of the same month and post the result again in the same month. Lets say the code is working for 2009.MAR. You are trying to add the depreciation and accumulated depreciation of 2009.MAR. However, you still dont have the acc depreciation of 2009.MAR. You basically need to take the acc depreciation of the previous month.
    You can try something like:
    *WHEN ACCOUNT
    *IS Depreciation
         *FOR %MON% = 2009.FEB,2009.MAR,2009.APR
              *REC(EXPRESSION = %VALUE% + ([ACCOUNT].[AccumDep],[TIME].Previous), ACCOUNT=AccumDep)
         *NEXT
    *ENDWHEN
    *COMMIT
    You can have a property called Previous to store the previous month of each period in the time dimension.
    Hope you got the idea.

  • Newbie - JSP & bean shopping cart logic error?

    Hello,
    I am attempting to bulid a shopping cart facility on a JSP site that I am building.
    I am having difficulties adding an item to the basket.
    The page below (bookDetail.jsp) displays items for sale from a database. At the foot of the page, I have set up a hyperlink to add an item to a basket bean instance created in this page.
    What happens is the page will load correctly, when i hover the mouse over the hyperlink to add the item to the basket, the status bar shows the URL of the current page with the details of the book appended. This is what I want. But when I click the link, the page will only reload showing 20% of the content.
    Netbeans throws up no errors, neither does Tomcat, so I am assuming I have made a logical error somewhere.
    I have enclosed the Book class, and the ShoppingCart class for your reference.
    Any help would be really appreciated as I am at a loss here.
    Cheers.
    Edited highlights from bookDetail.jsp
    //page header importing 2 classes - Book and ShoppingCart
    <%@ page import="java.util.*, java.sql.*, com.shopengine.Book, com.shopengine.ShoppingCart" errorPage="errorpage.jsp" %>
    //declare variables to store data retrieved from database
    String rs_BookDetail_bookRef = null;
    String rs_BookDetail_bookTitle = null;
    String rs_BookDetail_author = null;
    String rs_BookDetail_price = null;
    //code that retrieves recordset data, displays it, and places it in variables shown above
    <%=(((rs_BookDetail_bookRef = rs_BookDetail.getString("book_ref"))==null || rs_BookDetail.wasNull())?"":rs_BookDetail_bookRef)%>
    <%=(((rs_BookDetail_author = rs_BookDetail.getString("author"))==null || rs_BookDetail.wasNull())?"":rs_BookDetail_author)%>
    <%=(((rs_BookDetail_bookTitle = rs_BookDetail.getString("book_title"))==null || rs_BookDetail.wasNull())?"":rs_BookDetail_bookTitle)%>
    <%=(((rs_BookDetail_price = rs_BookDetail.getString("price"))==null || rs_BookDetail.wasNull())?"":rs_BookDetail_price)%>
    //this link is to THIS PAGE to send data to server as request parameters in Key/Value pairs
    // this facilitates the add to basket function
    <a href="<%= response.encodeURL(bookDetail.jsp?title=
    "+rs_BookDetail_bookTitle+"
    &item_id=
    "+rs_BookDetail_bookRef +"
    &author="+rs_BookDetail_author +"
    &price=
    "+rs_BookDetail_price) %> ">
    <img src="images\addtobasket.gif" border="0" alt="Add To Basket"></a></td>
    // use a bean instance to store basket items
    <jsp:useBean id="basket" class="ShoppingCart" scope="session"/>
    <% String title = request.getParameter("title");
    if(title!=null)
    String item_id = request.getParameter("item_id");
    double price = Double.parseDouble(request.getParameter("price"));
    Book item = new Book(item_id, title, author, price);
    basket.addToBasket( item );
    %>
    ShoppingCart class that is used as a bean in bookDetail.jsp shown above
    package com.shopengine;
    //import packages
    import java.util.*;
    //does not declare explicit constructor which automatically creates a zero argument constructor
    //as this class will be instantiated as a bean
    public class ShoppingCart
    //using private instance variables as per JavaBean api
         private Vector basket;
         public ShoppingCart()
              basket = new Vector();
         }//close constructor
    //add object to vector
         public void addToBasket (Book book)
              basket.addElement(book);
         }//close addToBasket method
    //if strings are equal, delete object from vector
         public void deleteFromBasket (String foo)
    for(Enumeration enum = getBasketContents();
    enum.hasMoreElements();)
    //enumerate elements in vector
    Book item = (Book)enum.nextElement();
    //if BookRef is equal to Ref of item for deletion
    //then delete object from vector.
    if (item.getBookRef().equals(foo))
    basket.removeElement(item);
    break;
    }//close if statement
    }//close for loop
         }//close deleteFromBasket method
    //overwrite vector with new empty vector for next customer
         public void emptyBasket()
    basket = new Vector();
         }//close emptyBasket method
         //return size of vector to show how many items it contains
    public int getSizeOfBasket()
    return basket.size();
         }//close getSizeOfBasket method
    //return objects stored in Vector
         public Enumeration getBasketContents()
    return basket.elements();
         }//close getBasketContents method
         public double getTotalPrice()
    //collect book objects using getBasketContents method
    Enumeration enum = getBasketContents();
    //instantiate variable to accrue billng total for each enummeration
    double totalBillAmount;
    //instantiate object to store data for each enummeration
    Book item;
    //create a loop to add up the total cost of items in basket
    for (totalBillAmount=0.0D; enum.hasMoreElements(); totalBillAmount += item.getPrice())
    item = (Book)enum.nextElement();
    }//close for loop
    return totalBillAmount;
         }//close getTotalPrice method
    }//close shopping cart class
    Book Class that is used as an object model for items stored in basket
    package com.shopengine;
    import java.util.*;
    public class Book{
         //define variables
    private String bookRef, bookTitle, author;
         private double price;
    //define class
    public Book(String bookRef, String bookTitle, String author, double price)
    this.bookRef= bookRef;
    this.bookTitle=bookTitle;
    this.author=author;
    this.price=price;
    //create accessor methods
         public String getBookRef()
              return this.bookRef;
         public String getBookTitle()
              return this.bookTitle;
         public String getAuthor()
              return this.author;
         public double getPrice()
              return this.price;
    }//close class

    page will only reload showing 20% of the content.Im building some carts too and I had a similiar problem getting null values from the mysql database. Are you getting null values or are they just not showing up or what?
    On one of the carts I'm building I have a similiar class to yours called products that I cast onto a hashmap works alot better. Mine looks like this, maybe this is no help I don't know.......
    public class Product {
        /**An Item that is for sale.*/
          private String productID = "Missing";
          private String categoryID = "Missing";
          private String modelNumber = "Missing";
          private String modelName = "Missing";
          private String productImage = "Missing";
          private double unitCost;
          private String description = "Missing";
          public Product( 
                           String productID,
                           String categoryID,
                           String modelNumber,
                           String modelName,
                           String productImage,
                           double unitCost,
                           String description) {
                           setProductID(productID);
                           setCategoryID(categoryID);
                           setModelNumber(modelNumber);
                           setModelName(modelName);
                           setProductImage(productImage);
                           setUnitCost(unitCost);
                           setDescription(description);        
          public String getProductID(){
             return(productID);
          private void setProductID(String productID){
             this.productID = productID;
          public String getCategoryID(){
             return(categoryID);
          private void setCategoryID(String categoryID){
             this.categoryID = categoryID;
          public String getModelNumber(){
             return(modelNumber);
          private void setModelNumber(String modelNumber){
             this.modelNumber = modelNumber;
          public String getModelName(){
             return(modelName);
          private void setModelName(String modelName){
             this.modelName = modelName;
          public String getProductImage(){
             return(productImage);
          private void setProductImage(String productImage){
             this.productImage = productImage;
          public double getUnitCost(){
              return(unitCost);
          private void setUnitCost(double unitCost){
              this.unitCost = unitCost;
          public String getDescription(){
              return(description);
          private void setDescription(String description){
              this.description = description;

  • Multiple script logics in default logic... can you control execution ?

    Hi Gurus,
    My default logic consists of two .LGF files both of which do two different Logics functions e.g. A and B
    For one input template when the user saves the data I would like Logic A be run and not Logic B.
    For the second input template I would like the Logic B to be executed and not Logic A.
    Is there a way to achieve this ?
    thanks

    Hi Daniel,
    The point is that his question not seems related to the data itself but to the screen, maybe a special operation for a screen?
    First scenario where the data itself have the reference of the operation. He might be then be able to distinguish even in a scriptlogic.
    Second scenario: The calculation is driven by the screen itself. Then he have several oportunities.
              1) Add extra information if possible in one unused dimension for the purpose of this calculation and use this information to distinguish the operation
              2) trigger the calculation on the default script logic of another application and bypass the calculation with a change of destination_app
              3) In a routing schema in a BADI you will still need to implement one of the two above points or as you know drive the operations through the dimension file ;).
    Best regards,
    Philippe
    Edited by: Martin, Philippe on Mar 30, 2010 3:45 PM

Maybe you are looking for

  • QUERY FIND WINDOW

    Hi Experts, I am working on forms 6i. I have datablock on 'EMP' table. I have query window with 'EMPNO' to query. It's working fine. Requirement: When I click FIND button, i need get the data from other table of same EMP table structure and populate

  • Table Names in single report

    Can I dynamically pass a table name in a single report if I have the same column in 10 different tables. eg. would be: select from Col1, col2, col3......col10.. from table name. In this eg. can I dynamically pass a table name in a single report.

  • Merge two XML files From java

    hi, i'm in need to merge two XML files from my java code please help me as soon......

  • File naming-new capture

    Just upgraded to PP6 and have a bit of a problem.  When I do a new video capture from tape, PP will not let me name the file.  The process seems the same, but when I type in my new file name, I get an error message saying "cannot change file, keeping

  • Printing to Adobe - missing or wrong formatted first line

    I open a PDF file. Then I select a part of the content that I want to print into another PDF. I choose Adobe PDF print. When the result show up, I see only half of the first line. And sometimes even half of the last line. We are using Windows 7 and a