CAClarityPPM XOG DeveloperGuide ENU PDF
CAClarityPPM XOG DeveloperGuide ENU PDF
Release 13.2.00
This Documentation, which includes embedded help systems and electronically distributed materials, (hereinafter referred to
as the “Documentation”) is for your informational purposes only and is subject to change or withdrawal by CA at any time.
This Documentation may not be copied, transferred, reproduced, disclosed, modified or duplicated, in whole or in part, without
the prior written consent of CA. This Documentation is confidential and proprietary information of CA and may not be disclosed
by you or used for any purpose other than as may be permitted in (i) a separate agreement between you and CA governing
your use of the CA software to which the Documentation relates; or (ii) a separate confidentiality agreement between you and
CA.
Notwithstanding the foregoing, if you are a licensed user of the software product(s) addressed in the Documentation, you may
print or otherwise make available a reasonable number of copies of the Documentation for internal use by you and your
employees in connection with that software, provided that all CA copyright notices and legends are affixed to each reproduced
copy.
The right to print or otherwise make available copies of the Documentation is limited to the period during which the applicable
license for such software remains in full force and effect. Should the license terminate for any reason, it is your responsibility to
certify in writing to CA that all copies and partial copies of the Documentation have been returned to CA or destroyed.
TO THE EXTENT PERMITTED BY APPLICABLE LAW, CA PROVIDES THIS DOCUMENTATION “AS IS” WITHOUT WARRANTY OF ANY
KIND, INCLUDING WITHOUT LIMITATION, ANY IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR
PURPOSE, OR NONINFRINGEMENT. IN NO EVENT WILL CA BE LIABLE TO YOU OR ANY THIRD PARTY FOR ANY LOSS OR DAMAGE,
DIRECT OR INDIRECT, FROM THE USE OF THIS DOCUMENTATION, INCLUDING WITHOUT LIMITATION, LOST PROFITS, LOST
INVESTMENT, BUSINESS INTERRUPTION, GOODWILL, OR LOST DATA, EVEN IF CA IS EXPRESSLY ADVISED IN ADVANCE OF THE
POSSIBILITY OF SUCH LOSS OR DAMAGE.
The use of any software product referenced in the Documentation is governed by the applicable license agreement and such
license agreement is not modified in any way by the terms of this notice.
The manufacturer of this Documentation is CA.
Provided with “Restricted Rights.” Use, duplication or disclosure by the United States Government is subject to the restrictions
set forth in FAR Sections 12.212, 52.227-14, and 52.227-19(c)(1) - (2) and DFARS Section 252.227-7014(b)(3), as applicable, or
their successors.
Copyright © 2013 CA. All rights reserved. All trademarks, trade names, service marks, and logos referenced herein belong to
their respective companies.
Contact CA Technologies
Contact CA Support
For your convenience, CA Technologies provides one site where you can access the
information that you need for your Home Office, Small Business, and Enterprise CA
Technologies products. At http://ca.com/support, you can access the following
resources:
■ Online and telephone contact information for technical assistance and customer
services
■ Information about user communities and forums
■ Product and documentation downloads
■ CA Support policies and guidelines
■ Other helpful resources appropriate for your product
Contents 5
Special Characters ...................................................................................................................................................... 49
Date and Time Format ............................................................................................................................................... 51
Use of EQUALS, OR, BETWEEN, AFTER, and BEFORE ................................................................................................. 52
Values to Pass ............................................................................................................................................................. 52
Contents 7
Grouping Attributes Schema Tag ...................................................................................................................... 128
Detail Schema Tag ............................................................................................................................................. 129
Segment Schema Tag ........................................................................................................................................ 129
Capacity Planning Scenario ...................................................................................................................................... 131
Scenario Schema Tag ........................................................................................................................................ 132
Segment Schema Tag ........................................................................................................................................ 136
Change Request ....................................................................................................................................................... 140
Change Request Schema Tag ............................................................................................................................ 141
Charge Code ............................................................................................................................................................. 145
Charge Code (Chargecode) Schema Tag ........................................................................................................... 146
Company .................................................................................................................................................................. 147
Company Schema Tag ....................................................................................................................................... 150
Contact Information Schema Tag ...................................................................................................................... 151
Supplemental Information Schema Tag ............................................................................................................ 153
Custom Information Schema Tag ...................................................................................................................... 155
Financial Information Schema Tag .................................................................................................................... 156
Billing Address Schema Tag ............................................................................................................................... 158
Billing Address Detail Schema Tag .................................................................................................................... 158
OBS Associations Schema Tag ........................................................................................................................... 160
Company Class ......................................................................................................................................................... 161
Company Class Schema Tag .............................................................................................................................. 162
Content Pack ............................................................................................................................................................ 163
Filter Mapping (filterMapping) Schema Tag ..................................................................................................... 170
portlet Schema Tag ........................................................................................................................................... 170
Cost Plan ................................................................................................................................................................... 176
CostPlan Schema Tag ........................................................................................................................................ 177
Description Schema Tag .................................................................................................................................... 179
Grouping Attributes Schema Tag ...................................................................................................................... 179
Detail Schema Tag ............................................................................................................................................. 180
Segment Schema Tag ........................................................................................................................................ 180
Cost Plus Code .......................................................................................................................................................... 182
Cost Plus Rule (costplusrule) Schema Tag ......................................................................................................... 183
Department .............................................................................................................................................................. 184
Departments Schema Tag ................................................................................................................................. 185
Description Schema Tag .................................................................................................................................... 186
LocationAssociations Schema Tag ..................................................................................................................... 187
Department (Child Department) Schema Tag ................................................................................................... 189
obsTypes Schema Tag ....................................................................................................................................... 189
Entity ........................................................................................................................................................................ 191
Entity Schema Tag ............................................................................................................................................. 192
Description Schema Tag .................................................................................................................................... 195
Short Description (shortDescription) Schema Tag ............................................................................................ 195
Contents 9
DepartmentAssociations Schema Tag ............................................................................................................... 288
Child Location Schema Tag................................................................................................................................ 288
Matrix ....................................................................................................................................................................... 289
columnType Schema Tag .................................................................................................................................. 290
MatrixRowType Schema Tag ............................................................................................................................. 292
Non-Project Investment ........................................................................................................................................... 295
Asset Schema Tag.............................................................................................................................................. 297
Application Schema Tag .................................................................................................................................... 298
Product Schema Tag .......................................................................................................................................... 300
Other Work Schema Tag ................................................................................................................................... 300
NPIO Common Fields Schema Tag .................................................................................................................... 301
Service Schema Tag ........................................................................................................................................... 312
Notifications ............................................................................................................................................................. 313
Notification Schema Tag ................................................................................................................................... 314
Portfolio ................................................................................................................................................................... 315
Portfolio Schema Tag ........................................................................................................................................ 315
Contents Schema Tag ........................................................................................................................................ 319
Process Notification ................................................................................................................................................. 321
Process Notification Schema Tag ...................................................................................................................... 322
Project ...................................................................................................................................................................... 324
SRM_PROJECTS Schema Tag ............................................................................................................................. 327
SRM_RESOURCES Schema Tag .......................................................................................................................... 329
Project (PRJ_PROJECTS) Schema Tag ................................................................................................................ 329
Project (PAC_MNT_PROJECTS) Schema Tag ..................................................................................................... 330
Project Location Schema Tag ............................................................................................................................ 331
Project (CLNTSUPP) Schema Tag ....................................................................................................................... 332
Resource (PRTEAM) Schema Tag ...................................................................................................................... 332
SRM_RESOURCES Schema Tag .......................................................................................................................... 333
SRM_RESOURCES Schema Tag .......................................................................................................................... 333
SRM_RESOURCES Schema Tag .......................................................................................................................... 334
Task (PRTask) Schema Tag ................................................................................................................................ 334
TaskLabor (PRAssignment) Schema Tag ............................................................................................................ 337
OBS Association Schema Tag ............................................................................................................................ 338
OBS Association (OBSAssoc) Schema Tag ......................................................................................................... 338
Project (PRJ_PROJECTS) Schema Tag ................................................................................................................ 339
PAC_MNT_PROJECTS Schema Tag .................................................................................................................... 344
Resource (PRTeam) Schema Tag ....................................................................................................................... 349
PRTask Schema Tag ........................................................................................................................................... 351
TaskLabor (PRAssignment) Schema Tag ............................................................................................................ 355
Requirement ............................................................................................................................................................ 359
RQP_RELEASES Schema Tag .............................................................................................................................. 361
RQP_REQUIREMENTS Schema Tag ................................................................................................................... 361
Contents 11
NoteData Schema Tag ....................................................................................................................................... 414
Transaction Class ...................................................................................................................................................... 415
Transaction Class (transactionclass) Schema Tag ............................................................................................. 416
Type Code ................................................................................................................................................................. 417
Type Code Schema Tag ..................................................................................................................................... 417
UI Themes ................................................................................................................................................................ 419
UITheme Schema Tag ........................................................................................................................................ 420
NLS Schema Tag ................................................................................................................................................ 420
CSS Schema Tag................................................................................................................................................. 421
User .......................................................................................................................................................................... 422
Personal Information (CMN_SENC_USERS) Schema Tag .................................................................................. 423
OBS Associations (OBSAssocs) Schema Tag ...................................................................................................... 426
Group Assignments Schema Tag ....................................................................................................................... 427
Global Access Right Assignments (GlobalRights) Schema Tag .......................................................................... 428
Instance Access Right Assignments (InstanceRights) Schema Tag .................................................................... 429
Instance OBS Access Right Assignments (InstanceOBSRights) Schema Tag ...................................................... 430
Instance Object (InstanceObject) Schema Tag .................................................................................................. 431
Language Support (nls) Schema Tag ................................................................................................................. 431
Vendor ...................................................................................................................................................................... 433
Vendor Schema Tag .......................................................................................................................................... 434
WIP Class .................................................................................................................................................................. 436
WIP Class (wipclass) Schema Tag ...................................................................................................................... 437
Contents 13
Chapter 1: Introduction
This section contains the following topics:
Intended Audience (see page 15)
About the XML Open Gateway (see page 16)
The XOG Client (see page 16)
The XOG Web Services (see page 17)
Web Services Descriptive Language (WSDL) (see page 17)
XOG Access Rights (see page 18)
Intended Audience
Welcome to the CA Clarity Integration Guide. This document contains technical
information needed to work with the XML Open Gateway (XOG).
Intended Audience
The audience for this guide includes integrators or system administrators who have the
need to read data from or write data to CA Clarity using XML and web services. This
guide assumes the reader is already familiar with XML code and the CA Clarity
application.
Document Contents
This guide contains task oriented, conceptual, and reference material. The appendixes
contain reference material on the following:
■ Objects that can be read from or written to CA Clarity using the XOG
■ GEL tags that can be used with XML for more advanced custom integration tasks
Chapter 1: Introduction 15
About the XML Open Gateway
CA Clarity web services are available on the same HTTP or HTTPS port as the HTML web
browser interface. You can access a web service using one of the following:
■ XOG client
You can download the XOG client to your computer and use it to run the XOG.
■ Simple Object Access Protocol (SOAP)
You can access and run the XOG directly using SOAP without using the XOG client.
CA Clarity web services use XML messages that follow the SOAP standard.
Chapter 1: Introduction 17
XOG Access Rights
Before using the XOG client, you must have a valid CA Clarity login name and password.
Before a resource can use the XOG to import or export data for a particular object, you
must assign the resource the XOG access right for that object (for example, Asset - XOG
Access, Project - XOG Access, Resource - XOG Access, and so on).
For example, you can grant the Asset - XOG Access right to a resource to support a
custom CA Clarity PPM desktop application that needs asset information. While the
resource can import and export instance data that is associated with the asset object,
the resource is not able to import or export data on any other objects.
XOG access rights for objects are listed in the access rights list in the Administration Tool
with other access rights. XOG access rights are global rights.
Chapter 1: Introduction 19
Chapter 2: Installing the XOG Client
This section contains the following topics:
How to Install the XOG Client (see page 21)
Windows Installation (see page 22)
Cross-Platform Installation (see page 22)
Verify the XOG Client Version (see page 23)
FIPS 140-2 Mode Setup (see page 24)
XOG Client Directories (see page 25)
Windows Installation
If your computer is running on a Windows platform, use the following instructions to
download and install the XOG client.
Cross-Platform Installation
If your computer is running on a non-Windows platform, use the following instructions
to download and install the XOG client.
Provider entries in the JVM java.security file should appear similar to those shown here:
security.provider.1=com.ibm.crypto.fips.provider.IBMJCEFIPS
security.provider.2=com.ibm.crypto.provider.IBMJCE
#security.provider.3=com.ibm.jsse.IBMJSSEProvider
security.provider.3=com.ibm.jsse2.IBMJSSEProvider2
security.provider.4=com.ibm.security.jgss.IBMJGSSProvider
security.provider.5=com.ibm.security.cert.IBMCertPath
security.provider.6=com.ibm.crypto.pkcs11.provider.IBMPKCS11
security.provider.7=com.ibm.security.cmskeystore.CMSProvider
security.provider.8=com.ibm.security.jgss.mech.spnego.IBMSPNEGO
4. Add the following IBMJSSEProvider2 provider entry below the IBMJCEFIPS entry if it
is not already listed:
security.provider.<n>=com.ibm.jsse2.IBMJSSEProvider2
5. Replace the <n> in the IBMJSSE provider entry with a number for the sequence you
want the provider to be searched from the list.
6. Renumber the remaining listed entries so that they are in sequence. Verify there
are no gaps in the numbers.
Basic operations:
■ To see the command usage, issue the following command:
bin\xog -?
■ To write output to a file (instead of displaying it in the console), issue the following
command:
bin\xog -servername
-output
Identifies the path to a file where the output of the operation should be written.
Any existing file is overwritten.
-input
Indicates the path to the file that contains the XOG request.
-username
Indicates the username required for authentication. This user must have XOG
administration access rights.
-password
Indicates the user password.
-propertyfile
Optional. The properties file that contains any or all of the above parameters.
-fipsenabled
Indicates that the client needs to operate in a FIPS 140-2 compliant mode.
Default: False
For example, if you are using the XOG to import users, companies, resources, and
content items, you might create .properties files like the ones shown here:
■ users.properties
■ companies.properties
■ resources.properties
■ content.properties
In the example .properties files listed, each file would contain different input and output
property values that are appropriate for the type of data it is being used to import.
The parameters needed to read project data is contained in the following .properties file
example. The bolded text shows the values provided for the parameters.
The following figure shows the test.properties file with the default values for
parameters.
logout
Closes any active sessions.
output
Sets the path and file name where the results of the xog call will be captured.
Example:
> output c:\xog\xml\out.xml
call
Invokes a XOG request file. The file path may be absolute or relative to the working
directory.
Example:
> call xml/biz_companies_read.xml
> call D:/Integrations/CA Clarity/write.xml
exit
Logs out of active sessions and quits the shell.
The following steps describe the general process for invoking XOG directly using SOAP:
1. Call Login to establish a session.
<SOAP-ENV:Envelope
xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/">
<SOAP-ENV:Header/>
<SOAP-ENV:Body>
<Login xmlns="http://www.niku.com/xog">
<Username>admin</Username>
<Password>admin</Password>
</Login>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>
xsi:noNamespaceSchemaLocation="../xsd/nikuxog_change.xsd">
<Header version="12.0.0.5028"
externalSource="ORACLE-FINANCIAL"/
<changeRequests>
<changeRequest
benefits="change request for xog test"
code="change request for xog test"
description="change request for xog test"
impactBaseline="change request for xog test"
impactDescription="change request for xog test"
name="change request for xog test"
ownerCode="admin" priorityCode="LOW"
projectCode="riskIssueProject"
reasons="change request for xog test"
targetResolutionDate="2004-10-15"
statusCode="OPEN">
</NikuDataBus>
</obj:WriteChange>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>
Logout
The Logout request main body element.
To find the schema definitions in the XOG client directories on your computer, navigate
to the directory where the XOG client is installed and look in the xsd directory. The
directory contains common schema definitions and object-specific definitions.
Schema Definitions
The following schema definitions are found in the xsd folder:
nikuxog_read.xsd (read request)
This schema definition includes:
■ nikuxog_readTypes.xsd. This schema defines the NikuDataBus request element.
■ nikuxog_readQueryTypes.xsd. This schema defines the Query request element.
Note: The nikuxog_readQueryTypes.xsd also includes the XSD files that define the
read/write schemas for special stock objects.
nikuxog_<object>.xsd (read response and write request)
This schema definition applies to a read object response or a write object request.
status.xsd (write response)
This schema definition applies to all write object responses.
The following figure shows the example XML read file for projects
(prj_projects_read.xml).
In d ic a te s a
r e a d o p e r a tio n
fo r a p r o je c t
In d ic a te s th e
ty p e s o f p r o je c t
d a ta to b e r e a d
a n d e x p o r te d
In d ic a te s
s e le c tio n
c r ite r ia to
fin d a n d r e a d
o u t o n ly th e
d a ta n e e d e d
■ In the Header section, the action read and the objectType project indicates that this
file is for exporting (reading) project data.
■ The arguments indicate the types of project information you want included in the
export. The default is to order the output first by name (order_by_1) and then by
project ID (order_by_2). You can change the order by swapping the numbers "1"
and "2" in the argument names. The default value for arguments that include data
is true. Set any to false that you do not want to include in the output.
■ The Query section and its filter criteria selection limit the data to only what is
necessary.
Example: Create an XML Write File from the Output of an XML Read File
The following example illustrates how to create an XML write file for the project object
using the output file of an XML read file.
1. Create an example project in CA Clarity that contains the information you want in
the final XML write file.
In this example, a project named project1 was created, with two resources and a
task with assignments. This project information will appear in the correct XML write
format in the output file.
2. Create the XML read file.
The following code sample shows the XML read file.
<?xml version="1.0" encoding="UTF-8"?>
<NikuDataBus xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:noNamespaceSchemaLocation="../xsd/nikuxog_read.xsd">
<Header version="12.0.0.5028" action="read" objectType="project"
externalSource="NIKU">
<args name="include_tasks" value="true"/>
<args name="include_dependencies" value="true"/>
<args name="include_subprojects" value="true"/>
<args name="include_resources" value="true"/>
<args name="include_baselines" value="true"/>
<args name="include_allocations" value="true"/>
<args name="include_estimates" value="true"/>
<args name="include_actuals" value="true"/>
<args name="include_custom" value="true"/>
</Header>
<Query>
<Filter name="projectID" criteria="EQUALS">project1</Filter>
</Query>
</NikuDataBus>
The Header section indicates that this is a read action for the object type "project"
with the list of arguments indicating the data that is to be read. The Query section
indicates the name of the project for which data is to be returned.
3. Run the XOG using the read file as input.
The output XML file is created.
4. Examine the output XML file and make any edits necessary so that you can use the
file as an XML write file.
5. Save the changes.
The XML write file is created.
The following code sample shows the output file. It is a well-formed XML write file.
<Baselines/>
<AllocCurve/>
<CustomInformation>
<ColumnValue
name="partition_code">NIKU.ROOT</ColumnValue>
</CustomInformation>
<SkillAssocs/>
</Resource>
<Resource availFrom="2009-01-01T08:00:00"
availTo="2009-12-31T17:00:00" bookingStatus="5"
defaultAllocation="1" isProjectManager="true"
lastUpdatedBy="admin"
lastUpdatedDate="2009-02-11T09:40:11"
openForTimeEntry="true"
projectRoleID="csk.Project Manager"
resourceID="paulMartin">
<Baselines/>
<AllocCurve/>
<CustomInformation>
<ColumnValue
name="partition_code">NIKU.ROOT</ColumnValue>
</CustomInformation>
<SkillAssocs/>
</Resource>
</Resources>
The topics that follow describe how to perform the tasks most routine
to this interface.
<Task finish="2009-12-31T17:00:00"
internalTaskID="5000578" key="false"
lastUpdatedBy="admin"
lastUpdatedDate="2009-02-11T09:39:40"
lockedForScheduling="false" milestone="false"
name="A Test Project" orderID="1" outlineLevel="1"
percComp="0" start="2009-01-01T08:00:00" status="0"
summary="false" taskID="~rmw" topDownPercent="0">
<Baselines/>
<Assignments>
<TaskLabor actualWork="0" baselineWork="0"
estPattern="3" finish="2009-12-31T17:00:00"
lastUpdatedBy="admin"
lastUpdatedDate="2009-02-11T09:39:41"
remainingWork="2088" resourceID="artKatect"
roleID="csk.Architect"
start="2009-01-01T08:00:00" unpostedActuals="0">
<Baselines/>
<EstCurve>
<Segment finish="2010-01-01T00:00:00"
start="2009-01-01T00:00:00"
sum="2088.0000"/>
</EstCurve>
<ActCurve/>
<CustomInformation>
<ColumnValue
name="partition_code">NIKU.ROOT</ColumnValue>
</CustomInformation>
</TaskLabor>
<TaskLabor actualWork="0" baselineWork="0"
estPattern="3" finish="2009-12-31T17:00:00"
lastUpdatedBy="admin"
lastUpdatedDate="2009-02-11T09:40:11"
remainingWork="2088" resourceID="paulMartin"
roleID="csk.Project Manager"
start="2009-01-01T08:00:00" unpostedActuals="0">
<Baselines/>
<EstCurve>
<Segment finish="2010-01-01T00:00:00"
start="2009-01-01T00:00:00"
sum="2088.0000"/>
</EstCurve>
<ActCurve/>
<CustomInformation>
<ColumnValue
name="partition_code">NIKU.ROOT</ColumnValue>
</CustomInformation>
</TaskLabor>
</Assignments>
<estimateRules/>
<CustomInformation>
<ColumnValue
name="partition_code">NIKU.ROOT</ColumnValue>
</CustomInformation>
</Task>
<Task chargeCodeExtID="Expense"
finish="2009-12-31T17:00:00"
internalTaskID="5000585" key="true"
lastUpdatedBy="admin"
lastUpdatedDate="2009-02-11T09:41:22"
lockedForScheduling="false" milestone="false"
name="Task1" nextSiblingOf="~rmw" orderID="2"
outlineLevel="1" percComp="0"
start="2009-01-01T08:00:00" status="0"
summary="false" taskID="Task1">
<Baselines/>
<Assignments>
<TaskLabor actualWork="0" baselineWork="0"
estPattern="3" finish="2009-12-31T17:00:00"
lastUpdatedBy="admin"
lastUpdatedDate="2009-02-11T09:41:03"
remainingWork="2088" resourceID="artKatect"
roleID="csk.Architect"
start="2009-01-01T08:00:00" unpostedActuals="0">
<Baselines/>
<EstCurve>
<Segment finish="2010-01-01T00:00:00"
start="2009-01-01T00:00:00"
sum="2088.0000"/>
</EstCurve>
<ActCurve/>
<CustomInformation>
<ColumnValue
name="partition_code">NIKU.ROOT</ColumnValue>
</CustomInformation>
</TaskLabor>
<TaskLabor actualWork="0" baselineWork="0"
estPattern="3" finish="2009-12-31T17:00:00"
lastUpdatedBy="admin"
lastUpdatedDate="2009-02-11T09:41:03"
remainingWork="2088" resourceID="paulMartin"
roleID="csk.Project Manager"
start="2009-01-01T08:00:00" unpostedActuals="0">
<Baselines/>
<EstCurve>
<Segment finish="2010-01-01T00:00:00"
start="2009-01-01T00:00:00"
sum="2088.0000"/>
</EstCurve>
<ActCurve/>
<CustomInformation>
<ColumnValue
name="partition_code">NIKU.ROOT</ColumnValue>
</CustomInformation>
</TaskLabor>
</Assignments>
<estimateRules/>
<CustomInformation>
<ColumnValue
name="partition_code">NIKU.ROOT</ColumnValue>
</CustomInformation>
</Task>
</Tasks>
<Dependencies/>
<Subprojects/>
<Allocations/>
<scenarioDependencies/>
<InvestmentAssociations>
<Allocations/>
<Hierarchies/>
</InvestmentAssociations>
<CustomInformation>
<ColumnValue name="obj_align_factor1">50</ColumnValue>
<ColumnValue name="obj_align_factor2">50</ColumnValue>
<ColumnValue name="obj_align_factor3">50</ColumnValue>
<ColumnValue name="obj_align_factor4">50</ColumnValue>
<ColumnValue name="partition_code">NIKU.ROOT</ColumnValue>
</CustomInformation>
<General addedBy="admin" addedDate="2009-02-11"/>
<OBSAssocs completed="false">
<OBSAssoc id="Business Unit" name="Business Unit"
unitPath="/All Business Units/Business
Operations/Operational Systems"/>
<OBSAssoc id="corp_dept" name="CORP Department OBS"
unitPath="/CORP IT"/>
<OBSAssoc id="Security OBS" name="Security OBS"
unitPath="/Corporate/IT/Portfolio"/>
</OBSAssocs>
<BurdeningAssocs>
<BurdeningAssoc transactionType="Labor"/>
<BurdeningAssoc transactionType="Material"/>
<BurdeningAssoc transactionType="Expenses"/>
<BurdeningAssoc transactionType="Equipment"/>
</BurdeningAssocs>
</Project>
</Projects>
<XOGOutput>
<Object type="project"/>
<Status state="SUCCESS"/>
<Statistics failureRecords="0" insertedRecords="0"
totalNumberOfRecords="1" updatedRecords="0"/>
<Records/>
</XOGOutput>
</NikuDataBus>
Special Characters
You must escape special characters in XOG requests to help ensure a successful XOG
read or write request. You can escape special characters or use CDATA.
You can use one of the following escape rules to escape special characters in the XML
file.
Escape Example
The following example shows how to handle the term E1&P2 in XML text by escaping
the term:
Use CDATA
You can use CDATA instead of escaping special characters. CDATA is a section of
element content in XML that is marked so that it is interpreted only as character data,
not markup data.
<![CDATA[
]]>
CDATA Example
The following example shows how to handle the term E1&P2 in XML text using CDATA.
Examples:
Values to Pass
The following table shows the values expected by the XOG in specific cases.
Object API
The structure for each object is defined in its corresponding schema (XSD). There is one
general schema definition for all read object requests; however, the schema definition
for each read object response and each write object request varies based on the object
that is accessed. This is because the structure for each object is defined in its own
corresponding schema.
See Appendix A, XOG Object Reference for a complete list of available XOG objects.
ActionObject Element
All read and write XOG objects use an <ActionObject> element to define the action to be
taken and the object to take it on. An action can be either a read or write. An object can
be any XOG object that is available under the Objects API category such as department
and companies.
For example, the <ReadProject> element indicates read as the action to take, and
Project is the XOG object against which the action is taken. The <ActionObject> element
is the parent element that wraps around the NikuDataBus header attributes.
The following example shows the structure used for requesting a read action on the
Project object:
<obj:ReadProject xmlns:obj="http://www.niku.com/xog/Object">
<NikuDataBus>
<Header/>
<Query/>
</NikuDataBus>
</obj:ReadProject>
Read object requests are used to extract specific object records from CA Clarity. The
read object request services reference the nikuxog_read.xsd schema (shown in bold) in
the following example.
<obj:ReadUser xmlns:obj="http://www.niku.com/xog/Object">
<NikuDataBus
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:noNamespaceSchemaLocation="../xsd/nikuxog_read.xsd">
<Header version="12.0.0.5028" externalSource="NIKU"/>
<Query>
<Filter name="userName" criteria="EQUALS">admin</Filter>
</Query>
</NikuDataBus>
</obj:ReadUser>
In the following example, the nikuxog_user.xsd defines the NikuDataBus read response
element.
<ReadUserResponse xmlns="http://www.niku.com/xog/Object">
<NikuDataBus
xsi:noNamespaceSchemaLocation="../xsd/nikuxog_user.xsd"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<Header externalSource="NIKU" version="12.0.0.5028"/>
<Users>
<User externalId=" " userLanguage="English"
userLocale="en_US" userName="admin"
userStatus="ACTIVE" userTimezone="Europe/London"
userType="INTERNAL">
<PersonalInformation emailAddress="[email protected]"
firstName="ca" lastName="Administrator"/>
<Resource resourceId="admin"/>
<Company/>
<General addedBy="admin" addedDate="2005-03-12"/>
<OBSAssocs>
<OBSAssoc id="loc" name="Location" unitPath="/
USA"/>
</OBSAssocs>
<Groups>
<Group id="ApplAdminRl"/>
</Groups>
<GlobalRights/>
<InstanceRights/>
<InstanceOBSRights>
</User>
</Users>
<XOGOutput>
<Status state="SUCCESS"/>
<Statistics failureRecords="0"insertedRecords="0"
totalNumberOfRecords="1" updatedRecords="0"/>
<Records/>'
</XOGOutput>
</NikuDataBus>
</ReadUserResponse>
<obj:WriteUser xmlns:obj="http://www.niku.com/xog/Object">
<NikuDataBus xsi:noNamespaceSchemaLocation="../xsd/nikuxog_user.xsd"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<Header externalSource="NIKU" version="12.0.0.5028"/>
...
In XML write requests, the unique record identifier varies based on the object. In the
following example, the identifier is the userName attribute. This example is an update,
and it includes only a subset of the information exported in the read request example.
The nikuxog_user.xsd defines the NikuDataBus write request element.
<obj:WriteUser xmlns:obj="http://www.niku.com/xog/Object">
<NikuDataBus
xsi:noNamespaceSchemaLocation="../xsd/nikuxog_user.xsd"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<Header externalSource="NIKU" version="12.0.0.5028"/>
<Users>
<User externalId=" " userLanguage="English"
userLocale="en_US" userName="admin"
userStatus="ACTIVE" userTimezone="Europe/London">
<PersonalInformation emailAddress="[email protected]"/>
</User>
</Users>
</NikuDataBus>
</obj:WriteUser>
<WriteUserResponse xmlns="http://www.niku.com/xog/Object">
<XOGOutput xsi:noNamespaceSchemaLocation="../xsd/status.xsd"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<Object type="user"/>
<Status state="SUCCESS"/>
<Statistics failureRecords="0" insertedRecords="0"
totalNumberOfRecords="1" updatedRecords="1"/>
<Records>
<Record>
<KeyInformation>
<column name="ALL">ALL RECORDS</column>
</KeyInformation>
<ErrorInformation>
<Severity>WARNING</Severity>
<Description>New Users Password will be Defaulted
to Value ca2000</Description>
</ErrorInformation>
</Record>
</Records>
</XOGOutput>
</WriteUserResponse>
If you do not specify a partition view in your write request, all the instances you create
are automatically assigned to the default system partition value NIKU.ROOT.
To specify a new partition, replace NIKU.ROOT with your actual partition code. Before
you can specify a partition view, you must create a partition model and associate it with
your objects in Studio.
The following example shows how partition information is specified for each object
instance (that is for each "Project") using the <CustomInformation> element.
<obj:WriteProject xmlns:obj="http://www.niku.com/xog/Object">
<NikuDataBus xsi:noNamespaceSchemaLocation="../xsd/nikuxog_user.xsd"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<Header externalSource="NIKU" version="8.0"/>
<Projects>
<Project>
.
<CustomInformation>
<ColumnValue
name="partition_code">NIKU.ROOT</ColumnValue>
</CustomInformation>
.
.
.
</Project>
</Projectss>
</NikuDataBus>
</obj:WriteProject>
Read CustomObjectInstances
The following XML shows an example read CustomObjectInstance request and how it
uses the <CustomObjectInstanceQuery> element.
<obj:ReadCustomObjectInstance xmlns:obj="http://www.niku.com/xog/Object">
<NikuDataBus xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:noNamespaceSchemaLocation="../xsd/nikuxog_read.xsd">
<Header version="12.0.0.5028" externalSource="NIKU"/>
<CustomObjectInstanceQuery>
<Filter name="objectCode" criteria="EQUALS">training_modules</Filter>
<Filter name="instanceCode" criteria="EQUALS">Business Ethics
</Filter>
</CustomObjectInstanceQuery>
</NikuDataBus>
</obj:ReadCustomObjectInstance>
Write CustomObjectInstances
Partitioning
Like standard stock objects, the read CustomObjectInstances response service provides
partition view information for each custom object instance. You can write a partition
view to each write CustomObjectInstances instance. In the previous XML write request
example, the partition view of US is specified for the Star Wars movie instance
definition.
ContentPack Service
The ContentPack service is an entry point to enable XOG communication with Studio
components, such as objects, object views, NSQL queries, portlets, process definitions,
report definitions, lookups, and portlet pages.
Like standard stock objects, the read ContentPack request service is also defined by the
nikuxog_read.xsd schema as shown in the following example. However, for the
ContentPack service, this schema is unique because it includes the <ViewQuery>
element. This element allows you to read Studio components.
The following example shows the ViewQuery for reading the property and list
components of the custom object myObject_v1.
<obj:ReadContentPack xmlns:obj="http://www.niku.com/xog/Object">
<NikuDataBus xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:noNamespaceSchemaLocation="../xsd/nikuxog_read.xsd">
<Header version="12.0.0.5028" externalSource="NIKU"/>
<ViewQuery>
<Filter name="code" criteria="EQUALS">property</Filter>
<Filter name="object_code" criteria="EQUALS">myObject_v1</Filter>
</ViewQuery>
<ViewQuery>
<Filter name="code" criteria="EQUALS">list</Filter>
<Filter name="object_code" criteria="EQUALS">myObject_v1</Filter>
</ViewQuery>
</NikuDataBus>
</obj:ReadContentPack>
You can filter on partition views from a ContentPack read request by including the
<ViewQuery> filter condition attribute.
To read specific partitioned views using the ContentPack XOG, you must explicitly
request these partitions in a ViewQuery by including the partition_code.
The following read ContentPack request specifies the ABC partition for the custom
object myObject_v1 as shown in bold.
<obj:ReadContentPack xmlns:obj="http://www.niku.com/xog/Object">
<NikuDataBus xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:noNamespaceSchemaLocation="../xsd/nikuxog_read.xsd">
<Header version="12.0.0.5028" externalSource="NIKU">
<!-- the contentType is used to determine which filter goes where -->
<args contentType="job_definition" name="order_by_1" value="code"/>
<args contentType="menu" name="order_by_1" value="code"/>
<args contentType="view" name="order_by_1" value="code"/>
<args contentType="process" name="order_by_1" value="code"/>
<args contentType="object" name="order_by_1" value="code"/>
</Header>
<ViewQuery>
<Filter name="code" criteria="EQUALS">property</Filter>
<Filter name="object_code" criteria="EQUALS">myObject_v1</Filter>
<Filter name="partition_code" criteria="EQUALS">ABC</Filter>
</ViewQuery>
<ViewQuery>
<Filter name="code" criteria="EQUALS">list</Filter>
<Filter name="object_code" criteria="EQUALS">myObject_v1</Filter>
<Filter name="partition_code" criteria="EQUALS">ABC</Filter>
</ViewQuery>
<ObjectQuery>
<Filter name="object_code" criteria="EQUALS">myObject_v1</Filter>
</ObjectQuery>
</NikuDataBus>
</obj:ReadContentPack>
Important! Use care when applying these arguments. The user performing the export
must have a thorough understanding of content data on the source and target systems.
singleContentType
Exports a specific content type. You must specify the singleContentType argument
in the XML read file. The format for the argument in the XML read file is as follows:
<args name="singleContentType" value="content type">
where content type can be any of the following supported content types:
■ Job Definitions
■ Lookups
■ Menu Manager
■ Objects
■ Portlet Pages
■ Portlets
■ Processes
■ Queries
No_dependencies
Limits the amount of data exported for a specific content type. The format for the
argument in the XML read file is as follows:
<args name=“no_dependencies” value=“true/false”/>
where true exports incremental changes for a content type without dependencies.
By default, the no_dependencies flag is false, which means any dependencies that
exist for the value specified in the singleContentType argument are exported if the
value is not specified.
The following table shows the content types that are exported when the
no_dependencies argument is set to true.
The following example shows an XML read file where portlet data without any
dependency data is requested. The arguments are shown in bold.
To facilitate the export of portlets, you can export this content type from Studio. The
Portlets list page has an Export button that lets you export basic data on the portlets as
individual XML files. The output XML files, which are packaged into a zip file, contain
basic information with no dependencies.
By default, OverrideAutoNumbering=TRUE.
When a subobject is exported, the XOG export file includes the following elements:
■ Custom attributes and modified views for the subobject
■ Custom attributes and modified views for the master object
■ Referenced lookups
If a subobject includes custom fiscal time-varying attributes, the master object export
file includes the following additional elements:
■ Fiscal entity
■ Fiscal time period
■ Department OBS associations
The default attribute on the UITheme element determines whether a UI theme being
imported is the default theme for the system. If the default attribute is set to true, the
theme becomes the system default theme. If you are importing multiple UI themes in
one import file, only one UI theme is expected to have the default attribute set to true.
If multiple themes in a single import have the default attribute set to true, the last
theme processed with the attribute set to true becomes the default theme.
The following section of the cmn_ui_themes_write.xml shows the default attribute set
to false. In this case, the UI theme being imported is not the default CA Clarity UI theme.
<action code="odf.@objectCode@Create"/>
<action code="odf.deleteObjectInstancesConfirm"/>
Example:
<list>
....
<action code="odf.testCreate"/>
<action code="odf.deleteObjectInstancesConfirm"/>
....
</list>
Example
<CustomInformation>
<ColumnValue name=”CEO_NAME”>ceo2</ColumnValue>
<ColumnValue name=”DEFAULTWEBSITE”>http://www1</ColumnValue>
<ColumnValue name=”NUM_OF_EMPLOYEES”>100</ColumnValue>
<ColumnValue name=”OPPORTUNITY”>1</ColumnValue>
</CustomInformation>
InvokeAction API
The InvokeAction API is a general-purpose area for administrative actions that fall
outside the categories of data import and export. There is no corresponding schema
(XSD) for this API and accordingly there is no XSD validation.
FlushCache Elements
The following describes the FlushCache root elements:
group
Optional. Identifies the cache group to be flushed.
Type: String
id
Optional. Identifies the cache ID to be flushed.
Type: String
In the following example, the xmlns= attribute is using the InvokeAction API. There is no
reference to a schema or XSD.
<FlushCache xmlns=”http://www.niku.com/xog/InvokeAction”>
<group>Resources</group>
<id>ConfigurationProperties</id>
</FlushCache>
Process Elements
The following describes the Process root elements:
code
Required. Identifies the process ID.
Type: String
request
Optional. Identifies the root element of the process input document.
Type: Any
<Process xmlns="http://www.niku.com/xog/InvokeAction">>
<code>remedy_writeIncident</code>
<request>
<incidents>
<incident assignedTo="jstewart"
categoryCode="telcom"
estimatedEffort="240"
estimatedEffortUnit="MINUTES"
externalId="tc421"
impactCode="High"
incidentCode="RMD-TC421"
priorityCode="Medium"
reportedBy="rcordry"
resolutionDate="2005-03-03T12:30:00"
sourceCode="REMEDY" startDate="2005-03-01T08:00:00"
statusCode="Closed"
subject="Phone system down" typeCode="incident"
urgencyCode="High">
<description>
Tried making call, no dial tone.
</description>
<notes/>
<efforts enterOnce="true">
<effort quantity="3.5" quantityUnit="HOURS"
resourceCode="jstewart"
transactionDate="2005-03-03"/>
</efforts>
<contacts/>
</incident>
</incidents>
</request>
</Process>
Query API
It is often not sufficient to read data only as predefined objects. For example, full object
instance data including dependencies may be too much detail. Or, you may need data
from multiple objects or from database tables that have no defined objects.
You can use the Query API to execute Studio NSQL-based queries from the XOG. The
Studio Query is referenced by its code. The response is formatted as record elements.
code: sample.getresources
NSQL:
SELECT
@SELECT:DIM:USER_DEF:IMPLIED:RESOURCE:R.FULL_NAME:RSRC@,
@SELECT:DIM_PROP:USER_DEF:IMPLIED:RESOURCE:MR.FULL_NAME:MGR@,
@SELECT:METRIC:USER_DEF:IMPLIED:COUNT(*):PROJECT_COUNT:AGG@
FROM SRM_PROJECTS P,
SRM_RESOURCES R,
SRM_RESOURCES MR,
CMN_SEC_USERS U
WHERE P.CREATED_BY = U.ID
AND U.ID = R.USER_ID
AND R.MANAGER_ID = MR.USER_ID
AND @FILTER@
GROUP BY R.FULL_NAME,
MR.FULL_NAME
HAVING @HAVING_FILTER@
<Query xmlns="http://www.niku.com/xog/Query">
<Code>sample.getresources</Code>
</Query>
Example: Result
<QueryResult xmlns="http://www.niku.com/xog/Query">
<Code>sample.getresources</Code>
<Records>
<Record>
<rsrc>Administrator, Niku</rsrc>
<project_count>178</project_count>
<manager>Administrator, Niku</manager>
</Record>
</Records>
</QueryResult>
Exact Match
To filter on a specific value for a column, use the column name directly and pass the
value in which you are interested.
The following example retrieves a single row for resource CorpApp Administrator. Any
deviation in the rsrc value of 'Administrator, CorpApp' returns nothing.
Example
<Query xmlns="http://www.niku.com/xog/Query">
<Code>sample.getresources</Code>
<Filter>
<rsrc>Administrator, CorpApp</rsrc>
</Filter>
</Query>
The wildcard filter behaves like any grid filter field. It automatically appends a wildcard
asterisk (*) to the end of a value. You can also insert your own asterisk anywhere in the
filter string including at the beginning. The latter is not recommended when filtering
very large data sets, as performance is severely degraded.
<Query xmlns="http://www.niku.com/xog/Query">
<Code>sample.getresources</Code>
<Filter>
<rsrc_wildcard>Admin</rsrc_wildcard>
</Filter>
</Query>
Another Example
<Query xmlns="http://www.niku.com/xog/Query">
<Code>sample.getresources</Code>
<Filter>
<rsrc_wildcard>Admin*CorpApp</rsrc_wildcard>
</Filter>
</Query>
The from and to filters perform a "greater than or equal to” and “less than or equal to”
operation on a given value. Use these filters to capture a bounded range or separately
for an unbounded range.
The following unbounded example returns all records with project_count greater than
or equal to 1:
<Query xmlns="http://www.niku.com/xog/Query">
<Code>sample.getresources</Code>
<Filter>
<project_count_from>1</project_count_from>
</Filter>
</Query>
Example: To Filter
The following bounded example returns all records with rsrc values that start with the
letters A through E:
<Query xmlns="http://www.niku.com/xog/Query">
<Code>sample.getresources</Code>
<Filter>
<rsrc_from>A</rsrc_from>
<rsrc_to>E</rsrc_to>
</Filter>
</Query>
For more information on using GEL with the XOG, see the chapter named "GEL Scripting
(see page 77)."
Example
<gel:script
xmlns:core="jelly:core"
xmlns:xog="http://www.niku.com/xog"
xmlns:gel="jelly:com.niku.union.gel.GELTagLibrary"
xmlns:soap="jelly:com.niku.union.gel.SOAPTagLibrary"
xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:f="jelly:com.niku.union.gel.FileTagLibrary"
xmlns:nikuq="http://www.niku.com/xog/Query"
xmlns:util="jelly:util">
<!-- Construct the Query API request for the NSQL query "xog_query_test" -->
<gel:parse var="xoginput">
<Query xmlns="http://www.niku.com/xog/Query">
<Code>xog_query_test</Code>
</Query>
</gel:parse>
</gel:script>
GEL Overview
Important! Before you use GEL, read the Customization Policy. See your CA account
representative.
GEL (Generic Execution Language) is a tool you can use to turn XML into executable
code. It is based on Jelly, a jakarta.apache.org Commons project. It has been extended
and embedded into CA Clarity PPM to enable custom logic to solve business problems.
GEL is the basis for the enterprise application integration framework within CA Clarity
PPM.
With GEL you can invoke and process a variety of data sources:
Web services
GEL can read or write to any SOAP-based web service. This includes the XOG web
services.
File system
GEL can read or write to any delimited file including those on local disks, network
disks or disk arrays.
FTP
GEL can upload or download to FTP servers.
JDBC
GEL uses JDBC to access RDBMS to read or write data.
For more information about Jelly and the Jakarta Commons Project, see
http://jakarta.apache.org/commons http://jakarta.apache.org/commons.
GEL Setup
The GEL run-time is packaged with XOG in the XOG client. Once the client is installed,
you can use the GEL command in the bin directory of the XOG client to validate and
execute GEL scripts.
In the following example the hello.xml script is first validated, and then the hello.xml
script, located in the XOG client home directory, is executed.
GEL Basics
The following sections explain the basic rules for using GEL.
Note that you can add a comment anywhere in a GEL script by using the structure <!--
comment -->.
In the following Hello World example, two tag libraries are defined for the script: Core
and GELTagLibrary as seen in tag pairs such as: <core:???></core:???> and
<gel:???></gel:???>.
Note: An entire script always resides within the GEL script tag.
Variables are used extensively throughout GEL scripts. Many tags can set variables. An
example of a tag that can set variables is core:set. You can use the common syntax
${variable_name} to reference variables. In the Hello World example, 'i' is a variable
which is set by the forEach tag and is incremented with each loop.
Core is a built-in Jelly library that contains general-purpose tags (such as forEach that is
used in the previous example). GELTagLibrary is the primary GEL library; it contains
general-purpose tags not found in core and tags that are particular to CA Clarity PPM.
<core:choose>
<core:choose>
<core:when test="${row[6].equals("")}">
…
</core:when>
<core:otherwise>
…
</core:otherwise>
</core:choose>
<core:switch>
<core:switch on="${caseType}">
<core:case fallThru="true" value="Incident"/>
<core:case value="Problem">
…
</core:case>
<core:case fallThru="true" value="Question"/>
<core:default>
…
</core:default>
</core:switch>
<core:forEach>
<core:forEach trim="true" items="${queryResult.rowsByIndex}" var="row">
…
</core:forEach>
Variables
Variables in GEL scripts are declared at the time of use. There are no declaration blocks,
like the ones you might find in other languages. GEL provides the following ways to
store a variable value:
<gel:parameter>
This tag allows values to be passed into a GEL script from a CA Clarity process.
Inside the GEL script, you can refer to the parameter as you would any other
variable (that is, using the ${variablename} syntax). The optional attribute
secure="true" causes CA Clarity to hide the actual value in the user interface with
asterisks (*).
<gel:parameter var="XOGUsername" default="admin"/>
<gel:parameter var="XOGPassword" default="password" secure="true"/>
<core:set>
This tag is used to set basic variables; that is, ones that do not need to be extracted
from an XML document. Refer to the variable using the ${variablename} syntax.
<core:set value="1" var="yes"/>
<gel:out>${yes}</gel:out>
<gel:set>
Use this tag when it is necessary to extract the value of the variable from an XML
document. This tag differs from the <core:set> tag in that it takes a select attribute
which in turn requires an XPath statement. If you are unfamiliar with XPath, think of
it as a hierarchy mapping of the XML document. In the example below, the select
statement points the way to the Statistics node of a XOG output file.
<gel:set asString="false"
select="$XOGresult/SOAP-ENV:Envelope/SOAP-ENV:Body/NikuDataBus/XOGOutput/Stat
istics"
var="stats"/>
<gel:persist>
This tag allows you to set variables with a scope that extends beyond the current
script.
<gel:parse>
The <gel:parse> tag is used to create an XML document in memory. This is how you
will build XOG requests. The tag can be used to generate an entire XML document,
or specific nodes that can later be attached into an existing XML document.
<gel:parse var="loadContent">
<NikuDataBus xmlns:xsi=http://www.w3.org/2001/XMLSchema-instance
xsi:noNamespaceSchemaLocation="../xsd/nikuxog_resource.xsd">
<Header version="12.0.0.5028" action="write" objectType="resource"
externalSource="ORACLE-FINANCIAL"/>
<Resources>
<Resource resourceId="abc" isActive="true">
<PersonalInformation lastName="doe" firstName="john"
emailAddress="[email protected]"/>
</Resource>
</Resources>
</NikuDataBus>
</gel:parse>
Built-in Parameters
Custom Action GEL scripts associated with processes have the following parameters
available to them:
Object instance ID
If no object is associated with the process, the ID is -1. Otherwise the
${gel_objectInstanceId} parameter contains the object instance ID.
Process ID
${gel_processId} is the process identifier; all instances of this process share this
identifier.
Process instance ID
${gel_processInstanceId} is the process instance identifier; all instances have a
unique value.
All built-in parameters have a "gel_" prefix and are of data type - numeric.
However, you might need to take additional steps to ensure the proper trust is
established between the GEL script and web service host when:
■ The SSL certificate is self-signed, which means you generated the certificate using
your own certificate authority.
■ The expiration date on a certificate issued by a well-known certificate authority has
been reached.
This process explains how to set up a self-signed SSL certificate on a web-service host.
For the setup, identify the Java SDKs that will be running GEL scripts. Here is how:
■ If GEL scripts are being run outside of the application using the XOG client, the first
Java SDK listed in your PATH is the one running the scripts.
■ If GEL scripts are running inside a process in the application, typically the Java SDK
running the BG service on the application server is the one running the scripts.
This directory is where the cacerts Java keystore resides. The keystore holds
certificate-authority certificates used for establishing trust. The keystore password
for this keystore is always changeit.
4. Import your certificate into the cacerts keystore with the Java keytool command.
keytool -keystore cacerts -storepass changeit -import -file c:\temp\mycert.cer
-trustcacerts -alias mycert
Assign the alias value to a value not currently in use in the keystore.
You may be prompted on whether you want to trust this certificate. If so, answer
Yes.
5. If you are setting up the self-signed certificate for the BG service for GEL scripts that
run in processes, restart the BG service.
The keystore is loaded one time when the CA Clarity services are started.
The property gelTagRestriction is referenced to determine if gel tags are restricted. The
property is on the system element. It is an optional element.
Use the values on or off to set GEL tag restrictions for the environment. Specifying any
value other than off enables GEL tag restriction. GEL tag restrictions are off by default.
Examples
or
<gel:script xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:core="jelly:core"
xmlns:gel="jelly:com.niku.union.gel.GELTagLibrary"
xmlns:soap="jelly:com.niku.union.gel.SOAPTagLibrary"
xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:sql="jelly:sql"
xmlns:xog="http://www.niku.com/xog"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<!-- 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:out>Couldn't Log in. Check the username/password.</gel:out>
</core:when>
<core:otherwise></core:otherwise>
</core:choose>
<!--Run XOG and attach an input file...alternatively the Body section can be the NikuDatabus section
of an input file-->
<soap:invoke endpoint="${XOGURL}/niku/xog" 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>
<gel:parse var="xmlindoc" file="C:\Clarity\XOG\xml\rsm_resources_read.xml"/>
<gel:include select="$xmlindoc"/>
</soapenv:Body>
</soapenv:Envelope>
</soap:message>
</soap:invoke>
<!-- Read the output and extract some information from it -->
<gel:set asString="true"
select="$runresult/SOAP-ENV:Envelope/SOAP-ENV:Body/NikuDataBus/XOGOutput/Status/@state"
var="XOGoutcome"/>
<core:switch on="${XOGoutcome}">
<core:case value="SUCCESS">
<gel:forEach
select="$runresult/SOAP-ENV:Envelope/SOAP-ENV:Body/NikuDataBus/Resources/Resource"
var="outputnode">
<gel:out><gel:expr select="$outputnode/PersonalInformation/@displayName"/></gel:out>
</gel:forEach>
<gel:set asString="false"
select="$runresult/SOAP-ENV:Envelope/SOAP-ENV:Body/NikuDataBus/XOGOutput/Statistics"
var="stats"/>
<gel:out>Success! Total number of records: <gel:expr
select="$stats/@totalNumberOfRecords"/></gel:out>
</core:case>
<core:case value="FAILURE">
<gel:set asString="false"
select="$runresult/SOAP-ENV:Envelope/SOAP-ENV:Body/NikuDataBus/XOGOutput/Statistics"
var="stats"/>
<gel:out>XOG failed. Out of <gel:expr select="$stats/@totalNumberOfRecords"/> records,
<gel:expr select="$stats/@failureRecords"/> failed.</gel:out>
</core:case>
<core:default>
<gel:out>Couldn't find XOG output summary. Please check the output file manually.</gel:out>
</core:default>
</core:switch>
</gel:script>
xsi:noNamespaceSchemaLocation="../xsd/nikuxog_read.xsd">
<Header version="12.0.0.5028" action="read" objectType="resource"
externalSource="NIKU">
<args name="include_contact" value="false"/>
<args name="include_management" value="false"/>
<args name="include_custom" value="false"/>
<args name="include_financial" value="false"/>
</Header>
<Query>
<Filter name="isActive" criteria="EQUALS">true</Filter>
</Query>
</NikuDataBus>
</soap-env:Body>
</soap-env:Envelope>
</soap:message>
</soap:invoke>
<gel:out><gel:expr select="$result"/></gel:out>
</gel:script>
Database Operations
GEL can connect to one or more databases, and it is not limited to CA Clarity PPM
databases. Both Oracle and SQL Server are supported. See the following examples.
Most connection problems stem from either login errors or JDBC issues. The following
example shows a JDBC error.
E:\Clarity\XOG\bin>gel -script gelsqlexample.xml
ERROR 2005-08-31 16:45:40,549 [main] sql.SetDataSourceTag Could not load driver
class:
java.lang.ClassNotFoundException: oracle.jdbc.driver.OracleDriver
java.lang.ClassNotFoundException: oracle.jdbc.driver.OracleDriver…
If you see an error like this, find the necessary JDBC classes and copy them to the GEL
classpath.
Note that the GEL engine does not search the environment path for these files. GEL only
looks in the lib folder (and the CA Clarity PPM server classpath, if it has been installed on
the local computer). For Oracle, ojdbc14.jar should be copied to the lib folder. For
SQLServer, Microsoft’s JDBC drivers must be made available to the GEL engine. Copy the
files msbase.jar, mssqlserver.jar, and msutil.jar to the lib directory (after you have
installed the latest JDBC driver from Microsoft, or copy the files from the CA Clarity
PPM\lib directory).
The following example connects to a CA Clarity database and prints out the results of a
basic query.
<gel:script xmlns:core="jelly:core"
xmlns:gel="jelly:com.niku.union.gel.GELTagLibrary"
xmlns:sql="jelly:sql">
<sql:setDataSource url="jdbc:oracle:thin:@localhost:1521:NIKU"
driver="oracle.jdbc.driver.OracleDriver"
user="${ClarityUser}" password="${ClarityPassword}"/>
<sql:query var="result">
select name, unique_name from srm_projects
</sql:query>
<core:forEach trim="true" items="${result.rowsByIndex}" var="row">
<core:forEach var="field" items="${row}">
<gel:out>${field}</gel:out>
</core:forEach>
</core:forEach>
</gel:script>
The sql:setDataSource statement makes the connection to the database. Note the use
of parameters for the login credentials. Using gel:parameter allows the UserID and
Password to be set from within CA Clarity PPM (furthermore, the secure="true"
declaration masks the password in the UI) if this script is called from a CA Clarity PPM
process.
sql:query encloses the actual query, and the two core:forEach loops cycle through the
result. The first core:forEach loop runs through the rows; the embedded core:forEach
reads the columns in each row.
The results set for this code prints out one field per line. The output would look similar
to the following example.
Project ABC
P001
Consumer Confidence Project
P002
John’s Super Special Project
P003
.
One way around this issue is to programmatically create rows of data. The following
example is for a query that returns three columns per row. By using step="3", you can
process one logical row at a time. Each item is referred to by using an index offset.
<!-- 3 fields per row, so jump by 3 to build the next row -->
<core:forEach var="field" items="${queryResult.columnNames}" indexVar="i"
step="3">
<file:line>
<file:column value="${row[i]}"/>
<file:column value="${row[i+1]}"/>
<file:column value="${row[i+2]}"/>
</file:line>
</core:forEach>
</core:forEach>
File Operations
GEL can open a file (and if it is an XML file or a comma-delimited file, parse out all the
nodes and attributes), read the file, and write to it. It can also perform FTP operations
on files. It cannot, however, create a directory to put files in, move files around, or
delete files after it is done with them. This can be a problem when working with the
Documents XOG.
<!-- The GEL parse statement can be given the name of an XML file, or, as shown below, an XML node
structure. -->
<!-- Use it to create the main XML shell and add in non-repetitive sections like the columns section
below -->
<gel:parse var="loadContent">
<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.0.0.5028"/>
<matrices>
<matrix defaultCurrencyCode="USD" name="D&B COST/RATE MATRIX" type="Cost/Rate">
<columns>
<column name="entity"/>
<column name="department"/>
<column name="resourceClass"/>
<column name="transactionClass"/>
<column name="resourceRole"/>
<column name="resource"/>
<column name="inputTypeCode"/>
</columns>
<matrixRows>
</matrixRows>
</matrix>
</matrices>
</NikuDataBus>
</gel:parse>
<!-- Build the sections. Skip the headers on the first line -->
<core:forEach items="${infileParsed.rows}" var="row" indexVar="i" begin="1" step="1">
<!-- This GEL:parse statement creates the node in memory -->
<gel:parse var="matrixRowNode">
<matrixRow actualCost="${row[11]}" currencyCode="${row[12]}" entity="${row[2]}"
department="${row[3]}"
fromDate="${row[0]}" rate="${row[9]}" transactionClass="${row[5]}" resourceClass="${row[4]}"
resourceRole="${row[6]}" inputTypeCode="${row[8]}" resource="${row[7]}"
standardCost="${row[10]}"
toDate="${row[1]}"/>
</gel:parse>
<!-- GEL:set below adds the node in memory to the main XML file we’re building -->
<gel:set value="${matrixRowNode}" select="$loadContent/NikuDataBus/matrices/matrix/matrixRows"
insert="true"/>
</core:forEach>
Additionally, this example illustrates another way of building the XML file using the
GEL:set tag.
<gel:script xmlns:core="jelly:core"
xmlns:gel="jelly:com.niku.union.gel.GELTagLibrary"
xmlns:file="jelly:com.niku.union.gel.FileTagLibrary"
xmlns:sql="jelly:sql">
<gel:parameter
default="jdbc:microsoft:sqlserver://myserver:1433;DatabaseName=pmodev;SelectMethod=cursor"
var="clarityURL"/>
<gel:parameter default="niku" var="clarityUser"/>
<gel:parameter default="niku" secure="true" var="clarityPassword"/>
<gel:parameter default="D:\App\pmo\xog\xml" var="infolder"/>
<gel:parameter default="${infolder}\prj_projectswrite.xml" var="infile"/>
<gel:parameter default="D:\App\pmo\xog\xml" var="XOGlogFolder"/>
<gel:parameter default="${infolder}\DocumentsXOGLoad.xml" var="docXOGloadfile"/>
<gel:parameter default="${infolder}\docslist.gel" var="doclistfile"/>
<!-- Build the XOG file for the documents. The process is to insert a copy of the node -->
<!-- currently in memory, then modify the attributes as necessary. After that, the -->
<!-- node in memory is reset to the current one. Also note that the Documents XOG -->
<!-- requires the DBID of the project ...so we have to connect to Clarity first. -->
<core:if test="${hasDocs}">
</core:if>
</gel:forEach>
</gel:script>
Integration Processes
A process is a way to automate repetitive steps that would otherwise be performed
manually through the CA Clarity user interface. A process can act on any object type.
The process includes a series of steps that result in a completed end point. A process
has a start step (required), an end step (required), and one or more intermediate steps.
Each step included in the process performs one or more actions that moves the process
toward its completion. The following actions are available:
Manual
Performed by a user in the user interface.
System
Completed by a CA Clarity system action.
Job
Completed by running a job either scheduled or started manually from the user
interface.
Custom action
Available for normal process steps that include custom GEL code. These GEL
snippets use tag libraries to interact with various data sources and data
destinations.
You can disconnect integration processes from any specific object. This fact allows you
to:
■ Schedule integration processes in CA Clarity
■ Initiate integration processes in real-time in one of the following ways:
– Manually from the GUI
– Using a XOG web service request
From a background job, real time integrations enable external applications to send data
proactively. The request starts an integration process and then passes the incoming
data.
Note: For performance reasons, the XOG web service request does not initiate
integration processes for all objects. The objects that can have integration processes
initiated by the XOG web service are projects and incidents.
http://<servername:port>/niku/wsdl
The WSDL page is an HTML page with a list of XOG service categories.
The XOG services as listed on the WSDL page fall under the following categories:
■ InvokeAction
■ Query
■ Object
You can display a list of all included services by clicking a category link.
For example, if you click InvokeAction, you'll see the following services:
■ FlushCache
■ Process
The following figure shows the links for the services available under InvokeAction.
These emitter tools can interpret the XOG WSDL to enable communication with CA
Clarity as a web service.
Because the XOG WSDL is compatible with AXIS and .NET these emitter tools generate
an accurate and usable proxy API from the XOG WSDL. This facilitates interaction with
the XOG services within the context of AXIS or .NET.
Object WSDL
To access the Object WSDL
1. Use the following URL to go to the Server page that lists the XOG Object services:
http://<servername:port>/niku/wsdl/Object
2. Click an object link such as Project to access the Project WSDL. Click the All Objects
link to access the WSDL for all objects from a single page.
InvokeAction WSDL
To access the InvokeAction WSDL service category
1. Use the following URL to go to the Server page that lists the XOG InvokeAction
services:
http://<servername:port>/niku/wsdl/InvokeAction
<definitions xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
xmlns:tns="http://www.niku.com/xog/InvokeAction"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns="http://schemas.xmlsoap.org/wsdl/"
name="InvokeActionProcess"
targetNamespace="http://www.niku.com/xog/InvokeAction">
<types>
<xsd:schema elementFormDefault="qualified"
targetNamespace="http://www.niku.com/xog/InvokeAction">
<xsd:complexType name="Process">
<xsd:sequence>
<xsd:element name="code" type="xsd:string" minOccurs="1" maxOccurs="1"/>
<xsd:element name="request" minOccurs="0" maxOccurs="1">
<xsd:complexType>
<xsd:sequence>
<xsd:any/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
</xsd:sequence>
</xsd:complexType>
<xsd:element name="Process" type="tns:Process"/>
<xsd:element name="Auth">
<xsd:complexType>
<xsd:sequence>
<xsd:element minOccurs="0" name="SessionID" type="xsd:string"/>
<xsd:element minOccurs="0" name="Username" type="xsd:string"/>
<xsd:element minOccurs="0" name="Password" type="xsd:string"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:element name="Login">
<xsd:complexType>
<xsd:sequence>
<xsd:element minOccurs="1" name="Username" type="xsd:string"/>
<xsd:element minOccurs="0" name="Password" type="xsd:string"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:element name="SessionID" type="xsd:string"/>
<xsd:element name="Logout">
<xsd:complexType>
<xsd:sequence>
<xsd:element maxOccurs="1" minOccurs="0" name="SessionID" type="xsd:string"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
</xsd:schema>
</types>
<message name="Process">
<part element="tns:Process" name="body"/>
<part element="tns:Auth" name="header"/>
</message>
<message name="Auth">
<part element="tns:Auth" name="header"/>
</message>
<message name="Login">
<part element="tns:Login" name="parameters"/>
</message>
<message name="LoginResponse">
<part element="tns:SessionID" name="body"/>
</message>
<message name="Logout">
<part element="tns:Logout" name="parameters"/>
</message>
<portType name="ProcessPort">
<operation name="Process">
<input message="tns:Process"/>
</operation>
<operation name="Login">
<input message="tns:Login"/>
<output message="tns:LoginResponse"/>
</operation>
<operation name="Logout">
<input message="tns:Logout"/>
</operation>
</portType>
<binding name="ProcessSoapBinding" type="tns:ProcessPort">
<soap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http"/>
<operation name="Process">
<soap:operation soapAction="http://www.niku.com/xog/InvokeAction/Process"
style="document"/>
<input>
<soap:body parts="body" use="literal"/>
<soap:header message="tns:Auth" part="header" use="literal"/>
</input>
</operation>
<operation name="Login">
<soap:operation soapAction="http://www.niku.com/xog/InvokeAction/Login"
style="document"/>
<input>
<soap:body use="literal"/>
</input>
<output>
<soap:body use="literal"/>
</output>
</operation>
<operation name="Logout">
<soap:operation soapAction="http://www.niku.com/xog/InvokeAction/Logout"
style="document"/>
<input>
<soap:body use="literal"/>
</input>
</operation>
</binding>
<service name="ProcessService">
<documentation>Invoke Action Process Service
</documentation>
<port binding="tns:ProcessSoapBinding" name="ProcessService">
<soap:address location="http://<servername:port>//xog"/>
</port>
</service>
</definitions>
The following example shows the SOAP representation of the Project object WSDL for
the ReadProject operation. The bolded DataBus document shows the correct
representation of the DataBus <xsd:any> type.
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<soap:Header>
<Auth xmlns="http://www.niku.com/xog/Object">
<SessionID>5000156__171120a:10a241ff830:-7f711143139816999</SessionID>
</Auth>
</soap:Header>
<soap:Body>
<ReadProject xmlns="http://www.niku.com/xog/Object">
<DataBus xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:noNamespaceSchemaLocation="../xsd/xog_read.xsd" xmlns="">
<Header version="12.0.0.5028" externalSource="NIKU" />
<Query>
<Filter name="subject" criteria="EQUALS">admin</Filter>
</Query>
</DataBus>
</ReadProject>
</soap:Body>
</soap:Envelope>
Query WSDL
The WSDL for queries is not pre-packaged. A WSDL for a query will exist only if an NSQL
query was created in Studio. Depending on the number of NSQL queries already defined
in Studio, you will see the corresponding numbers of WSDLs.
<definitions xmlns:tns="http://www.niku.com/xog/Query"
xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns="http://schemas.xmlsoap.org/wsdl/"
name="DemandforResourceQuery"
targetNamespace="http://www.niku.com/xog/Query">
<types>
<xsd:schema elementFormDefault="qualified" targetNamespace="http://www.niku.com/xog/Query">
<xsd:complexType name="DemandforResourceFilter">
<xsd:sequence>
<xsd:element maxOccurs="1" minOccurs="0" name="actual_hours" type="xsd:string"/>
<xsd:element maxOccurs="1" minOccurs="0" name="actual_hours_from"
type="xsd:string"/>
<xsd:element maxOccurs="1" minOccurs="0" name="actual_hours_to" type="xsd:string"/>
<xsd:element maxOccurs="1" minOccurs="0" name="allocated_hours" type="xsd:string"/>
<xsd:element maxOccurs="1" minOccurs="0" name="allocated_hours_from"
type="xsd:string"/>
<xsd:element maxOccurs="1" minOccurs="0" name="allocated_hours_to"
type="xsd:string"/>
<xsd:element maxOccurs="1" minOccurs="0" name="estimated_effort" type="xsd:string"/>
<xsd:element maxOccurs="1" minOccurs="0" name="estimated_effort_from"
type="xsd:string"/>
<xsd:element maxOccurs="1" minOccurs="0" name="estimated_effort_to"
type="xsd:string"/>
<xsd:element maxOccurs="1" minOccurs="0" name="resource_name" type="xsd:string"/>
<xsd:element maxOccurs="1" minOccurs="0" name="resource_name_from"
type="xsd:string"/>
<xsd:element maxOccurs="1" minOccurs="0" name="resource_name_to" type="xsd:string"/>
<xsd:element maxOccurs="1" minOccurs="0" name="resource_name_wildcard"
type="xsd:string"/>
<xsd:element maxOccurs="1" minOccurs="0" name="resource_id" type="xsd:string"/>
<xsd:element maxOccurs="1" minOccurs="0" name="resource_id_from" type="xsd:string"/>
<xsd:element maxOccurs="1" minOccurs="0" name="resource_id_to" type="xsd:string"/>
<xsd:element maxOccurs="1" minOccurs="0" name="calendar_time_key"
type="xsd:string"/>
<xsd:element maxOccurs="1" minOccurs="0" name="calendar_time_key_from"
type="xsd:string"/>
<xsd:element maxOccurs="1" minOccurs="0" name="calendar_time_key_to"
type="xsd:string"/>
<xsd:element maxOccurs="1" minOccurs="0" name="calendar_time_key_wildcard"
type="xsd:string"/>
<xsd:element maxOccurs="1" minOccurs="0" name="calendar_time_level"
type="xsd:string"/>
<xsd:element maxOccurs="1" minOccurs="0" name="calendar_time_level_from"
type="xsd:string"/>
</xsd:sequence>
</xsd:complexType>
<xsd:element name="QueryResult" type="tns:DemandforResourceQueryResult"/>
<xsd:element name="Auth">
<xsd:complexType>
<xsd:sequence>
<xsd:element minOccurs="0" name="SessionID" type="xsd:string"/>
<xsd:element minOccurs="0" name="Username" type="xsd:string"/>
<xsd:element minOccurs="0" name="Password" type="xsd:string"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:element name="Login">
<xsd:complexType>
<xsd:sequence>
<xsd:element minOccurs="1" name="Username" type="xsd:string"/>
<xsd:element minOccurs="0" name="Password" type="xsd:string"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:element name="SessionID" type="xsd:string"/>
<xsd:element name="Logout">
<xsd:complexType>
<xsd:sequence>
<xsd:element maxOccurs="1" minOccurs="0" name="SessionID" type="xsd:string"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
</xsd:schema>
</types>
<message name="Query">
<part element="tns:Query" name="body"/>
<part element="tns:Auth" name="header"/>
</message>
<message name="QueryResult">
<part element="tns:QueryResult" name="body"/>
</message>
<message name="Auth">
<part element="tns:Auth" name="header"/>
</message>
<message name="Login">
<part element="tns:Login" name="parameters"/>
</message>
<message name="LoginResult">
<part element="tns:SessionID" name="body"/>
</message>
<message name="Logout">
<part element="tns:Logout" name="parameters"/>
</message>
<portType name="DemandforResourceQueryPort">
<operation name="Query">
<input message="tns:Query"/>
<output message="tns:QueryResult"/>
</operation>
<operation name="Login">
<input message="tns:Login"/>
<output message="tns:LoginResult"/>
</operation>
<operation name="Logout">
<input message="tns:Logout"/>
</operation>
</portType>
<binding name="DemandforResourceQuerySoapBinding" type="tns:DemandforResourceQueryPort">
<soap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http"/>
<operation name="Query">
<soap:operation soapAction="http://www.niku.com/xog/Query/DemandforResource"
style="document"/>
<input>
<soap:body parts="body" use="literal"/>
<soap:header message="tns:Auth" part="header" use="literal"/>
</input>
<output>
<soap:body use="literal"/>
</output>
</operation>
<operation name="Login">
<soap:operation soapAction="http://www.niku.com/xog/Query/Login" style="document"/>
<input>
<soap:body use="literal"/>
</input>
<output>
<soap:body use="literal"/>
</output>
</operation>
<operation name="Logout">
<soap:operation soapAction="http://www.niku.com/xog/Query/Logout" style="document"/>
<input>
<soap:body use="literal"/>
</input>
</operation>
</binding>
<service name="DemandforResourceQueryService">
<documentation>Demand for Resource Query Service
</documentation>
<port binding="tns:DemandforResourceQuerySoapBinding"
name="DemandforResourceQueryService">
<soap:address location="http://<servername:port>//xog"/>
</port>
</service>
</definitions>
Important! You must include the -W flag when generating the proxy API from the XOG
WSDL definitions. This indicates that the WSDL is of style: document/literal. If you do
not include the -W flag, it is assumed that the WSDL is of style: wrapped/literal, which is
incorrect. Omitting the flag will not throw an error in the proxy generation, but the
resulting API will cause runtime errors when trying to communicate with the XOG
interfaces.
The default output location of the proxy files follows the namespace convention defined
in the WSDL. Because the targetNamespace defined in the All Object WSDL is
http://www.niku.com/xog/Object, the resulting proxy classes from the command-line
request reside in D:\axis\com\niku\www\xog\Object.
Application
Use the application XOG object to view inbound and outbound application object
instances.
Schema Name
nikuxog_application.xsd
Prerequisites
The prerequisites (if any) are the same as that of other non-project investment objects
(NPIO).
The business rules and processing are the same as that of other NPIOs.
Read Filters
Error Handling
Asset
Use the asset XOG object to view inbound and outbound asset object instances.
Schema Name
nikuxog_asset.xsd
Prerequisites
The prerequisites (if any) are the same as that of other non-project investment objects
(NPIO).
The business rules and processing are the same as that of other NPIOs.
Read Filters
Error Handling
Benefit Plan
Use the benefit plan XOG object to view inbound and outbound financial benefit plans.
Benefit plans are created for existing investments.
Schema Name
nikuxog_benefitPlan.xsd
Prerequisites
Before using this XOG object, make sure the following objects exist in CA Clarity:
■ Investments
■ Entity
■ Time periods
The following business rules and processing apply to this XOG object:
■ A Benefit Plan object is created by setting up the benefit plan default properties.
■ Plan details (line items) are added to the benefit plan.
■ Existing plan detail records are not deleted.
Read Filters
Error Handling
Schema Mapping
Investment Code
Required. Defines the Investment code.
Table and Column: OBJECT_ID
Type: String
Investment Type
Required. Defines the investment type.
Table and Column: OBJECT_CODE
Type: String
Name
Required. Defines the benefit plan name.
Table and Column: NAME
Type: String
Period Type
Defines the time period type (for example, monthly).
Table and Column: PERIOD_TYPE_CODE
Type: String
Revision
Used only in XOG read result. Represents the revision of the budget plan.
Table and Column: REVISION
Type: Integer
StartPeriod
Required. Defines the start time period name.
Table and Column: START_PERIOD_ID
Type: String
Budget Plan
Use the budget plan XOG object to view inbound and outbound budget plans. A budget
plan is created for an existing investment. The structure of a budget plan must meet the
following criteria:
■ When the forceReplace value is true, the budget plan must match the associated
source cost plan.
■ When the Replace value is false, the budget plan must match the associated source
cost plan and the latest approved budget. If there is no latest approved budget, the
structure must match the current cost plan of record.
Schema Name
nikuxog_budgetPlan.xsd
Prerequisites
Before using this XOG object, make sure the following objects exist in CA Clarity:
■ Investments
■ Entity
■ Time periods
■ Details used in the plan
The following business rules and processing apply to this XOG object:
■ A budget plan uses the Cost Plan object internally.
■ The budget plan structure must match the cost plan of record structure and
potentially the latest approved budget plan structure, depending on the value of
the forceReplace attribute.
■ Cost plan details (line items) are added to the budget plan.
■ Existing plan detail records are not deleted.
Read Filters
Error Handling
Schema Mapping
forceReplace
Required. Specifies whether the existing budget structure and period types can be
different from the latest approved budget plan. XOG out always uses the value of
True.
Field: forceReplace
Type: Boolean
Possible Values: True, False
investmentCode
Required. Defines the Investment code
Table and Column: OBJECT_ID
Type: String
investmentType
Defines the investment type. This attribute is used only in the XOG read result.
Type: String
name
Defines the budget plan name
Table and Column: NAME
Type: String
revision
Used only in XOG read results. Represents the revision of the budget plan.
Field Name: REVISION
Type: Integer
periodType
Defines the time period type.
Field Name: PERIOD_TYPE_CODE
Type: String
sourceCostPlanCode
Defines the ID of the source cost plan for the submitted budget.
Table and Column: SOURCE_COST_PLAN_ID
Type: String
startPeriod
Required. Defines the start time period name.
Field Name: START_PERIOD_ID
Type: String
status
Defines the status of the plan.
Possible Values: Submitted, Approved, Rejected.
Table and Column: STATUS_CODE
Type: String
Note: The Detail schema tag also has two attributes: glAccountMain and glAccountSub.
These attributes define the GL Account associated with the Detail schema tag. The
attributes map to the GL_ACCOUNT_ID column.
finish
Defines the end period for the unit, cost, or revenue.
Type: String
value
Defines the value for the unit, cost, or revenue.
Type: String
Schema Name
nikuxog_capplanScenario.xsd
Prerequisites
The following conditions must be met before importing capacity planning scenarios:
■ The scenario must be created by you.
■ Some of the fields that a scenario can include are objects that must already exist in
CA Clarity in order to be imported. These include projects identified by
SRM_PROJECTS.UNIQUE_NAME.
■ If CA Clarity is built using XOG imports, charge codes and projects must be imported
before importing capacity planning scenarios.
■ The maximum number of OBS levels you can XOG is 10.
Read Filters
The XOG processes outbound capacity planning schemas based on the following field:
ownerID
The ID of a valid user (CMN_SEC_USERS.ID).
Error Handling
The following fields are written to the Success and Error files when the XOG process
generates an error or warning:
■ ID. For all errors, the scenario ID is posted to the Success and Error files.
■ Name. For all errors, the scenario name is posted to the Success and Error files.
Schema Mappings
isPublic
Currently not used.
Table and Column: :CAP_SCENARIOS.IS_PUBLIC
Type: Number
Member Element
The Member is the sub-element of the Scenario schema tag. It is composed of the
following elements:
■ Expression. A power filter expression that determines which investments to include.
■ Investment. A specific instance of an investment to include in the scenario.
isApproved
Required. Indicates if the member is considered approved in this scenario.
Values:
■ 1. True
■ 0. False
Table and Column: CAP_SCENARIO_MEMBERS.IS_APPROVED
Type: Boolean
priority
Required. Defines the priority.
Values: 0-36, where:
■ 0. Highest priority
■ 36. Lowest priority
Table and Column: CAP_SCENARIO_MEMBERS.PRIORITY
Type: Integer
lastSynchDate
Required. Defines the last time an expression was synchronized against the pool of
available investments.
Table and Column: CAP_SCENARIO_MEMBERS.LAST_SYNC_DATE
Type: Date
Expression Element
This is the sub-element of the Member element. The Expression element has the
following attribute:
Expression
Required. Defines the text view of the ODF-based power filter.
Table and Column: ODF_FILTER_EXPRESSIONS.EXPRESSION
Type: String
Investment Element
This is the sub-element of the Member element. The Investment element is composed
of the following elements:
■ Resources. A list of resources allocated to the investment.
■ Tasks. A list of tasks and assignments for the investment.
start
Defines the start date for the investment.
Table and Column: CAP_SCENARIO_MEMBERS.START_DATE
Type: Date
finish
The finish date for the investment.
Table and Column: CAP_SCENARIO_MEMBERS.FINISH_DATE
Type: Date
investmentID
Required. Defines the criteria for specifying the investment.
The OBJECT_ID contains the actual key for the investment.
Table and Column: CAP_SCENARIO_MEMBERS.OBJECT_ID
Type: Number
Resource Element
resourceID
Required. Defines the resource ID or key.
Table and Column: CAP_SCENARIO_TEAM.PRRESOURCEID
Type: Number
Task Element
Segment (EstCurve) element is also known as Time Scale Value. The EstCurve element
has the following attributes:
finish
Required. This is stored as BLOB.
Table and Column: CAP_SCENARIO_ASSIGNMENTS.PREXTENSION
Type: Date
start
Required. This is stored as BLOB.
Table and Column: CAP_SCENARIO_ASSIGNMENTS.PREXTENSION
Type: Date
sum
Required. Defines the amount of work remaining. It is stored as BLOB.
Table and Column: CAP_SCENARIO_ASSIGNMENTS.PREXTENSION
Type: Float
TaskLabor Element
resourceID
Required. Defines the resource ID or key assigned to the task.
Table and Column: CAP_SCENARIO_ASSIGNMENTS.RESOURCE_ID
Type: Number
Change Request
Use the change request XOG object to view inbound and outbound change request
instances.
Schema Name
nikuxog_change.xsd
Prerequisites
Before using this XOG object, make sure the referenced objects, such as the project,
user, and category, exist in CA Clarity.
Read Filters
Error Handling
Schema Mapping
approvedBy
Defines the name of the resource who has approved the request.
Table and Column: APPROVED_BY
Type: String
approvedDate
Defines the date the request was approved.
Table and Column: APPROVED_DATE
Type: Date
assessmentDate
Defines the date the request was assessed.
Table and Column: ASSESSMENT_DATE
Type: Date
assessor
Defines the name of the resource who assessed the request.
Table and Column: ASSESSOR
Type: String
ownerCode
Required. Defines the name of the resource assigned to this change request.
Table and Column: ASSIGNED_TO
Type: String
benefits
Defines the benefits of this request.
Table and Column: BENEFITS
Type: String
categoryTypeCode
Defines the category of this request.
Table and Column: CATEGORY_TYPE_CODE
Type: String
effectOnCost
Change in cost (if any) for this request
Table and Column: EFFECT_ON_COST
Type: Money
effectOnResources
Change in resources (if any) for this request
Table and Column: EFFECT_ON_RESOURCES
Type: Integer
effectOnSchedule
Defines the effect on the schedule in days for this request.
Table and Column: EFFECT_ON_SCHEDULE
Type: number (floating point)
closureDate
Defines the date this request was closed.
Table and Column: CLOSURE_DATE
Type: String
description
Defines the description of this change request.
Table and Column: DESCRIPTION
Type: String
targetResolutionDate
Defines the date this change request is targeted to close.
Table and Column: TARGET_RESOLUTION_DATE
Type: Date
impactBaseline
Defines the impact this change request has on the baseline.
Table and Column: IMPACT_ON_BASELINE
Type: String
impactDescription
Defines the impact this change request has on other projects.
Table and Column: IMPACT_DESCRIPTION
Type: String
priorityCode
Defines the priority of this change request.
Table and Column: PRIORITY_CODE
Type: String
reasons
Defines the reason for the change request.
Table and Column: ASSUMPTIONS
Type: String
reviewDate
Defines the date the request was reviewed.
Table and Column: REVIEW_DATE
Type: Date
statusCode
Defines the status of this change request.
Table and Column: STATUS_CODE
Type: String
Charge Code
Use the charge code XOG object to view inbound and outbound charge code instances.
Schema Name
nikuxog_chargecode.xsd
Prerequisites
None.
Read Filters
Error Handling
Schema Mapping
Company
Use the company XOG object to view inbound and outbound company attributes.
Companies are defined for inbound (write) and outbound (read) processing.
Schema Name
nikuxog_company.xsd
Terms
Custom Fields
Use these to import custom-defined fields. First generate the custom-defined fields
with XDM. The XOG allows for an unlimited number of custom-defined fields if you
map the generated field to the XML schema. Within the schema for custom-defined
fields, you must provide the Column Name, Attribute Name, and Value.
Financial Properties
Prior to importing companies, the following financial properties must be set up in
the Financial Administration module. The Default Values must be populated in the
Administration Tool's Application Administration/Financial Management/Defaults
section. The Location, Department, WIP Class, Project Class, and Company Class
values are not required in the XML schema but are required within CA Clarity.
Lookup values
The XML schema requires lookup codes provided later in this guide. These are
validated against the values in CMN_LOOKUPS.
OBS association
There is an OBS Associations portlet that contains the OBS unit associated to the
company, if any. The OBS association fields can be used for import and export.
Read Filters
The XOG supports outbound processing of companies based on the following fields:
■ Company Status
■ Company Type
And and Or processing is supported between these two fields (listed above) and for
processing within Company Type. The following combinations are supported:
Company Status = x
where x = Active or Inactive
Company Type = x
where x = Prospect, Other, Competitor, Customer, Department, Marketplace Buyer,
Marketplace Supplier, Resource Partner, Project Partner, Trust Client, Vendor
Error Handling
The following fields are written to the Success and Error file when the XOG process
generates an error or warning:
■ companyId
■ companyName
■ externalId
■ externalSource
The Company XOG object handles errors and warnings. If an error occurs, the table is
not updated. You must fix the error and run the XOG again. If a warning occurs, the
record is posted but the non-required fields are defaulted because of inconsistencies in
the data.
Schema Mappings
The following schema mappings are provided for the company XOG:
■ Company (see page 150)
■ Contact Information (see page 151)
■ Supplemental Information (see page 153)
■ Custom Information (see page 155)
■ Financial Information (see page 156)
■ Billing Address (see page 158)
■ Billing Address Detail (see page 158)
■ OBS Associations (see page 160)
status
Required. Defines the status for the company.
Values: Active and Inactive
Default: Active
Table and Column: SRM_COMPANIES.Status
Type: String
externalSource
Required by the schema. The lookup value specifies the originating system ID (for
example, Oracle).
Table and Column: SRM_COMPANIES.External_Source_ID
Type: String (in schema) and Number (in CA Clarity)
externalId
Required. Defines the originating unique identifier required by the XML schema.
Table and Column: SRM_COMPANIES.External_ID
Type: String
city
Defines the city.
Table and Column: SRM_CONTACTS.City
Type: String
county
Defines the county.
Table and Column: SRM_CONTACTS.County
Type: String
state
Defines the state.
Table and Column: SRM_CONTACTS.State_Province
Type: String
postalCode
Defines the postal code.
Table and Column: SRM_CONTACTS.Postal _Code
Type: String
country
Defines the country.
Table and Column: SRM_CONTACTS.Country_ID
Type: Number
workPhone
Defines the work phone number.
Table and Column: SRM_CONTACTS.Phone_Work
Type: String
fax
Defines the fax number.
Table and Column: SRM_CONTACTS.Phone_Fax
Type: String
webAddress
Defines the Web address.
Table and Column: SRM_CONTACTS.URL
Type: String
division
Defines the company division.
Table and Column: BIZ_COM_SUP_PROPERTIES.Division
Type: String
category
Defines the company category.
Table and Column: BIZ_COM_SUP_PROPERTIES.Category
Type: String
industry
Defines the industry in which the company operates.
Table and Column: BIZ_COM_SUP_PROPERTIES.Industry
Type: String
numberOfEmployees
Defines the number of employees in the company.
Table and Column: BIZ_COM_SUP_PROPERTIES.Number_of_Employees
Type: Number
ownership
The Lookup value is "Corporation".
Table and Column: BIZ_COM_SUP_PROPERTIES.OwnerShip
Type: String
tickerSymbol
Defines the ticker symbol of the company
Table and Column: BIZ_COM_SUP_PROPERTIES.Ticker_Symbol
Type: String
referralSource
Defines the referral source.
Table and Column: BIZ_COM_SUP_PROPERTIES.Referral_Source
Type: String
accountManager
Browse this field to identify the account manager associated with the company.
Table and Column: BIZ_COM_SUP_PROPERTIES.Account_Manager
Type: String
primaryContactName
Defines the primary contact in the company.
Table and Column: BIZ_COM_SUP_PROPERTIES.Primary_Contact_Name
Type: String
primaryContact Email
Defines the email address of the company's primary contact.
Table and Column: BIZ_COM_SUP_PROPERTIES.Primary_Contact_Email
Type: String
primaryContact Phone
Defines the phone number of the company's primary contact.
Table and Column: BIZ_COM_SUP_PROPERTIES.Primary_Contact_Phone
Type: String
notes
Defines any company notes.
Table and Column: BIZ_COM_SUP_PROPERTIES.Notes
Type: String
numberOfEmployees
Defines the number of employees in the company.
Table and Column: XDM_CDF_SRM_COMPANIES.XDM_NUM_OF_EMPLOYEES
Type: Number
opportunity
Defines the opportunity for the company.
Table and Column: XDM_CDF_SRM_COMPANIES.XDM_OPPORTUNITY
Type: Boolean
Default: False
internalContact
Defines the name of the internal contact for the company. This is a browse field.
Table and Column: XDM_CDF_SRM_COMPANIES.XDM_PRIM_INTERNAL_CONTACT
Type: String
agreementStartDate
Defines the agreement start date for the company.
Table and Column: XDM_CDF_SRM_COMPANIES.XDM_AGREEMENT_START_DATE
Type: Date
industry
Defines the industry type for the company. This is a lookup value.
Table and Column: XDM_CDF_SRM_COMPANIES.XDM_INDUSTRY
Type: String
status
Defines the company's status.
Values:
■ Active
■ Inactive
■ No new business
Default: Active
Table and Column: CLNTSUPP.STATUS_TYPE
Type: String
location
Indicates the company location. This is a browse field.
Table and Column: CLNTSUPP.LOCATIONID
Type: String
department
Indicates the department associated with the company. This is a browse field.
Table and Column: CLNTSUPP.DEPARTCODE
Type: String
wipClass
Defines the WIP Class associated with the company. This is a browse field.
Table and Column: CLNTSUPP.CLNTWIPCLASS
Type: String
projectClass
Defines the project class associated with the company. This is a browse field.
Table and Column: CLNTSUPP.PROJCLASS
Type: String
companyClass
Defines the company class associated with the company. This is a browse field.
Table and Column: CLNTSUPP.COMPCLASS
Type: String
batchCycle
Optional. Defines the batch cycle associated with the company.
Table and Column: CLNTSUPP.BILLCYCLE
Type: String
dateOpened
Defines the opened date for the company.
Table and Column: CLNTSUPP.OPENEDDATE
Type: Date
address2
Defines the second line of the billing address for the company.
Table and Column: ARMASTER.ADDR2
Type: String
address3
Defines the third line of the billing address for the company.
Table and Column: ARMASTER.ADDR3
Type: String
address4
Defines the fourth line of the billing address for the company.
Table and Column: ARMASTER.ADDR4
Type: String
address5
Defines the fifth line of the billing address for the company.
Table and Column: ARMASTER.ADDR5
Type: String
attentionName
Defines the name of the individual responsible for the company's billing.
Table and Column: ARMASTER.ATTENTION_NAME
Type: String
attentionPhone
Defines the phone number for the individual responsible for the company's billing.
Table and Column: ARMASTER.ATTENTION_PHONE
Type: String
Company Class
Use the Company Class XOG object to view inbound and outbound Company Class
instances.
Schema Name
nikuxog_companyclass.xsd
Prerequisites
None.
Read Filters
Error Handling
Schema Mapping
Content Pack
This object allows you to create new content for CA Clarity PPM. A content item is any
item that displays in CA Clarity PPM but is not considered data. For example, a graph
portlet is considered a content item, but a project is considered data.
Schema Names
The following schema names are associated to the content pack XOG object:
■ nikuxog_contentPack.xsd
■ nikuxog_pageTypes.xsd
■ nikuxog_filter_portlet.xsd
Terms
The following terms are used when describing the content pack XOG object:
Content Item
Defines the user-defined add-in item that adds or extends CA Clarity PPM.
Queries
Defines the queries.
Reports and jobs
Defines the reports and jobs. You cannot import or export system-supplied reports
using the XOG. They are not considered user-defined add-in items.
Portlets (graph, grid, and HTML)
Defines the portlets. You cannot import or export system-supplied portlets using
the XOG. They are not considered user-defined add-in items.
Pages
Defines the pages.
Lookups
Defines the lookups. You can export system-supplied lookups.
For example
You can:
1. Create a page that contains add-in items (portlets, queries, and lookups).
2. Add the portlets to a menu.
3. Run the XOG and export the content.
The resulting XML file contains all of the add-in items. The file is fully annotated to
describe how each element is filtered.
The attribute values for the filterMapping element (part of the PortletReferenceType
complex type) has the following prerequisites unique to the filter portlet type:
■ The filterPortletCode attribute value must match the portlet code of a valid filter
portlet defined in the filter portlet schema.
■ The fieldCode attribute value must match the field code of a valid filter portlet
defined in the filter portlet schema.
■ The dataProviderItemCode attribute value must match the column code of a valid
grid or graph portlet column.
■ The dataProviderItemCode and fieldCode attribute values must reference an
attribute of the same data type.
■ If the data type is a lookup, then the lookup type codes need to be the same
between the attributes.
Dependencies
Add-in items have dependencies that are automatically resolved by the XOG. For
example, if a query depends on a lookup and the query is imported, the lookup must
also be imported (if it does not already exist). The following dependencies exist when
exporting add-in items:
OBS associations for pages, portlets, jobs and reports will be exported. They are also
imported provided that the OBS and OBS unit (including parentage) exist in CA Clarity
PPM. The same is true of security, which is imported if the user, group, or OBS unit
exists.
Import Rules
Each add-in import request is regarded as a single transaction. If one item fails, the
entire add-in is not imported. Add-in items are imported from XML files, which can be
produced during the export or created manually.
If an item is modified to include new entries before an item is imported, the new entry
is not affected by the import process; the import operation ignores the new entry.
For example
Consider a static lookup named SAMPLE_LOOKUP that contains the following values:
■ OPEN
■ CLOSED
■ IN PROGRESS
You then add a new lookup value of SUSPENDED and change the existing label from
CLOSED to FINISHED. Then import a Best Practice Accelerator that includes the
definition for SAMPLE_LOOKUP which contains each of the three lookup values (OPEN,
CLOSED, and IN PROGRESS) and the new lookup value (DELAYED). When the import
operation completes, CA Clarity PPM contains the following lookup values:
■ OPEN
■ CLOSED (the change is overwritten)
■ IN PROGRESS
■ SUSPENDED (addition made to CA Clarity PPM using the application user interface is
preserved)
■ DELAYED (new item that was present in the input Best Practice Accelerator file is
also added)
When you import an add-in item, it is updated with the definition that is present in the
file. If a content item contains a new addition that does not exist in CA Clarity PPM, the
new addition is also created in CA Clarity PPM. When importing an existing lookup, all
rules described in the following table apply. The following table shows the various
import rules associated with a lookup and the lookup values. These rules are honored by
the user interface. As a result, the XOG import process for lookups honors these rules.
Export Rules
You can export multiple add-in items at the same time. Add-in items can be filtered so
that a subset of items can be exported. For example, a system may contain four HTML
portlets. The export interface allows for two HTML portlets to be exported at the same
time.
Portlets
This feature does not implement business rules for portlets. Most of the attributes
and elements are either optional or have default values. While the XML schema
does not validate such instances, the import mechanism does validate and generate
an error for invalid grids or graphs.
For example, if a Grid portlet is based on a query that does not contain metrics,
then no <metricColumn> elements should be present in the imported XML schema.
Jobs and reports definitions
During import, the imported attributes of the definition match the user interface
exactly. When parameters are changed, the old parameters are deleted and new
ones are added. Existing scheduled jobs and reports are cancelled, since the
parameters no longer exist. All saved parameters are deleted. If the update flag is
set to "True", then only captions (job and parameters) can be changed. If the
update flag is set to "False", the content item is assumed to contain all the
parameters and existing parameters are deleted as described above.
Pages
The export of a page includes all non-system portlets. OBS and security associations
can be specified and, as with other items, a Warning is written to the log file if the
target principal (OBS unit, Group, or User) does not exist.
Lookups
Lookups are either static or dynamic: Dynamic lookups are based on NSQL, Static
lookups do not contain the NSQL values contained in dynamic lookups and are
generated by executing the NSQL at runtime when they are rendered on a page as a
pull-down or as a browse page. Static lookup values are seeded and persist as
individual rows in CA Clarity (in the table named CMN_LOOKUPS).
While it is true that for any content item that is part of a Best Practice Accelerator,
system objects are not imported or exported, there are exceptions with regard to
lookups. Lookups are classified into three categories: System-restricted, System,
and User-defined. All lookup types (dynamic and static) can be exported.
Queries
This feature follows all business rules for the query user interface. Items that can be
updated via the user interface can be updated with an import request. Although the
queries schema allows for multiple, vendor-specific NSQL text, only valid text is
imported into CA Clarity. For example, an import request on an Oracle system that
contains both dbVendor="mssql" and dbVendor="oracle" imports only the
dbVendor="oracle".
All add-in items have a source attribute which is used to differentiate originating-system
items from CA Clarity PPM-supplied items. The source attribute maps to the column
source in various database tables. To change the source for add-in items created with
the user interface, use SQL to change the defaultValue for this column; then new add-in
items will have the source specified.
Error Handling
PageTypes filter mappings that do not meet the dependencies (described earlier), will
not throw an error, but the mapping will not be implemented.
Schema Mapping
The following schema tags and attributes define the ContentPack filter portlet schema
(nikuxog_pageTypes.xsd):
■ filterMapping
■ portlet
defaultFilter
The default filter for the page. It can be true for only one portlet on the page.
Table and Column: Default
Type: Boolean
pageLevelFilter
Defines whether the filter values persist across the page.
Values:
■ True. The filter values persist across this page only.
■ False. The filter values apply throughout CA Clarity.
Table and Column: Persist
Type: Boolean
The Field schema tag is a filter field, and has the following attributes:
nls
Required. The name and description of the field.
Table and Column: Field Name/Description
Type: NlsType
tip
Defines the tooltip
Table and Column: Tooltip
Type: NlsType
hint
Defines the hint or instructional text.
Table and Column: Hint
Type: NlsType
defaultValue
Defines the default value for the field.
Table and Column: Filter Default
Type: Any type
lookupParam
Defines a parameter of a parameterized lookup.
Table and Column: Lookup Parameter Mappings
Type: See the lookupParam table
code
Required. Defines the code of the field.
Table and Column: Field Id
Type: String
dataType
Required. Defines the data type of the field.
Table and Column: Data Type
Type: String
extDataType
Defines the extended type of the field.
Table and Column: N/A
Type: String
widgetType
Required. Defines the display type of the field.
Table and Column: Display Type
Type: String
extWidgetType
Required. The extended display type of the field.
Table and Column: N/A
Type: String
lookupTypeCode
Defines the lookup code for a lookup field.
Table and Column: Lookup
Type: String
width
Defines the width of the filter field.
Table and Column: Width
Type: Integer
position
Defines the position of the filter field.
Table and Column: Layout
Type: Integer
multiValued
Defines the lookup style of a lookup field.
Table and Column: Lookup Style
Type: Boolean
multiValuedLookup
Indicates if the lookup field is a Multi Valued Lookup data type.
Table and Column: N/A
Type: Boolean
fixedWidget
Indicates if the field is fixed.
Table and Column: N/A
Type: Boolean
hidden
Indicates if the field is hidden.
Table and Column: Hidden in filter
Type: Boolean
required
Indicates if the field requires a value.
Table and Column: Required in Filter
Type: Boolean
readOnly
Indicates if the field's value is read only.
Table and Column: Read-Only in Filter
Type: Boolean
minValue
Defines the minimum default value of a date or numeric range field.
Table and Column: Filter Default From
Type: String
maxValue
Defines the maximum default value of a date or numeric range field.
Table and Column: Filter Default To
Type: String
columnNumber
Defines the field's column or row in the corresponding section or toolbar filter.
Table and Column: Layout
Type: Integer
depParentLookupTypeCode
Defines the lookup code of a dependent lookup.
Table and Column: Lookup
Type: String
depEntry
Defines the lookup code for entry into dependent lookup.
Table and Column: Entry
Type: String
depExit
Defines the lookup code for exit into dependent lookup.
Table and Column: Exit
Type: String
The lookupParam schema tag is a parameter of a parameterized lookup, and has the
following attributes:
code
Required. Defines the field code of the parameter.
Table and Column: Field Code
Type: String
dpCode
Required. Defines the NSQL parameter specified in the lookup.
Table and Column: Lookup Parameter
Type: String
Cost Plan
A cost plan is created for an investment that already exists. Use the Cost Plan XOG
object to view inbound and outbound financial cost plans.
Schema Name
nikuxog_costPlan.xsd
Prerequisites
Before using this XOG, make sure the following objects already exist in CA Clarity:
■ Investments
■ Entity
■ Time periods
■ Grouping attributes
Read Filters
Error Handling
When importing or exporting the cost plan, the following errors can be thrown:
■ You must have Plan XOG access rights to perform this action.
■ Plan code is required.
■ Grouping Attribute is missing or invalid.
■ Investment Code is missing or invalid.
■ Period Type cannot be changed once defined.
■ Grouping Attributes cannot be changed once defined.
■ Investment must be associated to an Entity before setting up financial plans.
■ Benefit plan ID is missing or invalid.
■ Period Date is missing or invalid.
■ Grouping Attributes in Plan Details do not match Plan Grouping Attributes.
■ GL Account is missing or invalid.
■ Missing or invalid value for Grouping Attribute.
■ Finish time period is invalid.
■ Start time period is invalid.
■ Grouping Attributes do not match locked plan structure for associated entity.
■ Cannot modify plan periods prior to the freeze date.
■ Valid Fiscal Period does not exist for start and end dates for plan detail.
Schema Mappings
Code
Required. Defines the unique ID of the cost plan for XOG.
Table and Column: CODE
Type: String
FinishPeriod
Required. Defines the finish time period name.
Table and Column: END_PERIOD_ID
Type: String
Investment Code
Required. Defines the investment code.
Table and Column: OBJECT_ID
Type: String
Investment Type
Defines the investment type. This is used only in the XOG read result.
Type: String
isPlanOfRecord
Indicates if the cost plan is the plan of record. If this is not set and it is the first plan
of the investment, then the plan is marked as the plan of record.
Table and Column: IS_PLAN_OF_RECORD
Type: String
Name
Required. Defines the name of the cost plan.
Table and Column: NAME
Type: String
Period Type
Required. Defines the time period type.
Table and Column: PERIOD_TYPE_CODE
Type: String
Revision
This is used only in XOG read result. It represents the revision of the cost plan.
Table and Column: REVISION
Type: Integer
StartPeriod
Required. Defines the start time period name.
Table and Column: START_PERIOD_ID
Type: String
Note: The Detail schema tag also has two attributes: glAccountMain and glAccountSub.
These attributes define the GL Account associated with the Detail schema tag. The
attributes map to the GL_ACCOUNT_ID column.
finish
Defines the end period for the unit, cost, or revenue.
Type: String
value
Defines the value for the unit, cost, or revenue.
Type: String
Schema Name
nikuxog_costPlusCode.xsd
Prerequisites
None
Read Filters
Error Handling
When importing or exporting the cost plan, the following error can be thrown:
Failed to export cost plus codes.
Schema Mapping
Department
Use the department XOG object to view inbound and outbound department attributes.
Schema Name
nikuxog_department.xsd
Prerequisites
Before using this XOG, you must ensure that an entity exists.
Read Filters
Schema Mappings
■ LocationAssociations
■ Budget
■ Child Department
Department
parent_department_code
Defines the code for parent department.
Table and Column: parent_department_id
Type: String
dept_manager_code
The department manager resource code.
Table and Column: DEPARTMENTS.department_manager_id
Type: String
brm_code
Defines the business relationship manager.
Table and Column: brm_id
Type: String
entity
Required. The identify for the entity to which the department belongs.
Table and Column: DEPARTMENTS.entity_id
Type: String
LocationAssociation
The budget tag is part of the schema mapping for the department XOG object. A simple
budget including the project's planned cost, NPV, ROI, and breakeven information. The
values apply to only one time period from the start date to the finish date of the project.
The subscriptions tag is part of the schema mapping for the department XOG object.
Subscription
The service to which the department subscribes and its properties. This has the
following attributes.
sla_violations
Defines the number of SLA violations.
Table and Column: DPT_SUBSCRIPTIONS.sla_violations
Type: Integer
sla_violations_th
Defines the threshold for SLA violations.
Table and Column: DPT_SUBSCRIPTIONS.sla_violations_threshold
Type: Integer
incidents
Defines the number of incidents.
Table and Column: DPT_SUBSCRIPTIONS.incidents
Type: Integer
incidents_threshold
Defines the threshold for incidents.
Table and Column: DPT_SUBSCRIPTIONS.incidents_threshold
Type: Integer
change_orders
Defines the number of change orders.
Table and Column: DPT_SUBSCRIPTIONS.change_orders
Type: Integer
charges
Defines the total charges (from chargebacks) against the investment (service) for
this subscription.
Table and Column: DPT_SUBSCRIPTIONS.charges
Type: Integer
cust_satisfaction
Defines the customer satisfaction rating for this subscription.
Table and Column: DPT_SUBSCRIPTIONS.customer_satisfaction
Type: Integer
total_users
Defines the total number of users utilizing this subscription.
Table and Column: DPT_SUBSCRIPTIONS.total_users
Type: Integer
active_users
Defines the number of active users utilizing this subscript.
Table and Column: DPT_SUBSCRIPTIONS.active_users
Type: Integer
page_hits
Defines the page hits as captured for this subscription if applicable.
Table and Column: DPT_SUBSCRIPTIONS.page_hits
Type: Integer
entityId
Required. Defines the entity to which the service belongs.
Table and Column: This is a derived attribute.
Type: String
departmentId
Required. Identifies the subscribing department.
Table and Column: DPT_SUBSCRIPTIONS.department_id
Type: String
serviceId
Required. Defines the identifier that makes it unique in combination with the
table_name column.
Column: pk_id
Type: String
name
Required. Defines the name of the OBS type.
Table and Column: PRJ_OBS_TYPES.name
Type: String
description
Required. Describes the OBS type.
Table and Column: PRJ_OBS_TYPES.description
Type: String
level
Level represents a level in the OBS type. At least one level is required. Level has the
following attributes.
Name
Required. The name for the level.
Table and Column: Prj_Obs_Levels.Name.
Type: String
depth
Required. The depth of the OBS level.
Table and Column: Prj_Obs_Levels.obs_level
Type: Integer
obsAssociation
The object types that are associated to this OBS type. This tag is optional.
object
Required. The name of the object type associated to this OBS.
Table and Name: Prj_Obs_Associations.table_name
Type: String
associationType
Required.
Table and Name: Prj_Obs_Associations.is_leaf_only
Type: String
Entity
Use the entity XOG object to view inbound and outbound entity attributes.
Schema Name
nikuxog_entity.xsd
Prerequisites
None.
The following business rules and processing apply to this XOG object:
■ The entity inherits the currency type from the system settings.
■ In entity create mode, if the OBS types mentioned in the XOG file do not exist, the
OBS types are created automatically.
■ Structural updates to OBS types are not allowed if they are referred to by the
entities. Use the location and department XOG files for structural changes.
■ Ensures that the OBS types are not referred to by another entity.
■ Creates departments and locations for the OBS units (when in create mode).
Read Filters
Schema Mappings
■ Description
■ Short Description
■ OBS Types
■ GL Periods
■ Plan Defaults
■
Entity
The actual entity object. The entity schema mapping includes definitions for the home
and reporting currencies. This schema tag has the following attributes:
entity
Required. Defines the name of the entity. Do not allow truncation.
Table and Column: ENTITY.entity
Type: String
finPeriodCode
Optional. Defines the fiscal time period type of the entity.
Possible Values: WEEKLY, 13_PERIODS_PER_YEAR, SEMI_MONTHLY, MONTHLY,
QUARTERLY and ANNUALLY.
Table and Column: ENTITY. FIN_PERIOD_CODE
Type: String
geoOBS
Required. Refers to the OBS that will represent the geographical structure (that is,
locations).
Table and Column: ENTITY.geo_chart_obs_type_id
Type: String
orgOBS
Required. Refers to the OBS that will represent the organizational structure (that is,
departments).
Table and Column: ENTITY.org_chart_obs_type_id
Type: String
homeCurrency
Required. Defines the lookup values for each ISO standard code. You must validate
that it is an active currency.
Table and Column: ENTITY.Home_Currency_Code
Type: String
reportingCurrency
Required. Defines the lookup values for each ISO standard code. You must validate
that it is an active currency.
Table and Column: ENTITY.Reporting_Currency_Code
Type: String
billingCurrency
Optional. Defines the lookup values for each ISO standard code. You must validate
that the billing currency is an active currency.
Table and Column: ENTITY.Billing_Currency_Code
Type: String
externalID
Required. Refers to the originating system's set of books ID.
Table and Column: ENTITY.External_ID
Type: String
defaultProjectClass
Represents the project class for the entity. Validated against project classes.
Table and Column: ENTITY.PROJECT_CLASS
Type: String
defaultWIPClass
Represents the default WIP class for the entity. Validated against WIP classes
Table and Column: ENTITY.WIP_CLASS
Type: String
defaultClientClass
Represents the default client class for the entity.
Table and Column: ENTITY.CLIENT_CLASS
Type: String
defaultBatchCycle
Represents the default batch cycle for the entity.
Table and Column: ?
Type: String
defaultLaborRateSource
Defines the default rate matrix for labor transactions for the entity.Validated
against matrices.
Table and Column: ENTITY.TRANS_RATE_SOURCE_LABOR
Type: String (in schema). Number (in CA Clarity).
defaultLaborCostSource
Defines the default cost rate matrix for labor transactions for the entity. Validated
against matrices.
Table and Column: ENTITY.TRANS_COST_SOURCE_LABOR
Type: String (in schema). Number (in CA Clarity).
defaultLaborSourceLocation
Defines the default location for labor transactions for the entity.
Table and Column: ENTITY.TRANS_LOCATION_LABOR
Type: String
Values: Project and Resource
defaultMaterialRateSource
Optional. Defines the default rate matrix for rate of material transactions for the
entity. Validated against matrices.
Table and Column: ENTITY.TRANS_RATE_SOURCE_MATERIALS
Type: String (in schema). Number (in CA Clarity).
defaultEquipmentRateSource
Optional. Defines the default rate matrix ID for equipment transactions for the
entity. Validated against matrices.
Table and Column: ENTITY.TRANS_RATE_SOURCE_EQUIPMENT
Type: String (in schema). Number (in CA Clarity).
defaultExpenseRateSource
Optional. Defines the default rate matrix for expense transactions for the entity.
Validated against matrices.
Table and Column: ENTITY.TRANS_RATE_SOURCE_EXPENSE
Type: String (in schema). Number (in CA Clarity).
exchangeRateTypeLabor
Optional. Defines the labor exchange rate type for the entity.
Table and Column: ENTITY. EXCHANGE_RATE_TYPE_LABOR
Type: String
exchangeRateTypeMaterials
Optional. Defines the materials exchange rate type for the entity.
Table and Column: ENTITY. EXCHANGE_RATE_TYPE_ MATERIALS
Type: String
exchangeRateTypeEquipment
Optional. Defines the equipment exchange rate type for the entity.
Table and Column: ENTITY. EXCHANGE_RATE_TYPE_ EQUIPMENT
Type: String
exchangeRateTypeExpense
Optional. Defines the expense exchange rate type for entity.
Table and Column: ENTITY. EXCHANGE_RATE_TYPE_ EXPENSE
Type: String
obs
level
This child element represents a level in the OBS type. At lease one level is required. level
has the following attributes:
Name
Required. The name for the level.
Table and Column: Prj_Obs_Levels.Name
Type: String
depth
Required. The depth of the OBS level.
Table and Column: Prj_Obs_Levels.obs_level
Type: Integer (allowed value 1 to 10)
objectAssociation
This child element represents the object types associated with the OBS type. This tag is
optional.
object
Required. The name of the object type associated to this OBS.
Table and Name: Prj_Obs_Associations.table_name
Type: String
associationType
Required.
Possible Values: Any Unit, Lowest Level
Table and Name: prj_obs_object_types.is_leaf_only
Type: String
unit
This unit tag represents the units for this OBS type. This tag is optional.
entityId
Required. Provides a unique ID for the GL period.
Table and Column: BIZ_COM_PERIODS.ENTITY_ID
Type: String (Number in database)
isActive
Optional. Indicates if the GL period is active
Table and Column: BIZ_COM_PERIODS.IS_ACTIVE
Type: Boolean (Number in database)
lockPlanStructure
Flag to identify whether to lock the plan structure (grouping attributes) for
planDefaults.
Table and Column: FIN_PLAN_DEFAULTS. LOCK_PLAN_STRUCTURE
Type: Boolean (Number in database)
freezeDate
The freeze date for planDefaults. This means details pertaining to the financial plans
of this entity can be edited only if the startDate of a particular period is after this
freeze date.
Table and Column: FIN_PLAN_DEFAULTS. FREEZE_DATE
Type: Date
Financial Transaction
Use the financial transaction XOG object to view inbound and outbound financial
transaction attributes for investments. This XOG object exports WIP transactions from
PPA_WWP table so that the data can be imported into an ERP or other enterprise
system.
Schema Name
nikuxog_commonTransaction.xsd
Prerequisites
Before using this XOG object, make sure that all foreign key references of the financial
transaction (for example, resource, investment, and others) have been defined.
The following business rules and processing apply to this XOG object:
■ The XOG processes WIP transactions based on the following fields:
transactionType
Defines the financial transaction type.
Values: L, M, X, or Q.
projectID
The valid project ID.
clientID
The valid company ID.
transactionDate
Enter Start Date, and End Date to get transaction data for all projects between
the dates specified.
■ And and Or processing is supported among these fields.
■ Transactions on hold or in error are not processed.
Read Filters
None
Schema Mappings
The schema mappings are provided for the following Financial Transaction tag names:
■ Transactions (see page 202)
■ Transaction Import (see page 207)
projectID
Required. The project identifier.
Table and Column: PROJECT_CODE
Type: String
projectName
Required. Derived from project ID
Table and Column: SRM_PROJECTS.NAME
Type: String
taskID
Optional. A valid task identifier.
Table and Column: TASK_ID
Type: Number
taskName
Optional. Derived from task ID.
Table and Column: PRTASK. PRNAME
Type: String
transactionDate
Required. The date of the transaction.
Table and Column: TRANSDATE
Type: Date
resourceID
Required. The resource identifier.
Table and Column: RESOURCE_CODE
Type: String
resourceName
Required. Derived from resource ID.
Table and Column: SRM_RESOURCES.FULL_NAME
Type: String
roleID
Optional. The role identifier.
Table and Column: ROLE_CODE
Type: String
transactionType
Required. The transaction type.
Table and Column: TRANSTYPE
Type: String
chargeCode
Required. A valid charge code.
Table and Column: COSTCODE
Type: String
inputTypeCode
Optional. Valid input type code
Table and Column: INPUT_TYPE
Type: String
chargeable
Required. Indicates if the transaction can be charged to the company.
Values:
■ 0. Not chargeable
■ 1. chargeable
Table and Column: CHARGEABLE
Type: Number
units
Required. The number of units.
Table and Column: QUANTITY
Type: Number
CurrencyValue ->actualCostRate
Required.
Table and Column: PPA_WIP_VALUES.ACTUALCOST
Type: Number
CurrencyValue ->actualCostRateCurrency
Required. Currency code for actual cost rate
Table and Column: PPA_WIP_VALUES.COST_CURRENCY_CODE
Type: String
CurrencyValue ->stdCostRate
Required. The cost rate per unit.
Table and Column: PPA_WIP_VALUES.STDCOST
Type: Number
CurrencyValue ->stdCostRateCurrency
Optional. The cCurrency code for standard cost rate.
Table and Column: PPA_WIP_VALUES.STDCOST_CURRENCY_CODE
Type: String
CurrencyValue ->billRate
Required. The billing rate per unit.
Table and Column: PPA_WIP_VALUES.BILLRATE
Type: Number
CurrencyValue ->billRateCurrency
Required. The currency code for bill rate.
Table and Column: PPA_WIP_VALUES.RATE_CURRENCY_CODE
Type: String
CurrencyValue-> currencyType
Required. Indicates the currency transaction in the values table. This picks up the
HOME, BILLING & NATURAL transaction lines.
Table and Column: PPA_WIP_VALUES.CURRENCY_TYPE
Type: String
CurrencyValue ->totalCost
Required. The ActualCost x quantity.
Table and Column: PPA_WIP_VALUES.TOTALCOST
Type: Number
CurrencyValue ->totalAmount
Required. The (BillRate x quantity) + Factor + Burden + Overhead
Table and Column: PPA_WIP_VALUES.TOTALAMOUNT
Type: String
vendorCode
Optional. The vendor code associated with the transaction.
Table and Column: PPA_WIP_APINFO.VENDOR_CODE
Type: String
notes
Optional. Additional information.
Table and Column: NOTES
Type: String
transactionStatus
Required. The status of the transaction.
Values:
■ 0. Normal
■ 1. Adjusted
■ 2. Reversed
■ 4. Under-adjust
■ 8. Under-bill
Table and Column: STATUS
Type: Number
CurrencyValue ->amountRemaining
Required. The Total Amount - Amount Billed.
Table and Column: PPA_WIP_VALUES.AMOUNTREMAINING
Type: Number
userLov1
Optional. Refers to PRTIMEENTRY_USERLOV1.
Table and Column: USER_LOV1
Type: String
userLov2
Optional. Refers to PRTIMEENTRY_USERLOV2.
Table and Column: USER_LOV2
Type: String
expenseType
Optional. Either CAPITAL_EXPENDITURE or DEPRECIATION.
Table and Column: EXPENSE_TYPE
Type: String
roleID
Optional. The valid role identifier.
Table and Column: ROLE_CODE
Type: String
transactionType
Required. Defines the transaction type.
Values: L, M, X, and Q
Table and Column: TRANSTYPE
Type: String
chargeCode
Optional. A valid charge code.
Table and Column: CHARGE_CODE
Type: String
inputTypeCode
Optional. A valid input type.
Table and Column: INPUT_TYPE
Type: String
Chargeable
Optional. Indicates if the transaction is chargeable to the company.
Values:
■ 0. Not chargeable
■ 1. chargeable
Default: 0
Table and Column: CHARGEABLE
Type: Number
Units
The number of units (for all expense transactions). Not required for expense
transactions, but required for all other transaction types.
Values: L, M, and Q (Quantity)
Table and Column: QUANTITY
Type: Number
actualCostRate
Optional. Cost rate per unit. It must be a valid number. If not specified, the cost is
taken from the rate matrix.
Table and Column: PPA_WIP_VALUES.ACTUALCOST
Type: Number
actualCostRateCurrency
Optional. ISO currency code for actual cost rate.
Table and Column: PPA_WIP_VALUES.COST_CURRENCY_CODE
Type: String
BillRate
Optional. The billing rate per unit; must be a valid number; if not specified, rate will
be picked up from the rate matrix.
Table and Column: RATE
Type: Number
billRateCurrency
Optional. ISO currency code for the bill rate.
Table and Column: RATE_CURRENCY
Type: String
notes
Optional. Additional information.
Table and Column: NOTES
Type: String
importStatus
Optional. The allowed value is N for New.
Table and Column: IMPORTSTATUS
Type: String
importDate
Optional. The date the transaction was imported. If not specified, the current server
date is used.
Table and Column: IMPORTDATE
Type: Date
Schema Name
nikuxog_glaccount.xsd
Prerequisites
The following business rules and processing apply to this XOG object:
■ The GL chart of accounts is imported into CA Clarity from an external accounting
system. These accounts are used by the Chargeback feature to capture charges and
credits.
■ The GL accounts schema is defined as part of the first step to GL integration.
■ To enable GL transactions between systems, CA Clarity allows for inbound
processing to define GL Accounts, Periods, and Entities. GL Accounts establishes the
accounts to which transactions can be posted.
Read Filters
Error Handling
If a GL Account file is unsuccessful due to an error, the following fields are output:
■ entity
■ accountNumber
■ externalId
■ externalSource
Schema Mappings
The following schema mapping is provided for the outbound Financial Transaction tag
name, GLAccount:
■ GLAccount (see page 211)
Overhead
Optional. Indicates if the GL account is an overhead account.
Table and Column: OVERHEAD
Type: Boolean
Capitalexpense
Indicates if the GL account is a capital expense account.
Table and Column: CAPITAL_EXPENSE
Type: Boolean
noncashexpense
Indicates if the GL account is a non-cash expense account.
Table and Column: NONCASH_EXPENSE
Type: Boolean
description
Defines the description of the general ledger account.
Table and Column: Description
Type: String
Account Type
Required. Defines the GL account type. This attribute determines whether the GL
account is a Balance Sheet account or a P&L account. A default is set in the
background. Lookup to PAC_CHG_GL_ACCOUNT_TYPE
Table and Column: ACCOUNT_TYPE
Type: Number
Default: Lookup
accountClass
Optional. This attribute determines whether the GL account is an asset or liability. A
default is set in the background. Lookup to PAC_CHG_GL_ACCOUNT_CLASS.
Default: 0
Table and Column: ACCOUNT_CLASS
Type: Lookup
Active
Indicates if the general ledger account is active.
Values:
■ 0. Not Active
■ 1. Active
Table and Column: Active
Type: Boolean
Default: 1
externalID
Defines the originating unique identifier.
Table and Column: External_ID
Type: String
externalSource
Defines the external source. The lookup value is the originating system ID.
Example: Oracle
Table and Column: External_Source_ID
Type: String in Schema, but stored as Number in CA Clarity.
Schema Name
nikuxog_glallocation.xsd
Prerequisites
Before importing the GL allocation rules, make sure the entities referenced by these
rules exist.
The insert or update of GL Allocation rules are based on the existence of the GL
Allocation code in CA Clarity. The GL Allocation code is unique.
Read Filters
Schema Mapping
utilityCode2
Optional. The lookup to PRTIMEENTRY_USERLOV2.
Table and Column: UTILITY_CODE_2
Type: Lookup
transactionClassCode
Optional. The lookup to FIN_TRANSCLASSES.
Table and Column: TRANSCLASS
Type: Lookup
typeCode
Optional. The lookup to LOOKUP_INPUT_TYPES.
Table and Column: PRTYPECODE_unique identifier
Type: Lookup
statusCode
Required. The lookup to STATUS_CODE.
Values: Open and Closed
Table and Column: PAC_CHG_STATUS
Type: Lookup
chargeRemToOverhead
Optional. Indicates if the rule charges the reminder to overhead.
Table and Column: CHG_REM_TO_OVERHEAD
Type: Boolean
cbkType
Required. Specifies the chargeback type.
Values: DEBIT and CREDIT
Table and Column: CHARGEBACK_TYPE
Type: String
cbkSubtype
Required. Specifies the chargeback subtype.
Values: STANDARD, INVESTMENT and OVERHEAD
Table and Column: CHARGEBACK_SUBTYPE
Type: String
Allocation Details
glAccountMain, glAccountSub
Required. Defines the main GL account. Lookup to SCH_BROWSE_GL_ACCTS.
Table and Column: GL_ACCOUNT_ID
Type: Lookup
department
Required. Defines the unique identifier of the department to charge. Lookup to
SCH_BROWSE_DEPT.
Table and Column: DEPARTMENT_ID
Type: Lookup
flatAmount
Optional. This attribute is not used.
Table and Column: FLAT_AMOUNT
Type: Numeric
weightable
Optional. This attribute is not used.
Table and Column:WEIGHTAGE
Type: Numeric
Schema Name
xog_glperiod.xsd
GL Periods are only defined for inbound (write) processing to CA Clarity. This schema is
defined as part of the first step to GL integration.
Read Filters
None
Error Handling
If a GL Period file is unsuccessful due to an error, the following fields are output:
■ Period Name
■ Period Type
■ Period Number
■ Description
■ Quarter
■ Year
■ Start Date
Schema Mappings
Schema mappings are described for the following outbound General Ledger Period tag
name:
■ Glperiod (see page 219)
Schema Names
nikuxog_transaction.xsd
Prerequisites
Read Filters
XOG allows for outbound processing of GL Transactions based upon the value within the
glposted field.
When querying the database, by default the query returns all GL transactions where
glposted is not equal to 'Y', (that is, transactions are awaiting posting). Once selected
and invoices processes, the glposted field is updated to 'Y' to indicate they have been
sent to the GL.
Error Handling
Read Transactions
Error handling for read transactions from CA Clarity databases are due to an invalid
formats or database unavailability. The adaptor or middleware must handle
transaction-level error handling when mapping and transporting into the
accounting system. If one transaction is found to be in error, the entire file is not
committed. The file must be fixed and resubmitted to keep the balance of debits
and credits.
XOG does not have control of processing once an output file is successfully created.
If you find an error in the output, you will need to rollback the entire batch to keep
debits and credits intact.
If a single record within the batch is found to be in error, the entire batch is
rejected. Then:
■ The external system (adaptor or middleware) must call the Update
Transactions schema and provide the error information element tag and the
key fields of the error records.
■ XOG processes the input file and copies all the GL transaction records from the
GLCONTROL table into the GLEXCEPTION table.
■ XOG deletes the records from the GL Control table so they exist in the
GLException table.
■ XOG resets the GLPOSTED field for the transactions from the batch in the
PPA_WIP and PPA_BILLING table to 'N' from 'P' (depending if the transaction
source is B or W).
You must fix the error batches via CA Clarity, re-post to GLControl, and rerun the
XOG to extract the GL transaction records.
Update Transactions
If the entire file cannot be committed, it must be fixed and resubmitted. This is
important as all debits and credits must be kept in sync across applications. If an
error is found, it is written to the error log. The following fields help to identify the
transaction in error:
■ transactionNumber
■ transactionSource
■ sequenceNumber
Schema Mappings
Schema mappings are described for the following outbound General Ledger Transaction
tag name:
■ GLtransaction (see page 222)
amount
Optional. The amount of the transaction.
Table and Column: CBK_GL_TXN_VALUES.AMOUNT
Type: Float
currency
Optional. The currency code of the transaction amount.
Table and Column: CBK_GL_TXN_VALUES.CURRENCY_TYPE,
CBK_GL_TXN_VALUES.CURRENCY_CODE
Type: String
transactionNumber
Required. A unique primary key. The transaction number from WIP or PPA-billings.
Table and Column: CBK_GL_TXN_VALUES.TRANSACTION_ID
Type: Positive Integer
transactionSource
Required. A unique primary key. This allows you to define the GL distribution of a
transaction based on the module where it originated.
Values:
■ W. From WIP.
■ A. From billing.
■ D. From credit.
Table and Column: TRANSACTION_SOURCE
Type: String
period
Required. The gl period for the transaction.
Table and Column: PPA_WIP.GLPERIOD
Type: String
InvoiceDate
Required. The date of the invoice to which the GL transaction belongs. It must be
between the project start and end dates.
Table and Column: CBK_INVOICE.INVOICE_DATE
Type: Date
department
Required. The department id of the transaction
Table and Column: CBK_GL_TXNS.DEPARTMENT_ID
Type: String
transactionDate
Required. The date of the transaction.
Idea
The Idea XOG object extends the common investment object as Ideas are a type of
investment. Use this XOG object to view inbound (write) and outbound (read) idea
processing.
Schema Names
■ nikuxog_idea.xsd. Use to view inbound idea attributes. It determines which XML
elements and attributes are required to import idea information from an external
system into CA Clarity.
■ nikuxog_read.xsd. Use to view outbound idea attributes. It determines the XML
format required to export idea information from CA Clarity to another system.
Prerequisites
Prior to importing ideas, the following items must be correctly set up:
ID
The unique identifier for the idea. If the ID does not exist, the XML schema creates a
new idea record unless auto-numbering is enabled (then an error is generated and
posted to the Success and Error files). If the XOG input includes an idea ID, and an
idea with the same ID is found, that record is updated.
Summary
The summary of the idea.
Finish date
The completion date for the idea. If a finish date exists, there must also be a start
date. The finish date must also be greater than the start date.
Break-even date
This is the date when the idea is to break-even. If a break-even date exists, it must
be greater than or equal to the start date.
Read Filters
The following explicit read filters are used with this XOG:
■ objectId
■ managerUserName
■ lastUpdatedDate
Error Handling
Schema Mappings
Idea is composed of the following elements, which are inherited from the investment
object, and idea-specific mapping found in the Idea Schema tag:
■ Allocations
■ scenarioDependencies
■ InvestmentAssociations
■ InvestmentBaselines
■ InvestmentResources
■ InvestmentTasks
■ General
■ OBSAssocs
■ CustomInformation
Ideas are different from other investments because they do not include child
investments. You can only associate ideas with a simple budget, and they do not have
full financial planning capabilities like other investment types.
Note: The import validation rule applies only if it is different from the object
attribute-level validation rule
ideaspriority
Optional. Defines the priority for the idea.
Table and Column: INV_IDEAS.PRIORITY
Values: High, Medium, Low
estimateType
Optional.
Table and Column: INV_IDEAS.EST_TYPE
Type: Number
Values: Historical, Analytical, High Level, and Commitment
estimatedCost
Optional.
Table and Column: INV_IDEAS.EST_COST
Type: nonNegativeDouble
estimatedBenefit
Optional.
Table and Column: INV_IDEAS.EST_BENEFIT
Type: nonNegativeDouble
benefitDescription
Optional.
Table and Column: INV_IDEAS.BENEFIT_DESC
Type: String
generalNotes
Optional.
Table and Column: INV_IDEAS.GENERAL_NOTES
Type: String
businessUnit
Optional.
Table and Column: INV_IDEAS.BUS_UNIT
Type: String
breakevenDate
Optional.
Table and Column: INV_IDEAS.BREAKEVEN_DATE
Type: investmentDateTimeType
impact
Optional.
Table and Column: INV_IDEAS.IMPACT
Type: String
risks
Optional.
Table and Column: INV_IDEAS.RISKS
Type: String
dependencies
Optional.
Table and Column: INV_IDEAS.DEPENDENCIES
Type: String
estimatedStartDate
Optional.
Table and Column: INV_IDEAS.EST_START_DATE
Type: investmentDateTimeType
estimatedFinishDate
Optional.
Table and Column: INV_IDEAS.EST_FINISH_DATE
Type: investmentDateTimeType
conversionDate
Optional.
Table and Column: INV_IDEAS.CONVERSION_DATE
Type: investmentDateTimeType
createdDate
Optional.
Table and Column: INV_IDEAS.PMA_IDEA.CREATED_DATE
createdBy
Optional.
Table and Column: INV_IDEAS.PMA_IDEA.CREATED_BY
lastUpdatedDate
Optional.
Table and Column: INV_IDEAS.PMA_IDEA.LAST_UPDATED_DATE
lastUpdatedBy
Optional.
Table and Column: INV_IDEAS.PMA_IDEA.LAST_UPDATED_BY
ideaspriority
Optional.
Table and Column: INV_IDEAS.PRIORITY
Type: Number
Import Validation Rule: The priority range used in ideas differs from the range used
for investments.
targetManagerUserName
Optional.
Table and Column: INV_IDEAS.TARGET_MANAGER_ID
Type: String
Import Validation Rule: The name of the manager who is targeted to manage the
investment after conversion from an idea.
name
Required.
Table and Column: INV_INVESTMENTS.NAME
Type: String
objectID
Optional. Autonumbering is required if it is not present.
Table and Column: INV_INVESTMENTS.CODE
Type: String
description
Optional.
Table and Column: INV_INVESTMENTS.DESCRIPTION
Type: String
priority
Optional.
Table and Column: INV_INVESTMENTS.PRIORITY
Type: Number
managerUserName
Optional.
Table and Column: INV_INVESTMENTS.MANAGER_ID
Type: String
approvedById
Optional.
Table and Column: INV_INVESTMENTS.APPROVEDBY_ID
Type: String
chargeCodeExtID
Optional.
Table and Column: INV_INVESTMENTS.CHARGECODEID
Type: String
approvedTime
Optional.
Table and Column: INV_INVESTMENTS.APPROVEDTIME
Type: investmentDateTimeType
processCode
Optional.
Table and Column: INV_INVESTMENTS.PROCESS_CODE
Type: investmentCodeType
stageCode
Optional.
Table and Column: INV_INVESTMENTS.STAGE_CODE
Type: investmentCodeType
goalCode
Optional.
Table and Column: INV_INVESTMENTS.GOAL_CODE
Type: investmentCodeType
alignment
Optional.
Table and Column: INV_INVESTMENTS.ALIGNMENT
Type: iNumber
risk
Optional.
Table and Column: INV_INVESTMENTS.RISK
Type: Number
statusIndicator
Optional.
Table and Column: INV_INVESTMENTS.STATUS_INDICATOR
Type: Number
statusComment
Optional.
Table and Column: INV_INVESTMENTS.STATUS_COMMENT
Type: String
progress
Optional.
Default: 0 - Not Started
Table and Column: INV_INVESTMENTS.SPROGRESS
Type: Number
currencyISOcode
Optional.
Note: This attribute replaces currencyCode
Table and Column: INV_INVESTMENTS.CURRENCY_CODE
Type: String
plannedBenStart
Optional.
Table and Column: FIN_FINANCIALS.PLANNED_BEN_START
Type: investmentDateTimeType
plannedBenFinish
Optional.
Table and Column: FIN_FINANCIALS.PLANNED_BEN_FINISH
Type: investmentDateTimeType
budgetCostTotal
Optional.
Table and Column: FIN_FINANCIALS.BUDGET_CST_TOTAL
Type: nonNegativeDouble
budgetCostStart
Optional.
Table and Column: FIN_FINANCIALS.BUDGET _CST_START
Type: investmentDateTimeType
budgetCostFinish
Optional.
Table and Column: FIN_FINANCIALS.BUDGET _CST_FINISH
Type: investmentDateTimeType
budgetCostOnHold
Optional.
Table and Column: FIN_FINANCIALS.BUDGET _CST_ONHOLD
Type: investmentDateTimeType
budgetCostResumed
Optional.
Table and Column: FIN_FINANCIALS.BUDGET _CST_RESUMED
Type: investmentDateTimeType
budgetRevTotal
Optional.
Table and Column: FIN_FINANCIALS.BUDGET_REV_TOTAL
Type: nonNegativeDouble
budgetRevStart
Optional
Table and Column: FIN_FINANCIALS.BUDGET_REV _START
Type: investmentDateTimeType
budgetRevFinish
Optional.
Table and Column: FIN_FINANCIALS.BUDGET_REV _FINISH
Type: investmentDateTimeType
budgetRevOnHold
Optional.
Table and Column: FIN_FINANCIALS.BUDGET _REV_ONHOLD
Type: investmentDateTimeType
budgetRevResumed
Optional.
Table and Column: FIN_FINANCIALS.BUDGET _REV_RESUMED
Type: investmentDateTimeType
forecastCostTotal
Optional.
Table and Column: FIN_FINANCIALS.FORECAST _CST_TOTAL
Type: nonNegativeDouble
forecastCostStart
Optional.
Table and Column: FIN_FINANCIALS.FORECAST _CST_START
Type: investmentDateTimeType
forecastCostFinish
Optional.
Table and Column: FIN_FINANCIALS.FORECAST _CST_FINISH
Type: investmentDateTimeType
forecastCostOnHold
Optional.
Table and Column: FIN_FINANCIALS.FORECAST _CST_ONHOLD
Type: investmentDateTimeType
forecastCostResumed
Optional.
Table and Column: FIN_FINANCIALS.FORECAST _CST_RESUMED
Type: investmentDateTimeType
forecastRevTotal
Optional.
Table and Column: FIN_FINANCIALS.FORECAST _REV_TOTAL
Type: nonNegativeDouble
forecastRevStart
Optional.
Table and Column: FIN_FINANCIALS.FORECAST _REV _START
Type: investmentDateTimeType
forecastRevFinish
Optional.
Table and Column: FIN_FINANCIALS.FORECAST _REV _FINISH
Type: investmentDateTimeType
forecastRevOnHold
Optional.
Table and Column: FIN_FINANCIALS.FORECAST _REV_ONHOLD
Type: investmentDateTimeType
forecastRevResumed
Optional.
Table and Column: FIN_FINANCIALS.FORECAST _REV_RESUMED
Type: investmentDateTimeType
plannedNPV
Optional.
Table and Column: FIN_FINANCIALS.PLANNED_NPV
Type: Number
plannedROI
Optional.
Table and Column: FIN_FINANCIALS.PLANNED_ROI
Type: Number
plannedBreakEven No
Optional.
Table and Column: FIN_FINANCIALS.PLANNED_BREAKEVEN
Type: investmentDateTimeType
budgetNPV
Optional.
Table and Column: FIN_FINANCIALS.BUDGET_NPV
Type: Number
budgetROI
Table and Column: FIN_FINANCIALS.BUDGET_ROI
Type: Number
budgetBreakEven
Optional.
Table and Column: FIN_FINANCIALS.BUDGET_BREAKEVEN
Type: investmentDateTimeType
setBudgetValuesEqualToPlannedValues
Optional.
Table and Column:
Type: Boolean
calculateFinancialMetrics
Optional.
Table and Column:
Type: Boolean
initialInvestment
This column refers to the initial, lump sum cost associated with an investment
Table and Column: FIN_FINANCIALS.INITIAL_INVESTMENT
Type: Number
plannedIRR
Internal Rate of Return on investment as calculated from the planned costs and
planned benefits. This is used only in a XOG read result.
Table and Column: FIN_FINANCIALS.PLANNED_IRR
Type: Number
plannedMIRR
Modified internal rate of return on an investment as calculated from the planned
costs and planned benefits. This is used only in a XOG read result.
Table and Column: FIN_FINANCIALS.PLANNED_MIRR
Type: Number
plannedPaybackPeriod
Payback period of investment as calculated from the planned costs and planned
benefits. This is used only in a XOG read result.
Table and Column:FIN_FINANCIALS.PLANNED_PAYBACK_PERIOD
Type: Number
budgetIRR
Internal rate of return on an investment as calculated from the budgeted costs and
budgeted benefits. This is used only in a XOG read result.
Table and Column: FIN_FINANCIALS.BUDGET _IRR
Type: Number
budgetMIRR
Modified internal rate of return on an investment as calculated from the budgeted
costs and budgeted benefits. This is used only in a XOG read result.
Table and Column: FIN_FINANCIALS.BUDGET_MIRR
Type: Number
budgetPaybackPeriod
Payback Period of investment as calculated from the budgeted costs and budgeted
benefits. This is used only in XOG read result.
Table and Column: FIN_FINANCIALS.BUDGET _PAYBACK_PERIOD
Type: Number
useSystemDefinedTotalCostOfCapital
This column indicates whether an investment uses the system-defined
reinvestment rate % for financial metrics calculations.
Table and Column: FIN_FINANCIALS.IS_SYS_VAL_FOR_TCC
Type: Boolean
investmentDefinedTotalCostOfCapital
Investment-specific total cost of capital percentage used for financial metrics
calculations based on the value of IS_SYS_VAL_FOR_TCC.
Table and Column: FIN_FINANCIALS.TOTAL_COST_OF_CAPITAL
Type: Number
useSystemDefinedReinvestmentRate
Indicates whether an investment uses the system-defined total cost of capital
percentage for financial metrics calculations.
Table and Column: FIN_FINANCIALS.IS_SYS_VAL_FOR_RR
Type: Boolean
investmentDefinedReinvestmentRate
Investment-specific reinvestment rate percentage used for financial metrics
calculations based on the value of IS_SYS_VAL_FOR_RR
Table and Column: FIN_FINANCIALS.REINVESTMENT_RATE
Type: String
Inbound Transaction
Use the inbound transaction XOG object to view inbound and outbound inbound
transactions. Inbound transactions are the cost and/or revenue posted for tasks or
investments.
Schema Name
nikuxog_inboundTransaction.xsd
Prerequisites
None
Read Filters
Error Handling
Schema Mapping
actualCostRate
Optional. The cost rate for the voucher entry.
Table and Column: IMP_TRANSACTIONIMPORT.COST
Type: Double
actualCostRateCurrency
Optional. The actual cost rate currency for the voucher entry.
Table and Column: IMP_TRANSACTIONIMPORT.COST_CURRENCY
Type: String
billRate
Optional. The bill rate for the voucher entry.
Table and Column: IMP_TRANSACTIONIMPORT.RATE
Type: Double
billRateCurrency
Optional. The billing rate currency for the voucher entry.
Table and Column: IMP_TRANSACTIONIMPORT.RATE_CURRENCY
Type: String
importStatus
Optional. The import status for the voucher entry. The only value allowed is 'N'
which means New.
Table and Column: IMP_TRANSACTIONIMPORT.IMPORTSTATUS
Type: String
Incident
Use the incident XOG object to view inbound and outbound incident instances.
Schema Name
nikuxog_incident.xsd
Prerequisites
Read Filters
None
Error Handling
Schema Mapping
The following incident schema tag names are provided to XOG incidents:
■ incidents (see page 242)
■ Description (see page 243)
incident
default_reviewer
Defines the default reviewer for the incident.
Table and Column: incidents.default_reviewer
Type: String
alt_default_reviewer
defines the alternate reviewer for the incident.
Table and Column: incidents.alt_default_reviewer
Type: String
parent_incident_code
Defines the code for parent incident.
Table and Column: parent_incident_id
Type: String
dept_manager_code
The incident manager resource code.
Table and Column: incidents.incident_manager_id
Type: String
brm_code
Defines the business relationship manager.
Table and Column: brm_id
Type: String
entity
Required. The identify for the entity to which the incident belongs.
Table and Column: incidentS.entity_id
Type: String
delegate_invoice_approval
Indicates if the incident delegates invoice approval.
Table and Column: incidentS.delegate_inv_appr
Type: Integer
description
Optional. Defines the description of the incident.
Table and Column: IMM_INCIDENTS.DESCRIPTION
Type: String
Investment
The investment XOG object is used by multiple objects all of which share a common
foundation. The nikuxog_inv_common.xsd is a common schema shared among all
investments. The schema definition contained in this file along with the extended
schema definition in a specialized investment file together make up the schema for a
particular investment type.
The investment object is an abstract object that you can only create as one of the
following objects which extend the base investment object:
■ Project
■ Classes
Schema Name
nikuxog_inv_common.xsd
A generic read and write xml files is not included for investments. You can read or write
investments in their specific investment type form, such as application, asset, or
product. The following files contains part of the business logic used to read investments:
■ inv_common_read.xbl. Use this file to export investments from CA Clarity.
■ inv_common_write.xbl. Use this file to import investments that were previously
exported from CA Clarity.
Prerequisites
Objects which are based upon the Investment object are defined for inbound (write)
and outbound (read) processing. The abstract Investment object itself cannot be written
to or read from CA Clarity.
Read Filters
Error Handling
■ Specified child investment XXX does not exist in the System at this time. Please
re-run the XOG if it exists now.
■ Investment Object operation failed while processing Investment Association.
■ No match could be found for Assignment teamId = XXX.
■ When specifying assignments for multiple roles, a teamId is required. role = XXX.
■ Could not determine the teamUid for assignment resource = XXX.
■ Team resource does not exist XXX.
■ Assignment role XXX does not exist.
■ -- Task XXX has no taskID; Estimate Rules are not imported.
■ Constraint date attribute cannot be null when delete flag is null. Could not add
constraint with type = XXX !
■ Constraint type attribute is not a correct value. Could not add constraint with type =
XXX.
■ Constraint type attribute is required! Could not add constraint.
■ When inserting multiple roles for the same role resourceId you must supply a
teamId.
■ Investment Management Object XXX failed.
Schema Mapping
For the Idea object, the Allocations element is not supported and
InvestmentAssociations may only include parents.
status
Optional. Defines the status of the investment.
Values: Unapproved, Approved, Rejected, and Cancelled
An idea has three additional statuses: Submitted For Approval, Incomplete, and
Converted
Table and Column: INV_INVESTMENTS.STATUS
Type: Number
name
Required. The name of the investment.
Table and Column: INV_INVESTMENTS.NAME
Type: String
objectID
Optional. Autonumbering is required if it is not present.
Table and Column: INV_INVESTMENTS.CODE
Type: String
description
A text description of the investment.
Table and Column: INV_INVESTMENTS.DESCRIPTION
Type: String
shortdesc
A short description of the investment.
Table and Column: PROJCLASS.SHORTDESC
Type: String
priority
Optional. Defines the priority.
Values: 0-36, where:
■ 0. Highest priority
■ 36. Lowest priority
Table and Column: INV_INVESTMENTS.PRIORITY
Type: Number
managerUserName
Optional. The name of the manager for the investment.
Table and Column: INV_INVESTMENTS.MANAGER_ID
Type: String
approvedById
Optional. The name of the CA Clarity user who approved the investment.
Table and Column: INV_INVESTMENTS.APPROVEDBY_ID
Type: String
chargeCodeExtID
Optional.
Table and Column: INV_INVESTMENTS.CHARGECODEID
Type: String
createdDate
Optional. Specifies the date the investment was created.
Table and Column: PROJCLASS.CREATED_DATE
Type: Date
createdBy
Optional. Specifies who created the investment.
Table and Column: PROJCLASS.CREATED_BY
Type: String
updatedBy
Optional. Specifies who last updated the investment.
Table and Column: PROJCLASS.UPDATED_BY
Type: String
lastUpdatedBy
Optional. The name of the user who last modified the investment.
Table and Column: INV_INVESTMENTS.LAST_UPDATED_BY
Type: String
lastUpdatedDate
Optional. The date and time when the investment was last modified.
Table and Column: INV_INVESTMENTS.LAST_UPDATE_DATE
Type: investmentDateTimeType
approvedTime
Optional. The date and time when the investment was approved.
Table and Column: INV_INVESTMENTS.APPROVEDTIME
Type: investmentDateTimeType
processCode
Optional. The process associated with the investment.
Table and Column: INV_INVESTMENTS.PROCESS_CODE
Type: investmentCodeType
stageCode
Optional. The stage within the investment process.
Table and Column: INV_INVESTMENTS.STAGE_CODE
Type: investmentCodeType
goalCode
Optional. The business goal of the investment.
Table and Column: INV_INVESTMENTS.GOAL_CODE
Type: investmentCodeType
alignment
Optional. The numeric indicator of alignment with business goals between 0 and
100.
Table and Column: INV_INVESTMENTS.ALIGNMENT
Type: Number
risk
Optional. The risk associated with the investment.
Table and Column: INV_INVESTMENTS.RISK
Type: Number
statusIndicator
Optional. The graphical indicator of the investment status.
Table and Column: INV_INVESTMENTS.STATUS_INDICATOR
Type: Number
statusComment
Optional. The text description of investment status.
Table and Column: INV_INVESTMENTS.STATUS_COMMENT
Type: String
progress
The numeric code for investment progress (Not Started, Started, or Completed).
Default: 0 - Not Started.
Table and Column: INV_INVESTMENTS.PROGRESS
Type: Number
currencyISOcode
Optional. The ISO code for the currency associated with the investment.
Table and Column: INV_INVESTMENTS.CURRENCY_CODE
Type: String
openForTimeEntry
Optional.
Table and Column: INV_INVESTMENTS.IS_OPEN_FOR_TE
Type: Boolean
start
Optional.
Table and Column: INV_INVESTMENTS.SCHEDULE_START
Type: investmentDateTimeType
finish
Optional.
Table and Column: INV_INVESTMENTS.SCHEDULE_FINISH
Type: investmentDateTimeType
cbkType
Optional. Refers to PRTIMEENTRY_USERLOV1.
Table and Column: INV_INVESTMENTS.CBK_TYPE
Type: String
entityCode
Optional.
Table and Column: INV_INVESTMENTS.ENTITY_CODE
Type: String
BillExpenseType
Optional. It is either CAPITAL_EXPENDITURE or DEPRECIATION.
Table and Column: INV_INVESTMENTS.BILL_EXPENSE_TYPE
Type: String
trackMode
Optional.
Table and Column: INV_INVESTMENTS.TRACK_MODE
Type: Number
chargeCodeID
Optional.
Table and Column: INV_INVESTMENTS.CHARGECODEID
Type: String
requiredForScenarios
Optional.
Type: Boolean
plannedCostStart
Optional.
Table and Column: FIN_FINANCIALS.PLANNED_CST_START
Type: investmentDateTimeType
plannedCostFinish
Optional.
Table and Column: FIN_FINANCIALS.PLANNED_CST_FINISH
Type: investmentDateTimeType
plannedBenTotal
Optional.
Table and Column: FIN_FINANCIALS.PLANNED_BEN_TOTAL
Type: nonNegativeDouble
plannedBenStart
Optional.
Table and Column: FIN_FINANCIALS.PLANNED_BEN_START
Type: investmentDateTimeType
plannedBenFinish
Optional.
Table and Column: FIN_FINANCIALS.PLANNED_BEN_FINISH
Type: investmentDateTimeType
budgetCostTotal
Optional.
Table and Column: FIN_FINANCIALS.BUDGET_CST_TOTAL
Type: nonNegativeDouble
budgetCostStart
Optional.
Table and Column: FIN_FINANCIALS.BUDGET_CST_START
Type: investmentDateTimeType
budgetCostFinish
Optional.
Table and Column: FIN_FINANCIALS.BUDGET_CST_FINISH
Type: investmentDateTimeType
budgetCostOnHold
Optional.
Table and Column: FIN_FINANCIALS.BUDGET_CST_ONHOLD
Type: investmentDateTimeType
budgetCostResumed
Optional.
Table and Column: FIN_FINANCIALS.BUDGET_CST_RESUMED
Type: investmentDateTimeType
budgetRevTotal
Optional.
Table and Column: FIN_FINANCIALS.BUDGET_REV_TOTAL
Type: nonNegativeDouble
budgetRevStart
Optional.
Table and Column: FIN_FINANCIALS.BUDGET_REV_START
Type: investmentDateTimeType
budgetRevFinish
Optional.
Table and Column: FIN_FINANCIALS.BUDGET_REV_FINISH
Type: investmentDateTimeType
budgetRevOnHold
Optional.
Table and Column: FIN_FINANCIALS.BUDGET_REV_ONHOLD
Type: InvestmentDateTimeType
budgetRevResumed
Optional.
Table and Column: FIN_FINANCIALS.BUDGET_REV_RESUMED
Type: investmentDateTimeType
forecastCostTotal
Optional.
Table and Column: FIN_FINANCIALS.FORECAST_CST_TOTAL
Type: nonNegativeDouble
forecastCostStart
Optional.
Table and Column: FIN_FINANCIALS.FORECAST_CST_START
Type: investmentDateTimeType
forecastCostFinish
Optional.
Table and Column: FIN_FINANCIALS.FORECAST_CST_FINISH
Type: investmentDateTimeType
forecastCostOnHold
Optional.
Table and Column: FIN_FINANCIALS.FORECAST_CST_ONHOLD
Type: investmentDateTimeType
forecastCostResumed
Optional.
Table and Column: FIN_FINANCIALS.FORECAST_CST_RESUMED
Type: investmentDateTimeType
forecastRevTotal
Optional.
Table and Column: FIN_FINANCIALS.FORECAST_REV_TOTAL
Type: nonNegativeDouble
forecastRevStart
Optional.
Table and Column: FIN_FINANCIALS.FORECAST_REV_START
Type: investmentDateTimeType
forecastRevFinish
Optional.
Table and Column: FIN_FINANCIALS.FORECAST_REV_FINISH
Type: investmentDateTimeType
forecastRevOnHold
Optional.
Table and Column: FIN_FINANCIALS.FORECAST_REV_ONHOLD
Type: investmentDateTimeType
forecastRevResumed
Optional.
Table and Column: FIN_FINANCIALS.FORECAST_REV_RESUMED
Type: investmentDateTimeType
plannedNPV
Optional.
Table and Column: FIN_FINANCIALS.PLANNED_NPV
Type: Number
plannedROI
Optional.
Table and Column: FIN_FINANCIALS.PLANNED_ROI
Type: Number
plannedBreakEven
Optional.
Table and Column: FIN_FINANCIALS.PLANNED_BREAKEVEN
Type: investmentDateTimeType
plannedIRR
Optional.
Table and Column: FIN_FINANCIALS.PLANNED_IRR
Type: Number
plannedMIRR
Optional.
Table and Column:FIN_FINANCIALS.PLANNED_MIRR
Type: Number
plannedPaybackPeriod
Optional.
Table and Column:FIN_FINANCIALS.PLANNED_PAYBACK_PERIOD
Type: string
budgetNPV
Optional.
Table and Column: FIN_FINANCIALS.BUDGET_NPV
Type: Number
budgetROI
Optional.
Table and Column: FIN_FINANCIALS.BUDGET_ROI
Type: Number
budgetBreakEven
Optional.
Table and Column: FIN_FINANCIALS.BUDGET_BREAKEVEN
Type: investmentDateTimeType
budgetIRR
Optional.
Table and Column: FIN_FINANCIALS.BUDGET_IRR
Type: Number
budgetMIRR
Optional.
Table and Column: FIN_FINANCIALS.BUDGET_MIRR
Type: Number
budgetPaybackPeriod
Optional.
Table and Column: FIN_FINANCIALS.BUDGET_PAYBACK_PERIOD
f
Type: String
forecastNPV
Optional.
Table and Column: FIN_FINANCIALS.FORECAST_NPV
Type: Number
forecastROI
Optional.
Table and Column: FIN_FINANCIALS.FORECAST_ROI
Type: Number
forecastBreakEven
Optional.
Table and Column: FIN_FINANCIALS.FORECAST_BREAKEVEN
Type: investmentDateTimeType
forecastEqualsBudget
Optional.
Table and Column: FIN_FINANCIALS.IS_FCST_EQ_BDGT
Type: Boolean
calculatePresentValueInfo
Optional.
Table and Column: FIN_FINANCIALS.IS_CALC_PV_INFO
Type: Boolean
financialLocation
Optional.
Table and Column: PAC_MNT_PROJECTS.LOCATIONID
Type: String
financialDepartment
Optional.
Table and Column: PAC_MNT_PROJECTS.DEPARTCODE
Type: String
financialProjectClass
Optional.
Table and Column: PAC_MNT_PROJECTS.CLASS
Type: String
financialWipClass
Optional.
Table and Column: PAC_MNT_PROJECTS.WIPCLASS
Type: String
laborRateSource
Optional.
Table and Column: PAC_MNT_PROJECTS.TRANSRATESOURCELABOR
Type: String
laborCostSource
Optional.
Table and Column: PAC_MNT_PROJECTS.TRANSCOSTSOURCELABOR
Type: String
laborExchangeRateType
Optional.
Table and Column: PAC_MNT_PROJECTS.LABOR_EXCHANGE_RATE_TYPE
Type: String
materialRateSource
Optional.
Table and Column: PAC_MNT_PROJECTS.TRANSRATESOURCEMATERIALS
Type: String
materialCostSource
Optional.
Table and Column: PAC_MNT_PROJECTS.TRANSCOSTSOURCEMATERIALS
Type: String
materialExchangeRateType
Optional.
Table and Column: PAC_MNT_PROJECTS.MATERIALS_EXCHANGE_RATE_TYPE
Type: String
equipmentRateSource
Optional.
Table and Column: PAC_MNT_PROJECTS.TRANSRATESOURCEEQUIPMENT
Type: String
equipmentCostSource
Optional.
Table and Column: PAC_MNT_PROJECTS.TRANSCOSTSOURCEEQUIPMENT
Type: String
equipmentExchangeRateType
Optional.
Table and Column: PAC_MNT_PROJECTS.EQUIPMENT_EXCHANGE_RATE_TYPE
Type: String
expenseRateSource
Optional.
Table and Column: PAC_MNT_PROJECTS.TRANSRATESOURCEEXPENSES
Type: String
expenseCostSource
Optional.
Table and Column: PAC_MNT_PROJECTS.TRANSCOSTSOURCEEXPENSES
Type: String
expenseExchangeRateType
Optional.
Table and Column: PAC_MNT_PROJECTS.EXPENSE_EXCHANGE_RATE_TYPE
Type: String
expenseExchangeRateType
Optional.
Table and Column:
Type:
plannedCostOperatingTotal
Optional. Refers to planned operating cost of an investment.
Table and Column: FIN_FINANCIALS.PLANNED_CST_OPERATING_TOTAL
Type: Double
plannedCostCapitalTotal
Optional. Refers to planned capital cost of an investment.
Table and Column: FIN_FINANCIALS.PLANNED_CST_CAPITAL_TOTAL
Type: Double
budgetCostOperatingTotal
Optional. Refers to budget operating cost of an investment.
Table and Column: FIN_FINANCIALS.BUDGET_CST_OPERATING_TOTAL
Type: Double
budgetCostCapitalTotal
Optional. Refers to budget capital cost of an investment.
Table and Column: FIN_FINANCIALS.BUDGET_CST_CAPITAL_TOTAL
Type: Double
The Allocations element consists of zero or more allocations. Each Allocation can
contain zero or more Detail objects and zero or more CustomInformation objects. The
Allocations element at this level indicates the financial allocations used to track charges
against different organizational units (for example, a department). The attributes of this
tag does not reference tables or columns.
departmentCode
Optional.
Type: String
resourceClassCode
Optional.
Type: String
chargeCode
Optional.
Type: String
investmentCode
Optional.
Type: String
tableName
Optional.
Type: String
utilityCode1
Optional.
Type: String
utilityCode2
Optional.
Type: String
transactionClassCode
Optional.
Type: String
transactionClassCode
Optional.
Type: String
statusCode
Optional. The status of the allocation.
Type: String
chgRemtoOverhead
Optional.
Type: Boolean
cbkType
Required.
Type: String
cbkSubtype
Required.
Type: String
The Details element consists of zero or more allocations. Each Detail object can contain
zero or more CustomInformation objects. The Detail object can contain a TSV curve
consisting of a percentage. The attributes of this tag does not reference tables or
columns.
Allocations
The Allocations element at this level determines what percentage of the cost of an
investment is to be included in any parent investment (for example, Oracle may be used
by three different applications so the cost of Oracle can be split between the three
applications). The allocations element is a wrapper for zero or more ParentInvestment
elements.
ParentInvestment
The ParentInvestment element can contain the following attributes, in addition to
zero or more CustomInformation elements:
InvestmentID
Required. The ID of the immediate parent of the current investment.
Table and Column: INV_HIERARCHIES.PARENT_ID
Type: investmentIDType
InvestmentType
Required.
Table and Column: None
Type: investmentObjectCodeType
defaultAllocationPercent
Required. The percentage of the child budget and staff cost to allocate to the
parent. This attribute must total to either "0" or "1." This is because an
investment must be either completely allocated to its parents or completely
unallocated.
Table and Column: INV_HIERARCHIES.DEFAULT_ALLOC_PCT
Type: Number
Hierarchies
ChildInvestment
The ChildInvestment element can contain zero or more CustomInformation
elements and the following attributes:
InvestmentID
Required. The ID of the immediate child of the current investment.
Table and Column: INV_HIERARCHIES.CHILD_ID
Type: investmentIDType
InvestmentType
Required.
Table and Column: None
Type: investmentObjectCodeType
defaultAllocationPercent
Optional. The percentage of the child budget and staff cost to allocate to the
parent.
Table and Column: INV_HIERARCHIES.DEFAULT_ALLOC_PCT
Type: Number
The InvestmentBaselines schema tag contains the following attributes including zero or
more InvestmentBaseline elements. Each InvestmentBaseline element can contain a
BaselineDetails element.
revisionID
Required.
Table and Column: PRJ_BASELINES.CODE
Type: String
delete
Optional.
Table and Column: None
Type: Boolean
currentRevision
Required.
Table and Column: PRJ_BASELINES.IS_CURRENT
Type: Boolean
name
Required.
Table and Column: PRJ_BASELINES.NAME
Type: String
description
Optional.
Table and Column: PRJ_BASELINES.DESCRIPTION
Type: String
BaselineDetails
The BaselineDetails element contains detailed usage or cost curves for a baseline.
start
Optional.
Table and Column: PRJ_BASELINES_DETAILS.START_DATE
Type: projectDateTimeType
finish
Optional.
Table and Column: PRJ_BASELINES_DETAILS.FINISH_DATE
Type: projectDateTimeType
usageSum
Optional.
Table and Column: PRJ_BASELINES_DETAILS.USAGE_SUM
Type: Number
costSum
Optional.
Table and Column: PRJ_BASELINES_DETAILS.COST_SUM
Type: Number
duration
Optional.
Table and Column: PRJ_BASELINES_DETAILS.DURATION
Type: Number
Resource
availFrom
Optional. If the Team field is not set, use the investment start.
Table and Column: PRTEAM.pravailstart
Type: Date
availTo
Optional. If the team field is not set, use the investment finish.
Table and Column: PRTEAM.pravailfinish
Type: Date
openForTimeEntry
Optional.
Table and Column: PRTEAM.prisopen
Type: Boolean
bookingStatus
Optional.
Table and Column: PRTEAM.prbooking
Type: Integer
requestStatus
Optional.
Table and Column: PRTEAM.prstatus
Type: Integer
defaultAllocation
Optional.
Table and Column: PRTEAM.pralloccurve
Type: Float
resourceID
Required.
Table and Column: PRTEAM.prresourceid
Type: String
projectRoleID
Optional.
Table and Column: PRTEAM.prroleid
Type: String
isProjectManager
Optional. Indicates if the resource is the project manager.
Table and Column: Not applicable
Type: Boolean
lastUpdatedBy
Optional.
Table and Column: PRTEAM.last_updated_by
Type: String
lastUpdatedDate
Optional.
Table and Column: PRTEAM.last_updated_date
Type: Date
teamId
Optional. The unique identifier for each team member on an investment.
Table and Column: PRTEAM.team_uid
Type: String
requirementName
Optional.
Table and Column: PRTEAM.requirement_name
Type: String
Subelement <Baselines>
start
Optional.
Table and Column: PRJ_BASELINE_DETAILS.start_date
Type: Date
finish
Optional.
Table and Column: PRJ_BASELINE_DETAILS.finish_date
Type: Date
usageSum
Optional.
Table and Column: PRJ_BASELINE_DETAILS.usage_sum
Type: Float
Subelement <AllocCurve>
Subelement <HardAllocCurve>
Subelement <SkillAssocs>
Task
The attributes of the task element are not associated with any table or column. The Task
element has the following attributes:
internalTaskID
Optional.
Type: String
delete
Optional.
Type: Boolean
taskID
Optional.
Type: String
name
Optional.
Type: String
parent
Optional.
Type: String
firstChildOf
Optional.
Type: String
lastChildOf
Optional.
Table and Column: Not applicable
Type: String
nestSiblingOf
Optional.
Type: String
orderID
Optional.
Type: Number
outlineLevel
Optional.
Type: Number
start
Optional.
Type: projectDateTimeType
baseStart
Optional.
Type: projectDateTimeType
finish
Optional.
Type: projectDateTimeType
baseFinish
Optional.
Type: projectDateTimeType
milestone
Optional.
Type: Boolean
summary
Optional.
Type: Boolean
key
Optional.
Type: Boolean
category
Optional.
Type: String
status
Optional.
Type: Number
percComp
Optional.
Type: Number
lastUpdatedBy
Optional.
Type: String
lastUpdatedDate
Optional.
Type: projectDateTimeType
priority
Optional.
Type: Number
earlyStart
Optional.
Type: projectDateTimeType
lateStart
Optional.
Type: projectDateTimeType
earlyFinish
Optional.
Type: projectDateTimeType
lateFinish
Optional.
Type: projectDateTimeType
duration
Optional.
Type: Number
baselineDuration
Optional.
Type: Number
totalSlack
Optional.
Type: Number
unplanned
Optional.
Type: Boolean
shortName
Optional.
Type: String
guidelines
Optional.
Type: String
fixed
Optional.
Type: Boolean
lockedForScheduling
Optional.
Type: Boolean
baseFixed
Optional.
Type: Boolean
baseTime
Optional.
Type: projectDateTimeType
critical
Optional.
Type: Boolean
chargeCodeID
Optional.
Type: Number
subproject
Optional.
Type: Boolean
subprojectID
Optional.
Type: String
subprojectTaskID
Optional.
Type: String
subprojectReadOnly
Optional.
Type: Boolean
subprojectIPD
Optional.
Type: Boolean
userText1
Optional.
Type: String
topDownPercent
Optional.
Type: Number
chargeCodeExtID
Optional.
Type: String
OBSAssoc Element
No tables or columns are associated with the OBSAssoc element. It has the following
attributes:
name
Optional.
Type: String
id
Optional.
Type: String
unitPath
Required. This is a slash-delimited list of unit names leading to the unit to which the
object is associated (for example, "CAN/BC/VAN").
Type: String
mode
Optional.
Type: OBSRightMode
The CustomInformation element contains data for custom attributes added to the
Investment object.
Issue
Use the issue XOG object to view inbound and outbound issue instances.
Schema Name
nikuxog_issue.xsd
Prerequisites
Before using this XOG object, make sure the referenced objects, such as the project,
user, and category, exist in CA Clarity.
Read Filters
Error Handling
Schema Mapping
Location
Use the location XOG object to view inbound and outbound location attributes.
Schema Name
nikuxog_location.xsd
Prerequisites
When a location is created, a corresponding OBS unit is created in the location OBS
referred to by the location's entity.
Read Filters
Error Handling
The following attribute values are validated against CA Clarity. If the values do not exist,
XOG displays an error message and does not import or update the record.
Entity
Checks if the entity is valid and exists in the system.
Required fields
Ensures all required fields have values.
Department associations
Ensures departments belong to the same entity. Further, if the department does
not exist, a warning is output.
Schema Mappings
A placeholder element for multiple locations. This schema tag has the following
elements:
■ Location
■ Description Schema Tag
■ DepartmentAssociations Schema Tag
Location Element
The Location element is the actual Location object. It has the following attributes.
locationCode
Required. The unique code for location.
Table and Column: locations.locationid
Type: String
entity
Required. The entity to which the location belongs.
Table and Column: locations.entity
Type: String
description
Required.
Table and Column: locations.locationdescription
Type: String
shortdescription
Required.
Table and Column: locations.shortdesc
Type: String
address1
Optional.
Table and Column: locations.address1
Type: String
address2
Optional.
Table and Column: locations.address2
Type: String
address3
Optional.
Table and Column: locations.address3
Type: String
city
Optional.
Table and Column: locations.city
Type: String
zip
Optional.
Table and Column: locations.zip
Type: String
countryid
Optional.
Table and Column: locations.countryid
Type: String
phone
Optional.
Table and Column: locations.phone
Type: String
fax
Optional.
Table and Column: locations.fax
Type: String
managerResourceCode
Optional. The manager for location department associations.
Table and Column: locations.manager_resource_code
Type: String
name
Required. The name of the location.
Table and Column: locations.shortdesc
Type: String
locationManagerCode
Optional. The resource code for location manager.
Table and Column: locations.location_manager_id
Type: String
stateprov
Optional.
Table and Column: locations.stateprov
Type: String
Matrix
Use the matrix XOG object to view inbound and outbound cost/rate matrix instances.
Rate matrices give you flexibility in defining cost for particular services or resources.
Schema Name
nikuxog_matrix.xsd
Filters
Error Handling
The following errors can be thrown when importing or exporting the cost plan:
■ Failed to export matrices.
■ Failed to import matrices.
Schema Mappings
locationid
Defines the location unique identifier for the matrix column.
Table and Column: PPA_MATRIXCOLDEF.FIELDNAME
Type: String
projclass
Defines the project class for the matrix column.
Table and Column: PPA_MATRIXCOLDEF.FIELDNAME
Type: String
project_code
Defines the project code for the matrix column.
Table and Column: PPA_MATRIXCOLDEF.FIELDNAME
Type: String
resourceClass
Defines the resource class for the matrix column.
Table and Column: PPA_MATRIXCOLDEF.FIELDNAME
Type: String
resource_code
Defines the resource code for the matrix column.
Table and Column: PPA_MATRIXCOLDEF.FIELDNAME
Type: String
resourceRole
Optional. Defines the resource role for the matrix column.
Table and Column: PPA_MATRIXCOLDEF.FIELDNAME
Type: String
transactionClass
Optional. Defines the transaction class for the matrix column.
Table and Column: PPA_MATRIXCOLDEF.FIELDNAME
Type: String
projsitecode
Defines the project site code for the matrix column.
Table and Column: PPA_MATRIXCOLDEF.FIELDNAME
Type: String
location
Optional. Defines the location for the matrix row.
Table and Column: PPA_MATRIXVALUES.VALUE9
Type: String
Project class
Optional. Defines the project class for the matrix row.
Table and Column: PPA_MATRIXVALUES.VALUE8
Type: String
Project
Optional. Defines the project for the matrix row.
Table and Column: PPA_MATRIXVALUES.VALUE7
Type: String
Resource class
Optional. Defines the resource class for the matrix row.
Table and Column: PPA_MATRIXVALUES.VALUE9
Type: String
Resource
Optional. Defines the resource for the matrix row.
Table and Column: PPA_MATRIXVALUES.VALUE10
Type: String
rate
Optional. Defines the rate for the matrix row.
Table and Column: PPA_MATRIXVALUES.NUMVAL1
Type: Double
standardCost
Optional. Defines the standard cost for the matrix row.
Table and Column: PPA_MATRIXVALUES.NUMVAL2
Type: Double
actualCost
Optional. Defines the actual cost for the matrix row.
Table and Column: PPA_MATRIXVALUES.NUMVAL3
Type: Double
currencyCode
Optional. Defines the currency code for the matrix row.
Table and Column: PPA_MATRIXVALUES.MATRIX_CURRENCY_CODE
Type: String
typeCode
Optional. Defines the cost plus code for the matrix row.
Table and Column: PPA_MATRIXVALUES.STRVAL1
Type: String
Non-Project Investment
Use the Non-project Investments XOG object to view inbound and outbound
non-project investment object (NPIO) attributes. NPIOs include:
■ Asset
■ Application
■ Product
■ Other Work
Schema Names
None
Read Filters
The XOG supports the outbound processing of NPIOs based on the following fields:
ObjectId
The unique ID for the NPIO.
managerUserName
If all filters are commented out, all NPIOs for the defined type are exported.
Terms
Schema Mappings
technology
Defines the technology.
Values:
■ 0. data
■ 1. desktop
■ 2. video
■ 3. voice
Table and Column:
Type: Number
platform
Defines the platform.
Values:
■ 0. HP-UX
■ 1. Macintosh
■ 2. Sun
■ 3. Windows
■ 4. other
Table and Column:
Type: Number
Schema Name
nikuxog_product.xsd
Schema Name
nikuxog_otherInvestment.xsd
priority
Optional. Defines the priority of the investment.
Values: 0-36, where:
■ 0. Highest priority
■ 36. Lowest priority
Table and Column: PRJ_PROJECTS.prPRIORITY
Type: Number
managerUserName
Optional. Defines the name of the resource managing the investment. The
manager's user name must match an existing user name in CA Clarity.
Table and Column: PRJ_PROJECTS.MANAGER_ID
Type: String
approvedById
Required. Defines the name of the resource who approved the investment. The
user name must match an existing user name in CA Clarity.
Table and Column: PRJ_PROJECTS.APPROVEDBY_ID
Type: String
chargeCodeExtId
Required.
Table and Column: PRJ_PROJECTS.PRCHARGECODEID
Type: String
lastUpdatedBy
Optional. Defines the name of the resource who last updated the investment.
Default: The name of the resource logged in to CA Clarity.
Table and Column: PRJ_PROJECTS.LAST_UPDATED_BY
Type: String
lastUpdatedDate
Optional. Defines the date the investment was last updated.
Default: Today's date
Table and Column: SRM_PROJECTS.LAST_UPDATED_DATE
Type: dateTime
approvedTime
Optional. Defines the time the investment was approved.
Table and Column: PRJ_PROJECTS.PRAPPROVEDTIME
Type: dateTime
processCode
Required. Defines the process code of the investment. The code must exist in CA
Clarity.
Table and Column: PRJ_PROJECTS.PROCESS_CODE
Type: String
stageCode
Required. Defines the stage code of the investment. The code must exist in CA
Clarity.
Table and Column: PRJ_PROJECTS.STAGE_CODE
Type: String
categoryCode
Required. Defines the category code of the investment. The code must exist in CA
Clarity.
Table and Column: PRJ_PROJECTS.CATEGORY_CODE
Type: String
goalCode
Required. Defines the goal code of the investment. The code must exist in CA
Clarity.
Table and Column: PRJ_PROJECTS.GOAL_CODE
Type: String
alignment
Optional. Defines the alignment of the investment.
Table and Column: PRJ_PROJECTS.ALIGNMENT
Type: Number
risk
Optional. Defines the risk of the investment.
Table and Column: PRJ_PROJECTS.RISK
Type: Number
statusIndicator
Optional.
Table and Column: PRJ_PROJECTS.STATUS_INDICATOR
Type: Number
statusComment
Optional.
Table and Column: PRJ_PROJECTS.STATUS_COMMENT
Type: String
progress
Optional.
Values:
■ 0. Not Started
■ 1. Started
■ 2. Completed
Table and Column: PRJ_PROJECTS.PROGRESS
Type: Double
budgetCostTotal
Optional. The minimum is 0.
Table and Column: PRJ_PROJECTS.BDGT_CST_TOTAL
Type: dateTime
budgetCostStart
Optional.
Table and Column: PRJ_PROJECTS.BDGT_CST_START
Type: dateTime
budgetCostFinish
Optional.
Table and Column: PRJ_PROJECTS.BDGT_CST_FINISH
Type: dateTime
budgetCostOnHold
Optional.
Table and Column: PRJ_PROJECTS.BDGT_CST_ONHOLD
Type: dateTime
budgetCostResume
Optional.
Table and Column: PRJ_PROJECTS.BDGT_CST_RESUME
Type: dateTime
budgetRevTotal
Optional. The minimum is 0.
Table and Column: PRJ_PROJECTS.BDGT_REV_TOTAL
Type: Double
budgetRevStart
Optional.
Table and Column: PRJ_PROJECTS.BDGT_REV_START
Type: dateTime
budgetRevFinish
Optional.
Table and Column: PRJ_PROJECTS.BDGT_REV_FINISH
Type: dateTime
budgetRevOnHold
Optional.
Table and Column: PRJ_PROJECTS.BDGT_REV_ONHOLD
Type: dateTime
budgetRevResume
Optional.
Table and Column: PRJ_PROJECTS.BDGT_REV_RESUME
Type: dateTime
budgetNPV
Optional. If the Calculate Present Value Info flag is set, the budgetNPV is
recalculated after import.
Table and Column: PRJ_PROJECTS.BDGT_NPV
Type: Float
budgetROI
Optional. If the Calculate Present Value Info flag is set, the budgetROI is
recalculated after import. 1.0 is 100%.
Table and Column: PRJ_PROJECTS.BDGT_ROI
Type: Percent
budgetBreakEven
Optional. This is recalculated after import if Calculate Present Value Info flag is set.
Table and Column: PRJ_PROJECTS.BDGT_BREAKEVEN
Type: dateTime
forecastCostTotal
Optional. The minumum is 0.
Table and Column: PRJ_PROJECTS.FCST_CST_TOTAL
Type: Double
forecastCostStart
Optional.
Table and Column: PRJ_PROJECTS.FCST_CST_START
Type: dateTime
forecastCostFinish
Optional.
Table and Column: PRJ_PROJECTS.FCST_CST_FINISH
Type: dateTime
forecastCostOnHold
Optional.
Table and Column: PRJ_PROJECTS.FCST_CST_ONHOLD
Type: dateTime
forecastCostResume
Optional.
Table and Column: PRJ_PROJECTS.FCST_CST_RESUME
Type: dateTime
forecastRevTotal
Optional.
Table and Column: PRJ_PROJECTS.FCST_REV_TOTAL
Type: dateTime
forecastRevStart
Optional.
Table and Column: PRJ_PROJECTS.FCST_REV_START
Type: dateTime
forecastRevFinish
Optional.
Table and Column: PRJ_PROJECTS.FCST_REV_FINISH
Type: dateTime
forecastRevOnHold
Optional.
Table and Column: PRJ_PROJECTS.FCST_REV_ONHOLD
Type: dateTime
forecastRevResume
Optional.
Table and Column: PRJ_PROJECTS.FCST_REV_RESUME
Type: dateTime
forecastNPV
Optional. This is recalculated after import if Calculate Present Value Info flag is set.
Table and Column: PRJ_PROJECTS.FCST_NPV
Type: Float
forecastROI
Optional. This is recalculated after import if Calculate Present Value Info flag is set.
1.0 is 100%.
Table and Column: PRJ_PROJECTS.FCST_ROI
Type: Percent
forecastBreakEven
Optional. This is recalculated after import if Calculate Present Value Info flag is set.
Table and Column: PRJ_PROJECTS.FCST_BREAKEVEN
Type: dateTime
currencyISOcode
Required. The three-character ISO currency code that must be an active currency in
CA Clarity.
Table and Column: PRJ_PROJECTS.CURRENCY_CODE
Type: String
calculatePresentValueInfo
Required. If selected, this calculates the NPV,ROI and breakeven after import.
Table and Column: PRJ_PROJECTS.IS_CALC_PV_INFO
Type: Boolean
forecastEqualsBudget
Optional. If selected, forecast values will track the budget values.
Table and Column: PRJ_PROJECTS.IS_CALC_PV_INFO
Type: Boolean
plannedCostStart
Optional.
Table and Column: FIN_FINANCIALS.PLANNED_CST_START
Type: Date
plannedCostFinish
Optional.
Table and Column: FIN_FINANCIALS.PLANNED_CST_FINISH
Type: Date
plannedBenTotal
Optional.
Table and Column: FIN_FINANCIALS.PLANNED_BEN_TOTAL
Type: Double
plannedBenStart
Optional.
Table and Column: FIN_FINANCIALS.PLANNED_BEN_START
Type: Date
plannedBenFinish
Optional.
Table and Column: FIN_FINANCIALS.PLANNED_BEN_FINISH
Type: Date
budgetCostTotal
Table and Column: FIN_FINANCIALS.BUDGET_CST_TOTAL
Optional.
Type: Double
budgetCostStart
Optional.
Table and Column: FIN_FINANCIALS.BUDGET_CST_START
Type: Date
budgetCostFinish
Optional.
Table and Column: FIN_FINANCIALS.BUDGET_CST_FINISH
Type: Date
budgetRevTotal
Optional.
Table and Column: FIN_FINANCIALS.BUDGET_REV_TOTAL
Type: Double
budgetRevStart
Optional.
Table and Column: FIN_FINANCIALS.BUDGET_REV_START
Type: Date
budgetRevFinish
Optional.
Table and Column: FIN_FINANCIALS.BUDGET_REV_FINISH
Type: Date
forecastCostTotal
Optional.
Table and Column: FIN_FINANCIALS.FORECAST_CST_TOTAL
Type: Double
forecastCostStart
Optional.
Table and Column: FIN_FINANCIALS.FORECAST_CST_START
Type: Date
forecastCostFinish
Optional.
Table and Column: FIN_FINANCIALS.FORECAST_CST_FINISH
Type: Date
forecastRevTotal
Optional.
Table and Column: FIN_FINANCIALS.FORECAST_REV_TOTAL
Type: Double
forecastRevStart
Optional.
Table and Column: FIN_FINANCIALS.FORECAST_REV_START
Type: Date
forecastRevFinish
Optional.
Table and Column: FIN_FINANCIALS.FORECAST_REV_FINISH
Type: Date
plannedNPV
Optional. If the Calculate Present Value Info flag is set, this is recalculated after
import.
Table and Column: FIN_FINANCIALS.PLANNED_NPV
Type: Double
plannedROI
Optional. If the Calculate Present Value Info flag is set, this is recalculated after
import. 1.0 is 100%.
Table and Column: FIN_FINANCIALS.PLANNED_ROI
Type: Double
plannedBreakEven
Optional. This is recalculated after import if Calculate Present Value Info flag is set.
Table and Column: FIN_FINANCIALS.PLANNED_BREAKEVEN
Type: Date
budgetNPV
Optional. If the Calculate Present Value Info flag is set, this is recalculated after
import.
Table and Column: FIN_FINANCIALS.BUDGET_NPV
Type: Double
budgetROI
Optional. If the Calculate Present Value Info flag is set, this is recalculated after
import. 1.0 is 100%.
Table and Column: FIN_FINANCIALS.BUDGET_ROI
Type: Double
budgetBreakEven
Optional. This is recalculated after import if Calculate Present Value Info flag is set.
Table and Column: FIN_FINANCIALS.BUDGET_BREAKEVEN
Type: Date
forecastNPV
Optional. If the Calculate Present Value Info flag is set, this is recalculated after
import.
Table and Column: FIN_FINANCIALS.FORECAST_NPV
Type: Double
forecastROI
Optional. If the Calculate Present Value Info flag is set, this is recalculated after
import. 1.0 is 100%.
Table and Column: FIN_FINANCIALS.FORECAST_ROI.
Type: Double
forecastBreakEven
Optional. This is recalculated after import if Calculate Present Value Info flag is set.
Table and Column: FIN_FINANCIALS.FORECAST_BREAKEVEN
Type: Date
forecastEqualsBudget
Optional. If selected, forecast values will track the budget values.
Table and Column: FIN_FINANCIALS.IS_FCST_EQ_BDGT
Type: Boolean
currencyISOcode
Optional. A three-character ISO currency code that must be an active currency in CA
Clarity.
Table and Column: FIN_FINANCIALS.CURRENCY_CODE
Type: String
calculatePresentValueInfo
Optional. If checked, this calculates the NPV, ROI, and breakeven after import.
Table and Column: FIN_FINANCIALS.IS_CALC_PV_INFO
Type: Boolean
Schema Name
nikuxog_service.xsd
Notifications
Use the Notification XOG object to view inbound and outbound configurable notification
templates.
Schema Name
nikuxog_notification.xsd
Prerequisites
None.
Read Filters
Error Handling
No errors are thrown. If the filter includes invalid values, no records are read.
Schema Mapping
Portfolio
Use the portfolio XOG object for outbound (read) and inbound (write) processing.
Schema Name
nikuxog_pfm_portfolio.xsd
The Portfolios schema is defined for inbound (write) processing only. Some of the
portfolio fields (for example, budgetType, capacityType, capacityUnitType, invType) are
optional on the schema but are required fields in the database table. If they are not
provided in the input xml, the default values are used for these fields.
Schema Mappings
description
Optional. Defines the description of this portfolio.
Table and Column: pfm_portfolio.description
Type: String
syncschedule_cron
Optional. Defines the portfolio synchronization cadance in a cron like format.
Table and Column: pfm_portfolio.syncschedule_cron
Type: String
department
Optional. Defines the department (if any) associated with the portfolio.
Table and Column: pfm_portfolio.department_id
Type: String
currency_code
Optional. Defines the currency code for the portfolio.
Table and Column: pfm_portfolio.currency_code
Type: String
is_active
Optional. Defines the active status of the portfolio.
Table and Column: pfm_portfolio.is_active
Type: Boolean
page_layout
Optional. Defines the page layout of the portfolio.
Table and Column:
Type: String
partition_code
Optional. Defines the partition where the portfolio resides.
Table and Column: odf_ca_pfm_portfolio.partition_code
Type: String
cap_unit_type
Optional. Defines the capacity unit type for the portfolio (FTE or Hours).
Table and Column: pfm_portfolio.capacity_unit_type
Type: String
operating_cost_target
Optional. Defines the operating cost target for the portfolio.
Table and Column: pfm_portfolio.operating_cost_target
Type: Float
benefits_target
Optional. Defines the benefits target for the portfolio.
Table and Column: pfm_portfolio.benefits_target
Type: Float
resources_target
Optional. Defines the roles target for the portfolio.
Table and Column: pfm_portfolio.resources_target
Type: Float
operating_cost_curve
Optional. Defines the operating cost target for the portfolio as a curve.
Table and Column: pfm_portfolio.operating_cost_curve
Type: CurveType
capital_cost_curve
Optional. Defines the capital cost target for the portfolio as a curve.
Table and Column: pfm_portfolio.capital_cost_curve
Type: CurveType
benefits_curve
Optional. Defines the benefits target for the portfolio as a curve.
Table and Column: pfm_portfolio.benefits_curve
Type: CurveType
resources_curve
Optional. Defines the roles target for the portfolio as a curve.
Table and Column: pfm_portfolio.resources_curve
Type: CurveType
manager
Required. Defines the User ID of the portfolio manager who will manage this
portfolio.
Table and Column: PMA_PORTFOLIOS. MANAGER_ID
Type: String
id
Required. Defines the unique identifier for this portfolio.
Table and Column: PMA_PORTFOLIOS.ID
Type: String
parentPortfolioID
Optional. Defines the unique identifier of the parent portfolio (if this a child
portfolio).
Table and Column: PMA_PORTFOLIOS. PARENT_ID
Type: String
budgetCost
Required. Defines the budgeted cost of this portfolio.
Table and Column: PMA_PORTFOLIO. BDGT_CST_TOTAL
Type: Number
budgetBenefit
Required. Defines the budgeted benefit of this portfolio.
Table and Column: PMA_PORTFOLIOS. BDGT_REV_TOTAL
Type: Number
budgetType
Optional. Defines the budget type for this portfolio.
Values:
■ BUDGET_TYPE_TOTAL
■ BUDGET_TYPE_REMAINING
Default: BUDGET_TYPE_TOTAL
Table and Column: PMA_PORTFOLIOS. BUDGET_TYPE
Type: String
capacityType
Optional. Defines the capacity type for this portfolio.
Values:
■ CAPACITY_TYPE_TOTAL
■ CAPACITY_TYPE_REMAINING
Default: CAPACITY_TYPE_TOTAL
Table and Column: PMA_PORTFOLIOS. CAPACITY_TYPE
Type: String
invType
Optional. Defines the investment type for this portfolio.
Values: all, application, asset, idea, other, product, project, and service
Default: all
Table and Column: PMA_PORTFOLIOS. PORTFOLIO_INV_TYPE
Type: String
start_date
Required. Defines the start date for the portfolio horizon.
Table and Column: pfm_portfolio.start_date
Type: dateTime
finish_date
Required. Defines the finish date for the portfolio horizon.
Table and Column: pfm_portfolio.finish_date
Type: dateTime
currencyISOcode
Required.
Table and Column: PMA_PORTFOLIOS.CURRENCY_CODE
Type: String
pageLayoutCode
Optional.
Table and Column: CMN_INSTANCE_PAGES. PAGE_FRAME_ID
Type: String
lastSyncDate
Defines the date the portfolio contents were last updated.
Table and Column: PMA_PRTFLIO_INCL_CTNT_TYPES.LAST_SYNC_DATE
runSync
This value is used only while processing.
Table and Column: Not Applicable
investmentID
Required. On contents/include/expression/investment tag and
contents/investment tag.
Table and Column: PMA_PORTFOLIO_CONTENTS.INVEST_ID
investmentType
Required. On contents/include/expression/investment tag and
contents/investment tag.
Table and Column: PMA_PORTFOLIO_CONTENTS.INVEST_TYPE
Process Notification
Use the Process Notification XOG object to view inbound and outbound configurable
notification templates for processes.
Schema Name
nikuxog_processnotification.xsd
Prerequisites
Before using this XOG object, make sure the referenced object, such as the process
exists in CA Clarity.
Read Filters
Error Handling
No errors are thrown. If the filter includes invalid values, no records are read.
Schema Mapping
process_code
Required. Defines the process code to which the current notification is associated
with.
Table and Column: BPM_DEF_PROCESSES.PROCESS_CODE that associates to the
CMN_PROCESS_NOTIFICATIONS.PROCESS_ID
Type: String
Project
Use the Project XOG object to view inbound and outbound project attributes. Projects
are defined for inbound (write) and outbound (read) processing. Common reasons to
import and export project data include:
■ To deliver project plans to drive external systems such as time sheet tools.
■ To integrate with Oracle Projects and other project systems.
■ To supply data for sophisticated reporting requirements.
Schema Name
nikuxog_project.xsd
Import Rules
When importing project management information, the user importing the project (XOG
user) or the user passed in the Addedby attribute on the project XML, must have the
Project - Edit Management - All access right.
The following import rules are applied while importing or updating project financial
information:
■ The Username attribute must be passed and the user must be financially-enabled.
■ If the project is financially approved, changes to Client, Type, Billing Currency,
Forecasting flag Template Flag, Billing Project Code and Exchange Rate Type are not
allowed.
■ If there are transactions on PPA_WIP (with amounts not equal to zero) for a project,
then the changing of Status to Close for that project is not allowed.
■ The Client, Project Class, WIP Class, Location, Department, and Currency used for a
project must exist.
■ Contract Type, Project Document Number, Contract Amount, and Date are
required.
■ Bill Amount, Number of Bills, Bill Frequency, and First Bill Date are entered once
and you cannot change the value once imported.
■ If the rate/cost matrix is used in project financials, the specified rate matrix must be
validated along with all the columns mentioned in the rate or cost matrix.
Deletion Rules
You can delete tasks, assignments, and resources by passing the Deletion attribute
(which takes True or False). Only the following delete operations are allowed:
■ Delete Task: This also deletes all assignments for the task.
■ Remove a staff member from a project: When you remove staff from a project
team, it also removes assignments for the resource.
■ Remove assignment from task: The deletes the assignment from the task.
You cannot delete teams, tasks, or assignments that are referenced by a time entry with
non-zero actuals on a submitted timesheet (with a status other than Not Submitted or
Rejected).
When exporting project data from CA Clarity, the following elements are included:
■ Basic project information
■ Tasks
■ Assignments
■ Management information
■ Financial information
Read Filters
Schema mappings are described for the following outbound Project tag names:
■ SRM_PROJECTS
■ SRM_RESOURCES (Manage Resource ID)
■ PRJ_PROJECTS
■ PAC_MNT_PROJECTS
■ Project Location
■ CLNTSUPP
■ PRTEAM
■ SRM_RESOURCES (Team Resource ID)
■ SRM_RESOURCES (Project Role ID)
■ SRM_RESOURCES (Assignment Resource ID)
■ Phttp://jakarta.apache.org/commonsRTask
■ PRAssignment
■ OBS Association
■ OBSAssoc
Schema mappings are described for the following inbound Project tag names:
■ PRJ_PROJECTS
■ PAC_MNT_PROJECTS
■ Resource
■ Task
■ TaskLabor
name
Required.
Table and Column: SRM_PROJECTS.NAME
Type: String
description
Optional.
Table and Column: SRM_PROJECTS.DESCRIPTION
Type: String
createdBy
Optional.
Table and Column: SRM_PROJECTS.CREATED_BY
Type: String
createdDate
Optional.
Table and Column: SRM_PROJECTS.CREATED_DATE
Type: dateTime
lastUpdatedDate
Optional.
This uses PRJ_PROJECTS.prModTime
Table and Column: SRM_PROJECTS.LAST_UPDATED_DATE
Type: dateTime
lastUpdatedBy
Optional.
This uses PRJ_PROJECTS.prModBy if PRJ_PROJECTS.prModTime is later than
LAST_UPDATED_BY.
Table and Column: SRM_PROJECTS.LAST_UPDATED_BY
Type: String
Active
Optional.
Table and Column: SRM_PROJECTS.IS_ACTIVE
Type: Boolean
program
Optional. Indicates if the project is a program
Table and Column: SRM_PROJECTS.IS_PROGRAM
Type: Boolean
OpenForTimeEntry
Optional.
Table and Column: PRJ_PROJECTS.prIsOpen
Type: Boolean
Closed
Optional.
True only if prClosedTime is not null.
Table and Column: PRJ_PROJECTS.prClosedTime
Type: Boolean
financialStatus
Optional.
Table and Column: PAC_MNT_PROJECTS.STATUS
Type: String
approvedForBilling
Optional.
Table and Column: PAC_MNT_PROJECTS.APPROVED
Type: Boolean
billingType
Defines the billing type.
Values: S, I, and C
Table and Column: PAC_MNT_PROJECTS.TYPE_
Type: String
billingCurrencyCode
Optional.
Table and Column: PAC_MNT_PROJECTS.BILLLING_CURRENCY_CODE
Type: String
costType
Optional. Refers to Cost type for the investment. Possible values are
OPERATING/CAPITAL. Default value is OPERATING.
Table and Column: PAC_MNT_PROJECTS.cost_type
Type: String
This tag uses the PRTeam table with zero to many records and where
PRTeam.prProjectID = PRJ_PROJECTS.prID.
availFrom
Optional
Table and Column: PRTeam.prAvailStart
Type: dateTime
availTo
Optional
Table and Column: PRTeam.prAvailFinish
Type: dateTime
openForTimeEntry
Optional
Table and Column: PRTeam.prIsOpen
Type: Boolean
lastUpdatedBy
Optional
Table and Column: PRTeam.prModBy
Type: String
lastUpdatedDate
Optional
Table and Column: PRTeam.prModTime
Type: dateTime
capitalPercentage
Optional. Capitalization percent of planned cost at team level. The valid value of
this attribute can be any float value from 0 (0%) to 1 (100%). The default value is 0.
Table and Column: PRTEAM.CAPITAL_PERCENTAGE
Type: Float
This tag uses the PRTask table, with 0 to many records, and where PRTask.prProjectID =
PRJ_PROJECTS.prID.
start
Optional. Defines the start date and time for the task.
Table and Column: PRTask.prStart
Type: dateTime
baseStart
Optional. Defines the base start date and time for the task.
Table and Column: PRTask.prBaseStart
Type: dateTime
finish
Optional. Defines the finish date and time for the task.
Table and Column: PRTask.prFinish
Type: dateTime
baseFinish
Optional. Defines the base finish date and time for the task.
Table and Column: PRTask.prBaseFinish
Type: dateTime
milestone
Optional.
Table and Column: PRTask.prIsMilestone
Type: Boolean
summary
Optional. True only if prIsTask is false.
Table and Column: Not applicable
Type: Boolean
key
Optional.
Table and Column: PRTask.prIsKey
Type: Boolean
category
Optional.
Table and Column: PRTask.prCategory
Type: String
status
Optional. Defines the status of the task.
Values:
■ 0. Not Started
■ 1. Started
■ 2. Complete
Table and Column: PRTask.prStatus
Type: Integer
percComp
Optional. Valid values are between 0 and1 inclusive, where (100% is shown as 1.0.
Table and Column: PRTask.prPctComplete
Type: Float
lastUpdatedBy
Optional.
Table and Column: PRTask.prModBy
Type: String
lastUpdatedDate
Optional.
Table and Column: PRTask.prModTime
Type: dateTime
costType
Optional. Refers to Cost type for the task. Possible values are OPERATING/CAPITAL.
Table and Column: PRTASK.cost_type
Type: String
This tag uses the PRAssignment table, which can have 0 to many records, and where
PRAssignment.prTaskID = PRTask.prID.
start
Optional.
Table and Column: PRAssignment.prStart
Type: dateTime
finish
Optional.
Table and Column: PRAssignment.prFinish
Type: dateTime
actualWork
Optional.
Table and Column: PRAssignment.prActSum
Type: Float
remainingWork
Optional.
Table and Column: PRAssignment.prEstSum
Type: Float
baselineWork
Optional.
Table and Column: PRAssignment.prBaseSum
Type: Float
actualThrough
Optional.
Table and Column: PRAssignment.prActThru
Type: dateTime
lastUpdatedBy
Optional.
Table and Column: PRAssignment.prModBy
Type: String
lastUpdatedDate
Optional.
Table and Column: PRAssignment.prModTime
Type: dateTime
name
Optional.
Table and Column: PRJ_OBS_TYPES.PRJ_OBS_TYPES.NAME
Type: String
unitPath
Required. This is a slash-delimited list of unit names that points to the unit to which
the object is associated.
Table and Column: PRJ_OBS_TYPES.PRJ_OBS_UNITS.NAME
Type: String
Example: CAN/BC/VAN
AddedDate
Optional.
Table and Column: PRJ_PROJECTS.CREATED_DATE
Type: dateTime
lastUpdatedDate
Optional. Uses PRJ_PROJECTS.prModTime if later.
Table and Column: PRJ_PROJECTS.LAST_UPDATED_DATE
Type: dateTime
lastUpdatedBy
Optional. Uses PRJ_PROJECTS.prModBy if PRJ_PROJECTS.prModTime is later than
LAST_UPDATED_BY.
Table and Column: PRJ_PROJECTS.LAST_UPDATED_BY
Type: String
Active
Optional.
Table and Column: PRJ_PROJECTS.IS_ACTIVE
Type: Boolean
Type
Required.
Table and Column: PRJ_PROJECTS.TYPE
Type: String
stageIdentifier
Required.
Table and Column: PRJ_PROJECTS.STAGE_IDENTIFIER
Type: String
start
Required.
Table and Column: PRJ_PROJECTS.prStart
Type: dateTime
finish
Required.
Table and Column: PRJ_PROJECTS.prFinish
Type: dateTime
approved
Optional. True only if prApprovedTime is not null. On import, prApprovedTime is set
to the current time if it was previously null.
Table and Column: None
Type: Boolean
openForTimeEntry
Optional.
Table and Column: PRJ_PROJECTS.prIsOpen
Type: Boolean
closed
Optional. True only if prClosedTime is not null. On import, prClosedTime is set to
the current time if it was previously null.
Table and Column: None
Type: Boolean
guidelines
Optional.
Table and Column: PRJ_PROJECTS.prGuidelines
Type: String
department
Optional.
Table and Column: PRJ_PROJECTS.prDepartment
Type: String
asOf
Optional.
Table and Column: PRJ_PROJECTS.prAsOf
Type: dateTime
cpmType
Optional.
Table and Column: PRJ_PROJECTS.prCPMType
Type: Integer
trackMode
Optional.
Table and Column: PRJ_PROJECTS.prTrackMode
Type: Integer
sponsoredBy
Optional.
Table and Column: PRJ_PROJECTS.prSponsoredBy
Type: String
requestedBy
Optional.
Table and Column: PRJ_PROJECTS.prRequestedBy
Type: String
requestedTime
Optional.
Table and Column: PRJ_PROJECTS.prRequestedTime
Type: dateTime
userText1
Optional.
Table and Column: PRJ_PROJECTS.prUserText1
Type: String
userText2
Optional.
Table and Column: PRJ_PROJECTS.prUserText2
Type: String
userText3
Optional.
Table and Column: PRJ_PROJECTS.prUserText3
Type: String
userText4
Optional.
Table and Column: PRJ_PROJECTS.prUserText4
Type: String
userText5
Optional.
Table and Column: PRJ_PROJECTS.prUserText5
Type: String
userText6
Optional.
Table and Column: PRJ_PROJECTS.prUserText6
Type: String
userText7
Optional.
Table and Column: PRJ_PROJECTS.prUserText7
Type: String
Format
Optional.
Table and Column: PRJ_PROJECTS.prFormat
Type: Integer
Priority
Optional. Defines the priority.
Values: 0-36, where:
■ 0. Highest priority
■ 36. Lowest priority
Table and Column: PRJ_PROJECTS.prPriority
Type: Integer
username
Optional. On import, the ProjectManagerMgmt access right is granted to this user.
Table and Column: PRJ_PROJECTS.prUsername
Type: String
startImposed
Optional.
Table and Column: PRJ_PROJECTS.prStartImposed
Type: Boolean
finishImposed
Optional.
Table and Column: PRJ_PROJECTS.prFinishImposed
Type: Boolean
baseTime
Optional.
Table and Column: PRJ_PROJECTS.prBaseTime
Type: dateTime
baseStart
Optional.
Table and Column: PRJ_PROJECTS.prBaseStart
Type: dateTime
baseFinish
Optional.
Table and Column: PRJ_PROJECTS.prBaseFinish
Type: dateTime
Chargecode
Optional. Validate existence with PRChargeCode.prID
Table and Column: PRJ_PROJECTS.PrChargeCodeID
Type: String
ManagerResource
Optional. Must be a valid resource.
Table and Column: PRJ_PROJECTS.PrUserName
Type: String
financialDepartment
Optional. Defines the financial location for the project.
Table and Column: PAC_MNT_PROJECTS.DEPARTCODE
Type: String
clientID
Defines the unique client identifier for the project. If other financial properties
fields are present, then clientId is required. Otherwise, clientID and all financial
properties are optional.
Table and Column: PAC_MNT_PROJECTS.COMPANY_CODE
Type: String
affiliatedProjectID
Optional. Defines the affiliated project unique identifier for the project.
Table and Column: PAC_MNT_PROJECTS.AFFILIATEPROJECT
Type: String
financialStatus
Optional. Defines the financial status for the project.
Table and Column: PAC_MNT_PROJECTS.STATUS
Type: String
approvedForBilling
Optional.
Table and Column: PAC_MNT_PROJECTS.APPROVED
Type: Boolean
billingType
Optional. Defines the billing type for the project.
Values: S, I.
Table and Column: PAC_MNT_PROJECTS.TYPE_
Type: String
billingCurrencyCode
Required only when CA Clarity is set for multi-currency. Defines the billing currency
code for the project.
Table and Column: PAC_MNT_PROJECTS.BILLLING_CURRENCY_CODE
Type: String
ProjectClass
Optional. Defines the project class for the project. This column defaults to clientID if
Projectclass is not supplied.
Table and Column: PAC_MNT_PROJECTS.CLASS
Type: String
WIP Class
Optional. Defines the WIP class for the project. This column defaults to clientID if
WIP Class is not supplied.
Table and Column: PAC_MNT_PROJECTS.WIPCLASS
Type: String
UseBudget
Optional.
Table and Column: PAC_MNT_PROJECTS.BUDGET
Type: Number
Billing Project
Optional.
Table and Column: PAC_MNT_PROJECTS.BILLING_PROJECT_ID
Type: Number
Send Bill To
Optional.
Table and Column: PAC_MNT_PROJECTS.BILL_TO_COMPANY_CODE
Type: String
billExpenses
Optional.
Table and Column: PAC_MNT_PROJECTS.EX_BILL_EXPENSES
Type: Number
Document number
Optional.
Table and Column: PAC_MNT_PROJECTS.CONTRACTNBR
Type: String
Contract amount
Optional.
Table and Column: PAC_MNT_PROJECTS.Contract Amount
Type: Number
Enforce Contract amount
Optional.
Values:
■ 0. Do not enforce
■ 1. Enforce
Default: 0
Table and Column: PAC_MNT_PROJECTS.ENFORCE_CONTRACT_AMOUNT
Type: Number
Date
Optional.
Table and Column: PAC_MNT_PROJECTS.Contract Date
Type: Date
Labor Rate Source
Optional.
Table and Column: PAC_MNT_PROJECTS.TRANSRATESOURCELABOR
Type: Number
Labor Cost Source
Optional.
Table and Column: PAC_MNT_PROJECTS.TRANSCOSTSOURCELABOR
Type: Number
Labor Exchange Rate
Optional.
Table and Column: PAC_MNT_PROJECTS.LABOR_EXCHANGE_RATE_TYPE
Type: Number
Materials Rate Source
Optional.
Table and Column: PAC_MNT_PROJECTS.TRANSRATESOURCEMATERIALS
Type: Number
This tag uses the PRTeam table, which can have 0 to many records and where
PRTeam.prProjectID = PRJ_PROJECTS.prID.
openForTimeEntry
Optional.
Table and Column: PRTeam.prIsOpen
Type: Boolean
lastUpdatedBy
Optional.
Table and Column: PRTeam.prModBy
Type: String
lastUpdatedDate
Optional.
Table and Column: PRTeam.prModTime
Type: dateTime
bookingStatus
Optional.
Table and Column: PRTeam.prBooking
Type: Integer
requestStatus
Optional.
Table and Column: PRTeam.prStatus
Type: Integer
defaultAllocation
Optional. The default allocation for this team member.
Table and Column: PRTeam.prAllocCurve
Type: Float
resourceID
Optional. May be more than one resource in the prTeam.
Table and Column: PRTeam.prResourceID
Type: String
ProjectRoleID
Optional. May be more than one role in prTeam.
Table and Column: PRTeam.PrRoleId
Type: String
This tag uses the PRTask table, which can have 0 to many records and where
PRTask.prProjectID = PRJ_PROJECTS.prID.
finish
Optional.
Table and Column: PRTask.prFinish
Type: dateTime
baseFinish
Optional.
Table and Column: PRTask.prBaseFinish
Type: dateTime
milestone
Optional.
Table and Column: PRTask.prIsMilestone
Type: Boolean
summary
Optional. This is set to True only if prIsTask is False.
Table and Column: Not Applicable
Type: Boolean
key
Optional.
Table and Column: PRTask.prIsKey
Type: Boolean
category
Optional.
Table and Column: PRTask.prCategory
Type: String
status
Optional. Defines the status of the task.
Values:
■ 0. Not Started
■ 1. Started
■ 2. Complete
Table and Column: PRTask.prStatus
Type: Integer
percComp
Optional. Valid values are between 0 and 1 inclusive, where 100% is shown as 1.0.
Table and Column: PRTask.prPctComplete
Type: Float
lastUpdatedBy
Optional.
Table and Column: PRTask.prModBy
Type: String
lastUpdatedDate
Optional.
Table and Column: PRTask.prModTime
Type: dateTime
earlyStart
Optional.
Table and Column: PRTask.prEarlyStart
Type: dateTime
lateStart
Optional.
Table and Column: PRTask.prLateStart
Type: dateTime
earlyFinish
Optional.
Table and Column: PRTask.prEarlyFinish
Type: dateTime
lateFinish
Optional.
Table and Column: PRTask.prLateFinish
Type: dateTime
Duration
Optional.
Table and Column: PRTask.prDuration
Type: Float
baselineDuration
Optional.
Table and Column: PRTask.prBaseDuration
Type: Float
totalSlack
Optional.
Table and Column: PRTask.prTotalFloat
Type: Float
Unplanned
Optional. If the task is being updated, set this to False".
Table and Column: PRTask.prIsUnplanned
Type: Boolean
shortName
Optional.
Table and Column: PRTask.prShortname
Type: String
Guidelines
Optional.
Table and Column: PRTask.prGuidelines
Type: String
Fixed
Optional.
Table and Column: PRTask.prIsFixed
Type: Boolean
Locked
Optional.
Table and Column: PRTask.prIsLocked
Type: Boolean
baseFixed
Optional.
Table and Column: PRTask.prBaseIsFixed
Type: Boolean
baseTime
Optional.
Table and Column: PRTask.prBaseTime
Type: dateTime
This tag uses the PRAssignment table, which can have 0 to many records, and where
PRAssignment.prTaskID = PRTask.prID.
baselineWork
Optional.
Table and Column: PrAssignment.prBaseSum
Type: Float
actualThrough
Optional.
Table and Column: PrAssignment.prActThru
Type: dateTime
lastUpdatedBy
Optional.
Table and Column: PrAssignment.prModBy
Type: string
lastUpdatedDate
Optional.
Table and Column: PrAssignment.prModTime
Type: dateTime
Unplanned
Optional. During update Unplanned is False.
Table and Column: PrAssignment.prIsUnplanned
Type: Boolean
estPattern
Optional.
Table and Column: PrAssignment.prEstPattern
Type: Integer
basePattern
Optional.
Table and Column: PrAssignment.prBasePattern
Type: Integer
estMax
Optional.
Table and Column: PrAssignment.prEstMax
Type: Float
baseMax
Optional.
Table and Column: PrAssignment.prBaseMax
Type: Float
pendEstSum
Optional.
Table and Column: PrAssignment.prPendEstSum
Type: Float
pendActSum
Optional.
Table and Column: PrAssignment.prPendActSum
Type: Float
pendStart
Optional.
Table and Column: PrAssignment.prPendStart
Type: dateTime
pendFinish
Optional.
Table and Column: PrAssignment.prPendFinish
Type: dateTime
Status
Optional.
Table and Column: PrAssignment.prStatus
Type: Integer
curveType
Required.
Table and Column: PrAssignment.prExtension
Type: Integer
Start
Required.
Table and Column: PrAssignment.prExtension
Type: dateTime
Finish
Required.
Table and Column: PrAssignment.prExtension
Type: dateTime
Sum
Required.
Table and Column: PrAssignment.prExtension
Type: Float
resourceID
Required.
Table and Column: PrAssignment.prResourceID
Type: String
Requirement
Use the requirement XOG object to view inbound and outbound requirements.
The requirement read XOG reads all data from existing requirements and writes them to
an xml format. The requirement write XOG writes new requirements or updates existing
requirements.
Schema Name
nikuxog_requirement.xsd
Prerequisites
None
Read Filters
Error Handling
The following fields are written to the Success and Error files when referenced objects
such as users, investments, and releases or lookup values cannot be found, and the XOG
process generates a warning:
■ created_by
■ currency_code
■ last_updated_by
■ manager
■ requested_by
■ risk
■ status
■ theme
■ type
■ release_id
■ project_id
■ task_name
■ investment_id
If dependencies or hierarchy links are included in the inbound XOG file, a warning is
written to the Success and Error files if either one of the associated requirements does
not exist. Since you can add the missing requirement later to the file, this warning does
not imply that the association will never be made when xogging in many requirements.
The warning's intention is to provide information to the administrator so that they can
confirm that all associations have been made.
Schema Mappings
The requirement element can contain link and dependency elements which relate
requirements to one another. The following tables are mapped to requirements:
■ RQP_RELEASES (see page 361)
■ RQP_REQUIREMENTS (see page 361)
■ RQP_REQ_DEPENDENCIES (see page 364)
■ PRTASK (see page 365)
■ SRM_RESOURCES (see page 365)
■ INV_INVESTMENTS (see page 366)
dependent
Required.
Table and Column: RQP_REQUIREMENTS.CODE
Type: String
description
Required. Must be unique.
Table and Column: RQP_REQUIREMENTS.DESCRIPTION
Type: String
committed
Required. Must be unique.
Table and Column: RQP_REQUIREMENTS.COMMITTED
Type: Boolean
committed
Required. Must be unique.
Table and Column: RQP_REQUIREMENTS.COMMITTED
Type: Boolean
est_op_cost
Table and Column: RQP_REQUIREMENTS.EST_OP_COST
Type: Non-negative number
est_cap_cost
Table and Column: RQP_REQUIREMENTS.EST_CAP_COST
Type: Non-negative number
est_effort
Table and Column: RQP_REQUIREMENTS.EST_EFFORT
Type: Non-negative number
est_hlm_size
Table and Column: RQP_REQUIREMENTS.EST_HLM_SIZE
Type: Integer
est_size
Table and Column: RQP_REQUIREMENTS.EST_SIZE
Type: Non-negative number
bgt_op_cost
Table and Column: RQP_REQUIREMENTS.BGT_OP_COST
Type: Non-negative number
bgt_cap_cost
Table and Column: RQP_REQUIREMENTS.BGT_CAP_COST
Type: Non-negative number
bgt_effort
Table and Column: RQP_REQUIREMENTS.BGT_EFFORT
Type: Non-negative number
bgt_size
Table and Column: RQP_REQUIREMENTS.BGT_SIZE
Type: Non-negative number
priority_1
Table and Column: RQP_REQUIREMENTS.PRIORITY_1
Type: Integer (allowed range 0-100)
priority_2
Table and Column: RQP_REQUIREMENTS.PRIORITY_2
Type: Integer (allowed range 0-100)
priority_3
Table and Column: RQP_REQUIREMENTS.PRIORITY_3
Type: Integer (allowed range 0-100)
priority_4
Table and Column: RQP_REQUIREMENT.PRIORITY_4
Type: Integer (allowed range 0-100)
feature_overview
Table and Column: RQP_REQUIREMENTS.FEATURE_OVERVIEW
Type: String
feature_driver
Table and Column: RQP_REQUIREMENTS.FEATURE_DRIVER
Type: String
feature_vision
Table and Column: RQP_REQUIREMENTS.FEATURE_VISION
Type: String
req_impl_plan
Table and Column: RQP_REQUIREMENTS.REQ_IMPL_PLAN
Type: String
req_impact_analysis
Table and Column: RQP_REQUIREMENTS.REQ_IMPACT_ANALYSIS
Type: String
req_comments
Table and Column: RQP_REQUIREMENTS.REQ_COMMENTS
Type: String
story_text_1
Table and Column: RQP_REQUIREMENTS.STORY_TEXT_1
Type: String
story_text_2
Table and Column: RQP_REQUIREMENTS.STORY_TEXT_2
Type: String
story_text_3
Table and Column: RQP_REQUIREMENTS.STORY_TEXT_3
Type: String
Resource
Use the resource XOG object to view inbound (write) and outbound (read) resource
attributes. This XOG object does not allow you to create a resource for a specific
partition; it only supports the _ROOT partition code. You can, however, use the content
pack XOG to add a resource as a member of a partition.
Schema Name
nikuxog_resource.xsd
Prior to importing resources, you must set up the following items correctly:
Manager
Defines the resource's manager user name. This is a browse field against the
CMN_SEC_USERS table. If the manager does not exist, the XML schema posts the
resource without the manager's username and a warning is posted to the Success
and Error file. If the username exists, the XML schema fills the field. When this XML
schema is run for the first time, many records may be posted without values for the
manager. Subsequently when the schema is run, user profiles are updated to
include a value for the manager (provided the user was added during the first pass).
Company ID
Defines the unique identifier for the company associated with the resource. This is a
browse field against the SRM_COMPANIES table. If the company does not exist, the
schema posts the resource, leaves this field blank, and posts a warning to the
Success and Error file. If the company exists, the schema fills the field. When this
schema is run the first time, many records are posted without values for the
company. Subsequently when the schema is run, user profiles are updated to
include the company information (provided the user was added during the first
pass).
Financial Properties
The financial properties associated with the resource.
Before resources can be imported into CA Clarity, the following financial properties
are set up in the Financial Administration module. If the financial properties are not
found in CA Clarity, the resource's financial properties are not imported into CA
Clarity and an error is written to the Success and Error file. These properties are
optional:
■ Financial Location
■ Financial Department
■ Resource Class
Vendor
(This is an exception and is not required for the financial properties. The resource is
added without a vendor and a warning is posted to the Success and Error file.)
Transaction Class
The transaction class associated with the resource. The value in the XOG can found
in the TRANSCLASS table.
Management Properties
Defines the management properties associated with the resource. The XOG
assumes a resource is associated with the standard calendar available for a typical
work day's standard number of hours (based upon the standard calendar settings).
The value is based on the default Allocation percentage.
OBS association
The OBS associated with the resource. A Security OBS is required for labor
resources; all resources can have OBS associations. To accommodate this, there is
an OBS Associations portlet that can be used for import and export.
Custom Attributes
The custom fields associated with the resource. The XOG allows for an unlimited
number of custom-defined fields, however you must map the generated field to the
schema. Within the schema for custom-defined fields, provide the Column Name,
Attribute Name, and Value (since these can be modified by CA Clarity users).
Lookup values
Any lookup values associated with the resource. Lookup codes must be provided
when appropriate. They are validated against CMN_LOOKUPS. Lookups are
extracted for a set of lookup codes.
Primary RoleId
The primary role of this resource. This is a browse field against SRM_RESOURCES. If
the primary RoleId passed does not exist, this field is left blank and a warning
message is posted to the Success and Error file (the field is filled when the role
exists).
Read Filters
The XOG allows for outbound processing of users based on the following fields:
■ Resource Type
■ Active
■ And and Or processing is supported between the two fields and for processing
within Type. The following combinations are supported:
isActive = x
where x = Active, Inactive
ResourceType = x
where x = LABOR, MATERIAL, EQUIPMENT or EXPENSE
Error Handling
The following fields are written to the Success and Error file when the XOG process
generates an error or warning:
■ externalId
■ externalSource
■ resourceId
■ lastName
If an error occurs, the table is not updated. You must fix the error and run the XOG
again. When a warning occurs because of inconsistencies in the data, the record is
posted and the non-required fields are defaulted.
Schema Mappings
resourceType
Optional. Defines the resource type.
Values: LABOR, MATERIAL, EQUIPMENT, and EXPENSE
Default: LABOR
Table and Column: SRM_RESOURCES.Resource_type
Type: String
employmentType
Optional. Defines the employment type.
Values: employee and contractor
Default: employee
Table and Column: SRM_RESOURCES.Person_Type
Type: String
hireDate
Optional.
Table and Column: SRM_RESOURCES.Date_of_Hire
Type: Date
terminationDate
Optional.
Table and Column: SRM_RESOURCES.Date_of_Termination
Type: Date
managerUserName
Optional. Identifies the resource's manager.
Table and Column: SRM_RESOURCES.Manager_ID
(User Name)
Type: String
isExternal
Optional. Defines the resource's status.
Values:
■ 1. True
■ 0. False
Default: 0
Table and Column: SRM_RESOURCES.Is_External
Type: Boolean
firstName
Optional.
Table and Column: SRM_RESOURCES.First_Name
Type: String
lastName
Optional. Validates this field for LABOR resources
Table and Column: SRM_RESOURCES.Last_Name
Type: String
middleName
Optional.
Table and Column: SRM_RESOURCES.Middle_Name
Type: String
displayName
Optional. The name to display on the interface.
Table and Column: SRM_RESOURCES.Full_Name
Type: String
emailAddress
Optional. The email address of the resource.
Table and Column: SRM_RESOURCES.Email
Type: String
address1
Optional.
Table and Column: SRM_CONTACTS.Address1
Type: String
address2
Optional.
Table and Column: SRM_CONTACTS.Address2
Type: String
address3
Optional.
Table and Column: SRM_CONTACTS.Address3
Type: String
city
Optional.
Table and Column: SRM_CONTACTS.City
Type: String
state
Optional.
Table and Column: SRM_CONTACTS.State_Province
Type: String
postalCode
Optional.
Table and Column: SRM_CONTACTS.Postal _Code
Type: String
countryId
Optional. Lookup values for all countries.
Table and Column: SRM_CONTACTS.Country_ID
Type: Number
homePhone
Optional. No format enforced.
Table and Column: SRM_CONTACTS.Phone_Home
Type: String
workPhone
Optional. No format enforced.
Table and Column: SRM_CONTACTS.Phone_Work
Type: String
mobilePhone
Optional. No format enforced.
Table and Column: SRM_CONTACTS.Phone_Cell
Type: String
fax
Optional. No format enforced.
Table and Column: SRM_CONTACTS.Phone_Fax
Type: String
pager
Optional. No format enforced.
Table and Column: SRM_CONTACTS.Phone_Pager
Type: String
webAddress
Optional.
Table and Column: SRM_CONTACTS.URL
Type: String
defautlAllocationPercentage
Optional. Defines the default allocation percentage for this resource.
Default: 100
Table and Column: PRJ_RESOURCES.DEFAULTALLOCATION
Type: Number
trackMode
Optional. Specifies the method in which this resource tracks time.
Values: Clarity, None, and Other.
Default: Clarity Time
Table and Column: PRJ_RESOURCES.PRTRACKMODE
Type: Number
openForTimeEntry
Optional. Defines whether this resource is open for time entry.
Values:
■ 1. True
■ 0. False
Default: 1
Table and Column: PRJ_RESOURCES.PRISOPEN
Type: Boolean
primaryRoleId
Optional. Indicates the role to which the resource belongs.
Table and Column: PRJ_RESOURCES.PRPRIMARYROLEID
Type: Number
inputTypeCode
Optional. Defines the default input type code for the resource.
Table and Column: PRJ_RESOURCES.PRTYPECODEID
Type: Number
userText1
Optional. A user-defined field.
Table and Column: PRJ_RESOURCES.PRUSERTEXT1
type: String
userText3
Optional. A user-defined field.
Table and Column: PRJ_RESOURCES.PRUSERTEXT2
type: String
userText3
Optional. A user-defined field.
Table and Column: PRJ_RESOURCES.PRUSERTEXT3
type: String
userText4
Optional. A user-defined field.
Table and Column: PRJ_RESOURCES.PRUSERTEXT4
type: String
userFlag1
Optional. A user-defined field.
Table and Column: PRJ_RESOURCES.PRUSERFLAG1
Type: Boolean
userFlag2
Optional. A user-defined field.
Table and Column: PRJ_RESOURCES.PRUSERFLAG2
Type: Boolean
userNumber1
Optional. A user-defined field.
Table and Column: PRJ_RESOURCES.PRUSERNUMBER1
Type: Number
userNumber1
Optional. A user-defined field.
Table and Column: PRJ_RESOURCES.PRUSERNUMBER1
Type: Number
Active
Optional. Defines the resource's status.
Values:
■ 1. True
■ 0. False
Default: 1
Table and Column: PAC_MNT_RESOURCES.ACTIVE
Type: Boolean
ResourceGrade
Optional. Defines the grade related to this resource.
Values: Bronze, Silver, Gold, and Platinum.
Table and Column: XDM_CDF_SRM_RESOURCES.XDM_RESOURCE_GRADE
Type: String
unitPath
Required. This is a slash-delimited list of unit names leading up to the unit to which
the object is associated.
Table and Column: PRJ_OBS_TYPES.PRJOBS_UNITS.NAME
Type: String
Example: CAN/BC/VAN
skillAssoc Element
proficiencyLevel
Optional. Defines the resource's proficiency level in this skill.
Table and Column: CMN_LOOKUPS
Note: The Lookup code from the cmn_lookups table is based on
proficiency_level_id from the rsm_skills_associations table.
Type: String
weight
Optional. Used when searching to produce a weighted average.
Table and Column: rsm_skills_associations.weight
Type: Number
Resource Class
Use the resource class XOG object to view inbound and outbound resource class
instances.
Schema Name
nikuxog_resourceclass.xsd
Prerequisites
None.
Read Filters
Error Handling
Schema Mapping
Risk
Use the risk XOG object to view inbound and outbound risk attributes associated with
projects.
Schema Name
nikuxog_risk.xsd
Prerequisites
Before using this XOG, make sure referenced objects, such as projects, users, and
categories, exist in CA Clarity.
Read Filters
Error Handling
Schema Mapping
Type: String
statusCode
Risk status.
Table and Column: STATUS_CODE
Type: String
priorityCode
Defines the priority of the risk (lookup).
Table and Column: PRIORITY_CODE
Type: String
assumptions
Defines the assumptions for this risk.
Table and Column: ASSUMPTIONS
Type: String
riskSymptoms
Risk symptoms.
Table and Column: RISK_SYMPTOMS
Type: String
impactDescription
Description of the impact.
Table and Column: IMPACT_DESCRIPTION
Type: String
approachCode
Response type (lookup)
Table and Column: APPROACH_CODE
Type: String
probabilityCode
Defines the probability code.
Table and Column: PROBABILITY_ENUM
Type: number
impactCode
Impact of this risk (lookup).
Table and Column: IMPACT_ENUM
Type: String
impactDate
Defines the impact date.
Table and Column: IMPACT_DATE
Type: date
targetResolutionDate
Targeted date of resolution of this risk.
Table and Column: TARGET_RESOLUTION_DATE
Type: Date
resolvedDate
Date the risk was resolved.
Table and Column: RESOLVED_DATE
Type: Date
resolution
Defines the description or how the risk was resolved.
Table and Column: RESOLUTION
Type: String
resolvedBy
Defines the name of the resource who resolved the risk.
Table and Column: RESOLVED_BY
Type: number
risk Element
issue Element
Type: String
responseStrategy Element
Role
Use the role XOG object to view inbound and outbound role attributes.
Schema Name
nikuxog_role.xsd
The roles schema is defined for both inbound (write) and outbound (read) processing.
Transaction Class
Required if the role is financially active. The transaction class that is associated
with the role. The value in the XOG can be found in the TRANSCLASS table.
Resource Class
Required if the role is financially active. The resource class that is associated
with the role. The value in the XOG can be found in the
PAC_FOS_RESOURCE_CLASS table.
Vendor
Optional: The vendor that is associated with the role. This property is not
required for the financial properties. If the vendor property value is missing,
the role is added without a vendor property and a warning is posted to the
Success and Error file.
Read Filters
The XOG allows or outbound processing of roles that are based on the following fields:
■ active. The possible values for this field are: Active and Inactive.
■ resourceId. The resourceId corresponds to unique_name in SRM_RESOURCES.
Error Handling
If the parent role or the standard calendar does not exist, XOG displays an error
message and does not import or update the record.
Schema Mappings
Skill
Use the skill XOG object to view inbound and outbound skill object instances.
Schema Name
nikuxog_skill.xsd
Prerequisites
None
Read Filters
Error Handling
Schema Mapping
Subproject (Program)
Use the subproject (program) XOG object for inbound (write) and outbound (read)
processing of subproject and program data. Subprojects are the links between master
projects and the projects they contain.
Schema Name
nikuxog_project.xsd
Read Filters
To allow for outbound processing of programs, the XOG adds the isProgram filter to
projects. This filter performs the following actions. When:
■ isProgram is commented out, all appropriate programs and projects are exported.
■ isProgram=1, programs only are exported.
■ isProgram=0, projects only are exported.
Schema Mappings
The prSubProject table contains information about subprojects. The data it contains is
primarily linking information that specifies if the subproject is partial or complete. The
link also specifies if the subproject is read-only. By definition, partial subprojects are
read-only.
Subscription
Use the subscription XOG object to view inbound and outbound department
subscription attributes.
Schema Name
nikuxog_subscription.xsd
Read Filters
Error Handling
Schema Mapping
Subscription element
There can be zero or more subscription elements each having an optional keymetrics
element, Following are the attributes of a subscription element:
sla_violations
Defines the number of SLA violations.
Table and Column: DPT_SUBSCRIPTIONS.sla_violations
Type: Integer
sla_violations_th
Defines the threshold for SLA violations.
Type: Integer
incidents
Defines the number of incidents.
Type: Integer
incidents_threshold
Defines the threshold for incidents.
Type: Integer
change_orders
Defines the number of change orders.
Type: Integer
charges
Defines the total charges (from chargebacks) against the investment (service) for
this subscription.
Type: Integer
cust_satisfaction
Defines the customer satisfaction rating for this subscription.
Type: Integer
total_users
Defines the total number of users utilizing this subscription.
Type: Integer
page_hits
Defines the page hits as captured for this subscription if applicable.
Type: String
departmentId
Required. Identifies the subscribing department.
Type: String
serviceId
Required. Defines the identifier that makes it unique in combination with the
table_name column.
Type: String
keymetrics Tag
The keymetrics element consists of zero or more keymetric elements. This element
contains an optional targetCurve and an actualCurve and may have zero or more
CustomInformation elements. It has the following attributes:
metrics_code
Required. Code of the metric.
Type: String
The curve elements contain segment objects which specify target metrics and actual
metrics over a period of time.
Time Period
Use the time period (timesheet) XOG object to view inbound and outbound timesheet
attributes. Timesheet information includes time periods and resources assigned to
tasks. You can export the data to serve the purposes of system integration.
For example, you might do this when you need the information to drive internal or
external billing systems. You do not need to export all timesheets in a system nor do you
need to export timesheets individually. Filtering options are therefore provided by the
XOG to streamline the export requests.
Schema Name
nikuxog_timeperiod.xsd
Read Filters
The XOG processes outbound capacity planning schemas based on the following fields:
isPublic
1 or 0
ownerID
Valid user (CMN_SEC_USERS.ID)
The XOG uses no implicit filters for timesheets (timesheets for non-labor resources are
excluded). The explicit filters used are:
■ Start Date
■ resourceID
■ postedInTimePeriodStart
Schema Mappings
■ PRTimeEntry
■ PRChargeCode
■ PRTypeCode
■ PRJ_Projects
■ PRTask
■ PRAssignments
■ NoteData
taskID
Optional. For existing assignments: you can use projectID and taskID; or
assignmentID.
For new assignments: you must use projectID and internalTaskID.
Table and Column: prTask.prExternalID
Type: string
projectID
Optional. For existing assignments: you can use projectID and taskID; or
assignmentID.
For new assignments: you must use projectID and internalTaskID.
Table and Column: srm_projects.unique_name
Type: string
internalTaskID
Optional. For existing assignments: you can use projectID and taskID; or
assignmentID.
For new assignments: you must use projectID and internalTaskID.
Table and Column: srm_projects.prTask.prID
Type: Integer
assignmentID
Optional. You can achieve a timesheet entry without creating an assignment first,
but you must specify the task by its internal numeric ID number, such as
internalTaskID = "5000876". If an assignment exists, you can use taskID = "abc".
Table and Column: prAssignment.prID
Type: Integer
actualDate
Required. Zero to many records for each day during this time period for which this
time entry has actuals.
Table and Column: None
Type: Date
amount
Optional. The data is entered as hours. This is the amount for the date only.
Table and Column: prActCurve
Type: Float
The following is true regarding the attributes that follow this statement:
From PRJ_PROJECTS, where PRTimeEntry.prAssignmentID = PRAssignment.prID and
PRAssignment.prTaskID = PRTask.prID and PRTask.prProjectID = PRJ_PROJECTS.prID.
When prAssignmentID is not set (as for indirect time entries), these fields are not
included.
projectID
Optional.
Table and Column: PRJ_PROJECTS.UNIQUE_NAME
Type: String
projectName
Optional.
Table and Column: PRJ_PROJECTS.NAME
Type: String
The following is true regarding the attributes that follow this statement:
■ This tag uses the PRTask table where PRTimeEntry.prAssignmentID =
PRAssignment.prID and PRAssignment.prTaskID = PRTask.prID).
■ When prAssignmentID is not set (as for indirect time entries), these fields are not
included.
The following is true regarding the attributes that follow this statement:
■ This tag uses the PRAssignments table where PRTimeEntry.prAssignmentID =
PRAssignment.prID.
■ When prAssignmentID is not set (as for indirect time entries), these fields are not
included.
Transaction Class
Use the transaction class XOG object to view inbound and outbound transaction class
instances.
Schema Name
nikuxog_transactionclass.xsd
Prerequisites
None.
Read Filters
Error Handling
Schema Mapping
Type Code
Use the type code XOG object to view inbound and outbound type code object
instances.
Schema Name
nikuxog_typecode.xsd
Prerequisites
None
Read Filters
Error Handling
Schema Mapping
typeCodeID
Required. Defines the external unique identifier for the type code.
Table and Column: prExternalID
Type: String
name
Required. Defines the name of the type code.
Table and Column: prName
Type: String
openForTimeEntry
Defines whether the type code is open for timesheet use.
Table and Column: prIsOpen
Type: BOOLEAN
isChargeable
Defines whether the type code is chargeable in financial systems.
Table and Column: IS_CHARGEABLE
Type: BOOLEAN
UI Themes
Use the UI Themes XOG object for outbound (read) and inbound (write) processing.
Schema Name
nikuxog_uitheme.xsd
Prerequisites
None
The last UI theme that is imported with an attribute value of default=true is the default
UI theme for the system.
Read Filters
Schema Mappings
User
Use the user XOG object to view inbound and outbound user object instance attributes.
Schema Name
nikuxog_user.xsd
Users are defined for both inbound (write) and outbound (read) processing. Password
and Password_Confirm, used to validate the user, are not exposed but are populated
with default values (2000). When a user first logs in, they are prompted to reset this
default password.
Resource
A labor resource is automatically created for every user imported through XOG.
Company ID
A browse field used to associate a user to a company is run against
SRM_COMPANIES. If the company does not exist, the user is posted without a
company and a warning message is posted to the Success and Error file. If the
company_id exists, the field is populated with that value.
Lookup values
The schema requires lookup codes that are validated against CMN_LOOKUPS.
User type
If not provided, this is defaulted to internal. There is no admin type.
OBS association
With the new OBS Security, a Security OBS is required and any OBS can be
associated with a user. To accommodate this, there is an OBS Associations portlet.
The OBS association fields can be used for import and export.
Read Filters
This XOG allows for outbound (read) processing of users based on the following two
fields: User Status and User Type. And and Or processing is supported between these
two fields and for processing within Type. The following combinations are supported:
■ User Status = x
where x = Active, Inactive, or LOCK
■ User Type = x
where x = Internal, External
Error Handling
If an error occurs for a user transaction, the following information is written to the
Success and Error file:
■ externalId
■ ExternalSource
Schema Mappings
lastName
Required.
Table and Column: CMN_SEC_USERS.Last Name
Type: String
userName
Required. A unique primary key.
Table and Column: CMN_SEC_USERS.User_Name
Type: String
userType
Optional.
Values: Internal and External
Default: Internal
Table and Column: CMN_SEC_USERS.User_Type_Id
Type: String
userStatus
Required.
Values: Active, Inactive, and LOCK
Default: Active
Table and Column: CMN_SEC_USERS.User_Status_ID
Type: String
emailAddress
Required.
Table and Column: CMN_SEC_USERS.Email Address
Type: String
userLocale
Optional. The Java Locale format, for example, en_US.
Table and Column: CMN_SEC_USERS.locale
Type: String
userTimezone
Optional. The Java TimeZone format, for example, Europe/London, PST.
Table and Column: CMN_SEC_USERS.timezone
Type: String
userLanguage
Required. Defines the language displayed when the user first logs in.
Values: English, German, Spanish, and French
Default: English
Table and Column: CMN_SEC_USERS.Language
Type: String
resource
Optional. A browse field with a one-to-one relationship between users and
resources.
Table and Column: CMN_SEC_USERS.Resource
Type: String
companyId
Optional. This is a browse field. The company association with the user.
Table and Column: CMN_SEC_USERS.Company_ID
Type: String
externalSource
Required by the schema. It is a lookup value that is the originating system ID (for
example, Oracle).
Table and Column: CMN_SEC_USERS.External_Source_ID
Type: String (in schema) and Number (in the application)
externalId
Required by the XML schema. The originating unique identifier.
Table and Column: CMN_SEC_USERS.External_ID
Type: String
The Group Assignments schema tag is not mapped to any table. It has the following
attribute:
completed
Optional. If completed and set to True, any existing Group assignments that are not
listed in the import are deleted.
Default: False
Table and Column: none
Type: String
This is a wrapper element for the Group elements. There can be many Group elements.
It has the following attribute:
id
Required.
Table and Column: CMN_SEC_GROUPS.GROUP_CODE
Type: String
The Global Access Right Assignments schema tag is not mapped to any table. It has the
following attribute:
completed
Optional. If completed and set to True, then existing Right assignments not listed in
the import are deleted.
Default: False
Table and Column: None
Type: String
The Instance Access Right Assignments schema tag is not mapped to any table. It has
the following attribute:
completed
Optional. If completed and set to True, any existing Right assignments not listed in
the import are deleted.
Default: False
Table and Column: None
Type: String
The Instance OBS Access Right Assignments schema tag is not mapped to any table. It
has the following attribute:
completed
Optional. If completed and set to True, any existing Right assignments not listed in
the import are deleted.
Default: False
Table and Column: None
Type: String
description
Optional.
Table and Column: CMN_CAPTIONS_NLS.DESCRIPTION
Type: String
languageCode
Optional.
Table and Column: CMN_CAPTIONS_NLS.LANGUAGE_CODE
Type: String
Vendor
Use the Vendor XOG object to view inbound and outbound vendor instances.
Schema Name
nikuxog_vendor.xsd
Prerequisites
None
Read Filters
Error Handling
Schema Mapping
address4
Optional.
Table and Column: ADDR4
Type: String
address5
Optional.
Table and Column: ADDR5
Type: String
address6
Optional.
Table and Column: ADDR6
Type: String
attentionName
Optional.
Table and Column: ATTENTION_NAME
Type: String
attentionPhone
Optional.
Table and Column: ATTENTION_PHONE
Type: String
contactName
Optional.
Table and Column: CONTACT_NAME
Type: String
contactPhone
Optional.
Table and Column: CONTACT_PHONE
Type: String
WIP Class
Use the WIP class XOG object to view inbound and outbound WIP class instances.
Schema Name
nikuxog_wipclass.xsd
Prerequisites
None.
Read Filters
Error Handling
Schema Mapping
Business Alignment
Use the CustomObjectInstances base XOG object to view inbound and outbound
Business Alignment instances. Business Alignment instances are created for existing
projects and proposals. The CustomObjectInstances service is an entry point to enable
XOG communication with instances of custom objects. Instances represent data held
within custom objects, not the definition of the objects.
Schema Name
Prerequisites
The referred instances should exist in CA Clarity before using this XOG.
The following business rules and processing apply to this XOG object:
■ Project or proposal parent instance must exist.
■ Existing business alignment instances are not deleted.
Read Filters
Error Handling
Corporate Objectives
Use the CustomObjectInstances base XOG object to view inbound and outbound
Corporate Objectives instances. The CustomObjectInstances service is an entry point to
enable XOG communication with instances of custom objects. Instances represent data
held within custom objects, not the definition of the objects.
Schema Name
Prerequisites
None.
The following business rules and processing apply to this XOG object:
■ Existing corporate objectives instances are not deleted.
Read Filters
instanceCode
Refers to the custom object instance ID as defined in Studio.
Error Handling
Documents
Use the CustomObjectInstances base XOG object to view inbound and outbound
documents instances. Documents instances are created for existing projects and
proposals. The CustomObjectInstances service is an entry point to enable XOG
communication with instances of custom objects. Instances represent data held within
custom objects, not the definition of the objects.
Schema Name
Prerequisites
The referred instances should exist in CA Clarity before using this XOG.
The following business rules and processing apply to this XOG object:
■ Project or proposal parent instance must exist.
■ Existing document instances are not deleted.
Read Filters
Error Handling
Status Updates
Use the CustomObjectInstances base XOG object to view inbound and outbound Status
Update instances. Status Updates instances are created for existing projects and
proposals. The CustomObjectInstances service is an entry point to enable XOG
communication with instances of custom objects. Instances represent data held within
custom objects, not the definition of the objects.
Schema Name
Prerequisites
The referred instances should exist in CA Clarity before using this XOG.
The following business rules and processing apply to this XOG object:
■ Project or proposal parent instance must exist.
■ Existing status updates instances are not deleted.
Read Filters
Error Handling
Tag Libraries
Every GEL tag is associated with one of the following tag libraries:
■ GEL Tag Library
This is a collection of general-purpose, frequently used tags for XML manipulation,
variable and expression handling, logging, and this product's database JDBC
datasource.
■ Core Tag Library
The Core tag library contains basic scripting tags.
■ SOAP Tag Library
This library defines tags that invoke SOAP-based web services and stores the results
in GEL variables for subsequent processing.
Example 1
<gel:script
xmlns:gel=”jelly:com.niku.union.gel.GELTagLibrary“>
<gel:parse var=”xmldoc” file=”e:\temp\BB1.xml”/>
Example 2
<gel:script xmlns:gel="jelly:com.niku.union.gel.GELTagLibrary">
<gel:parse var="xmldoc">
<groups>
<group code="CTU">CTU Team</group>
<group code="DS23">SWAT Team</group>
</groups>
</gel:parse>
</gel:script>
Example
<gel:script
xmlns:gel="jelly:com.niku.union.gel.GELTagLibrary">
<gel:out>${x}</gel:out>
</gel:script>
■ Point D. A new XML node with the content specified in the groupNode node is
added to the <groups> element of groups. the groups now refers to an XML
document whose root element is <groups> that has two sub-elements with the
same content. The groupNode still refers to the first <group> element.
Example:
Groups is the whole XML document, and groupNode is the element:
<groups>
<group code="DS23">SWAT Team</group>
<group code="DS23">SWAT Team</group>
</groups>
When you print the document referred by groups, you will see:
Use the attributes var and select to retrieve values from an XML document.
If the select refers to a non-existing path, no value setting is performed (that is, if var
refers to a variable that is not set in another place, it will be null).
Use the attributes var and select together to set values in an XML document. The select
attribute must refer an existing path. If select = "$doc/group" and there is not an
element called group in the document or node referred by doc, an exception will be
thrown. If select="$doc/group/text()" and the <_group> element does not contain text
content, an exception will be thrown.
If the node does not have text content, to set the text content of a node
If you reverse the previous two examples, you will get an exception (because a node
does not have any child text but you referred to it with text()), or the item you tried to
set will be appended to the previous text content.
If you are not sure if the node for which you want to set text content has text content
already, it is best to retrieve its text value first and then use core:if to check if it exists
before proceeding.
You can use attribute insert if you are adding a node to a path or to have this node
replace whatever is referred to by the path.
Type: org.jaxen.XPath
asString
Optional. If set to "true", the value specified by select is converted to a string and
saved into the variable referred to by var. If set to "false", the node specified by
select is set to the variable referred by var.
Default: false.
this is ignored when var is not set.
Type: Boolean
insert
Optional. If set to "true", the node referred to by value is inserted as a child node to
the node specified by select. If set to "false", the node referred to by value is used
to replace the node specified by select.
Default: false. This is ignored when value is not set, or set but not with a node
value.
Type: Boolean
Example 1
<gel:script
xmlns:core="jelly:core"
xmlns:gel="jelly:com.niku.union.gel.GELTagLibrary">
<gel:parse var="group">
<group code="CTU">CTU Team</group>
</gel:parse>
<core:comment>
The code is <gel:expr select="$group//@code"/>
</core:comment>
</gel:script>
Example 2
<gel:script
xmlns:core="jelly:core"
xmlns:gel="jelly:com.niku.union.gel.GELTagLibrary">
<gel:parse var="group">
<group code="CTU">CTU Team</group>
</gel:parse>
<core:comment>
The code is ${code}
</core:comment>
</gel:script>
Example
<gel:script
xmlns:gel="jelly:com.niku.union.gel.GELTagLibrary">
<gel:out>Host = ${hostname}</gel:out>
<gel:out>User = ${username}</gel:out>
</gel:script>
When a GEL script is executed from the console, there is no difference between using
gel:parameter and core:set.
When gel:parameter is executed as a process, all parameters that were defined using
the <gel:parameter> tag appear with input boxes on the action definition page. You can
enter a value for a parameter to override the default value in the script.
You should use gel:parameter for values that may be changed by process administrators
(such as URL, hostname, username, etc.). Also use this for values which should be kept
discrete, like passwords.
You can only define one parameter name at a time. For example, if you use logic such as
"if a certain condition, log in as userA, otherwise userB," instead of defining "username"
in two places, use this parameter to log in, define two properties "usernameA" and
"usernameB", and then use the <core:set> tag to pick one of those two properties to set
into a variable in the "if" block.
A parameter can be used later just like other variables (that is, ${var}).
When a process is invoked as a web service, the request is an XML document. You can
use this tag to get that document, find what needs to be done, and then perform
actions accordingly.
If an XML document is set using the gel:setDocument tag in one step of a process, you
can use this tag to retrieve the document a later step of the same process.
var
Required. The name of an XML document variable which was set in the previous
step of the same process. If this step is the first step, this variable is the body of the
SOAP request that is sent to the process engine web service.
Type: String
For example, you can invoke one web service, save the response in a step, then retrieve
it and use it to invoke XOG in another step.
var
Required. The name of an XML document variable which is to be passed to the next
step in the same process.
Type: String
You can access a persisted value with a PROCESS scope using scripts from that process
(even if the process, its steps, and GEL scripts change). If a process is deleted and then
recreated, it is considered to be a new process and all values persisted before with
PROCESS scope are not available to the new process (even if the new process has the
same process name, code, or steps as the deleted one).
var
Required. The variable to be persisted.
Type: String
value
Optional. The value of the variable. It has to be a string (formatted date strings are
acceptable). When this attribute is not set, the tag content is used as the value to
be persisted. If the value being persisted contains special characters, such as a new
line, do not use this attribute, use the text content instead.
Maximum Length: 4000 characters. Longer strings are truncated.
Type: String
scope
Required. Specifies the scope of the variable.
Values:
■ GLOBAL. Set once, use it anywhere.
■ PROCESS. Set once, use it anywhere in the same process.
■ INSTANCE. Set once, use it anywhere in the same process during the current
execution.
Type: String
Example
The following example persists the Clarity built-in variables gel_objectInstanceId and
gel_processInstanceId throughout this process instance as myObjectId and myProcessId.
<gel:script
xmlns:gel="jelly:com.niku.union.gel.GELTagLibrary">
</gel:script>
Email server information is derived from the properties.xml file of the installation.
from
Required. The sender's email address.
Type: String
fromName
Optional. The name of the sender.
Type: String
to
Required. The recipients' email addresses (delimited by commas, semicolons, or
spaces).
Type: String
subject
The email subject.
Type: String
level
Optional. Set this to:
■ WARNING to have the email sent only if there are warning or error messages.
■ ERROR to have email sent only if there are error messages. Only error
messages are included in the message.
If this attribute is not specified, email is sent no matter how many log messages are
retrieved. All process messages logged thus far are included.
Type: String
Example
This example sends a notification if an error had been logged with <gel:log>.
<gel:script
xmlns:gel="jelly:com.niku.union.gel.GELTagLibrary">
<gel:notify from="[email protected]"
fromName="Clarity Admin"
to="user@somedomain "
subject="There was a process error"
level="ERROR">
</gel:script>
Example
<gel:email from="[email protected]"
fromName="Clarity Admin"
to="user@somedomain "
subject="Simple email">
Hello World.
</gel:email>
</gel:script>
Example 1
This example formats the current date and time into the format the XOG requires for
investment start/finish dates.
<gel:script
xmlns:gel="jelly:com.niku.union.gel.GELTagLibrary">
<gel:out>
<gel:formatDate format="yyyy-MM-dd'T'HH:mm:ss"/>
</gel:out>
</gel:script>
Example 2
This example formats the specified date and time into the format the XOG requires for
investment start/finish dates. Notice the use of the Java class java.util.Date and the
<core:new>, <core:invoke> and <core:arg> tags.
<gel:script
xmlns:core="jelly:core"
xmlns:gel="jelly:com.niku.union.gel.GELTagLibrary">
<gel:out>
<gel:formatDate format="yyyy-MM-dd'T'HH:mm:ss"
dateVar="date"/>
</gel:out>
</gel:script>
Example
This example parses a date from a string, then formats that date using
<gel:formatDate>.
<gel:script
xmlns:gel="jelly:com.niku.union.gel.GELTagLibrary">
<gel:out>
My date was: <gel:formatDate format="yyyy-MM-dd'T'HH:mm:ss"
dateVar="date"/>
</gel:out>
</gel:script>
When you access the CA Clarity PPM database, you only need to know its database ID
(that is, you do not need to provide other access information such as username).
Examples
<gel:setDataSource dbId="niku" var="dataSource"/>
<gel:nsqlQuery var="resultSet">
<![CDATA[
SELECT @SELECT:U.USER_NAME:USER_NAME@,
@SELECT:U.ID:USER_ID@
FROM CMN_SEC_USERS U
WHERE @FILTER@ ]]>
<gel:nsqlParameter name="user_name_wildcard" value="admin*"/>
</gel:nsqlQuery>
<core:forEach items="${resultSet}" var="row">
<gel:out>Row Contents: '${row}'.</gel:out>
</core:forEach>
<gel:script
xmlns:gel="jelly:com.niku.union.gel.GELTagLibrary">
</gel:script>
This tag logs messages as a process message in the BPM_ERRORS table when this script
runs as a custom step in a process. If the process is running from the console, the
message is inserted into the standard log file.
message
Optional. The messaged to log. The message can be set as a value attribute or as
the content of this tag.
Type: String
category
Optional. Use this to distinguish logs. It can be concatenated from business data
type, file name, developer ID, etc.
Type: String
level
Optional. This is the warning level. Choose from the following:
■ DEBUG
■ ERROR
■ FATAL
■ INFO
■ WARN
This attribute is not case sensitive. For example, WARN, warn, and Warn are the
same.
A process message has only three levels: INFO, WARNING, and ERROR, while a
logger message in the log file can have all levels. When a message is logged as a
process message, DEBUG and INFO messages are logged as INFO messages, WARN
messages are logged as WARNING messages, and ERROR and FATAL messages are
logged as ERROR messages.
Default: INFO
Type: Level
var
Optional. A variable name into which the log message should be stored. Use this
when you want to save log messages for other purposes such as sending emails.
If the variable is:
■ Not set. A StringBuffer is created for storing the message; it can later be
referred to using this variable name.
■ Already a StringBuffer. The StringBuffer will be appended to the log message.
■ A string. A StringBuffer is created for storing the string referred to by this
variable followed by the log message; it can later be referred to using this
variable name.
Type: String
Use this tag only when you are using the console to debug and the GEL script is not
running as a process. For example,
If you have a variable that contains an XML Node, including an XML document and you
want to print it, combine gel:out with gel:expr:
<gel:parse var="doc">
<groups>...</groups>
</gel:parse>
<gel:out><gel:expr select="$doc/groups"/></gel:out>
The following additional tags can invoke Java class methods directly:
■ core:new
■ core:invoke
■ core:invokeStatic
The following tags are also are useful for controlling flow in your script:
■ core:if
■ core:switch, core:case, core:default
■ core:choose, core:when, core:otherwise
■ core:forEach
■ core:while
■ core:break
Include the following namespace declaration in your script to use this tag library:
<gel:script xmlns:core="jelly:core"...>
Example
<gel:script
xmlns:core="jelly:core"
xmlns:gel="jelly:com.niku.union.gel.GELTagLibrary">
</gel:script>
escapeText
When set to:
“1”, the body of the tag is escaped (interpreted as text).
“0”, the body is interpreted as XML.
Default: “1” (text)
Type: Boolean
property
Indicates the property name to set on the target object.
Type: java.lang.String
scope
Sets the scope of this variable. For example when set to "parent", this value is in the
parent scope. When Jelly is run from inside a servlet then other scopes are available
such as "request", "session", or "application".
Other applications may implement their own scopes.
Type: java.lang.String
target
Sets the target object on which to set a property.
Type: java.lang.Object
trim
When set to:
“1”, whitespace inside this tag is trimmed.
“0”, whitespace is not trimmed.
Default: “1” (trimmed).
Type: Boolean
value
Sets the expression to evaluate.
Type: org.apache.commons.jelly.expression.Expression
var
Sets the variable name to define for this expression.
Type: java.lang.String
Example
<gel:script
xmlns:core="jelly:core"
xmlns:gel="jelly:com.niku.union.gel.GELTagLibrary">
</gel:script>
var
Sets the variable into which the item being iterated over.
Type: java.lang.String
varStatus
Sets the variable into which the current status is exported. The status is an
implementation of the JSTL LoopTagStatus interface that provides the following
bean properties:
■ current. The current value of the loop items being iterated.
■ index. The current index of the items being iterated.
■ first. If true, this is the first iteration.
■ last. if true, this is the last iteration.
■ begin. This indicates the starting index of the loop.
■ step. This indicates the number by which the loop is iterated, for example:
■ 1. Indicates each loop increments by one index (for example: 1, 2, 3).
■ 2 indicates each loop increments by two index numbers (for example: 1, 3,
5).
■ end. Indicates the last index in the loop.
Type: java.lang.String
Example
This example iterates through the properties in the file test.properties that ships with
the XOG client and prints out each property.
<gel:script
xmlns:core="jelly:core"
xmlns:gel="jelly:com.niku.union.gel.GELTagLibrary">
<!-- print out each value we find -->
<core:forEach items="A, B, C, 1, 2, 3" var="value">
<gel:out>Value = ${value}</gel:out>
</core:forEach>
</gel:script>
Example 1
<gel:script
xmlns:core="jelly:core"
xmlns:gel="jelly:com.niku.union.gel.GELTagLibrary">
</gel:script>
Example 2
This example tests the numeric value. Notice that the > symbol has been escaped in the
XML as > is a reserved character.
<gel:script
xmlns:core="jelly:core"
xmlns:gel="jelly:com.niku.union.gel.GELTagLibrary">
</gel:script>
Include the following namespace declaration in your script to use this tag library:
<gel:script
xmlns:gel="jelly:com.niku.union.gel.SOAPTagLibrary">
Example
Example
This example executes an NSQL query through the XOG web service and writes the
results to a tab-delimited file.
<gel:script
xmlns:core="jelly:core"
xmlns:xog="http://www.niku.com/xog"
xmlns:gel="jelly:com.niku.union.gel.GELTagLibrary"
xmlns:soap="jelly:com.niku.union.gel.SOAPTagLibrary"
xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:f="jelly:com.niku.union.gel.FileTagLibrary"
xmlns:nikuq="http://www.niku.com/xog/Query"
<!-- Construct the Query API request for the NSQL query
"xog_query_test" -->
<gel:parse var="xoginput">
<Query xmlns="http://www.niku.com/xog/Query">
<Code>cats.resourceProfile</Code>
</Query>
</gel:parse>
<gel:include select="$xoginput"/>
</soapenv:Body>
</soapenv:Envelope>
</soap:message>
</soap:invoke>
</gel:script></gel:script>
Example
Example
<soap:message>
<obj:ReadGroup xmlns:obj="http://www.niku.com/xog/Object">
<DataBus xmlns:xsi=”http://www.w3.org/2001/XMLSchema-instance”
xsi:noNamespaceSchemaLocation=”../xsd/xog_read.xsd”>
<xog:Header version=”7.5”
externalSource=”NIKU”/>
<xog:Query>
<xog:Filter name=”code” criteria=”OR”>
ProjectManager,PortfolioManager,XOGTestGroup
</xog:Filter>
</xog:Query>
</xog:DataBus>
</obj:ReadGroup>
</xog:processRequest>
</soap:message>
</soap:invoke>
</gel:script>
<gel:script
xmlns:gel="jelly:com.niku.union.gel.GELTagLibrary"
xmlns:soap="jelly:com.niku.union.gel.SOAPTagLibrary"
xmlns:soap-env="http://schemas.xmlsoap.org/soap/envelope/"
>
<soap:invoke endpoint="${serviceUrl}" var="result">
<soap:message>
<soap-env:Envelope>
<soap-env:Header>
AuthId>${authId}</AuthId>
<Locale>en_US</Locale>
</soap-env:Header>
<soap-env:Body>
<UploadFile xmlns="xxx">
<NewFile>
<Name>/${file}</Name>
<ReplaceExisting>true</ReplaceExisting>
</NewFile>
</UploadFile>
</soap-env:Body>
</soap-env:Envelope>
</soap:message>
<soap:attachment dir="${dir}" fileName="${file}"/>
</soap:invoke>