Deleting single row from Special Price for Business Partners

Hi Experts,
How would I go about about deleting a single row from Special Prices for Business Partners across all BPs when for most of my BPs this is the only special price they have.  I have tried using Copy Discounts function but once you are down to 0 rows the record has effectively gone from the table so there is nothing to copy. 
Hopefully I won't have to go thorugh 5000 records and delete each one idividually.

Hi Jon,
You may try a tool called B1TCH:

Similar Messages

  • [Special Prices for Business Partners] and [Hierarchies and Expansions]

    Dear Sirs,
    I am running into three problems.
    1.) I loaded 313 items Special Prices by DTW however I can not locate where it went?
         I searched via the path [Inventory>Price Lists>Special Prices>Special Prices for Business Partners]but find nothing in there.
    2.) I can not find DTW templates for Hierarchies and Expansions data load.
         Also I searched via the path [Inventory>Price Lists>Special Prices>Hierarchies and Expansions] to see if the Special Prices I loaded with DTW maybe there but find nothing there.
    3.) I can not find any information related to Hierarchies and Expansions in the [diapi] help file.
    Could it be these two functionalities require "manual" input?
    If so, how on earth the 313 Special Prices DTW data load went through "successfully" and find no trace of it?
    I am pulling my hair off to find some advice.
    Would appreciate it greatly if someone could enlighten me on these two functionalities.
    Kuni - Tokyo
    Edited by: furuya kunitomo on May 15, 2009 2:28 PM

    Hi Kuni,
    To quickly answer your questions:
    1.) I loaded 313 items Special Prices by DTW however I can not locate where it went?
    The path is correct. If you can't find anything probably something went wrong in the DTW import.
    Check that the "Test Run" checkbox was not checked and all required keys are entered in the templates.
    2.) I can not find DTW templates for Hierarchies and Expansions data load.
    The relevant templates are:
    the default location when installing DTW is:
    C:\Program Files\SAP\Data Transfer Workbench\Templates\Templates\oSpecialPrices
    When entering Hierarchies and Expansions (renamed to Period and Volume Discount in Version 2007) you must enter *x for CardCode where x is the price list number.
    3.) I can not find any information related to Hierarchies and Expansions in the diapi help file.
    The information in the DI API file is under the SpecialPrices Object.
    See below some general information regarding special prices:
    SpecialPrices is a business object part of the Inventory and Production module under
    Select Inventory > Price Lists > Special Prices > Special Prices for Business Partners.
    Select Inventory > Price Lists > Period and Volume Discount (Hierarchies and Expansions in previous versions)
    Interesting points:
    Source table: OSPP
    DTW Template: SpecialPrices.csv
    Mandatory fields in SAP Business One: CardCode and ItemCode.
    PriceListNum is a foreign key to the PriceLists object - source table OPLN, field name ListNum.
    CardCode is the Business Partner CardCode to enter Special Prices for Business Partners.
    Child object of the SpecialPrices Object: SpecialPricesDataAreas (source table: SPP1)
    DTW Template: SpecialPricesDataAreas.csv
    LineNum (Field name LINENUM) - Always enter the appropriate LineNumber you want to update (starts from 0).
    Child object of the SpecialPricesDataAreas Object: SpecialPricesQuantityArea (source table: SPP2)
    DTW Template: SpecialPricesQuantityAreas.csv
    LineNum (Field Name SPP2LNum). Always enter the appropriate LineNumber you want to update (starts from 0).
    Hope that information helps a little. If you have any fruther questions enter the following information:
    1. SAP Business One Version including Patch level
    2. Do you get any error message after the import? What is the message returned?
    Kind Regards,
    Friederike Mundt
    SAP Business One Forums Team

  • Delete single row from DBTAB

    Hi Experts,
    I want to delete a single row from DBTAB ( KLAH )
    WHERE KLAHKLART = '2'  and  KLAHCLINT = '241'.
    Please advice

    Hi ,
    Try this code  To delete single record from DB table- -
    DATA : t_klah LIKE TABLE OF klah,
           fs_klah LIKE klah.
    SELECT * FROM klah INTO TABLE t_klah
                   WHERE klart = '2' AND
                         clint = '241'.
    LOOP AT t_klah INTO fs_klah.
      DELETE klah FROM fs_klah .

  • How to delete single row from multiple

    This is my query which provides duplicate rows in my table:
    2 |M984 | 74 |M6
    2 |M985 | 74 |M6
    2 |M987 | 74 |M6
    2 |M992 | 74 |M6
    2 |M995 | 74 |M6
    2 |M998 | 74 |M6
    Here output shows that CUSTMAST_REQUEST_SRNO M984 having two same rows. And now i want
    to delete any one of row from that. So, how can i apply it for multiple rows ?
    Can any body help-out me in that?
    Thank You,
    Anup Desai
    Edited by: user11688398 on Feb 13, 2013 10:39 PM

    If you want to delete all Duplicates and retain Only One row then Below:
    delete from REQUEST_TRANS a
    where rowid < ( select max(rowid) from REQUEST_TRANS b where a.CUSTMAST_REQUEST_SRNO = b.CUSTMAST_REQUEST_SRNO and a.ACTIVITYMAST_SRNO = b.ACTIVITYMAST_SRNO ... )

  • Deleting a single row from a dataTable / database

    I am fairly new to JSF so please bear with me if the answer is obvious :D. I'm using a dataTable component to display data from a database and would like to add a commandLink component to every row in the table that deletes that row from the database. What is the most effective way of doing this?
    I'm thinking of using a ListDataModel with some function that removes the correct row (though I'm not sure how it will tie in with a commandLink and exactly where the database will be updated). I'll appreciate any pointers or perhaps even an online example of something similar.
    Alternatively I suppose you could pass an "id" parameter on with the commandLink that somehow gets read in the request and the appropriate row is removed accordingly. This solution seems cumbersome however.

    jabalsad wrote:
    I am fairly new to JSF so please bear with me if the answer is obvious :D. I'm using a dataTable component to display data from a database and would like to add a commandLink component to every row in the table that deletes that row from the database. What is the most effective way of doing this?
    I'm thinking of using a ListDataModel with some function that removes the correct row (though I'm not sure how it will tie in with a commandLink and exactly where the database will be updated). I'll appreciate any pointers or perhaps even an online example of something similar.
    Alternatively I suppose you could pass an "id" parameter on with the commandLink that somehow gets read in the request and the appropriate row is removed accordingly. This solution seems cumbersome however.Yes, your instincts are correct there. Binding the data model to a backing bean to get the UIData instance for the table. Then use UIData.getRowData() to get the object corresponding to the row containing the link/button. Then execute your business logic to delete the row from the database. Then you need to ensure the data model is updated to reflect the new state of the database.

  • Best way to create special prices for a single BP?

    Hi Experts,
    Can anyone suggest the best way to do the following?   I have a single BP who will ALWAYS purhcase at 10% above the landed cost (or last purchase price of an item) for any item in SAP B1.   I don't see how I can implement this through Special Prices.   Is there any other way?

    Hi Gordon
    I did consider this method but it occurred to me that whenever we create a new item (or indeed the last purhcase price of an item changes) then the special price will not change.   We also have a item list of over 50,000 items and I have always found that adding special prices for a business partner for all 50k items increases the sizes of the database considerably.
    I am looking for a more dynamic approach that will change as we add new items or last purhcase price changes.  
    Could this be done through the addition of a new price list perhaps which is based on the last purchase price?   I don't fully understand what the factor does but I presume it will create a new price based on another price list only higher or lower?

  • Best practice for deleting multiple rows from a table , using creator

    Thank you for reading my post.
    what is best practive for deleting multiple rows from a table using rowSet ?
    for example how i can execute something like
    delete from table1 where field1= ? and field2 =?
    Thank you

    Please go through the AppModel application which is available at:
    The OnePage Table Based example shows exactly how to use deleting multiple rows from a datatable...
    Hope this helps.

  • Special price for BPs

    Hi experts,
    I have created a special price for a BP based on trade price as price list and it is not on automatic mode, when I do sales order for this BP the unit price is same as trade price and the discount and price after discount comes from the special price as defined.
    Now when I change the trade price for this item and do sales order then the unit price is not same as trade price, it is showing the old trade price,
    Here my question is if I define special price and keep it on non auto mode, when there is a trade price change then where from the unit price comes at sales order? is it from special price?
    Thanks in advance.

    Hi Suman Roy...
    Special Price Use
    Special prices can be used for the following scenarios:
    You want to specify a special price for a customer when a particular item or an item from a particular item group is purchased. In this case, you specify a price that depends on the business partner.
    You want to define special prices for an item that are to apply for particular periods of time. In this case, you specify a date-dependent price.
    Depending on the quantity ordered, you want to assign a special price. If the quantity ordered is very large, you sell or buy an item at a lower price than with a small quantity. In this case, you specify a quantity-based price.
    From time to time, you will also want to update all or particular special prices. You can do this, for example, by changing the discount for selected special prices. You can also select specific special prices and change only these prices. You can refer price list updates to the derived special prices. You may also want to delete particular special prices after a defined period of time. Once you have defined special prices for individual cases (that is, for a particular business partner), you can copy them to other business partners or groups of business partners according to various sets of rules.
    If you want to refer discounts to particular item groups, items with particular properties, or manufacturers regardless of the business partner, you can define discount groups.
    If you do not want special prices to depend on a business partner, you can also define special prices for a price list. These always apply if no special prices have been defined for a business partner. These special prices can also be defined on the basis of a particular date and/or quantity.
    Automatic Price Calculation
    When you enter a business transaction, such as an outgoing invoice or a purchase order, the system calculates the price for an item automatically. The system proceeds as follows here:
    The system first checks whether a special price has been defined for the item for this particular business partner. This special price could also be based on a particular date or quantity.
    If no special price has been defined, the system checks whether a discount group has been defined for the business partner that can be applied to the item.
    If no special price has been defined, the system checks whether a special price has been defined for the item (for the price list entered in the master record of the business partner), which once again can be based on a particular date or quantity.
    If no special price has been defined, the system copies the price for the item from the price list entered in the master record of the business partner.
    If a discount has been granted because of a special price, the discount is indicated in the detailed information of a line in the purchasing or sales document in the Discount % field.

  • How to delete multiple rows from ADF table

    How to delete multiple rows from ADF table

    best practices when deleting multiple rows is to do this on the business service, not the view layer for performance reasons. When you selected the rows to delete and press submit, then in a managed bean you access thetable instance (put a reference to a managed bean from the table "binding" property") and call getSeletedRowKeys. In JDeveloper 11g, ADF Faces returns the RowKeySet as a Set of List, where each list conatins the server side row key (e.g. oracle.jbo.Key) if you use ADF BC. Then you create a List (ArrayList) with this keys in it and call a method exposed on the business service (through a method activity in ADF) and pass the list as an argument. On the server side you then access the View Object that holds the data and find the row to delte by the keys in the list
    Example 134 here: provides you with the code

  • How To Delete a Row From a TableView !!!!

    Does any know how to delete a row from a table view model.
    I have a TableViewModel being displayed, when the user select the particular row and click delete i want that particular row to be deleted.
    Any Suggestions How.

    If u want to delete single row, then set the property of TableView - selectionMode="SINGLESELECT". Select the radio button and click on delete button. In the main program, you can get the row value like...
    public void onDeleteButtonClicked(Event event) throws PageException {
    TableView table = (TableView) this.getComponentByName ("idTableView");
    DefaultTableViewModel dmodel = myBean.beanModel;
    String pid = "", row_selected;
    // Get the first visible row
    int firstVisibleRow = table.getVisibleFirstRow();
    // Get the last visible row
    int lastVisibleRow = table.getVisibleLastRow();
    for (int i = firstVisibleRow; i <= lastVisibleRow; i++) {
    if (table.isRowSelected(i)) {
      row_selected = i;
      pid = dmodel.getValueAt(i, 1).toString();
    "i" will give you the row no, pid has the value of the row at first column.
    Hope this helps.

  • Deleting Multiple Rows From Multiple Tables As an APEX Process

    Hi There,
    I'm interesting in hearing best practice approaches for deleting multiple rows from multiple tables from a single button click in an APEX application. I'm using
    On my APEX page I have a Select list displaying all the Payments made and a user can view individual payments by selecting a Payment from the Select List (individual items are displayed below using Text Field (Disabled, saves state) items with a source of Database Column).
    A Payment is to be deleted by selecting a custom image (Delete Payments Button) displayed in a Vertical Images List on the same page. The Target is set as the same page and I gave the Request a name of DELETEPAY.
    What I tried to implement was creating a Conditional Process On Submit - After Computations and Validations that has a source of a PL/SQL anonymous block as follows:
    UPDATE tblDebitNotes d
    SET d.Paid = 0
    WHERE 1=1
    AND d.DebitNoteID = :P7_DEBITNOTEID;
    INSERT INTO tblDeletedPayments
    ( PaymentID,
    ( :P7_PAYMENTID,
    DELETE FROM tblPayments
    WHERE 1=1
    AND PaymentID = :P7_PAYMENTID;
    The Condition Type used was Request = Expression 1 where Expression 1 had a value of DELETEPAY
    However this process is not doing anything!! Any insights greatly appreciated.
    Many thanks,

    ...the "button" is using a page level Target,...
    I'm not sure what that means. If the target is specified in the definition of a list item, then clicking on the image will simply redirect to that URL. You must cause the page to be submitted instead, perhaps by making the URL a reference to the javaScript doSubmit function that is part of the standard library shipped with Application Express. Take a look at a Standard Tab on a sample application and see how it submits the page using doSubmit() and emulate that.


    Iam pasting my code below.My problem isi retrieve rows from database and display them in jsp page in rows.For each row there is delete hyperlink.Now when i click that link i should only delete the row corresponding to that delete link temporarily but it should not delete the row from database now.It should only delete the row from database when i click the save button.How can i do this can any one give some code.
    [email protected]
    <%@ page language="java" import="Utils.*,java.sql.*,SQLCon.ConnectionPool,java.util.Vector,java.util.StringTokenizer" %>
    <meta http-equiv="Content-Language" content="en-us">
    <meta http-equiv="Content-Type" content="text/html; charset=windows-1252">
    <meta name="GENERATOR" content="Microsoft FrontPage 4.0">
    <meta name="ProgId" content="FrontPage.Editor.Document">
    <title>Item Details</title>
    function submitPage()
    document.details.action = "itemdetails.jsp" ;
    <form name="details" action="itemdetails.jsp" method="post">
    ConnectionPool pool;
    Connection con = null;
    Statement st;
    ResultSet rs =null;
    <table border="0" cellpadding="0" cellspacing="0" width="328">
    <td width="323" colspan="4"><b>Reference No :</b> <input type="text" name="txt_refno" size="14">
    <input type="submit" value="search" name="search" ></td>
    <td width="81" bgcolor="#000099"><font color="#FFFFFF"><b>Item Code</b></font></td>
    <td width="81" bgcolor="#000099"><font color="#FFFFFF"><b>Item No</b></font></td>
    <td width="81" bgcolor="#000099"><font color="#FFFFFF"><b>Amount </b></font></td>
    <td width="80" bgcolor="#000099"> </td>
    pool= new ConnectionPool();
    Utils utils = new Utils();
    double total =0.00;
    String search =utils.returnString(request.getParameter("search"));
    String ref_no =utils.returnString(request.getParameter("txt_refno"));
    String strSQL="select * from ref_table where refno='" + ref_no + "' ";
    con = pool.getConnection();
    rs = st.executeQuery(strSQL);
    String itemcode=rs.getString(2);
    int item_no=rs.getInt(3);
    double amount= rs.getDouble(4);
    total= total + amount;
    <td width="81"><input type=hidden name=hitem value=<%=itemcode%>><%=itemcode%></td>
    <td width="81"><input type=hidden name=hitemno value=<%=item_no%>><%=item_no%></td>
    <td width="81"><input type=hidden name=hamount value=<%=amount%>><%=amount%></td>
    <td width="80"><a href="delete</td>
    }catch(Exception e){}
    finally {
    if (con != null) pool.returnConnection(con);
    <td width="323" colspan="4">
    <p align="right"><b>Total:</b><input type="text" name="txt_total" size="10" value="<%=total%>"></td>
    <td width="323" colspan="4">                   
    <input type="button" value="save" name="save"></td>

    You mean when you click on the hyperlink you want that row to disappear from the page, but not delete the row from the database until a commit/submit button is pressed?
    Personally, I think I'd prefer that you have a delete checkbox next to every row and NOT remove them from the display if I was a user. You give your users a chance to change their mind about their choice, and when they're done they can see exactly which rows will be deleted before they commit.
    You know your problem, of course, so you might have a good reason for designing it this way. But I'd prefer not removing them from the display. JMO - MOD

  • Deleting a row from matrix by context menu

    Hi all
    does anyone know how can i cause right click on mouse button. on a certain row within a matrix to show a context menu with the option to delete the row. and when pressing the menu item handling the event of deleting the row from the matrix?
    appreciate the help

    Hi Yoav,
    Simply, 'context menu' have to be handled with 'menu event' object.
    It can be done by 'flushToDataSource' method and some tricks.
    Basically, method delete the row without any clause of addon code.
    But it's only can be done in display side.
    If you're using DBDataSource, you have to flush to the datasource.
    I mean, you have to update datasource with the data displayed in the matrix.
    and then, delete the last row of the datasource.
    FlushToDataSource doesn't affect to the number of rows in the datasource.
    You have to delete a row with a method of DBDatasource.. I can't remember the name.
    If, the matrix uses userdatasource, you don't need to delete a row in datasource.
    Because userdatasource doesn't have a concept of 'row', actually.
    Hope this helpful for you.
    Hyunil Choi

  • Deleting a row from JTable

    I am trying to delete a row from a JTable whenever the button on the last column is pressed. I know to do this, I can use the removeRow(int) method of the tableModel. But the odd thing is when I try to get a handle to the TableModel from the JTable to use that function, i.e. table.getModel().removeRow(int) it doesn't work. But if I explicitly pass in the tableModel into my class it does work. Here's the code below:
    import java.awt.*;
    import java.awt.event.*;
    import java.util.*;
    import javax.swing.*;
    import javax.swing.table.*;
    import java.awt.event.ActionEvent;
    import java.awt.event.ActionListener;
    import javax.swing.UIManager;
    import javax.swing.table.TableCellRenderer;
    import javax.swing.table.TableCellEditor;
    import javax.swing.AbstractCellEditor;
    import javax.swing.table.DefaultTableModel;
    public class tester4 extends JFrame
         protected final int BUTTON_COL = 2;
         private TableCellRenderer defaultRenderer;
         private TableCellEditor defaultEditor;
         private JTable workingTable;
         private String[] transactionCols = {"Qty", "Product", "Cancel"};
         private Object[][] data = {{5, "prod1", "Cancel"},
                   {6, "prod2", "Cancel"},
                   {7, "prod3", "Cancel"}};
        public tester4()
              workingTable = new JTable(tableModel);
              workingTable.setName("Working Table");
              defaultRenderer = workingTable.getDefaultRenderer(JButton.class);
              defaultEditor = workingTable.getDefaultEditor(Object.class);
              StatusTableRenderer testRenderer = new StatusTableRenderer(defaultRenderer, defaultEditor, workingTable, tableModel);
              workingTable.setDefaultRenderer(Object.class, testRenderer);
              workingTable.setDefaultEditor(Object.class, testRenderer);
            JScrollPane scrollPane = new JScrollPane( workingTable );
            getContentPane().add( scrollPane );
         private DefaultTableModel tableModel = new DefaultTableModel(data, transactionCols){
              // Only allow button column to be editable, if there is an actual
              // button in that row          
              public boolean isCellEditable(int row, int col){
                   return (col == BUTTON_COL && data[row][col] != "") ? true : false;
              // Overriden getColumnClass method that will return the object
              // class type of the first instance of the data type otherwise
              // returns the Object.class
              public Class getColumnClass(int column){
                for (int row = 0; row < getRowCount(); row++){
                    Object o = getValueAt(row, column);
                    if (o != null){ return o.getClass(); }
                return Object.class;
        public static void main(String[] args)
            tester4 frame = new tester4();
            frame.setDefaultCloseOperation( EXIT_ON_CLOSE );
        public class StatusTableRenderer extends AbstractCellEditor
                                                implements TableCellRenderer,
             private TableCellRenderer defaultRenderer;
             private TableCellEditor defaultEditor;
             private JButton cancelButton;
             private JButton editButton;
             private String text;
             private int buttonColumn;
             private int selectedRow;
             private JTable table;
             private DefaultTableModel tableModel;
             public StatusTableRenderer(TableCellRenderer renderer,
                                           TableCellEditor editor,
                                           JTable table,
                                           DefaultTableModel tableModel){
                  defaultRenderer = renderer;
                  defaultEditor = editor;
                  this.table = table;
                  this.tableModel = tableModel;
                  buttonColumn = table.getColumnCount() - 1;
                cancelButton = new JButton();
                editButton = new JButton();
             public StatusTableRenderer(TableCellRenderer renderer,
                                                TableCellEditor editor,
                                                JTable table,
                                                DefaultTableModel tableModel,
                                                int _buttonColumn){
                  this(renderer, editor, table, tableModel);
                  buttonColumn = _buttonColumn;
             public Component getTableCellRendererComponent(JTable table, Object value,
                       boolean isSelected, boolean hasFocus, int row, int column) {
                  if (column == buttonColumn){
                       if (hasFocus){
                       else if (isSelected){
                       cancelButton.setText( (value == null) ? "" : value.toString() );
                       return cancelButton;
                return defaultRenderer.getTableCellRendererComponent(
                            table, value, isSelected, hasFocus, row, column);
             public Component getTableCellEditorComponent(JTable table, Object value,
                       boolean isSelected, int row, int column){
                  if (column == buttonColumn){
                       text = ((value == null) ? "": value.toString());
                       selectedRow = row;
                       return editButton;
                  return defaultEditor.getTableCellEditorComponent(
                            table, value, isSelected, row, column);
            public Object getCellEditorValue()
                return text;
            public void actionPerformed(ActionEvent e)
                // This works
               // This does not work
              //  table.getModel().removeRow(selectedRow);
    }Take a look at the actionPerfformed method. One way of doing it works, one doesn't. Just trying to understand why me getting a handle to the tableModel through the table doesn't work.
    Message was edited by:

    It gives me a run-time error Well then your question should be "why do I get this run-time error" and then you would quote the error. Be more descriptive. "It doesn't work" is not descriptive.
    table.getModel().removeRow(selectedRow);I don't use JDK1.5 either. But if you are saying that the above line compiles cleanly with JDK1.5 (because of the auto-boxing feature, or whatever its called), then I see no reason why the code wouldn't work since it recognizes the class as a DefaultTableModel.
    Presumably you commented out the other line so you don't try to delete the row twice. Otherwise you might be getting a indexing error.

  • Deleting a row from a table using jsp

    Given a table in a jsp, can an user click on a row of that table and retrieve the information so that the program can delete a record from a database table?
    most of the tables that I have seen are static, the user cannot interact with them(specially when the user wants to delete several records from a database table).
    Can anyone suggests a good book or way of deleting a row from table using jsp.

    eg use a column in the table that has a radio button or check box,
    on submit, get all the rows that are checked, using the row as an index into your db store, get the key and use the key to issue the sql delete command.

Maybe you are looking for

  • "Render and replace" now converts to .mov, not audio wav files like before

    In previous versions, the "render and replace" functionality allowed you to quickly extract audio from clips and turn them into audio files. Now in CC 2014 the audio gets replaced with another movie file with no video track. This is useless when tryi

  • Alert at login time

    Hi Experts, We want to create an Alert at the time of Oracle Applications Login time for specific user and responsibility only. How can I accomplish this ? Can anyone help me in this regards ? Thanks in advance Sanjay

  • ITunes on Windows XP 64 bit Edition?

    Does anyone have experience finding a version of iTunes for Windows XP 64 bit? I can only find it for Vista and Woindows 7 64 bit.

  • Bluetooth not working even after reinstalling Bluetooth Stack and Monitor

      I have a Satellite L70-A PSKNAU-06N06W which was U.S. custom ordered with bluetooh installed. It worked fine for 4 months then stopped. OS is Win7. After reading the boards I downloaded:    Toshiba Bluetooth Stack for Windows, 9.00.03T    tc0044220

  • White Balance Shortcut

    Working through the Aperture trial and can't seem to find a keyboard shortcut to bring up the WB tool. Would appreciate it if somone could point me in the right direction. Thank-you. Mark