Clarity

  • 1.  Delete Project with XOG

    Posted Jul 25, 2017 10:06 AM

    How can you delete a project using XOG? My current efforts fail - see below.

     

    XML file ...

     

    <?xml version="1.0" encoding="utf-8"?>
    <NikuDataBus xsi:noNamespaceSchemaLocation="../xsd/nikuxog_project.xsd" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
    <Header action="write" externalSource="NIKU" objectType="project" version="14.3.0.298" />
    <Projects>
    <Project name="Delete Me" projectID="00001103" delete="true">
    <General />
    </Project>
    </Projects>
    </NikuDataBus>

     

    Result ...

     

    <?xml version="1.0" encoding="utf-8"?><soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
    <soapenv:Header/>
    <soapenv:Body>
    <XOGOutput xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../xsd/status.xsd">
    <Object type="project"/>
    <Status elapsedTime="0.348 seconds" state="FAILURE"/>
    <Statistics failureRecords="1" insertedRecords="0" totalNumberOfRecords="1" updatedRecords="0"/>
    <Records>
    <Record>
    <KeyInformation>
    <column name="ID">5014021</column>
    <column name="name">Delete Me</column>
    <column name="UNIQUE_NAME">00001103</column>
    </KeyInformation>
    <ErrorInformation>
    <Severity>FATAL</Severity>
    <Description>Project Object update failed</Description>
    <Exception><![CDATA[
    java.lang.Exception: 107
    at com.niku.schedulers.api.XOGProjectAPI.returnErrorMessage(XOGProjectAPI.java:472)
    at com.niku.schedulers.api.XOGProjectAPI.process(XOGProjectAPI.java:300)
    at com.niku.schedulers.api.XOGProjectAPI.eval(XOGProjectAPI.java:142)
    at com.niku.xql2.eval.XQLFunctionNode.eval(XQLFunctionNode.java:27)
    at com.niku.xql2.eval.XQLEvaluator.parse(XQLEvaluator.java:40)
    at com.niku.xql2.XQLVisitor.eval(XQLVisitor.java:1086)
    at com.niku.xql2.XQLVisitor.eval(XQLVisitor.java:1060)
    at com.niku.xql2.XQLVisitor.process(XQLVisitor.java:1292)
    at com.niku.xql2.XQLVisitor.process(XQLVisitor.java:1325)
    at com.niku.union.xml.dom.DOMWalker.preProcess(DOMWalker.java:178)
    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:54)
    at com.niku.xql2.XQLVisitor.preProcess(XQLVisitor.java:1385)
    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:384)
    at com.niku.xql2.handlers.LoopHandler.processSet(LoopHandler.java:255)
    at com.niku.xql2.handlers.LoopHandler.preProcess(LoopHandler.java:212)
    at com.niku.xql2.XQLVisitor.preProcess(XQLVisitor.java:1385)
    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:384)
    at com.niku.xql2.handlers.LoopHandler.processSet(LoopHandler.java:255)
    at com.niku.xql2.handlers.LoopHandler.preProcess(LoopHandler.java:212)
    at com.niku.xql2.XQLVisitor.preProcess(XQLVisitor.java:1385)
    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:384)
    at com.niku.xql2.handlers.LoopHandler.processSet(LoopHandler.java:255)
    at com.niku.xql2.handlers.LoopHandler.preProcess(LoopHandler.java:212)
    at com.niku.xql2.XQLVisitor.preProcess(XQLVisitor.java:1385)
    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.traverse(DOMWalker.java:36)
    at com.niku.xog.service.XOGXBLHandler.processXBL(XOGXBLHandler.java:263)
    at com.niku.xog.service.XOGXBLHandler.process(XOGXBLHandler.java:170)
    at com.niku.xog.service.ObjectHandler.processRequest(ObjectHandler.java:198)
    at com.niku.xog.service.ObjectHandler.process(ObjectHandler.java:99)
    at com.niku.xog.service.XOGDispatch.processMessage(XOGDispatch.java:133)
    at com.niku.xog.service.XOGSOAPServlet.processMessage(XOGSOAPServlet.java:595)
    at com.niku.xog.service.XOGSOAPServlet.doPost(XOGSOAPServlet.java:273)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:644)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:725)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:291)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
    at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:239)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
    at com.niku.union.web.filter.ClarityContentFilter.doFilter(ClarityContentFilter.java:148)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:239)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
    at com.niku.union.web.filter.XSSFilter.doFilter(XSSFilter.java:80)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:239)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
    at com.niku.union.web.filter.TenantSetupFilter.doFilter(TenantSetupFilter.java:50)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:239)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
    at com.niku.union.web.filter.CharsetFilter.doFilter(CharsetFilter.java:45)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:239)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
    at org.apache.catalina.filters.AddDefaultCharsetFilter.doFilter(AddDefaultCharsetFilter.java:88)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:239)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
    at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:219)
    at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:106)
    at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:501)
    at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:142)
    at com.niku.union.web.valves.ErrorPageRedirectValve.invoke(ErrorPageRedirectValve.java:65)
    at org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:610)
    at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:88)
    at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:516)
    at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1086)
    at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:659)
    at org.apache.coyote.http11.Http11NioProtocol$Http11ConnectionHandler.process(Http11NioProtocol.java:223)
    at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1558)
    at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.run(NioEndpoint.java:1515)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
    at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
    at java.lang.Thread.run(Thread.java:745)
    ]]></Exception>
    </ErrorInformation>
    </Record>
    </Records>
    </XOGOutput>
    </soapenv:Body>
    </soapenv:Envelope>



  • 2.  Re: Delete Project with XOG

    Posted Jul 25, 2017 10:39 AM

    Note sure delete="true" is right anyway, but an old discussion thread (so for an older Clarity version) seems to say "you can't" ; Set Purge flag through XOG 



  • 3.  Re: Delete Project with XOG

    Broadcom Employee
    Posted Jul 25, 2017 12:20 PM

    XOG doesn't support to mark as deletion. you need to perform on application.



  • 4.  Re: Delete Project with XOG

    Posted Jul 25, 2017 02:16 PM

    That attempt is doomed to fail anyway. The way it works you set the purge flag (Senthil says you have do it in the application).

    Then you run the delete investments job.

    There is no direct delete for projects



  • 5.  Re: Delete Project with XOG

    Broadcom Employee
    Posted Jul 25, 2017 02:39 PM

    As other explained, can you please let us know the use case of deleting the projects via xog where we have the option in PPM to do even in bulk via a job? 



  • 6.  Re: Delete Project with XOG

    Posted Mar 14, 2018 10:47 PM

    I have two reasons to want to delete projects via XOG.  If developing an integration using the api, one can run into the situation where the record in the other system that is associated with the project in PPM is deleted and so the integration should handle it.  And one might want to create records for testing and it's cleaner to delete records with the same mechanism so that automated tests clean up after themselves.