Tuesday, March 5, 2013


Microsoft Project Issue with Clarity V13
we recently upgraded from V12.1 to V13 and everything works fine except the Microsoft Project Schedule.

When we try to export to MSP it opens up in MSP and downloads all the task and related information which we could see. Immediate after that it says removing says and all the task populated is getting removed and stays blank.
Not sure anyone face this issue.

Appreciate your feedback on this. 

Answer

We had a user with some issues using MSP 2007 and Clarity...we upgraded to MSP 2010 and problem solved. What we did: Upgrade to MSP 2010, then re-install the connector (MSP/Clarity)

Clarity Integration with Excel and Sharepoint

They are tools which can connect Clarity from Excel and Share point through web services.

Please use the below link and connect ITROI.

http://www.itroisolutions.com/en-us/it-roiproducts/ppmdocumentboss.aspx

PPM Document Boss Demo

Highlights:

• Supports Clarity - Risks, Issues and Change Requests
• Drag & Drop capabilities
• Upload, download capabilities
• Full integration with Microsoft Office 365
• Full search collaboration SharePoint functionality
• Ability to map network drives to Clarity Projects
• Utilize SharePoint as the document repository for Projects
• Fully integrated team and/or collaboration security from Clarity to Sharepoint
• No need for additional Clarity licenses to share documents throughout the enterprise

http://integration-bridge.com/downloads/guc/
path to download

PPM Excel Interface

Wednesday, February 27, 2013

Clarity Gel Script For Updating the Task attribute based on project attribute


<gel:script
xmlns:core="jelly:core"
xmlns:gel="jelly:com.niku.union.gel.GELTagLibrary"
xmlns:sql="jelly:sql" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"&rt;
<gel:setDataSource dbId="Niku"/&rt;
<core:catch var="v_exception_WBSO"&rt;
<sql:query var="qry_get_WBSO"&rt;
select
case odf.wbso_subsidy
when 'ws_yes' then 'Yes'
else 'No'
end wbso_subsidy
from odf_ca_project odf,prtask prt
where odf.id=prt.prprojectid
and prt.prid=(${gel_objectInstanceId})
</sql:query&rt;
<gel:log&rt;Update WBSO on Task level.(${gel_objectInstanceId})</gel:log&rt;

</core:catch&rt;
<core:choose&rt;
<core:when test="${v_exception_WBSO eq null}"&rt;
<core:set value="${qry_get_WBSO.rows[0].wbso_subsidy}" var="var_wbso"/&rt;
<gel:log&rt;Update var_wbso on Task level.(${var_wbso})</gel:log&rt;
<core:catch var="v_exception_update"&rt;
<sql:update&rt;
update odf_ca_task set wbso100 = ? where id=(${gel_objectInstanceId})
<sql:param value="${var_wbso}"/&rt;
</sql:update&rt;
</core:catch&rt;
<core:choose&rt;
<core:when test="${v_exception_update != null}"&rt;
<gel:log category="Update" level="ERROR"&rt;
Failure: Update WBSO on Task level.
</gel:log&rt;
</core:when&rt;
<core:otherwise/&rt;
</core:choose&rt;
</core:when&rt;
<core:otherwise&rt;
<gel:log&rt;Error in getting the WBSO of the project. ${v_exception_WBSO}</gel:log&rt;
        </core:otherwise&rt;
    </core:choose&rt;
</gel:script&rt;

Monday, February 18, 2013

Matrix Using Clarity

There is a requirement in Financial Management of Clarity

--  Resources are will work two different countries(USA,Europe)
 and need to update matrix in the back end. In the report the actual should calculate based on the country which resource works. 


I have updated the matrix based on the below Xog query 




   
       





   <?xml version="1.0" encoding="UTF-8"?>
<NikuDataBus xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../xsd/nikuxog_matrix.xsd">
    <Header action="write" externalSource="NIKU" objectType="matrix" version="12.1.1.1208"/>
    <matrices>
        <matrix defaultCurrencyCode="EUR" name="Healthcare Design" type="Cost/Rate">
            <columns>
                <column name="resource"/>
            </columns>
            <matrixRows>
   
                  <   fromDate="2013-01-01" rate="104" resource="HCD0002"
                    standardCost="151" toDate="2013-12-31"/>
   
       
   

For pick the values based on the country/Operational OBS used below function in the backend(oracle) by using PL/SQL

CREATE OR REPLACE FUNCTION CLARITY.z_get_res_rate_fct (
   param_date           VARCHAR2,
   param_resource_id    VARCHAR2,
   param_obs_id         VARCHAR2)
   RETURN NUMBER
AS
   rate     NUMBER;
   matrix   NUMBER;
   matrix1  NUMBER; 
   param_obs_in NUMBER;
