Clarity

Expand all | Collapse all

v13.3 Closing date unspecified when a project problem is closed

  • 1.  v13.3 Closing date unspecified when a project problem is closed

    Posted 02-26-2016 09:40 AM

    Hi folks,

    In Clarity, when a problem is closed on an application or a project, the Resolved date is not set (see the screenshots):

    2016-02-26_142640.png

    2016-02-26_142722.png

    Any ideas/solutions ?

     



  • 2.  Re: v13.3 Closing date unspecified when a project problem is closed

    Posted 02-26-2016 09:50 AM

    When you close a Risk, it may not be Resolved (perhaps you have not done anything to mitigate the risk, it has just "gone away"). Setting the status to "Resolved" (rather than "Closed") does set the resolved date field I think though.

     

    But if your business process does not work like that, perhaps you need a PPM-process to update the value based on your business rules.



  • 3.  Re: v13.3 Closing date unspecified when a project problem is closed

    Posted 02-26-2016 10:01 AM

    Hi David,

    Thanks for your reply. the issue of a project is closed but the closed date doesn't shows up. this is not a project risk but an issue project



  • 4.  Re: v13.3 Closing date unspecified when a project problem is closed

    Posted 02-26-2016 10:10 AM

    I don't think that there is a out-of-the-box "Closed Date" field on the Issue object? There is an "Resolved Date" field though and this is set when the status is made "Resolved" (same as Risk).

     

    (Resolved and Closed being different statuses)



  • 5.  Re: v13.3 Closing date unspecified when a project problem is closed

    Posted 02-26-2016 10:21 AM

    Yes David, i'm talking about "Resolved Date" field, is that normal if Resolved Date field is empty when the project is closed?



  • 6.  Re: v13.3 Closing date unspecified when a project problem is closed

    Posted 02-26-2016 10:34 AM

    You are confusing me by talking about "PROJECT being closed".

     

    On a RISK or ISSUE belonging to a PROJECT, then the "Resolved Date" (of the RISK or ISSUE) is set when the status (of the RISK or ISSUE) is set to "Resolved" (not "Closed").

     

    The PROJECT's status has nothing to do with the RISK or ISSUE status or resolved date.

     

    --

     

    If you have some local business rules that say "when a project is closed then all the project's RISKs and ISSUEs should also be closed" then a process would be the way to do this.



  • 7.  Re: v13.3 Closing date unspecified when a project problem is closed

    Posted 02-26-2016 10:54 AM

    Yes, that's exactly what we need to do when a project is closed then project's risks and issues should be closed too.



  • 8.  Re: v13.3 Closing date unspecified when a project problem is closed

    Posted 02-26-2016 11:43 AM

    Hi Calemirou. As Dave mentions this is not out of the box functionality, but this could be accomplished with a process that your organization creates for themselves.

    Ideally we'd have a robust collection of system actions available in the product to empower organizations to do things such as this. If this would benefit your organization, please vote up the Project Closure Process System Actions Idea.



  • 9.  Re: v13.3 Closing date unspecified when a project problem is closed

    Posted 02-26-2016 12:17 PM

    is there a predefined process do the actual case so i can based on it ?



  • 10.  Re: v13.3 Closing date unspecified when a project problem is closed

    Posted 02-26-2016 12:41 PM

    Nothing out of the box that I've seen. In our organization Resolved = Resolved Date (as it functions out of the box) but anything Closed ≠ Resolved Date (again - the system is functioning properly in our opinion).

    We have a custom Closed Date attribute that we capture the date an Issue or Risk was Closed (but not Resolved - conceptually and informationally different for all the right reasons).

     

    Here is our Stamp Close Date GEL for an Issue. Risks are very simmilar.

    <gel:script xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:core="jelly:core" xmlns:gel="jelly:com.niku.union.gel.GELTagLibrary"
      xmlns:jxml="jelly:xml" xmlns:soap="jelly:com.niku.union.gel.SOAPTagLibrary" xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"
      xmlns:sql="jelly:sql" xmlns:util="jelly:util" xmlns:xog="http://www.niku.com/xog" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
      <gel:parameter default="your_xog_username" var="xogUsername"/>
      <gel:parameter default="your_xog_password" secure="true" var="xogPassword"/>
      <!-- Get issue data & date -->
      <gel:setDataSource dbId="niku"/>
      <sql:query escapeText="false" var="data">
        SELECT I.NAME ISSUE_NAME
        , I.RIM_RISK_ISSUE_CODE ISSUE_CODE
        , P.CODE PROJECT_CODE
        , R.UNIQUE_NAME AS ISSUE_ASSIGNED_TO
        , CAST(GETDATE() AS DATE) AS DATE
        , A.OSUWMC_WIP_DATE
        FROM RIM_RISKS_AND_ISSUES I
        JOIN INV_INVESTMENTS P ON P.ID = I.PK_ID
        JOIN ODF_CA_ISSUE A ON A.ID = I.ID
        JOIN SRM_RESOURCES R ON R.USER_ID = I.ASSIGNED_TO
        WHERE I.TYPE_CODE = 'ISSUE'
        AND I.ID = ${gel_objectInstanceId}
       </sql:query>
      <!--  Get xog URL from application by fpena -->
      <core:invokeStatic className="com.niku.union.config.ConfigurationManager" method="getInstance" var="config"/>
      <core:set var="v_IsLocal">0</core:set>
      <core:set value="${config.getProperties().getWebServer().getWebServerInstance(0).getId()}" var="WebServerid"/>
      <core:if test="${WebServerid == 'app'}">
        <core:set value="${config.getProperties().getWebServer().getWebServerInstance(0).getAddress()}" var="AddressIp"/>
        <core:set value="${config.getProperties().getWebServer().getWebServerInstance(0).getSslEntryUrl()}" var="EntryURL"/>
        <core:set value="${config.getProperties().getWebServer().getWebServerInstance(0).getSslPort()}" var="Port"/>
        <core:if test="${EntryURL == 'http://localhost' }">
          <gel:log level="info" message="NULL ADDRESS IS LOCAL... "/>
          <core:set var="v_IsLocal">1</core:set>
          <core:set var="AddressIp">${EntryURL}</core:set>
        </core:if>
      </core:if>
      <core:if test="${WebServerid == 'nsa'}">
        <core:set value="${config.getProperties().getWebServer().getWebServerInstance(1).getAddress()}" var="AddressIp"/>
        <core:set value="${config.getProperties().getWebServer().getWebServerInstance(1).getEntryUrl()}" var="EntryURL"/>
        <core:set value="${config.getProperties().getWebServer().getWebServerInstance(1).getPort()}" var="Port"/>
        <core:if test="${EntryURL == 'http://localhost' }">
          <gel:log level="info" message="NULL ADDRESS IS LOCAL... "/>
          <core:set var="v_IsLocal">1</core:set>
          <core:set var="AddressIp">${EntryURL}</core:set>
        </core:if>
      </core:if>
      <core:if test="${Port != null }">
        <core:set value="${EntryURL}" var="EntryURL"/>
      </core:if>
      <core:if test="${v_IsLocal == 0 }">
        <core:if test="${AddressIp != '' }">
          <core:set value="http://${AddressIp}" var="EntryURL"/>
        </core:if>
      </core:if>
      <core:set value="${config.getProperties().getDirectories().getInstallDir()}" var="NIKUHOME"/>
      <core:set value="${EntryURL}/niku/xog" var="xogURL"/>
      <!-- Log into xog and get a session ID -->
      <soap:invoke endpoint="${xogURL}" var="auth">
        <soap:message>
          <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xog="http://www.niku.com/xog">
            <soapenv:Header/>
            <soapenv:Body>
              <xog:Login>
                <xog:Username>${xogUsername}</xog:Username>
                <xog:Password>${xogPassword}</xog:Password>
              </xog:Login>
            </soapenv:Body>
          </soapenv:Envelope>
        </soap:message>
      </soap:invoke>
      <!-- Checking whether a sessionID is returned. If not, it means that login was unsuccessful -->
      <gel:set asString="true" select="$auth/SOAP-ENV:Envelope/SOAP-ENV:Body/xog:SessionID/text()" var="sessionID"/>
      <core:choose>
        <core:when test="${sessionID == null}">
          <gel:log>Couldn't log in. Please check the hostname/username/password.</gel:log>
        </core:when>
        <core:otherwise>
          <gel:log>Login successful. Session ID is ${sessionID}</gel:log>
        </core:otherwise>
      </core:choose>
      <!-- Xog current date onto WIP Date  -->
      <soap:invoke endpoint="${xogURL}" var="runresult">
        <soap:message>
          <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xog="http://www.niku.com/xog">
            <soapenv:Header>
              <xog:Auth>
                <xog:SessionID>${sessionID}</xog:SessionID>
              </xog:Auth>
            </soapenv:Header>
            <soapenv:Body>
              <NikuDataBus xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../xsd/nikuxog_issue.xsd">
                <Header action="write" externalSource="NIKU" objectType="issue" version="13.2.0.472"/>
                <issues>
                  <issue code="${data.rows.0.issue_code}" name="${data.rows.0.issue_name}" ownerCode="${data.rows.0.issue_assigned_to}" projectCode="${data.rows.0.project_code}">
                    <CustomInformation>
                      <ColumnValue name="osuwmc_close_date">${data.rows.0.date}</ColumnValue>
                    </CustomInformation>
                  </issue>
                </issues>
              </NikuDataBus>
            </soapenv:Body>
          </soapenv:Envelope>
        </soap:message>
      </soap:invoke>
      <!-- Log out of xog -->
      <soap:invoke endpoint="${xogURL}" var="logoutresult">
        <soap:message>
          <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xog="http://www.niku.com/xog">
            <soapenv:Header>
              <xog:Auth>
                <xog:SessionID>${sessionID}</xog:SessionID>
              </xog:Auth>
            </soapenv:Header>
            <soapenv:Body>
              <xog:Logout/>
            </soapenv:Body>
          </soapenv:Envelope>
        </soap:message>
      </soap:invoke>
      <!-- comment out below log output once in production  -->
      <gel:log> ${xogURL}, ${xogUsername}, ${xogPassword}, ${sessionID}, ${gel_objectInstanceId}, ${data.rows.0.inv_name}, ${data.rows.0.inv_code}, ${data.rows.0.osuwmc_init_date}, ${data.rows.0.osuwmc_init_days}</gel:log>
    </gel:script>