Friday, May 19, 2006

How to find out about logged in users?

ITG does not have out of box user activity report. Server logon report gives you the currently logged in users. You can find the user logon activity from knta_logon_attempts table. However, ITG keeps only following information in this table.
1. Last successful login entry for every user
2. Previous successful login entries for every user for last 14 days.
3. All failed login entries for every user. If you want to keep successful logon attempts for more than 14 days, then you need to make changes to DAYS_TO_KEEP_LOGON_ATTEMPT_ROWS parameter in server.conf.

Had issue with changing from a Generic Request to an Enhancement.

The reason was because I had set the security tab to only allow visibility and editability for the ITG administrator. This meant that users were not able to move (edit) the workflow field from Generic to Enhancement. Proposal worked because there was no restriction against any user at all. The other point that is important is that all statutes need to be in place. It will result in the same problem if a workflow status is missing.

If you change the database password, there are two places that need to be encrypted

1) server.conf
2) knta_users table - password field server.conf relates to connecting to the itg server ie: starting up ITG knta_users password field relates to being able to login as a user. It is necessary to update this field eg: update knta_users set password = 'BQq*2l*}Mrb)u+W1myD4@^R1=+r6lPvl1<*Vnt+J/Wu=B:w(}pr:B}z)Q(-/ZIR2>V6R+A^0$FTs4IX46?:'

It sets all users with the same password. If you don't do this, you get this error in the servertext.log: Text doesn't appear to be encoded or there is an encryption key mismatch.

If there is an "&" in this string, sqlplus will think that it is a parameter, so the way to handle this is to do:
set scan off

How to calculate NPV and ROI?

ROI = (Total Benefit - Total Cost) and
NPV = (Total Benefit - Total Cost)/(1 + i)^n
ROI stands for Return On Investment
NPV stands for Net Present Value

Both ROI and NPV are calculated based on the Budget and Financial Benefit associated with a Portfolio Management Request. These values are calculated automatically when the Request is saved, or when one of the following fields is updated:
· Budget
· Financial Benefit
· Discount Rate (this field is disabled by default).
Following are the formulas used for calculation of ROI and NPV:
ROI = (Total Benefit – Total Cost)
NPV = (Total Benefit – Total Cost)/(1 + i)^n where i = annual discount rate

Note: Discount Rate is a percentage value, therefore a value of 10 means 10% and it is used as 0.1 in the above formula.n = number of the period, see below : Example First, ITG calculates per month so the discount rate is 10%/12 or .8333% per month. Then it matters when your costs actually: hit May June July August 3000 3000 3000 0 0 0 45000 45000
NPV = 3000/(1.008333)^0+3000/(1.008333)^1+42000/(1.008333)^2+45000/(1.008333)^3
NPV = 3000 + 2975 + 41308 + 43893 = 79226
Following are additional details related to these formulas:
· Since Cost and Benefit are monthly values (in Budget and Financial Benefit), NPV is also calculated as a monthly value. Therefore, 1/12 of the discount rate is used.
· n is the number of months in the future.
· We apply the above formula to each month and then take the sum of all monthly NPV values to arrive at the total NPV.
· For all values, we are taking a "projected" total, which means actual values are used when it is available, otherwise planned values will be used.

What to do if you forget the database password?

Get the DBA to change the password to something that you know
cd bin directory
./kEncrypt.sh
It prompts you for the new password eg: rml
It generates an encrypted string eg:
#!#40$JMfc6VvL:&-6Car:eD6kC}AIsQX_NmxX3f&:YizzM.p^0.zc:hg4IO}Imr`cdzKT_z:2UY bfG>+Hp)_Gf36Rs9Fng,8P{O:D*_X{Rb..9In9q.~Aj~`3H=NqhSJmowejdC4Y_/NU^3~3v$Y8^RrZu$=K$$vKLU8QZWV~J)<{bnHP>A@N:bwDC?7_#!#
Copy it
Paste it into the server.conf file in the appropriate place eg:
## The password for the RML schema.#com.kintana.core.server.RML_PASSWORD=#!#40$JMfc6VvL:&-6Car:eD6kC}AIsQX_N?mxX3f&:YizzM.p^0.zc:hg4IO}Imr`cdzKT_z:2UY bfG>+Hp)_Gf36Rs9Fng,8P{O:D*_X{Rb..9In9q.~Aj~`3H=NqhSJmowejdC4Y_/NU^3~3v$Y8^RrZu$=K$$vKLU8QZWV~J)<{bnHP>A@N:bwDC?7_#!#

