viernes, 22 de noviembre de 2013

Clarity functional administration

Clarity direct addresses

Project audit trail
.../niku/nu#action:odf.projectAuditTrailReturn&id= %projectid%
Task audit trail
Licenses per user(there is not a direct menu entry)

Report scheduling with cron

Based in  standard cron format.
Five time parameters separated by "spaces"
Different values for a same parameter are separated by "comma"
* = any value

*    *    *    *    *

min (0 - 59)
hour (0 - 23)
day of month (1 - 31)
month (1 - 12)
day of week (0 - 6) (0 to 6 are Sunday to Saturday, or use names)

Theme for testing


CAPA and versions

Clarity v13.1
CAPA Player - Version 11.1.0 Build
Clarity v13.2
CAPA Player - Version 11.1.0 Build

Prefixes portlets and reports

COP. , from PMO Accelerator (portlets)
CATS. ,  from Best Practises Accelerator (obsolete reports replaced by CSP and portlets by cop)
RPT_PMO_ ,  Obsolete reports from PMO Accelerator (Releases previous to 3.1)
CSP_,  from Clarity Solution Pack (reports and portlets)

viernes, 4 de octubre de 2013

Raspberry Pi - stuff

Raspberry Hardware
Raspberry Pi 1 Model B revision 1.2
Model B - Rev2 aka Rev2 - 512MB RAM

ARM1176JZF-S a 700 MHz (family ARM11)
implements the ARM11 ARM architecture v6. provides support for extensions to ARMv6 

ARM11 single core model B 512MB
3Conector RCA (PAL and NTSC),
HDMI (rev1.3 y 1.4),
gpio pins for B - rev2
61 Interfaz DSI for panel LCD62 63

 from a cat /proc/cpuinfo
ARMv6  rev7(v6L)
hardw: BMC2708

Spanish Lesson:
Raspberry Pi y GPIO

Raspberry Pi 3 Model B
Quad-Core, 1.2 GHz, 1 GB RAM, USB 2.0, Bluetooth 4.0, Wi-Fi

The Cortex-A53 supports the full ARMv8-A architecture.
It not only runs 64-bit applications also seamlessly and efficiently runs legacy ARM 32-bit applications.

 Combined 3.5mm audio jack and composite video
Camera interface (CSI)
Display interface (DSI)
Micro SD card slot (now push-pull rather than push-push)
VideoCore IV 3D graphics core


Most of raspberry images are based in copy files to SD formated in FAT, and during the 1st boot, original partition is dynamically resized  and new partitions are created.

rpix86 is a PC emulator for the Raspberry Pi

 chameleon Pi

Tools:Windows Software
Ms. Windows is not the best environment to work with disks, filesystems etc.. but using the following apps we can do most of the tasks without the need of rebooting a Windows computer.

Win32DiskImager.exe (GPL)
Linux Reader (Diskinternals)
EaseUS Partition Master (EaseUS)

There are better software for Windows\DOS and Linux but at least the previous are gratis


wifi config

multimedia player GUI for omx player
A GUI interface using jbaiter's pyomxplayer wrapper to control omxplayer

Required pexpect:
     tar xzf pexpect-2.3.tar.gz
     cd pexpect-2.3
     sudo python ./ install

Installing tboplayer:
From a terminal window open in your home directory type:
     wget -O - | tar xz

There should now be a directory 'KenT2-tboplayer-xxxx' in your home directory. Rename the directory to tboplayer

Open the tboplayer directory and from a terminal opened in THIS directory:


TBOPlayer is developed on Raspbian Wheezy with python 2.7

install mp3 player

  1. Uncompress downloaded file
  2. Identify SD card device (i.e /dev/mmblkxx) (1)
  3. Format/remove partition from SD card. Disks or Fdisk (2)
  4. Applying image to SD
    •  sudo dd if=/path/sd.img of=/dev/mmcblk0 (3)
    •  /path/ mounter folder where image is placed
  5. Boot Raspberry with SD
    • (Raspbmc will do some actions over SD, Sucha as partition resizing etc)
  6. (optional) From PC, resize/create partitions
    • (i.e with gparted) (4)
    • Create a fat32 partition
    • Copy multimedia to SD

