PO Value Limit -  User Budget

Hi Gurus,
i've used "Extended Attributes" in PPOMA_BBP within the enterprise' structure of our customer to add a budget check into SRM 5.0 Classic Scenario.
I've filled the field "User Budget" with the amount of EUR which they desire, but if I exceed the limit during the creation of a Shopping Cart i have just a notice that doesn't block the shopping cart. No more. I'd like to have something, a notice, which blocks the procedure if i don't put a value less than the first.
Is this possible? In some customizing's table?
Thanks?
AB

Hi,
There is no customizing available to handle this , only way out is to implement the BADI  BBP_DOC_CHECK_BADI , in which you have to incrporate an error message when ever the shopping cart value exceeds the user budget.
You have to find the user attributes and then compare with the shopping cart value.
you can use BBP_READ_ATTRIBUTES for retrieving the user attributes and BBP_PD_SC_GETDETAIL for obtaining the shopping cart details
regards'

Similar Messages

  • Release PO against contract whit limit value for USER

    Dear colleague,
    We work SRM server 5.5 . SP14 extended classic scenario, and we use contract management.
    We need to release PO against contract and we want to LIMIT the users that PO value have  to be between 60 USD as minimum order value and 120 USD as maximum order value.
    We know that solution for the minimum order value is to use the u2018minimum order valueu2019 in the contract item with the value 60.
    Can someone help with the solution to limit user to maximum order value against contract.
    Thanks
    B.R.
    Gil shinar

    One option is that you could implement the maximum value logic in BADI BBP_DOC_CHECK_BADI and give out proper error message if the user enters value outside of the range.

  • Workflow issue in SC (WS10000276) - Value limit 1 step approval

    Dear Experts,
    We are configuring 1 step value limit approval in SRM 7.0 for SC.
    We have maintained the attribute SLAPPROVAL for the employee who raises the shopping cart with the manager.
    For the roles assigned to Manager and employee we have specified the spendding limit and approval limit.
    Activated the WF WS10000276.
    When I create the SC it is not determining the approver based on value.
    We have even tried out by assigning agents for the WF WS10000276.
    Can any one help me in this regard.
    Is there any attribue SLAPPROVERLIST where we need to maintain the approvers.
    Please give me the steps to configure.
    Thanks,
    B.N.Karthikeyan.

    Hello BN,
    I tested the WF in SRM 5.0 and had to set the SLAPPROVER attribute to "USMANAGER01" if the approver/manager was the User Id MANAGER01. Meaning with US in front of the User Id of the Approver.
    But you might have already done this.
    Franz

  • Limit SC: value limit lower then expected value

    Hello,
    When I request a Limit item shopping cart and I, for example, set the valluelimit on u20AC400,- and the expected value on u20AC1200,-, the approval takes place on the amount entered in value limit (u20AC400,-), but the p-order inherts the amount in expected value (u20AC1200,-).
    In confirmation it is only possible to confirm u20AC400,-.
    This is not a desirable behaviour because the approval can be avoided and it could lead to "confirmation problems" when the values are entered wrong by mistake.
    Is there a solution that solves the problem?
    Thanks in advance!
    Regards,
    Jorgen

    Hi Jorgen ,
    The system uses the "Value limit" for any approval process and this
    value will be displayed on the PO. The "Expected Value" is used for
    controlling and represents the total commitment being made by the
    document. If your commitment ("Expected Value") is greater than your
    "Value Limit", then the purchaser can increase the "Value Limit" on
    the purchase order to allow the commitment to be met. For example,
    you have a purchase order that will be in effect for a while and you
    only want a limited amount released each month. You would enter the
    total amount in the "Expected Value" and each month you would increase
    the "Value Limit". This may be, for example, $12,000 for a year.
    However, you may not want the full $12,000 posted against the order all
    at once if it is a 12 month order for something recurring. You would
    put the "Value limit" at $1000, for example, because that controls the
    total that can be posted against the service entry sheet.
    Using BAdI BBP_DOC_CHECK_BADI, you could implement your own error
    message to be raised if you would prefer that the user cannot enter
    an "Expected Value" greater than the "Value Limit".
    I hope this information helps you.
    Best regards
    Summer

  • User budget in process controlled workflow

    Hi,
    Is it possible to use the 'user budget' option with the new process controlled WF ? If it is possible what are the necessary customization that need to be maintained ?
    Thanks

    Hi Sarvanan,
    The requirement is to have approval process based on the user budget .
    For ex if a user has been assigned a budget of $5000 per month, then for shopping up to a cumulated value of $5000 no approval is required($5000 spread across multiple purchasing docs ; not restricted to a single document) . However when the cumulated value of purchasing documents in a single month by this user exceeds $5000, then the documents is routed for necessary approval.

  • How to create a profile value at user level programatically

    Dear all,
    I want to create a profile value at user level programatically, I refer to the developer guide and try to use fnd_profile.put() to create a new value.
    But I find out the value is just created in session level, not be inserted into base table.
    So is there anyone know how to realize this function in PL/SQL?
    Any idea is appreciated.
    Best Regards,
    Kenny

    Check Note: 364503.1 - How to Set a System Profile Value Without Logging in to the Applications
    https://metalink.oracle.com/metalink/plsql/ml2_documents.showDocument?p_database_id=NOT&p_id=364503.1

  • Variable used in FOx formula should get value from user

    Hi Gurus,
    In my fox formula I want to multiply a keyfigure (say quantity) with a factor. For example if the factor is 10 then all records should get multiplied by 10.
    But the requirement is user shpuld be able to give the factor that should be multiplied. That is the l_factor used in the fox function should be a variable which gets value from user. I know we can give variables in filter and planning functions in IP. But can we give values in Fox formula.
    I would really appreciate the time and effort.
    Thanking you,
    Jerry Jerome

    Hello,
    May be you can try this solution.
    I think you have create a dummy character info-object(Z_Number) of same data type interget number.Create variable for Z_Number and restrict in filter(ZV_NUM).
    DATA Z_MAT TYPE 0Material.
    DATA Z_NUM TYPE Z_NUMBER.
    DATA Z_NUM_READ TYPE I.(Declate same as data type for Z_Number)
    Z_NUM = VARV(ZV_NUM).
    FORACH Z_MAT.
    Z_NUM_READ = Z_NUM.
    {Z_KF1,Z_MAT} = Z_NUM_READ * {Z_KF1,Z_MAT}.
    ENDFOR.

  • How to check the value from user input in database or not?

    Hello;
    I want to check the value of user input from JtextFiled in my database or not.
    If it is in database, then i will pop up a window to tell us, otherwise, it will tell us it is not in database.
    My problem is my code do not work properly, sometimes, it tell me correct information, sometime it tell wrong information.
    Could anyone help,please.Thanks
    The following code is for check whether the value in database or not, and pop up a window to tell us.
    while( rs.next()) {
                    System.out.println("i am testing");
                    bInt=new Integer(rs.getInt("id"));
                    if(aInt.equals(bInt)){ // If i find the value in data base, set flag to 1.
                  flag=1;  //I set a flag to check whether the id in database or not
                        break;
             System.out.println("falg" + flag);
                if(flag==1){ //?????????????????????
              String remove1 = "DELETE FROM Rental WHERE CustomerID=" + a;
              String remove2 = "DELETE FROM Revenus WHERE CustomerID=" +a;
              String remove3 = "DELETE FROM Customer WHERE id=" +a;
              s.executeUpdate(remove1);
              s.executeUpdate(remove2);
              s.executeUpdate(remove3);
                    JOptionPane.showMessageDialog(null,"you have success delete the value");
              s.close();
             else//???????????????????????????????
                  JOptionPane.showMessageDialog(null,"I could not found the value"); -------------------------------------------------------------------
    My whole program
    import java.sql.*;
    import java.awt.BorderLayout;
    import javax.swing.JFrame;
    import javax.swing.JScrollPane;
    import javax.swing.JTable;
    import javax.swing.JOptionPane;
    import java.awt.*;
    import java.awt.event.*;
    import javax.swing.*;
    import java.util.*;
    public class DeleteC extends JFrame
        public static int index=0;   
        public static ResultSet rs;
        public static Statement s;
        public static Connection c;
        public static  Object cols[][];
        private static JTable table;
        private static JScrollPane scroller;
        private static int flag=0;
        public DeleteC()
            //information of our connection
            //the url of the database: protocol:subprotocol:subname:computer_name:port:database_name
            String strUrl      = "jdbc:oracle:thin:@augur.scms.waikato.ac.nz:1521:teaching";
            //user name and password
            String strUser      = "xbl1";
            String strPass      = "19681978";
            //try to load the driver
            try {
                Class.forName("oracle.jdbc.driver.OracleDriver");
            catch (ClassNotFoundException e) {
                System.out.println( "Cannot load the Oracle driver. Include it in your classpath.");
                System.exit( -1);
            //a null reference to a Connection object
            c = null;
            try {
                //open a connection to the database
                c = DriverManager.getConnection( strUrl, strUser, strPass);
            catch (SQLException e) {
                System.out.println("Cannot connect to the database. Here is the error:");
                e.printStackTrace();
                System.exit( -1);
           //create a statement object to execute sql statements
        public void getData(String a){
            try {
             //create a statement object to execute sql statements
             s = c.createStatement();
                int index=0;
                Integer aInt= Integer.valueOf(a);
                Integer bInt;
                  //our example query
                String strQuery = "select id from customer";
                //execute the query
                ResultSet rs = s.executeQuery( strQuery);
                //while there are rows in the result set
                while( rs.next()) {
                    System.out.println("i am testing");
                    bInt=new Integer(rs.getInt("id"));
                    if(aInt.equals(bInt)){
                  //JOptionPane.showMessageDialog(null,"I found the value"); 
                  flag=1;
                        break;
             System.out.println("falg" + flag);
                if(flag==1){
              String remove1 = "DELETE FROM Rental WHERE CustomerID=" + a;
              String remove2 = "DELETE FROM Revenus WHERE CustomerID=" +a;
              String remove3 = "DELETE FROM Customer WHERE id=" +a;
              s.executeUpdate(remove1);
              s.executeUpdate(remove2);
              s.executeUpdate(remove3);
                    JOptionPane.showMessageDialog(null,"you have success delete the value");
              s.close();
             else
                  JOptionPane.showMessageDialog(null,"I could not found the value");
            catch (SQLException e) {
                 JOptionPane.showMessageDialog(null,"You may enter wrong id");
    My main program for user input from JTextField.
    import java.awt.*;
    import java.awt.event.*;
    import javax.swing.*;
    import javax.swing.JOptionPane;
    import java.util.*;
    public class EnterID extends JFrame{
        public JTextField tF1;
        public EnterID enID;
        public String tF1Value;
        private JLabel label1, label2, label3;
        private static JButton button;
        private static ButtonHandler handler;
        private static String aString;
        private static Integer aInteger;
        private static Integer checkV=0;
        public static void main(String args[]){
           EnterID eId= new EnterID();
       public EnterID(){
          handler=new ButtonHandler();
          Container c= getContentPane();
          c.setLayout(new GridLayout(3,1));
          button= new JButton("ok");
          button.addActionListener(handler);
          label1 = new JLabel(" CustomerID, Please");
          label2 = new JLabel("Label2");
          label3 = new JLabel();
          label3.setLayout(new GridLayout(1,1));
          label3.add(button);
          label2.setLayout(new GridLayout(1,1));
          aString = "Enter Id Here";
          tF1 = new JTextField(aString);
          label2.add(tF1);
          c.add(label1);
          c.add(label2);         
          c.add(label3);            
          setSize(150,100);
          setVisible(true);     
       private class ButtonHandler implements ActionListener{
         public void actionPerformed(ActionEvent event){
             tF1Value=tF1.getText();
            //   CheckData cData = new CheckData();
             //  aInteger = Integer.valueOf(tF1Value);      
             if(tF1Value.equals(aString)){
              JOptionPane.showMessageDialog(null,"You didn't type value into box");
              setVisible(false); 
            else {
                DeleteC dC= new DeleteC();
                dC.getData(tF1Value);
                setVisible(false); 
    }

    You may have working code now, but the code you posted is horrible and I'm going to tell you a much much much better approach for the JDBC part. (You should probably isolate your database code from your user interface code as well, but I'm skipping over that structural problem...)
    Do this instead:
        public void getData(String a){
            PreparedStatement p;
            String strQuery = "select count(*) the_count from customer where id = ?";
            try {   
             //create a prepared statement object to execute sql statements, it's better, faster, safer
             p = c.prepareStatement(strQuery);
                // bind the parameter value to the "?"
                p.setInt(1, Integer.parseInt(a) );
                //execute the query
                ResultSet rs = p.executeQuery( );
                // if the query doesn't throw an exception, it will have exactly one row
                rs.next();
                System.out.println("i am testing");
                if (rs.getInt("the_count") > 0 ) {
                // it's there, do what you need to...
             else
                  JOptionPane.showMessageDialog(null,"I could not find the value");
            catch (SQLException e) {
                 // JOptionPane.showMessageDialog(null,"You may enter wrong id");
                 // if you get an exception, something is really wrong, and it's NOT user error
            // always, always, ALWAYS close JDBC resources in a finally block
            finally
                p.close();
        }First, this is simpler and easier to read.
    Second, this retrieves just the needed information, whether or not the id is in the database. Your way will get much much slower as more data goes into the database. My way, if there is an index on the id column, more data doesn;t slow it down very much.
    I've also left some important points in comments.
    No guarantees that there isn't a dumb typo in there; I didn't actually compile it, much less test it. It's at least close though...

  • Read the value of user input variable during calculation of virtual char

    Hello
    Virtual characteristics is populated in custom BAPI based on values specified by user in the variable screen.
    How to read the value of user input variable outside the user exit for custom variables?
    The one way is to create faked user exit variable, read the value of user input variable in corresponding FM and insert it into table. Then value of this variable will be derived from the table.  
    Thanks

    no answer

  • How to change value of user variable with change in Page View Dropdown

    Hi All,
    I have a classic planning application, on one of my dataform i put members of Dim_A in Page view and on row view i filter members of Dim_B on the basis of User variable i.e row contains the @Childern(&My_User_Variable). I have following members in both Dimensions:
    Dim_A
    ___A_Mem1
    ___A_Mem2
    ___A_Mem3
    Dim_B
    ___B_Mem1
    ______B_Mem1_1
    ______B_Mem1_2
    ______B_Mem1_3
    ___B_Mem2
    ______B_Mem2_1
    ______B_Mem2_2
    ______B_Mem2_3
    ___B_Mem3
    ______B_Mem3_1
    ______B_Mem3_2
    ______B_Mem3_3
    Now is there any way through which the value of My_User_Variable changes automatically when user select a member of Dim_A in Page View drop down, so that when user press go button then my rows would also be re filtered according to new value of User Variable.
    Right now user first make change in User Variable then select its matching member from Dim_A and then rows are filtered, so i want my user to only make selection in Drop down and press go rest all would be done automatically.

    Hi,
    There was a little controversial post on a similar question:
    Re: Hyperion Planning Data Form
    I love controversy!
    Cheers,
    Alp

  • Variable values in user forms

    Hi,
    Do you know where are stored variable values in User Forms (_FM_FIRSTNAME for example) ?
    Thanks,
    Nicolas

    Check in WPmesages.properties file present in config folder.You can override this name by providing a value in the message catalog
    <Msg id='_FM_USERNAME'>your value </Msg> in the message catalog

  • How can I restrict a vendor with certain value limit?

    Hi Gururs,
    How can I restrict a vendor with certain value limit?.
    Scenario is like this
    If my company was decided to purchase goods from a particular vendor upto Rs.1000, if cross the rs.1000 limit don't allow the Posting the PO and get the Message as warning/error.
    Give the configuration setting's and T.codes
    Thanks and regards
    G.N.Rao

    Hi
    Go to T.Code oms4 and then select the material status BP (Blocked for purchasing)
    Click on Details
    In that under Purchasing select the option A= Warning or B=Error
    Click on Save
    Thus by doing this no further purchasing function for that material can be done. So the PO can not be issued
    So as and when the value limit reaches see that purchasing option is blocked
    So no further PO are generated in the future
    I hope this helps you out
    If found useful reward accordingly
    Thanks
    pavan

  • Set value for user input in tabular form

    Hello all
    I have a tabular form wherein I want to set the length of values a user an enter into certain columns.
    For an example, column1 should only allow users to input a 5 digit number and no more. Column2 should only allow 6 digits and so on.
    Is this something that can be done? and if so, how?
    Thank you for any help -Trey

    Hi Trey,
    APEX doesn't support that out of the box, it always creates a HTML input item with a maxlength=2000. But have a look at the ApexLib Framework which supports a length property for tabular from fields. See http://www.inside-oracle-apex.com/2007/02/restrict-input-length-for-tabular-form.html and http://apex.oracle.com/pls/otn/f?p=44394:54 for details.
    Patrick
    My APEX Blog: http://www.inside-oracle-apex.com
    The ApexLib Framework: http://apexlib.sourceforge.net
    The APEX Builder Plugin: http://apexplugin.sourceforge.net/ New!

  • In chart (graph), How to set scale value dynamically(user input scale val.)

    Hi ,
    I am using Crystal Reports XI R2.
    I have specified scale value but user is asking he can decide scale value while running the chart like Y-axis major interval (inclement by) 10, 7, 4, .5, .25 etc.
    How to achieve this please give me suggestions.
    Thanks and regards,
    Manjunath N. Jogin

    I do not think this can be done dynamically,   You could build several sections, each with it's own graph,
    set the scales in each graph, in its section, and then supress sections based on parameter.
    So, you could have one section that is  5,10,15,20  etc.
    and another that is 8, 12, 16, 20  
    depending on what they want.

  • How do I limit user to put certain format in JTextField

    I want to create a JTextField which will limit user to put date format only like (##/##/####) a date format. how do I do it? thanks

    boosta,
    Are you limited to a text based interface? I mean why not a visual calendar control?
    I just googled "java calendar control" and came up with http://builder.com.com/5100-6370-1045263.html and http://www.toedter.com/en/jcalendar/ on the first page...
    If you must use a JTextField you'll need to use EventListener(s) to filter keyboard input... I've never tried it... I've never had to.... and if this is not specific stated requirement then I'd drop it like a gun.
    I (like many other users) hate fancy custom interfaces which don't behave as you expect... and I (like many other users) am just to lazy to RTFM.
    keith.

Maybe you are looking for