Error when adding AP invoice

Dear All,
I find an error appears when adding AP invoice, the error message is:
there is a different between document total and its components[A/P invoice - Rows - Warehouse code][line : 0][message 439 - 138]. I could not add the AP invoice because of this error. Please give advice. Thanks
Rgds,

Hello,
I am trying to replicate your problem but fails. Maybe you could try to duplicate the row line that the components exist by right click --> duplicate and then delete the old row where it has been used to add AP invoice previously.
IF the problem still persists, just contact SAP support.
Rgds,

Similar Messages

  • Error when adding an Invoice

    Dear all,
    I get the error below whenever i add an A/R Invoice copied from a Sales Order.
    [Microsoft][SQL Server Native Client 10.0][SQL Server]Subquery returned more than 1 value. This is not permitted when the subquery follows =, !=, <, <= , >, >= or when the subquery is used as an expression. (CINF)
    My G/l  account are set per item group. I have no Transaction notifications on my database, neither do i have formatted searches.
    I run a query on the CINF table of the database, and below is what i got.
    Version
    CompnyName
    Flags
    InfoL1
    InfoL2
    InfoA1
    InfoA2
    ACTStamp
    ADMStamp
    RTTStamp
    CINFStamp
    LawsSet
    EnblVatGrp
    EnblVTGPmn
    VatOOS_O
    VatOOS_I
    VatStnd_O
    VatStnd_I
    VatExmpt_O
    VatExmpt_I
    VatHalf_O
    VatHalf_I
    VatZrRt_O
    VatZrRt_I
    MaxActGrps
    EnblDctSrc
    EnblRCN
    EnblCorINV
    EnblCshRep
    EnblIRTRep
    EnblTrnRep
    EnblVPMRep
    EnblACTRep
    EnblFTZ
    EnblSlfPCH
    EnblPCHUpd
    EnblRsvINV
    EnblRTDnld
    RTTDnldAdr
    ZPrcCode
    EnblExpns
    EnblRtrRep
    IsEC
    EnblCshDsc
    EnblLostCD
    NumActLvls
    EnblRealRD
    EnblVTGNoD
    EnblGLManP
    EnblOptVIP
    EnblActCrC
    EnblFrnAct
    EnblECAct
    EnblECRpt
    EnblRound
    EnblPrVatS
    EnblYrTrns
    EnblActTtl
    EnblDocWrn
    ActSegNum
    EnbSgmnAct
    SizeOfSeg0
    SizeOfSeg1
    SizeOfSeg2
    SizeOfSeg3
    SizeOfSeg4
    SizeOfSeg5
    SizeOfSeg6
    SizeOfSeg7
    SizeOfSeg8
    SizeOfSeg9
    Rprt1099
    MultiAddss
    EnbDunning
    EnbQtyEDln
    Itw1Date
    Itw1Time
    Itw1Count
    EnbPayRef
    EnblDfrTax
    EnblClsPr
    EnblTaxEL
    EnableBOE
    EnableWHT
    EnblEquVat
    EnblFAsset
    EnblDoubt
    RateBase
    BOEStatClo
    ARDocsInWT
    BISBnkCnt
    BISRBnkCd
    BISRBnkAc
    BISRBranch
    EnblBPConn
    EnblVATDat
    EnblStAgRp
    EnblCARepo
    EnblMatRev
    EnblMBPRec
    CshDscGros
    EnblTaxInv
    EnblCorAct
    EnblRuDIP
    EnblCurDec
    EnblPayMtd
    EnblBaseUn
    EnblVATAna
    EnblExREnh
    VATGrpCal
    MaxChoose
    EnblInfla
    EnblLAWHT
    EnblRTWHT
    ChkQunty
    SriMngSys
    BtchMngSys
    SriCreatIn
    EnblFolio
    EnblDocSbT
    IepsPayer
    DaysOrdCnc
    EnblLATaxS
    PercOfAcq
    MinBaseDoc
    EnblDpmJdt
    EnblDownP
    EnblNDdctC
    DocNmMtd
    DoFilter
    EnblOnPDCh
    EnblOnWnCr
    EnblDefInx
    EnblMxComm
    EnblIndxOp
    EnblSbtCVo
    MinAmntOAP
    CredSumm
    PostdChk
    PostdCred
    CredVend
    WkoStatus
    DispTrByDf
    stampTax
    MinAmntAL
    BlockZeroQ
    AutoCrIns
    EnbRepomo
    RFCValidat
    MxDcsInPmt
    RelStkNoPr
    CashDisc
    EnableSMS
    EnblIndic
    EnbFedTax
    EnblCounty
    Language
    ChkIntgUpd
    ChkIntgCre
    BisBnkAcKy
    EnbZeroDec
    EnbDecWord
    ChkWrdOnly
    EnBnkStmnt
    CalcVatGrp
    TaxSysType
    ESEnabled
    RateTotal
    CompanyHis
    EnblAssVal
    CompanySta
    eFRTActLvs
    TaxGrpType
    InstallNo
    IsOldPA
    EnbNegDoc
    Algo
    ArcComp
    UpdatedTF
    DARDBGUID
    NegStoLv
    SPNEnabled
    PrsWkCntEb
    DashbdEb
    BoxEffDate
    LogInstanc
    UpdateDate
    UserSign2
    SnapShotId
    CreatedBy
    B1SgtEb
    IsHConEnv
    B1BuzzEb
    IMCEEnable
    DKeyId
    ResetDData
    ConvDifAct
    BasEffDate
    oldFxAss
    EnblSPEDUF
    DpmAffTot
    AliasUpd
    TrailDays
    TestComp
    900059
    CONSULTANTS THRIFT SHOP
    NNNNNNNNNNNNNNNNNNNNNNNNNNNNNN
    NULL
    NULL
    NULL
    NULL
    0
    0
    0
    0
    GB
    L
    Y
    X0
    X1
    NULL
    NULL
    NULL
    NULL
    NULL
    NULL
    NULL
    NULL
    8
    N
    N
    N
    N
    N
    N
    N
    N
    N
    N
    N
    Y
    N
    NULL
    Centr_z
    N
    NULL
    Y
    V
    NULL
    5
    Y
    Y
    NULL
    NULL
    Y
    Y
    Y
    NULL
    Y
    Y
    N
    NULL
    NULL
    0
    N
    0
    0
    0
    0
    0
    0
    0
    0
    0
    0
    N
    NULL
    Y
    NULL
    NULL
    NULL
    NULL
    NULL
    N
    NULL
    NULL
    N
    Y
    N
    NULL
    Y
    P
    NULL
    NULL
    NULL
    NULL
    NULL
    NULL
    NULL
    NULL
    NULL
    NULL
    NULL
    NULL
    N
    NULL
    NULL
    NULL
    NULL
    NULL
    NULL
    NULL
    NULL
    NULL
    0
    NULL
    NULL
    NULL
    Y
    A
    R
    N
    NULL
    NULL
    N
    30
    NULL
    0.000000
    0.000000
    Y
    Y
    NULL
    NULL
    N
    Y
    Y
    Y
    Y
    Y
    Y
    0.000000
    Y
    Y
    Y
    Y
    N
    Y
    NULL
    0.000000
    Y
    N
    NULL
    NULL
    0
    N
    Y
    NULL
    NULL
    NULL
    NULL
    8
    Y
    Y
    NULL
    N
    N
    Y
    Y
    Y
    C
    Y
    N
    WLmoDoOSCMGhoQ0p5Je2VAuNuIsxs+xwkjJ00iqy26uhiWnqPsyY+k2y+UmG7nO3byikDfh5owQFqeE4luz3EY+wnL2U/4klc8WP9Wt0fLhV/MRbHHlzF3AWWr1A1uvApg2LE/WvPXA+PLNE054RPBM7c6tR9aVxe97Iz/WxgWWnTCQtDjrh1/nNznSyWDz7VEYCEIVNR6yIvONUcxXZ+a1645XBXnDSTpfAnmTwTqldT7DQrYspoXF6/E2jiAF9gbsZhIVsgPMqPFrau7TiBVG9SZQVcGL9YpJPdUTv32AxKwcqOmEM1xwjjRQpXyRjMw4LXwtH7jixO1d82HTNl60HoEnjiUQ8AaoKyo77vlXoqi7QZwQQzTFhPJ0M8she2KMYh++m1k5nNDwsgjEy9vh979EZHETvMbVzMecAAMBZPXSVN/4YdBaXDi0zcsZonEeYJcX8FuzHUWS1r389szsaHCrnEjyg2DImITit4H9dQP9AtMxqvyz5ItzbRjMFoFIoYOHzf6kD89EDiNA7ZMa0qyNiSs/KZ/qQJvfkbvNUwseWsW5H2l1rctA+sHOSJUXmBb7aJPOQBT4YquTQvj+qtd/15NkahbDiECZMRPgjzA4nLrLRGD4P/0RFPMHOY9A1KTLIy5jyi5xwz9HSJM6nJvtwDacdli9etIgAngySHOAk5vbA9u4645iAc+GlUN5RzJ0AsjsKb676NPGiN9hqrhH47s9tyGjWHTT1m35mPwEaUesmnfxnqgK2QZpHRApFDwPTkOXDT1sihc/fyWAQAUSJ+NVN
    N
    V
    NULL
    C
    0020499568
    N
    Y
    2
    N
    N
    NULL
    I
    Y
    N
    N
    NULL
    0
    NULL
    NULL
    0
    N
    Y
    N
    N
    N
    N
    Y
    NULL
    N
    N
    Y
    ccZ4OznhLdCkLrrBZhhrLiWoR0Di2TmV0CmEQ+FlmlOfwvBRPMXpUw==
    NULL
    N
    I am using SAP 9.0 PL 07
    Please advice further 

    Hi,
    As per above query, sure it will return more than one value. Modify your query if needed,
    SELECT Version FROM Cinf
    Please refer SAP note:
    1988426 - The Formatted Search triggers on a field with no
    updates
    Thanks & Regards,
    Nagarajan

  • DI API error while adding AP Invoice (Using serial Nos.)

    Hi,
    Im getting the following DI API error when adding an AP Invoice which has serial numbers and i cant seem to find any logical fault in the code.
    " [PCH1.WhsCode][line: 4] , 'This entry already exists in the following tables (ODBC -2035) "
    If anybody has encountered this error and found a solution kindly let me know.

    Hi Vivek,
    Are you trying to add same document number, serial number or so on?
    "entry exist " means like "duplicate key problem", I guess.
    Basically, whscode column in PCH1 table allows duplicating.
    So, I think serial number is duplicated among same item code.
    Hope this useful for you.
    Regards,
    Hyunil Choi.

  • Error on Adding AR Invoice

    Hi Experts,
    We have error on adding AR invoice (AR), Delivery (AR), Goods Receipt PO (AP), AP Invoice (AP). Please help on this error..
    below is the error message:
    [microsoft] [SQL Native Client] [SQL Server] Conversion failed when converting the nvarchar value '65002 0' to data type int. (CINF)
    Thanks,
    John

    Hi Jon,
    What Rahul meant was, if you have certain user defined fields or tables in SAP B1, these user defined fields can have some data or queries. This data or data returned by queries may have some strange characters in them. So he asked you to disable all your FMS fields and then test to ensure the error.
    I found one more link, they have similar problems as yours due to Store Procedures they had and migrated from 2007A to 8.8. Could this be your situation? Please read through this link - [Microsoft][SQL Native Client][SQL Server]Conversion failed when converting and note the SAP B1 notes.

  • Error when adding a partition to a materlialized view

    Hi,
    I am getting this error when adding a partition to a materialized view.
    ALTER MATERIALIZED VIEW mvedw.MV_CLM_CAPITN_F ADD PARTITION MAR2013 VALUES LESS THAN ('201304')
    ERROR at line 1:
    ORA-14074: partition bound must collate higher than that of the last partition
    Please advise.
    Regards,
    Narayan

    SQL> select TABLE_OWNER,TABLE_NAME,PARTITION_NAME,HIGH_VALUE from dba_tab_partitions where table_name =
    'MV_CLM_CAPITN_F' order by PARTITION_NAME 2
    3 ;
    TABLE_OWNER TABLE_NAME PARTITION_NAME HIGH_VALUE
    MVEDW MV_CLM_CAPITN_F APR2009 '200905'
    MVEDW MV_CLM_CAPITN_F APR2010 '201005'
    MVEDW MV_CLM_CAPITN_F APR2011 '201105'
    MVEDW MV_CLM_CAPITN_F APR2012 '201205'
    MVEDW MV_CLM_CAPITN_F AUG2009 '200909'
    MVEDW MV_CLM_CAPITN_F AUG2010 '201009'
    MVEDW MV_CLM_CAPITN_F AUG2011 '201109'
    MVEDW MV_CLM_CAPITN_F AUG2012 '201209'
    MVEDW MV_CLM_CAPITN_F DEC2008 '200901'
    MVEDW MV_CLM_CAPITN_F DEC2009 '201001'
    MVEDW MV_CLM_CAPITN_F DEC2010 '201101'
    TABLE_OWNER TABLE_NAME PARTITION_NAME HIGH_VALUE
    MVEDW MV_CLM_CAPITN_F DEC2012 '201301'
    MVEDW MV_CLM_CAPITN_F FEB2009 '200903'
    MVEDW MV_CLM_CAPITN_F FEB2010 '201003'
    MVEDW MV_CLM_CAPITN_F FEB2011 '201103'
    MVEDW MV_CLM_CAPITN_F FEB2012 '201203'
    MVEDW MV_CLM_CAPITN_F FEB2013 '201303'
    MVEDW MV_CLM_CAPITN_F JAN2009 '200902'
    MVEDW MV_CLM_CAPITN_F JAN2010 '201002'
    MVEDW MV_CLM_CAPITN_F JAN2011 '201102'
    MVEDW MV_CLM_CAPITN_F JAN2012 '201202'
    MVEDW MV_CLM_CAPITN_F JAN2013 '201302'
    TABLE_OWNER TABLE_NAME PARTITION_NAME HIGH_VALUE
    MVEDW MV_CLM_CAPITN_F JUL2009 '200908'
    MVEDW MV_CLM_CAPITN_F JUL2010 '201008'
    MVEDW MV_CLM_CAPITN_F JUL2011 '201108'
    MVEDW MV_CLM_CAPITN_F JUL2012 '201208'
    MVEDW MV_CLM_CAPITN_F JUN2009 '200907'
    MVEDW MV_CLM_CAPITN_F JUN2010 '201007'
    MVEDW MV_CLM_CAPITN_F JUN2011 '201107'
    MVEDW MV_CLM_CAPITN_F JUN2012 '201207'
    MVEDW MV_CLM_CAPITN_F MAR2009 '200904'
    MVEDW MV_CLM_CAPITN_F MAR2010 '201004'
    MVEDW MV_CLM_CAPITN_F MAR2011 '201104'
    TABLE_OWNER TABLE_NAME PARTITION_NAME HIGH_VALUE
    MVEDW MV_CLM_CAPITN_F MAR2012 '201204'
    MVEDW MV_CLM_CAPITN_F MAR2013 '201304'
    MVEDW MV_CLM_CAPITN_F MAY2009 '200906'
    MVEDW MV_CLM_CAPITN_F MAY2010 '201006'
    MVEDW MV_CLM_CAPITN_F MAY2011 '201106'
    MVEDW MV_CLM_CAPITN_F NOV2009 '200912'
    MVEDW MV_CLM_CAPITN_F NOV2010 '201012'
    MVEDW MV_CLM_CAPITN_F NOV2012 '201212'
    MVEDW MV_CLM_CAPITN_F OCT2009 '200911'
    MVEDW MV_CLM_CAPITN_F OCT2010 '201011'
    MVEDW MV_CLM_CAPITN_F OCT2011 '201111'
    TABLE_OWNER TABLE_NAME PARTITION_NAME HIGH_VALUE
    MVEDW MV_CLM_CAPITN_F OCT2012 '201211'
    MVEDW MV_CLM_CAPITN_F SEP2009 '200910'
    MVEDW MV_CLM_CAPITN_F SEP2010 '201010'
    MVEDW MV_CLM_CAPITN_F SEP2011 '201110'
    MVEDW MV_CLM_CAPITN_F SEP2012 '201210'
    These are the list of partitions available.
    Regards,
    Narayan

  • Tax error when posting vendor invoice

    Dear Friends ,
    I am posting this 3rd time, I am geting this error when poatin vendor invoice , I am geting this error in production system before GOLIVE ,when we are doing live data entry test . All the seting related to taxes has been testing more than 10times , But we are unable to find the problem . We had checked with all past messages and best possible solution in SDN ......but problem is not solved . Said error is as follows ....
    Tax code V0 country IN does not exist in procedure TAXINN
    Message no. FF713
    Diagnosis
    You entered a tax code which is not defined for the country of the company code to be posted to in the tax calculation procedure.
    System Response
    Procedure
    Check and, if necessary, correct the entry.
    Procedure for System Administration
    If it is not an input error, check and possibly change the system settings.
    To do this, choose Maintain entries (F5).
    Check whether the company code is assigned to the correct country and whether the correct tax calculation procedure has been entered for the company code country.
    Create a new tax code if necessary.
    Caution:
    Since it is possible that the tables in question are being updated at a different time on another computer, it can take a certain amount of time for the tax code to be on all local machines in client server architectures after saving the new code.
    Raghu

    hi
    go to ftxp choose tax code v0
    here in first input field give 00
    then select that field and click on gl acct tab
    here mention a gl or go to ob40 and mention gl for the acct key of that field
    try finding
    Tax code country IN does not exist in procedure TAXINN
    on SDN u will get many threads
    Tax code XX country IN does not exist in procedure TAXINN (MIRO Error)
    conclusion is u must get acct for at least one condition in the tax code
    regrads
    kunal
    award if helpful

  • Error when adding Essbase server...

    Hi,
    I installed Hyperion System 9.3.1 in my development machine and encounter the following error when adding a Essbase server in AAS for the first time.
    Error: 1042017: Network error: The client or server timed out waiting to receive data using TCP/IP. Check network connections. Increase the NetRetryCount and/or NetDelay values in the ESSBASE.CFG file. Update this file on both client and server. Restart the client and try again.
    I used the default user "admin" and password "password". I used my servername:10080 as the server name. I hope I am right.
    Why is this happening? I tried changing netdelay settings but still get the same. Is this something else? Does this have anything to do with my TCP/IP settings? I am installing this on a virtual PC.
    I couldn't find an answer in previous posts.
    regards
    h

    The things that come to mind:
    The server name you use should be the name of the virtual PC, not the machine it's running on. Also, depending on the settings for the Virtual PC environment, you may have to change the network options to allow it to be visible to the network, be in the right domain, etc...
    The above may or may not get you any closer, the error message itself is just saying it can't receive a response from the server, which means the server never got the request or can't send a response back.
    Good Luck,

  • Library error when adding contact or when logging in

    The messenger server has a replica of the partition holding the users.
    It's an OES 2 sp2 server, and the GW Messenger is 2.04.
    Sometimes we see an error that says 'Library error' when adding a contact, or it doesn't show all users that exists with the search parameter given.
    We also sporadically see a 'Library error' when some users log in to it.
    Looking in the log I see an error that says 0xAE16 when users log in fails.
    I can find the 0xAE11 error in the TID's but not the 0xAE16, I did find an article on the forums, mentioning this problem http://forums.novell.com/novell-prod...or-server.html, they mention memory problems, so it seems to me there is a bug that needs fixing.

    I've disabled the '/diruseralias-"Internet EMail Address"' setting that was set up in the strtup.ma and strtup.aa scripts.
    I've also, for now at least, chosen another replica.
    I haven't seen the errors yet, so here's hoping...

  • Error when adding any menu - FRM-40735: ON-INSERT trigger raised unhandled

    When I try to add any new menu in my newly cloned instance I get this error:
    Error when adding any menu - FRM-40735: ON-INSERT trigger raised unhandled excpetion. ORA-04031.
    Using Oracle EBS version 12.1.3.
    Details:
    Menu JOB_STRUCTURE_MENU
    User Menu Name Job Strucure Menu
    Menu Type Standard
    Description Menu to add job, grade, and incentives
    Seq = 1
    Prompt = Enter and Maintain
    Function = Combined Person & Assignment Form WF="US SHRMS TSKFLW
    When I click save I get the error.
    Any assistance would be greatly appreciated.
    Thanks!

    Please post the details of the application release, database version and OS.
    When I try to add any new menu in my newly cloned instance I get this error:
    Error when adding any menu - FRM-40735: ON-INSERT trigger raised unhandled excpetion. ORA-04031.Is the issue with all menus or specific ones only?
    Did AutoConfig complete successfully?
    When I click save I get the error.
    Any assistance would be greatly appreciated.Do you have any invalid objects in the database?
    Any errors in the database log file?
    Please obtain FRD log file for details about the error -- https://forums.oracle.com/forums/search.jspa?threadID=&q=FRD+AND+R12&objID=c3&dateRange=all&userID=&numResults=15&rankBy=10001
    Thanks,
    Hussein

  • Serial Number Transaction Report Window isn't opening when adding AR Invoice

    Hi,
    For One of my Client the Serial Number Transaction Report Window is not opening when adding the AR Invoice.
    In the Invoice all the item's that is present in the line level are SERIAL MANAGED and Management Method is ON RELEASE ONLY.
    Why is it so?

    Hi,
    Do you receive any error message? Is it possible to add without selecting invoice without selecting serial number?
    What is your B1 version and PL?
    Thanks & Regards,
    Nagarajan

  • TableSorter errors when adding new data

    so here is the deal:
    I am using the TableSorter.java helper class with DefaultTableModel
    from: http://java.sun.com/docs/books/tutorial/uiswing/components/table.html
    It works great when the data is static and I get it for the first time. however, occationally, when adding new data I get a NullPointerException error.
    in use:
    DefaultTableModel.addRow()
    DefaultTableModel.removeRow() and
    DefaultTableModel.insertRow() methods.
    Error:
    java.lang.ArrayIndexOutOfBoundsException: 5
         at com.shared.model.TableSorter.modelIndex(TableSorter.java:294)
         at com.shared.model.TableSorter.getValueAt(TableSorter.java:340)
         at javax.swing.JTable.getValueAt(Unknown Source)
         at javax.swing.JTable.prepareRenderer(Unknown Source)...
    code problem I:
        public Object getValueAt(int row, int column)
            return tableModel.getValueAt(modelIndex(row), column);
        }code problem II:
        public int modelIndex(int viewIndex)
                 return getViewToModel()[viewIndex].modelIndex;     
        }TableSroter class:
    package com.shared.model;
    import java.awt.*;
    import java.awt.event.*;
    import java.util.*;
    import java.util.List;
    import javax.swing.*;
    import javax.swing.event.TableModelEvent;
    import javax.swing.event.TableModelListener;
    import javax.swing.table.*;
    * TableSorter is a decorator for TableModels; adding sorting
    * functionality to a supplied TableModel. TableSorter does
    * not store or copy the data in its TableModel; instead it maintains
    * a map from the row indexes of the view to the row indexes of the
    * model. As requests are made of the sorter (like getValueAt(row, col))
    * they are passed to the underlying model after the row numbers
    * have been translated via the internal mapping array. This way,
    * the TableSorter appears to hold another copy of the table
    * with the rows in a different order.
    * <p/>
    * TableSorter registers itself as a listener to the underlying model,
    * just as the JTable itself would. Events recieved from the model
    * are examined, sometimes manipulated (typically widened), and then
    * passed on to the TableSorter's listeners (typically the JTable).
    * If a change to the model has invalidated the order of TableSorter's
    * rows, a note of this is made and the sorter will resort the
    * rows the next time a value is requested.
    * <p/>
    * When the tableHeader property is set, either by using the
    * setTableHeader() method or the two argument constructor, the
    * table header may be used as a complete UI for TableSorter.
    * The default renderer of the tableHeader is decorated with a renderer
    * that indicates the sorting status of each column. In addition,
    * a mouse listener is installed with the following behavior:
    * <ul>
    * <li>
    * Mouse-click: Clears the sorting status of all other columns
    * and advances the sorting status of that column through three
    * values: {NOT_SORTED, ASCENDING, DESCENDING} (then back to
    * NOT_SORTED again).
    * <li>
    * SHIFT-mouse-click: Clears the sorting status of all other columns
    * and cycles the sorting status of the column through the same
    * three values, in the opposite order: {NOT_SORTED, DESCENDING, ASCENDING}.
    * <li>
    * CONTROL-mouse-click and CONTROL-SHIFT-mouse-click: as above except
    * that the changes to the column do not cancel the statuses of columns
    * that are already sorting - giving a way to initiate a compound
    * sort.
    * </ul>
    * <p/>
    * This is a long overdue rewrite of a class of the same name that
    * first appeared in the swing table demos in 1997.
    * @author Philip Milne
    * @author Brendon McLean
    * @author Dan van Enckevort
    * @author Parwinder Sekhon
    * @version 2.0 02/27/04
    public class TableSorter extends AbstractTableModel
        protected TableModel tableModel;
        public static final int DESCENDING = -1;
        public static final int NOT_SORTED = 0;
        public static final int ASCENDING = 1;
        private static Directive EMPTY_DIRECTIVE = new Directive(-1, NOT_SORTED);
        public static final Comparator COMPARABLE_COMAPRATOR = new Comparator()
            public int compare(Object o1, Object o2)
                return ((Comparable) o1).compareTo(o2);
        public static final Comparator LEXICAL_COMPARATOR = new Comparator()
            public int compare(Object o1, Object o2)
                return o1.toString().compareTo(o2.toString());
        private Row[] viewToModel;
        private int[] modelToView;
        private JTableHeader tableHeader;
        private MouseListener mouseListener;
        private TableModelListener tableModelListener;
        private Map columnComparators = new HashMap();
        private List sortingColumns = new ArrayList();
        public TableSorter()
            this.mouseListener = new MouseHandler();
            this.tableModelListener = new TableModelHandler();
        public TableSorter(TableModel tableModel)
            this();
            setTableModel(tableModel);
        public TableSorter(TableModel tableModel, JTableHeader tableHeader)
            this();
            setTableHeader(tableHeader);
            setTableModel(tableModel);
        private void clearSortingState()
            viewToModel = null;
            modelToView = null;
        public TableModel getTableModel()
            return tableModel;
        public void setTableModel(TableModel tableModel)
            if (this.tableModel != null)
                this.tableModel.removeTableModelListener(tableModelListener);
            this.tableModel = tableModel;
            if (this.tableModel != null)
                this.tableModel.addTableModelListener(tableModelListener);
            clearSortingState();
            fireTableStructureChanged();
        public JTableHeader getTableHeader()
            return tableHeader;
        public void setTableHeader(JTableHeader tableHeader)
            if (this.tableHeader != null)
                this.tableHeader.removeMouseListener(mouseListener);
                TableCellRenderer defaultRenderer = this.tableHeader.getDefaultRenderer();
                if (defaultRenderer instanceof SortableHeaderRenderer)
                    this.tableHeader.setDefaultRenderer(((SortableHeaderRenderer) defaultRenderer).tableCellRenderer);
            this.tableHeader = tableHeader;
            if (this.tableHeader != null)
                this.tableHeader.addMouseListener(mouseListener);
                this.tableHeader.setDefaultRenderer
                        new SortableHeaderRenderer(this.tableHeader.getDefaultRenderer())
        public boolean isSorting()
            return sortingColumns.size() != 0;
        private Directive getDirective(int column)
            for (int i = 0; i < sortingColumns.size(); i++)
                Directive directive = (Directive)sortingColumns.get(i);
                if (directive.column == column)
                    return directive;
            return EMPTY_DIRECTIVE;
        public int getSortingStatus(int column)
            return getDirective(column).direction;
        private void sortingStatusChanged()
            clearSortingState();
            fireTableDataChanged();
            if (tableHeader != null)
                tableHeader.repaint();
        public void setSortingStatus(int column, int status)
            Directive directive = getDirective(column);
            if (directive != EMPTY_DIRECTIVE)
                sortingColumns.remove(directive);
            if (status != NOT_SORTED)
                sortingColumns.add(new Directive(column, status));
            sortingStatusChanged();
        protected Icon getHeaderRendererIcon(int column, int size)
            Directive directive = getDirective(column);
            if (directive == EMPTY_DIRECTIVE)
                return null;
            return new Arrow(directive.direction == DESCENDING, size, sortingColumns.indexOf(directive));
        private void cancelSorting()
            sortingColumns.clear();
            sortingStatusChanged();
        public void setColumnComparator(Class type, Comparator comparator)
            if (comparator == null)
                columnComparators.remove(type);
            else
                columnComparators.put(type, comparator);
        protected Comparator getComparator(int column)
            Class columnType = tableModel.getColumnClass(column);
            Comparator comparator = (Comparator) columnComparators.get(columnType);
            if (comparator != null)
                return comparator;
            if (Comparable.class.isAssignableFrom(columnType))
                return COMPARABLE_COMAPRATOR;
            return LEXICAL_COMPARATOR;
        private Row[] getViewToModel()
            if (viewToModel == null)
                int tableModelRowCount = tableModel.getRowCount();
                viewToModel = new Row[tableModelRowCount];
                for (int row = 0; row < tableModelRowCount; row++)
                    viewToModel[row] = new Row(row);
                if (isSorting())
                    Arrays.sort(viewToModel);
            return viewToModel;
        public int modelIndex(int viewIndex)
                 return getViewToModel()[viewIndex].modelIndex;     
        private int[] getModelToView()
            if (modelToView == null)
                int n = getViewToModel().length;
                modelToView = new int[n];
                for (int i = 0; i < n; i++)
                    modelToView[modelIndex(i)] = i;
            return modelToView;
        // TableModel interface methods
        public int getRowCount()
            return (tableModel == null) ? 0 : tableModel.getRowCount();
        public int getColumnCount()
            return (tableModel == null) ? 0 : tableModel.getColumnCount();
        public String getColumnName(int column)
            return tableModel.getColumnName(column);
        public Class getColumnClass(int column)
            return tableModel.getColumnClass(column);
        public boolean isCellEditable(int row, int column)
            return tableModel.isCellEditable(modelIndex(row), column);
        public Object getValueAt(int row, int column)
            return tableModel.getValueAt(modelIndex(row), column);
        public void setValueAt(Object aValue, int row, int column)
            tableModel.setValueAt(aValue, modelIndex(row), column);
        // Helper classes
        private class Row implements Comparable
            private int modelIndex;
            public Row(int index)
                this.modelIndex = index;
            public int compareTo(Object o)
                int row1 = modelIndex;
                int row2 = ((Row) o).modelIndex;
                for (Iterator it = sortingColumns.iterator(); it.hasNext();)
                    Directive directive = (Directive) it.next();
                    int column = directive.column;
                    Object o1 = tableModel.getValueAt(row1, column);
                    Object o2 = tableModel.getValueAt(row2, column);
                    int comparison = 0;
                    // Define null less than everything, except null.
                    if (o1 == null && o2 == null)
                        comparison = 0;
                    } else if (o1 == null)
                        comparison = -1;
                    } else if (o2 == null)
                        comparison = 1;
                    } else {
                        comparison = getComparator(column).compare(o1, o2);
                    if (comparison != 0)
                        return directive.direction == DESCENDING ? -comparison : comparison;
                return 0;
        private class TableModelHandler implements TableModelListener
            public void tableChanged(TableModelEvent e)
                // If we're not sorting by anything, just pass the event along.            
                if (!isSorting())
                    clearSortingState();
                    fireTableChanged(e);
                    return;
                // If the table structure has changed, cancel the sorting; the            
                // sorting columns may have been either moved or deleted from            
                // the model.
                if (e.getFirstRow() == TableModelEvent.HEADER_ROW)
                    cancelSorting();
                    fireTableChanged(e);
                    return;
                // We can map a cell event through to the view without widening            
                // when the following conditions apply:
                // a) all the changes are on one row (e.getFirstRow() == e.getLastRow()) and,
                // b) all the changes are in one column (column != TableModelEvent.ALL_COLUMNS) and,
                // c) we are not sorting on that column (getSortingStatus(column) == NOT_SORTED) and,
                // d) a reverse lookup will not trigger a sort (modelToView != null)
                // Note: INSERT and DELETE events fail this test as they have column == ALL_COLUMNS.
                // The last check, for (modelToView != null) is to see if modelToView
                // is already allocated. If we don't do this check; sorting can become
                // a performance bottleneck for applications where cells 
                // change rapidly in different parts of the table. If cells
                // change alternately in the sorting column and then outside of            
                // it this class can end up re-sorting on alternate cell updates -
                // which can be a performance problem for large tables. The last
                // clause avoids this problem.
                int column = e.getColumn();
                if (e.getFirstRow() == e.getLastRow()
                        && column != TableModelEvent.ALL_COLUMNS
                        && getSortingStatus(column) == NOT_SORTED
                        && modelToView != null)
                    int viewIndex = getModelToView()[e.getFirstRow()];
                    fireTableChanged(new TableModelEvent(TableSorter.this,
                                                         viewIndex, viewIndex,
                                                         column, e.getType()));
                    return;
                // Something has happened to the data that may have invalidated the row order.
                clearSortingState();
                fireTableDataChanged();
                return;
        private class MouseHandler extends MouseAdapter
            public void mouseClicked(MouseEvent e)
                JTableHeader h = (JTableHeader) e.getSource();
                TableColumnModel columnModel = h.getColumnModel();
                int viewColumn = columnModel.getColumnIndexAtX(e.getX());
                int column = columnModel.getColumn(viewColumn).getModelIndex();
                if (column != -1)
                    int status = getSortingStatus(column);
                    if (!e.isControlDown())
                        cancelSorting();
                    // Cycle the sorting states through {NOT_SORTED, ASCENDING, DESCENDING} or
                    // {NOT_SORTED, DESCENDING, ASCENDING} depending on whether shift is pressed.
                    status = status + (e.isShiftDown() ? -1 : 1);
                    status = (status + 4) % 3 - 1; // signed mod, returning {-1, 0, 1}
                    setSortingStatus(column, status);
        private static class Arrow implements Icon
            private boolean descending;
            private int size;
            private int priority;
            public Arrow(boolean descending, int size, int priority)
                this.descending = descending;
                this.size = size;
                this.priority = priority;
            public void paintIcon(Component c, Graphics g, int x, int y)
                Color color = c == null ? Color.GRAY : c.getBackground();            
                // In a compound sort, make each succesive triangle 20%
                // smaller than the previous one.
                int dx = (int)(size/2*Math.pow(0.8, priority));
                int dy = descending ? dx : -dx;
                // Align icon (roughly) with font baseline.
                y = y + 5*size/6 + (descending ? -dy : 0);
                int shift = descending ? 1 : -1;
                g.translate(x, y);
                // Right diagonal.
                g.setColor(color.darker());
                g.drawLine(dx / 2, dy, 0, 0);
                g.drawLine(dx / 2, dy + shift, 0, shift);
                // Left diagonal.
                g.setColor(color.brighter());
                g.drawLine(dx / 2, dy, dx, 0);
                g.drawLine(dx / 2, dy + shift, dx, shift);
                // Horizontal line.
                if (descending) {
                    g.setColor(color.darker().darker());
                } else {
                    g.setColor(color.brighter().brighter());
                g.drawLine(dx, 0, 0, 0);
                g.setColor(color);
                g.translate(-x, -y);
            public int getIconWidth()
                return size;
            public int getIconHeight()
                return size;
        private class SortableHeaderRenderer implements TableCellRenderer
            private TableCellRenderer tableCellRenderer;
            public SortableHeaderRenderer(TableCellRenderer tableCellRenderer)
                this.tableCellRenderer = tableCellRenderer;
            public Component getTableCellRendererComponent(JTable table,
                                                           Object value,
                                                           boolean isSelected,
                                                           boolean hasFocus,
                                                           int row,
                                                           int column)
                Component c = tableCellRenderer.getTableCellRendererComponent(table,
                        value, isSelected, hasFocus, row, column);
                if (c instanceof JLabel) {
                    JLabel l = (JLabel) c;
                    l.setHorizontalTextPosition(JLabel.LEFT);
                    int modelColumn = table.convertColumnIndexToModel(column);
                    l.setIcon(getHeaderRendererIcon(modelColumn, l.getFont().getSize()));
                return c;
        private static class Directive
            private int column;
            private int direction;
            public Directive(int column, int direction)
                this.column = column;
                this.direction = direction;
    }any input will be appreciated.
    thanks
    Peter

    The code you posted doesn't help us at all. Its just a duplicate of the code from the tutorial. The custom code is what you have written. For example do you update the TableModel from the Event Thread? Do you update the SortModel or the DefaultTableModel? If you actually provide your test code and somebody has already downloaded the sort classes, then maybe they will test your code against the classes. But I doubt if people will download the sort classes and create a test program just to see if they can duplicate your results (at least I know I'm not about to).

  • TableAdapter Configuration Wizard gives error when adding new TableAdapter

    Hi,
    I recently downloaded and installed the ODT for visual studio on my computer. I am running VS2008 on Windows 7 64-bit. I am able to create an ODP.NET connection to the Oracle XE 10.2g instance that is running on my computer with no problems and use that connection to browse the database. When I add a DataSet to my project, and start adding TableAdapters to the DataSet, I am getting errors. In an attempt to figure out what the problem is, I have followed various scenarios. I will describe each scenario, and what the end result is, and then after I have described them all, I will explain what I think the problem might be. Here are the different scenarios I have used:
    Scenario 1:
    From the Server Explorer, highlight ALL of the tables in my schema and drag them to the designer (all table adapters are added with no issues). I can add additional queries to each of the TableAdapters and then change the additional queries by right clicking and choosing "Configure". This all works with no issues. However, on certain TableAdapters, if I try to modify the primary query (Fill,GetData()), I can open the query editor just fine, change various settings, etc, but when I click on "Finish" I get the following error:
    Configure TableAdapter TABLENAME failed.
    Index was outside the bounds of the array.
    Scenario 2:
    From the Server Explorer, drag tables from my schema onto the designer one at a time. Some tables get added just fine, but for the rest of them, I get the following error:
    Failed to merge object(s).
    Index was outside the bounds of the array.
    Scenario 3:
    On the Dataset Designer, add tables one at a time by right clicking and choosing "Add -> TableAdapter" and then using SQL to define the query for each table. Some tables get added just fine, but for the rest of them, I get the following error:
    Failed to add TableAdapter.
    Index was outside the bounds of the array.
    Ok... now that I have described all of the different scenarios, I will explain what I think the problem is, and why. Based on my research, I believe the underlying problem has to do with Foreign Key Constraints on the various tables. While working on Scenarios 2 & 3, the same exact tables worked just fine in both scenarios. When I started looking at the definitions for the tables in my schema, it turns out that all of the tables that failed had foreign key constraints defined. When I remove the FK constraints from a table, I am then able to add it to my dataset and change the default query with no problems. My original application used the System.Data.OracleClient provided by Microsoft. When adding my tableadapters using the microsoft data provider, the FK relations are automatically generated for me in the designer, but not with the Oracle Data Provider
    I would be happy to provide you with the DDL that I used for creating my schema (it is not very big) if needed.
    Thanks,
    Jim

    Sorry let me clarify some of the config a little more.
    MAIL101 - Exch 2013
    MAIL102 - Exch 2013
    AP104 - Witness (strictly a witness nothing else on this machine)
    EDGE01 - Exch 2007 Edge
    CAS01 - Exch 2007 Hub/CAS load balancer for CAS02/03
    CAS02 - Exch 2007 Hub/CAS
    CAS03 - Exch 2007 Hub/CAS
    MBOX01 - Exch 2007 Mail cluster
    MBOX02 - Exch 2007 Mail cluster node
    MBOX03 - Exch 2007 Mail cluster node
    RDC01, RDC02, RDC03 - all 2008 R2 root domain controllers for rootdomain.rootdomain
    DC01, DC02, DC03, DC04 - all 2008 R2 domain controllers for us.rootdomain.rootdomain
    All DCs are Global Catalogs.
    I can ping all DCs and root DCs fromboth MAIL101 and 102
    The Exchange Replication service is running on both MAIL101 and 102.
    DC03 is in the same site as the MAIL101/102 servers so I'll run all replication tests from here.
    DCDIAG comes back with all tests passed.
    repadmin /replsum comes back with 0 fails and no errors largest delta for any intersite communication is 13min.
    When I run Test-ReplicationHealth -Identity MAIL101 and also 102 they both come back as everything passed.  No errors.

  • Error when adding a disk to Cluster Shared Volumes

    When adding a disk to Cluster Shared Volumes via Failover Cluster Manager, I get a couple of errors.
    Event ID 5145 in System Log:
    While adding the disk ('Cluster Disk 1') to Cluster Shared Volumes, setting explicit snapshot diff area association for volume ('\\?\Volume{420e2cc4-4fb4-41be-afb1-65f2ee62457a}\') failed with error 'HrError(0x8004230d)'. The only supported software snapshot
    diff area association for Cluster Shared Volumes is to self.
    Cluster disk resource 'Cluster Disk 1' failed to delete a software snapshot.  The diff area on volume '\\?\Volume{420e2cc4-4fb4-41be-afb1-65f2ee62457a}\' could not be dissociated from volume '\\?\Volume{420e2cc4-4fb4-41be-afb1-65f2ee62457a}\'. This
    may be caused by active snapshots. Cluster Shared Volumes requires that the software snapshot be located on the same disk.
    Any ideas why I'm getting this error?  This disk was previously added as a CSV to different Windows failover cluster, if that matters.  Thanks.

    Hi,
    As the disk was previously used as a CSV, I assume there is still data on it.
    Please check if any VSS snapshot created on that disk. If so, delete them and re-add it as a CSV to see the result - a quick way is to backup important files and perform a re-format if you cannot confirm.
    If you have any feedback on our support, please send to [email protected]

  • Error when adding a WLC to WCS

    When adding a WLC to WCS I get this error: Failed to add device to WCS Reason:
    COMMON-1: Some unexpected internal error has occured. If the problem persists please report to the Tech Support.
    WCS 7.0.164.0 was upgraded from 5.2.110.0 because the WLC were running 7.0.98.0
    WLC4404-100 7.0.98.0 (Already in WCS)
    WLC4402-12 7.0.98.0 (Changed the ip address of the management and ap manager.  Was in WCS but deleted from WCS prior to the ip address change and prior to the WCS being upgraded)
    I know that the snmp strings are fine and that the WLC's both respond to snmp get commands.
    The intial WCS upgrade from 5.2.110.0 to 7.0.164.0 didn't require the previous version to be uninstalled.  After the upgrade and restoring the WCS from backup. I was getting the error posted above.  We uninstalled WCS and re-installed WCS from scratch and still we are getting the same error.  We tried restarting the WCS services and also the VM box as well and not luck.  I was wondering if the WCS has the old ip and mac address of the WLC4402-12 in the database and that is why i'm getting this error.
    I did delete and try different snmp community strings with no luck with WCS.  Again, snmp is working since I can do snmp get from the WLC's.

    Scott,
    This is the issue:
    com.cisco.common.persistence.transaction.TransactionException: Null value was assigned to a property of primitive type setter of com.cisco.server.managedobjects.aaa.GuestUserTemplateCG.userStatus
    Could be an existing bug or a new one. I cant say unless I look into your setup.

  • Error when adding a schema to an existing workspace

    I am trying to add an existing schema to my workspace, and am getting ORA-20001: Error with: GRANT EXECUTE ON DBMS_RLS TO BILLING ORA-01031: insufficient privileges. I tried logging in as sys and granting that privilege, and it worked. However, going back to the workspace, I still did not see the new schema listed.
    The user and tables have all been created in the database. The BILLING schema showed up in the available schemas to add to the workspace. I have also tried adding a new schema to the workspace. The BILLING2 schema was created, but I received the same error when it tried to add it to the workspace.
    Is there a grant or user that could be missing? I am using HTMLDB 2.0.
    Thanks!

    These are the current privs for that user:
    ALTER DATABASE
    ALTER SESSION
    ALTER USER
    CREATE ANY CONTEXT
    CREATE ANY DIRECTORY
    CREATE CLUSTER
    CREATE DATABASE LINK
    CREATE DIMENSION
    CREATE INDEXTYPE
    CREATE JOB
    CREATE LIBRARY
    CREATE MATERIALIZED VIEW
    CREATE OPERATOR
    CREATE PROCEDURE
    CREATE PUBLIC SYNONYM
    CREATE ROLE
    CREATE SEQUENCE
    CREATE SYNONYM
    CREATE TABLE
    CREATE TABLESPACE
    CREATE TRIGGER
    CREATE TYPE
    CREATE USER
    CREATE VIEW
    DROP ANY DIRECTORY
    DROP PUBLIC SYNONYM
    DROP TABLESPACE
    DROP USER
    EXECUTE ANY PROCEDURE
    SELECT ANY DICTIONARY
    SELECT ANY TABLE
    UNLIMITED TABLESPACE

Maybe you are looking for