(1) use Disks, dmesg, ...
(2) if there is problem try with a different card reader, usb to SD adaptor,..
(3) Use dd command or restore image from Disks on GUI, wait because it can take sometime and there is not a progress bar
(4) gparted recommended, but other software could done this action

Username: pi. Password: raspberry

login via ssh
 username: root
 password: root
  username: root
  password: openelec

Some useful links:
technical articles:

martes, 6 de agosto de 2013

Retro IT Culture


Best abandon books and webs where to read about the old times of IT

Basic Rules!!

Tecnología Obsoleta:

The probably the best IT books ever published including the best illustrations:

Just DIY:

viernes, 26 de julio de 2013

XML - Editor, Tools,...

XML editing software
Java is not compatible with UTF8 with BOM and XOG is based in Java
so use UTF8 (withoutBOM) or cp1252 aka ANSI

--Ms.Notepad XML 2007
(be careful writes UTF8 with BOM)
   Outline view with XML elements. Able to drag and drop elements from one file to other

--XML Spear 3.1. Good free software! it is possible to select the enconding(even UTF8 with BOM)
   Outline with element, no drag and drop
   Able to open big files (>20MB)  
   Plugin for Clarity

--Eclipse Indigo+WTP
   By default not able to manage big xml files
  Outline view with XML elements, Able to drag and drop elements from one file to other (in different Eclipse windows)

 Eclipse XML Editors and Tools

  it is not an specific editor but it has colour syntax and can be used to compare two files (plugin compare)

  it is not an specific editor but it has colour syntax and can be used to compare two files(Tools, text Differences)

Web services
Create XSD from web:
XSD in Russian Doll Style or Separate Complex Types

!note.  resulting XSD is not proper to map Clarity instances, value is missing.

Flame-Ware Solutions XML-2-XSD v2.0
!note. resulting XSD has xmlns:msdata, not proper to map Clarity

jueves, 11 de julio de 2013

XML- Map data to XML for XOG

XOG-in CSV data to a Clarity custom object

Using Mapforce2013 *
*Mapforce2013Enterprise (rel2sp2) [commercial app]
With installation folder it can be used as a portable app.
Registration is computer dependent (C:\ProgramData\Altova\MapForce2013)

In order to generate a xml to xog-in

  • Add schema file(xsd)
    •   ../xsd/nikuxog_customObjectInstance.xsd
  • Add csv or xslx (xslx better to display column headers)
    •  Config. rows level, "Show separate items for columns"

  • Config at XSD
    •  Attributes content is inside tag ColumnValue
    • Add a duplicate of ColumnValue per each attribute to map
    • map attribute name to "name" element in Schema
    • map content to "text()" element in Schema
  • Map columns and constants to Schema
    •  map Row number to xsd element with iteration (sequence)
    •  map columns to xsd elements

Mapforce mapping

  • Menu: Output, Save Output file, (xml file to xog-in)
  • Edit in xml file to correct local paths, i.e.  xsi:noNamespaceSchemaLocation="../../xsd/nikuxog_customObjectInstance.xsd"
*Clarity date attribute is in format yyyy-mm-ddT00:00:00 and will be xogout including time but format yyyy-mm-dd is supported for xogin

martes, 11 de junio de 2013

Clarity - partition - lookup and mappings

  How to use partitioned values in a static list lookup with attribute mappings

I am writing this short procedure because I think it is quite interesting and I didn't see any document about it. For instance, it can be done with out of the box "Investment Status Indicator"   attribute

Attribute Name: Status Indicator

It is possible to create values associated to partitions from lookup "Values"

However, from object attribute I cannot see the lookupvalues if they are associated to "Mipartition:Partition and descendants"
If we change to "Partition, ancestors and descendants" then we can see them from mappings and map  with colors

