Clarity

  • 1.  Post TimeSheet Error : Timesheet Not Getting Posted

    Posted Apr 25, 2012 02:51 AM
    Hi

    I am getting the following error while posting the Timesheet. Do you have any clue why this error would appear. I searched the forum and I did not see a hint on this error.

    ERROR 2012-04-25 02:01:19,911 [Dispatch Thread-9331 : bg@FC8CLRPMP01] xql2.xbl (none:none:none) ****POSTTIMESHEET: Error posting timesheet - unknown error-->timesheetID=5022408
    java.lang.Exception: Invalid expression not setActThru('assignment', 'task', 'calendar', 'project', timesheet.prStart, timesheet.prFinish, 'siteCal'): null

    at com.niku.xql2.XQLVisitor.eval(XQLVisitor.java:1091)

    at com.niku.xql2.XQLVisitor.eval(XQLVisitor.java:1017)

    at com.niku.xql2.XQLVisitor.process(XQLVisitor.java:1249)

    at com.niku.xql2.XQLVisitor.process(XQLVisitor.java:1300)

    at com.niku.union.xml.dom.DOMWalker.preProcess(DOMWalker.java:191)

    at com.niku.union.xml.dom.DOMWalker.traverseIntern(DOMWalker.java:74)

    at com.niku.union.xml.dom.DOMWalker.traverse(DOMWalker.java:51)

    at com.niku.xql2.handlers.MatchHandler.preProcess(MatchHandler.java:129)

    at com.niku.xql2.XQLVisitor.preProcess(XQLVisitor.java:1342)

    at com.niku.union.xml.dom.DOMWalker.preProcess(DOMWalker.java:194)

    at com.niku.union.xml.dom.DOMWalker.traverseIntern(DOMWalker.java:74)

    at com.niku.union.xml.dom.DOMWalker.traverse(DOMWalker.java:51)

    at com.niku.xql2.handlers.MatchHandler.preProcess(MatchHandler.java:129)

    at com.niku.xql2.XQLVisitor.preProcess(XQLVisitor.java:1342)

    at com.niku.union.xml.dom.DOMWalker.preProcess(DOMWalker.java:194)

    at com.niku.union.xml.dom.DOMWalker.traverseIntern(DOMWalker.java:74)

    at com.niku.union.xml.dom.DOMWalker.traverse(DOMWalker.java:51)

    at com.niku.xql2.handlers.MatchHandler.preProcess(MatchHandler.java:129)

    at com.niku.xql2.XQLVisitor.preProcess(XQLVisitor.java:1342)

    at com.niku.union.xml.dom.DOMWalker.preProcess(DOMWalker.java:194)

    at com.niku.union.xml.dom.DOMWalker.traverseIntern(DOMWalker.java:74)

    at com.niku.union.xml.dom.DOMWalker.traverse(DOMWalker.java:51)

    at com.niku.xql2.handlers.MatchHandler.preProcess(MatchHandler.java:129)

    at com.niku.xql2.XQLVisitor.preProcess(XQLVisitor.java:1342)

    at com.niku.union.xml.dom.DOMWalker.preProcess(DOMWalker.java:194)

    at com.niku.union.xml.dom.DOMWalker.traverseIntern(DOMWalker.java:74)

    at com.niku.union.xml.dom.DOMWalker.traverse(DOMWalker.java:51)

    at com.niku.xql2.handlers.MatchHandler.preProcess(MatchHandler.java:129)

    at com.niku.xql2.XQLVisitor.preProcess(XQLVisitor.java:1342)

    at com.niku.union.xml.dom.DOMWalker.preProcess(DOMWalker.java:194)

    at com.niku.union.xml.dom.DOMWalker.traverseIntern(DOMWalker.java:74)

    at com.niku.union.xml.dom.DOMWalker.traverse(DOMWalker.java:51)

    at com.niku.xql2.handlers.LoopHandler.processObject(LoopHandler.java:161)

    at com.niku.xql2.handlers.LoopHandler.preProcess(LoopHandler.java:91)

    at com.niku.xql2.XQLVisitor.preProcess(XQLVisitor.java:1342)

    at com.niku.union.xml.dom.DOMWalker.preProcess(DOMWalker.java:194)

    at com.niku.union.xml.dom.DOMWalker.traverseIntern(DOMWalker.java:74)

    at com.niku.union.xml.dom.DOMWalker.traverse(DOMWalker.java:51)

    at com.niku.xql2.handlers.TryHandler.preProcess(TryHandler.java:50)

    at com.niku.xql2.XQLVisitor.preProcess(XQLVisitor.java:1342)

    at com.niku.union.xml.dom.DOMWalker.preProcess(DOMWalker.java:194)

    at com.niku.union.xml.dom.DOMWalker.traverseIntern(DOMWalker.java:74)

    at com.niku.union.xml.dom.DOMWalker.traverse(DOMWalker.java:51)

    at com.niku.xql2.handlers.LockHandler.preProcess(LockHandler.java:95)

    at com.niku.xql2.XQLVisitor.preProcess(XQLVisitor.java:1342)

    at com.niku.union.xml.dom.DOMWalker.preProcess(DOMWalker.java:194)

    at com.niku.union.xml.dom.DOMWalker.traverseIntern(DOMWalker.java:74)

    at com.niku.union.xml.dom.DOMWalker.traverseIntern(DOMWalker.java:92)

    at com.niku.union.xml.dom.DOMWalker.traverse(DOMWalker.java:51)

    at com.niku.xql2.handlers.LoopHandler.processObject(LoopHandler.java:161)

    at com.niku.xql2.handlers.LoopHandler.preProcess(LoopHandler.java:91)

    at com.niku.xql2.XQLVisitor.preProcess(XQLVisitor.java:1342)

    at com.niku.union.xml.dom.DOMWalker.preProcess(DOMWalker.java:194)

    at com.niku.union.xml.dom.DOMWalker.traverseIntern(DOMWalker.java:74)

    at com.niku.union.xml.dom.DOMWalker.traverseIntern(DOMWalker.java:92)

    at com.niku.union.xml.dom.DOMWalker.traverseIntern(DOMWalker.java:92)

    at com.niku.union.xml.dom.DOMWalker.traverseIntern(DOMWalker.java:92)

    at com.niku.union.xml.dom.DOMWalker.traverse(DOMWalker.java:36)

    at com.niku.xql2.XQLProcessor.process(XQLProcessor.java:239)

    at com.niku.njs.xbl.XBLService.process(XBLService.java:127)

    at com.niku.njs.xbl.XBLService.process(XBLService.java:75)

    at com.niku.njs.listeners.XBLJob.scheduledEventFired(XBLJob.java:44)

    at com.niku.njs.Dispatcher$BGTask.run(Dispatcher.java:277)

    at EDU.oswego.cs.dl.util.concurrent.PooledExecutor$Worker.run(PooledExecutor.java:727)

    at java.lang.Thread.run(Thread.java:595)
    Caused by: java.lang.NullPointerException

    at com.niku.projmgr.xql2.functions.SetActThru.checkTask(SetActThru.java:257)

    at com.niku.projmgr.xql2.functions.SetActThru.eval(SetActThru.java:74)

    at com.niku.xql2.functions.BaseFunction.eval(BaseFunction.java:35)

    at com.niku.xql2.eval.XQLFunctionNode.eval(XQLFunctionNode.java:27)

    at com.niku.xql2.eval.XQLUnaryNode.eval(XQLUnaryNode.java:19)

    at com.niku.xql2.eval.XQLEvaluator.parse(XQLEvaluator.java:40)

    at com.niku.xql2.XQLVisitor.eval(XQLVisitor.java:1043)

    ... 64 more

    Thanks

    Venky


  • 2.  RE: Post TimeSheet Error : Timesheet Not Getting Posted

    Posted Apr 25, 2012 03:10 AM
    Did you check the below post, and check if any of the solutions help ?

    20259442

    NJ


  • 3.  RE: Post TimeSheet Error : Timesheet Not Getting Posted

    Posted Apr 25, 2012 05:52 AM
    Hi NJ

    I am trying to follow the steps mentioned in the above post. Will see all possible option there..

    This is [s]not [s] the problem with few timesheet , some timesheets are getting posted.
    Is there any way I can post one timesheet at a time and check if that resolves my problem ?

    Thanks

    Venky


  • 4.  RE: Post TimeSheet Error : Timesheet Not Getting Posted

    Posted Apr 25, 2012 05:57 AM
    Post timesheets is expected to post all approved timesheets.
    Return all but one to post just one.

    Martti K.


  • 5.  RE: Post TimeSheet Error : Timesheet Not Getting Posted

    Posted Apr 27, 2012 04:46 PM
    Martti
    I cannot reject the timesheet as it would send Notification to users. Just trying to avoid that scenario, but worst case if we need to do I have got the authorization to do the same.

    Here is the latest update..

    I raised this with CA Support...

    Looks like my assignment table is having data where there is no Prstart and Prfinish date. This is mandatory attribute and there is no possibility to lose this data.
    We are workign with the PM's to have this updated ASAP.

    Will run the Posttimesheet again after resolving this issue.

    Question to Forum: If any user opens the Project in MPP and creates some task there and save it back without prstart and prfinish. Can this corrupt the data in Prassignment ?

    Thanks & regards

    Venky


  • 6.  RE: Post TimeSheet Error : Timesheet Not Getting Posted
    Best Answer

    Posted Apr 28, 2012 05:53 AM
    If Task start and finish dates are require fields there will definitely be a problem if you can and do save such a task to Clarity.
    That would also have effect on the prTask table and as project start and finish dates in some degree are set by the task dates there would be effect in inv_investments table.


    If I recall correctly that feature came with MS Project 2010 so problem did not exist before PS Project 2010 was supported.

    IMHO the users should be cautioned about the consequences of not giving dates for Clarity projects when they are required field.

    As there are dates that depend on the task dates it might be that it is not possible to totally repair the missing dates.

    Martti K.

    Tasks without dates might be worth a new thread.


  • 7.  RE: Post TimeSheet Error : Timesheet Not Getting Posted

    Posted Apr 29, 2012 11:35 PM
    Title: Adjustment of an adjustment timesheet does not post due to a NullPointer exception. This prevents the timesheet from posting.

    Description:
    Error messages similar to the following appear in the bg-niku.log file when the curve returns a NULL value. The result is that the timesheet doesn't get posted and a NullPointerException message is written to the log. The defect for this issue is CLRT-23415.
    ERROR 2008-09-18 14:45:34,930 [Dispatch Thread-39 : bg@moosh05-755] xql2.xbl (none:none:none) ****POSTTIMESHEET: Couldn't post adjustmented timesheet-->adjustedTimesheetID=5000074; adjustedTimeEntryID=5000718; assignmentID=5000023
    ERROR 2008-09-18 15:00:00,107 [Dispatch Thread-61 : bg@moosh05-755] niku.xql2 (none:none:none)
    java.lang.NullPointerException
    Solution:
    The fix for CLRT-23415 is in Clarity 8.1.3 and Clarity 12.0.1
    1.
    Go into Clarity and populate a brand new timesheet with direct entries. The timesheet must not have any time entered against it.
    2.
    Choose a time entry that does not have any time entered against it.
    3.
    Move mouse over time entry note icon and observe the id in the browser's status bar. Note this id down. (i.e. 14944138)

    Note: You will need to pick a new time entry off a timesheet each time, because we cannot use a timeentry that has time entered against it.
    4.
    Verify that the time entry we picked has no hours by looking at the practsum field of the time entry (practsum should = 0).

    select * from prtimeentry where prid = 14944138
    5.
    Identify the time entries that you would like to change:

    select te.prid
    from prtimesheet ts, prtimeentry te, prtimeperiod tp
    where te.prtimesheetid = ts.prid
    and ts.prtimeperiodid = tp.prid
    and ts.prstatus = 4
    and ts.prisadjustment = 1
    and te.practsum = 0
    and tp.prisopen <> 0
    6.
    Using the following query, replace the nnnnnnnn below with the prid gathered from step 3.

    update prtimeentry set practcurve = (select practcurve from prtimeentry where prid = nnnnnnnn) where prid in
    (select te.prid
    from prtimesheet ts, prtimeentry te, prtimeperiod tp
    where te.prtimesheetid = ts.prid
    and ts.prtimeperiodid = tp.prid
    and ts.prstatus = 4
    and ts.prisadjustment = 1
    and te.practsum = 0
    and tp.prisopen <> 0)


    NJ


  • 8.  RE: Post TimeSheet Error : Timesheet Not Getting Posted

    Posted May 03, 2012 01:53 PM
    Hi

    Just want to let you know that this issue is resolved and want this forum to know the solution I used.

    Got the below query for Trouble shooting from CA

    List of Project-tasks having null start and finish dates where timesheets are available.

    SELECT t.*
    FROM prtimesheet ts
    INNER JOIN prtimeentry te
    ON ( te.prtimesheetid = ts.prid )
    INNER JOIN prassignment a
    ON ( a.prid = te.prassignmentid )
    INNER JOIN prtask t
    ON ( t.prid = a.prtaskid )
    WHERE ts.prstatus = 3 /* Approved timesheets */
    AND ( t.prstart IS NULL
    OR t.prfinish IS NULL ) /* This should not happen */

    Run the above query and fixed all projects appeared

    Post timesheet is successfull after this, except few

    Again we ran the query to find if any locked timeentry is there ..

    Select * From PRLOCK where prname = '~prTimeEntry'

    Deleted the lock on Prtimeentry.

    delete * from prlock where prname = '~prTimeEntry'

    Now all timesheets got posted.

    Thanks once again to Martii and NJ for helping me with all possible solution, guidance.

    Thanks

    Venky


  • 9.  RE: Post TimeSheet Error : Timesheet Not Getting Posted

    Posted May 03, 2012 03:02 PM
    Run the above query and fixed all projects appeared
    What exactly did that contain?

    Martti K.