BEGIN


-- Actual cost -- if we works for same country project
   SELECT CASE 
             WHEN param_obs_id = 5003878  THEN 5002161 -- Europe
             WHEN param_obs_id = 5003879  THEN 5002360 -- United States
             WHEN param_obs_id = 5003880  THEN 5002161  -- China connect with Europe as per the requirment
             ELSE 0
          END into matrix
     FROM DUAL;

  

select nvl(( SELECT numval3
          FROM (  SELECT pmv.numval3
               FROM ppa_matrix pm, ppa_matrixvalues pmv
              WHERE     pm.matrixkey = pmv.matrixkey
                    AND value1 = param_resource_id
                    and pmv.matrixkey = nvl(matrix,pmv.matrixkey)
                    AND TO_CHAR (pmv.fromdate, 'YYYY') = param_date
           ORDER BY fromDate DESC, numval3 DESC) tes
    WHERE ROWNUM = 1),0) INTO rate from dual;
    
-- Standard cost -- If we works for different country project    
    
    IF RATE=0 THEN
    
    param_obs_in:=0;
        
        IF param_obs_id=5003878 THEN        
          param_obs_in:=5002360;
        ELSIF param_obs_id=5003879 THEN
          param_obs_in:=5002161;
        ELSIF param_obs_id=5003880 THEN
          param_obs_in:=5002360;
        END IF  ;
        
        
        SELECT param_obs_in INTO matrix1 FROM DUAL;
        
             SELECT numval2
             INTO rate
             FROM (SELECT pmv.numval2
                       FROM ppa_matrix pm, ppa_matrixvalues pmv
                      WHERE     pm.matrixkey = pmv.matrixkey
                            AND value1 = param_resource_id
                            and pmv.matrixkey = nvl(matrix1,pmv.matrixkey)
                            AND TO_CHAR (pmv.fromdate, 'YYYY') = param_date
                   ORDER BY fromDate DESC, numval3 DESC) tes WHERE ROWNUM = 1;
    END IF ;
   RETURN rate;
END;
/

Note: When ever do Matrix XOG writing for resources, make sure financial information configured in the resource level. If not configured it wont allow to write matrix for the resource in the back end.



What is the use partition in Clarity ?

Partition is one of the out of box concept and functionality in Clarity, which will help organization to keep one instance multiple discipline like sector wise configuration.

Create one clarity instance and host in to server, based on the sector (Healthcare, lighting, Consumer lifestyle etc..) you can do the partition and no need to create separate instance and licence.


Happy Knowledge
Bala

How many OBS level can create in Clarity?



We can create only 10 OBS level in clarity 12.1.0

Wednesday, February 13, 2013

Connecting CA Clarity PPM Through Visual Studio 2010

There is a requirement where we need to access clarity data through web service using Visual Studio 2010.

I have connected successfully using below code and steps and hope it helps

Steps In Clarity 

http://serverlocation/niku/wsdl/Query

The above path you can find the list of N-SQL query created in Clarity. If you want to your own customization query, go to clarity and click there is a menu list called Query.
Using N-SQL language you can create the query. after creation you find the query name using the above link.

For example : 
In clarity, i am going to create Query name called "Resource_data", once created  you can access through
this URL : http://serverlocation/niku/wsdl/Query/Resource_data


Steps in Visual Studio 2010

http://serverlocation/niku/wsdl/Query/Resource_data

This is the link we are going to use for accessing the clarity data from Visual Studio 2010.

Step1:

Create one new Web Application/Stand alone project

Step2:

Go To Solution explorer. --> Using Service Reference -- Connect Above mentioned URL.

Step3:

After successful completion of above step, please declare the service name in the top of page.
and start accessing all the classes and method.

Sample Source code based on URL mentioned.


            string sessionId = string.Empty;
            Auth objAuth = new Auth();
            objAuth.Username = "XOG_USER";
            objAuth.Password = "test";


           
         
           Resource_dataFilter objFilter = new Resource_dataFilter();
            objFilter.res_id = "5015283";
            Resource_dataQuery objResourcequery = new Resource_dataQuery();
            objResourcequery.Code = "Resource_data";
            objResourcequery.Filter = objFilter;

            Resource_dataQueryResult objectresult = new Resource_dataQueryResult();
                   
            Resource_dataQueryPortClient objClient = new Resource_dataQueryPortClient();
            sessionId = objClient.WrappedLogin("XOG_USER", "test");
         
            objectresult = objClient.Query(objAuth, objResourcequery);

This example based on the resource id will receive all the respective data through WSDL.
Note: In the source code, highlighted one vary based your URL and query name.

Happy Coding 
Bala