with Partition, ancestors and descendants

But now the values are available for non partition views and users. :(
So, We change values to "Mipartition:Partition and descendants"
Now, partitioned values are not available for system views :)
But from partition views, these values are available and can be selected. :)

Note that at the moment from the attribute we can see all the mappings but those two associated to partition values will appear without value associated. It is only a visual effect and in the database they are configured well, in fact if we would reconfig values to "Partition, ancestors and descendants" they automatically will be displayed in mappings list  :)

with Partition and descendants

If you have  an error "HTTP 500 Internal server error"when editing from  Project List whereas same action from a system view works fine. Go to partition views and click Publish (it will restore user view customization).

viernes, 19 de abril de 2013

Clarity XOG - XML - WSDL -SOAP

XOG compatibility

Usually XOG version are compatible with Clarity version if there is not changes in the database structure. Differences in .xsd files could mean differences between data in Clarity.

Anyway default version association:
Clarity v.12.1 SP1
i.e. XOG

Clarity v.

Clarity v.13.1.00248
 for example  XOG V12.0.6.5471 could work with a Clarity v.13.0.1, but there is a risk...

Testing XOG from Clarity web


XML Open Gateway (XOG)
web service interface that you can use to:
  *Import data
  *Export data
  *Move configuration data from one system to another
to read data from or write data to CA Clarity using XML and web services
GEL tags that can be used with XML for more advanced custom integration tasks
CA Clarity web services use XML messages that follow the SOAP standard.

WSDL Reference

SOAP Testing - Queries\WSDL

 SOAP UI, free licence software, after downloading a Clarity  WSDL template, remove or comment all those conditions or filters that you are not using for your request.

SOAP Sonar.
SOAP Sonar
Commercial software and gratis only for a single project/query open. Very easy to work with filter parameters, because  only those parameters introduced in inputboxes will be used for the request.

Working\Saving XML Read Files
ANSI/CP1252, UTF8without BOM

Common filters:



Custom Objects
Reading Object definition

Reading contents/instances

Stock objects
Read reference.

Sort results

or when more there is more tahn one element


XOG-out /XOG-in

Between different environments (i.e Project)

  1. XOGout a project
  2. Edit XML to adapt to new enviroment 
    1. Replace Projectid by an id not in use, if attribute is autonumeric, use the next id
  3. Remove all unique tags in a Clarity instance (i.e internalTaskID)
    1. from notepad: find internalTaskID=".*?"
    2. Select "Regular expression"
    3. checkbox ".matches newline"
    4. Count (verify)
    5. Replace  (with nothing)
  4. (Some unique tags like taskID are unique  but the ambit is just the project  )
  5. Check 
    1. resources, if userid is autonumeric could be different between the environments
  6. XOG-in to new environment