How to handle a sql query (behind a portlet) that returns more than 200 rows?

Add the server.conf parameter com.kintana.core.server.PORTLET_MAX_ROWS_RETURNED
Add the following parameter to your server.conf:com.kintana.core.server.PORTLET_MAX_ROWS_RETURNED=
Run the kUpdateHtml.sh in the /bin directory
Restart the ITG Application
Once this parameter is in place, portlets will return rows up to the limit specified.
Note: This will change the limit for all portlets, so there may be a performance impact if this limit is set particularly high (approximately greater than 500.) An increase in the timeout limit of certain existing portlets may also be required, since their queries may take more time to complete as they are returning a higher number of rows.In 5.5, all the rows for a query are returned.
Another Note: In 6.0 the portlet_max_rows_returned is required to be changed so that it would return the desired number of rows.
http://kb-web.mercury.com/top5/kblinkExtern.asp?Conceptid=31525;Product=kintana
http://kb-web.mercury.com/top5/kblinkExtern.asp?Conceptid=42044;Product=kintana

Security Controls

What controls visibility of a request in the drop down menu when you do create --> request?
Either a username, token or security group is added in the user access tab of the request.
What controls visibility of the yellow buttons in a request?
Either a username, token or security group is added to each workflow step.
Note: Don't use double quotes within the text of a workflow step since it will not recognise the text. You can use single quotes.

Ho to use Dual?

If you select anything from dual within a rule, it will automatically return their value to the results eg:
If you want to copy the value of one field with token PROJECT_MANAGER to another field which is an out of the box field eg: KNTA_PROJECT_MANAGER then do the following:
SELECT '[REQ.P.PROJECT_MANAGER]', '[REQ.VP.PROJECT_MANAGER]'from dual
where the results are:[REQ.P.KNTA_PROJECT_MANAGER] and [REQ.VP.KNTA_PROJECT_MANAGER]
The effect will be to take the values of [REQ.P.PROJECT_MANAGER], [REQ.VP.PROJECT_MANAGER] and enter them into the values in the results fields.
Finally, you can choose to not display KNTA_PROJECT_MANAGER, however the field will contain a value if you need to enable it as some point in the future.

How to auto-populate a field?

create a user-user data field called "department" with a validation of "KNTA-Department-Enabled"
give it a token called "DEPT"
the column relating to this token is USER_DATA1
create a rule called "Auto-fill_dept"
the sql behind the rule will be:
SELECT USER_DATA1, VISIBLE_USER_DATA1
FROM KNTA_USERS
WHERE USER_ID = [SYS.USER_ID]
The results will be:
[REQ.DEPARTMENT_CODE] and [REQ.DEPARTMENT_NAME]

How to setup a 3rd party visibility field?

In a request type, add a new header called "3rd party visibility"
create a field called "3rd party visibility"
give it a token name of "3PV"
within the field, set the security tab to only allow the "PM" group to see this field
add a custom token to the "user tab" in each relevant request, called [REQD.VP.3PV]
create a validation called "3rd party visibility" and add all relevant 3rd parties.
To use it, select a value from the drop down menu in the request type. Only the "PM" group will be able to do this.

Why is [P.PROJECT_MANAGER] working in a custom portlet instead of [PROJ.PROJECT_MANAGER]?

[P.PROJECT_MANAGER] is referenced from a filter field and is referring to the alias defined in the main sql statement eg:
SELECT ...e.PROP_PROJECT_MANAGER PROJECT_MANAGER
where PROJECT_MANAGER is an alias column name. To refer to this alias, use "P." before it. This is typically how custom parameters are referred to.

What to do when add in a "re-open" step in a workflow and the request does not show the button?

At OS level:
cd /bin
sh kRunCacheManager.sh A
where A = all
This basically refreshes the cache which results in the button being displayed correctly.

knta_lookups

Knta_lookups is often used when creating rules. It basically contains a list of all validations and the associated values.

the format is often:
select lookup_code, meaning
from knta_lookups
where lookup_type = 'xxx'