Between different environments (i.e User/resources)
  1. XOGOut resources (rsm_resources)
    1. filter by resourceID supports wildcard %
  2. XOGOut Users/accounts (cmn_users)   
    1. filter by userName doesn't supports wildcards, so use criteria="OR" and values separated by comma (without spaces)      
    2. Password not extracted, default password=Niku2000
  3. Edit XML files
  4. --Users: add properties for delete to XML tags
    1. Note: complete and completed/Iscomplete are synonyms      
    2. i.e. complete="true" for (capscase, don't use Uppercase)
    3. supported by: OBSAssocs, Groups, GlobalRights, InstanceRights, InstanceOBSRights, SkillAssocs
    4. i.e. ReplaceAll "Groups" by "Groups complete="true""
  5. --Resources
    1. complete="true" for (optional)
    2. resetCalendar="true" to
    3. (*)additional fields cannot  be reset from XOG such as Booking Manager,Date of Termination, Allocations,....
  6.     XOGIn     
    1. Reset by hand all those attributes which could not be reset by XOG

jueves, 11 de abril de 2013

Databases, csv, spreadsheets and other herbs

Data export and import between databases and spreadsheets should be an easy task, but sometimes progress in time doesn't mean advance of products or functionalities, at least it is true fact when we are speaking about Microsoft products.

For instance, a task like specify a separator symbol in Excel; different than comma was so easy in the past, but now it is nightmare.

Dbvisualizer - find drivers
Database extraction

For example SQLTools or DB visualizer

-SQLTools, fast and free tool, can work without installation but requires Oracle client installed.

Config of connections:

-DB visualizer supports many database drivers (even can be detected from the computer)
Support extraction to CSV files, and select a separator symbol.

Remove Newline Character. Always checked, to avoid return carriage ia a field being used as delimiter


Notes: There is an issue with  DBvisualizer/Gnumeric, default windows enconding "cp1252" from DBvis cannot be recognized by Gnumeric.
Oracle SQL Developer - Export

Squirrel SQL


SQL Developer (Oracle)
With many options and able to work with many connections and tables at same time.
Can export to csv, tsv, dsv, xls,xlsx (including query in a different tab)

CVS integrated with compare features (tab: Historial)
Result of previous queries  (results tabs)

Herramientas,Preferencias,Editor de codigos, Canal de Linea, Mostrar números de líneas
Herramientas,Preferencias,Base de datos,NLS, formato fecha=DD/MM/RR HH24:MI:SSXFF
Herramientas,Preferencias,Base de datos,Avanzada, Tamaño de recuperación.. =50

Connections configuration:

Users\myself\AppData\Roaming\SQL Developer\system4.1.3xx\o.jdeveloper.db.connection.\connections.xml (includes encrypted password, file with passwords will work on other system/version)

Connections, Export/import connections  (requires a password to encrypt passwords in xml file)

Install Password Plugin: Show me password

JDK configuration

by default ../../jdk
(if not detected there; a browse folder box will allow us to select the folder)


SetJavaHome ../../jdk


is able to import csv files with a different than comma symbol,
is able to export a spreadsheet with an specific separator

There are problems importing a  csv file DBvis enconded with "cp1252"
The following combinatiosn works

DBvisualizer / Gnumeric
UTF8        /    ISO 8859-2
CP1252    /    Windows 1250

Go to "Data", "Import Text File", "Text import configuration" or "Data", "Text to Columns"

Save As, File type: Text (configurable)
Gnumeric Export

Ms. Excel 2003
Can import csv, and even specify delimiters but it is useless for exportation to csv as it always delimit columns using semicolon.
Theorically from Computer, regional settings, delimiter can be configured but it doesn´t work.

Ms. Excel (>2007)

Last versions removed the option Import in Menu, so now it is not very intuitive, but it can be done opening a text file with a .txt extension (don't use csv, because automatically comma will be used as delimiter)  and a wizards will be launched.
Theoretically from Computer, regional settings, delimiter can be configured but it doesn't work with Windows 7.  Probably excel is one of the best Microsoft apps but there is a complete lack of interoperability. Better to use Libreoffice

Excel import

Formating contents in Excel:

Cleaning acents:
Limited by maximun of nested functions:

Convert to Proper name and clean acents

Look for a string in an array a extract a column from same row
=VLOOKUP(stringtofind,in_array!$first_row:$last_row,col_to extract,FALSE)
False=match exact string

Find a string in the last characters

Detect white spaces at beginning or end of a string
i.e if space found write the string without spaces.
=IF(OR(LEFT(A2,1)=" ",RIGHT(A2,1)=" "),TRIM(A2),"Word  is OK")


Import, just open a csv file and wizard automatically will open.

Export, Save as: CSV with checkbox "Edit filter settings" let us to change delimiter character or add quotation marks to fields

miércoles, 23 de enero de 2013

Clarity Development III (Queries, NSQL)

--- Queries  in Clarity---

SELECT field
FROM table *

-How to find the names to use from Clarity.

Table=Table name. Check in Object, Attributes, "Database Table" column
* i.e for custom objects: odf_ca_cop_xxxxxx

Field=Attribute name.
For custom attributes, check in Object, Attributes, "Database Column" column
For default attributes, click on "Attribute" column, and use  "Attribute ID" (in Object Attribute window)
For virtual attributes, check in Object, Attributes, "Database Column" column

-NSQL Query in a Lookup-Query:
Lookup-query supports works with a quite standar SQL syntaxis

SELECT   @SELECT:my.code:code@,       
FROM   odf_ca_myobject my, PAC_MNT_PROJECTS P

-NSQL query in QUERY 

Requires the comple NQL syntaxis and at least one dimension definition (SELECT:DIM:)

SELECT   @SELECT:DIM:USER_DEF:IMPLIED:Mytest:my.code:code@,       
FROM   odf_ca_myobject my

-Table Prefixes

PrefixTable Topic
CAP,Capacity Planning
CMN,Common tables that span functionality
OBS,Organizational Breakdown Structure
PAC,Project Accounting
PPA,Project Billing
PR and PRJ,Projects
RSM,Resource management
SRM,Main objects table that crosses functionality modules
XDM,eXtensible Data Model (XDM) for user-defined fields and forms

(added tables)
COP, from PMO Accelerator
CATS,  from Best Practises Accelerator
odmd, CA Clarity PPM Essentials
pr2, Accelerator PRINCE2
pbk, Accelerator PMBOK guide
csk, Accelerator Program Management Office

TIPS for Naming in Clarity (objects, attributes,...)
qry query
q_ query
lkp lookup
l_ lookup
prt portlet
rpt report
prj project
proc process
res resource
tab tab
obj object
o_ object
pfl portafolio

martes, 15 de enero de 2013

Clarity development II (power filter, calculated attributes, Processes..)

Calculated attributes & Power Filters  & Process conditions

Calculated attributes


Be careful with syntax because some functions like DateDiff,  internally the result can be negative but the attribute will displays with no minus symbol.!!
!!(If negative it will be displayed in red color and between bracket () symbols)

Boolean output Min(Max(DateDiff(Now(), prfinish,"Day"),0),1)

Calculated attribute+mappi>ng colors 
DateDiff(Now(), prfinish,"Day")
-1 to -100 (red)
0 to 100 (green)
In views, Fields, configure field; Display Elements=Image  

Power Filters
-Power filters are not SQL!
-The Power Filter is currently designed to search for values only. If you leave the field empty (NULL value) that field is not included in the filtering. There is no current functionality that allows the configuration of the power filter to search for NULL or NOT NULL values.

"wildcard" character in Oracle is a percentage "%", but Clarity handles that;
i.e. I enter a "*" in a Clarity LIKE condition and this is converted by Clarity to a "%" when the SQL hits the database.

note: on v7.5.3 on Oracle, both % and * worked as wildcards, since v8 only * has worked

project.schedule_finish >= dateMacro("today")+50
like(, "Mi_" ) && notLike(, "PR-" )

Syntax: dateMacro(“period name”)

Process Conditions 

Start conditions. to avoid to enter in the process. Include here the conditions required by steps.
To detect a change in on attribute: I.e of formula created by manual writing or generated from forms.
( project.status__oldValue != lookup("INVESTMENT_OBJ_STATUS", 1) && project.status == lookup("INVESTMENT_OBJ_STATUS", 1) ) || ( project.status__oldValue == lookup("INVESTMENT_OBJ_STATUS", 1) && project.status != lookup("INVESTMENT_OBJ_STATUS", 1) )
Same expression (Clarity Evaluated)
( ( ( Project Status [Previous Value] != 'Approved' ) and ( Project Status = 'Approved' ) ) or ( ( Project Status [Previous Value] = 'Approved' ) and ( Project Status != 'Approved' ) ))
Process Notification
Process have default message for notifications, and these messsages can be customized per each process.

Some generic tags:

[objectName]: [objectInstanceName]

when using "project" object
@[:projmgr.projectDefaultTab!~:~:Click Here]