Koray Kırdinli

Yazılım ve İş Yaşamı Hakkında Paylaşımlar

PPM Workplan’da yanlış hesaplanan gerçekleşen adam gün düzeltmek.

Geçenlerde şirkette şöyle bir problemimiz oldu. Bir kullanıcının workplan’da schulded effort(gerçekleşen adam gün) da çok büyük bir değer yazdığını farkettik. Bütün timesheet’lerini tek tek taradım ancak workplan’daki değeri yazması çok zordu ve ppm’in bu değeri yanlış hesapladığını farkettik. Sorunun ise senkronizasyon bozukluğundan kaynaklandığını öğrendim ve bu işi tekrar senkronize etmek için aşağıdaki işlemleri yaptım sırasıyla.

Önce veritabanında aşağıdaki db scriptini çalıştırdım. Buradaki pfm_request_id senkronizasyonu bozuk olan işin numarası. 
Update pm_work_plans set source=’NEEDS_TM_SYNC’ where Project_id=(select Project_id from pm_projects where pfm_request_id=35893)
Daha sonra komut çalıştırmak için cygwin açılır ve aşağıdaki script’ler sırasıyla çalıştırılır. Alttaki scriptteki project no ilgili requestin project_id sidir.

 cd c:/ppm/bin

$ sh kPMTMSync.sh -projectno 34643 -username admin -password admin

Sonrasında problem düzeldi.

Nisan 10, 2012 Posted by | PPM | , , , , , , , | Yorum bırakın

PPM Service Pack Geçişi

Geçenlerde şirkette PPM 8.0 üzerine bazı sorunlarımızın düzeleceğini umut ederek Service Pack  geçelim dedik. Bunun için bütün uygulamalarımızda olduğu gibi önce test ortamında sonucu görüp bir sıkıntı olmazsa proda almayı uygun gördük.
Komutları çalıştırmak için yine CYWIN’den yararlanacağız. Bunun için
PPM bin dizinene CYWIN’i getiriyoruz.
CYWIN-> cd c:\ppm\bin

– Server CYWIN’den stop edilip PPM klasörü yedeği alınır.
sh kStop.sh -now admin

– SP paketim PPM home dizinine atılır

– kDeploy -i SP4

– sh kJSPCompiler.sh

– sh.kHtmlupdate.sh

– server açılır. sh kStart.sh

Aralık 25, 2011 Posted by | PPM | , , | Yorum bırakın

10 Adımda PPM prod ortamından test ortamına restore işlemi

Öncelikle ppm için bazı komutları çalıştırabilmek için
CYWIN (komut çalıştırmak için kullandığımız bir program) denilen bir programdan faydalanacağız.

1- CYWIN-> cd c:\ppm\bin ile ppm dizinine geliyoruz
2-Yine CYWIN’de sh kStop.sh ile prod ortamını ve test ortamını ayrı ayrı kapatıyoruz
3-DAha sonra PPM’İn iki şeması olan ppmXX_rml ve ppmXX_usr ‘ların prod ortamından birer dumpını alıyoruz.
4- Test db si üzerindeki eski şemalar drop edilir
5- Allta yazdığım CreateKintanaUser.sql ile ppmXX_usr kullanıcı oluşturulur ve yeni şifre verilir.
6- CreateRMLUser.sql ile ppmXX_rml kullanıcısı oluşturulur. (Şifre verilecek)
7-Altta yazdığım GrantSysPrivs.sql sorgusunu sys as dba olarak login olarak ppmXX_usr için çalıştır.
8- Testte CYWIN-> cd c:\ppm\bin ve sh kJAVACompiler.sh
9- Testte CYWIN-> cd c:\ppm\bin ve sh khtmlupdate.sh
10- TEstte CYWIN-> cd c:\ppm\bin ve sh kStart.sh

–$Project: Dev – Kintana$
–$Folder: system$
–$Workfile: CreateKintanaUser.sql$

/*
+=============================================================+
|            Copyright (c) 1995 – 2006 Kintana, Inc.
|                      All Rights Reserved
+=============================================================+
|
|    File Name:    create_knta_user.sql
|    Object Name:
|    Description:
|       KNTA User creation script
|
+=============================================================+
|
|  Notes
+=============================================================+
*/

PROMPT
PROMPT — Name of the ITG server database schema
DEFINE KNTA_USERNAME = &1;

PROMPT
PROMPT — Password of the ITG server database schema
DEFINE KNTA_PASSWORD = &2;

PROMPT
PROMPT — Name of the DATA tablespace
DEFINE DATA_TABLESPACE = &3;

PROMPT
PROMPT — Name of the INDEX Tablespace
DEFINE INDEX_TABLESPACE = &4;

PROMPT
PROMPT — Name of the CLOB tablespace
DEFINE CLOB_TABLESPACE = &6;

WHENEVER SQLERROR EXIT 1;

CREATE USER &KNTA_USERNAME
IDENTIFIED BY “&KNTA_PASSWORD”
DEFAULT TABLESPACE &DATA_TABLESPACE
QUOTA UNLIMITED ON &DATA_TABLESPACE
QUOTA UNLIMITED ON &INDEX_TABLESPACE
QUOTA UNLIMITED ON &CLOB_TABLESPACE;

grant connect to &KNTA_USERNAME;

grant create session       to &KNTA_USERNAME;
grant create database link to &KNTA_USERNAME;
grant create procedure     to &KNTA_USERNAME;
grant create sequence      to &KNTA_USERNAME;
grant create synonym       to &KNTA_USERNAME;
grant create table         to &KNTA_USERNAME;
grant create view          to &KNTA_USERNAME;
grant create trigger       to &KNTA_USERNAME;

— In addition to the above grants, the installer will ask for ‘grant select on v$parameter to &KNTA_USERNAME’
— for which you may have to connect as sys.

exit;

–$Project: Dev – Kintana$
–$Folder: system$
–$Workfile: CreateRMLUser.sql$

/*

+=============================================================+
|    Copyright (c) 1995 – 2006 Kintana, Inc.
|                      All Rights Reserved
+=============================================================+
|
|    File Name:      KNTA_CREATE_RML_SCHEMA.SQL
|    Description:    Create the RML Schema on Install/Upgrade
|    Author:         Timothy Lam
|
+=============================================================+
| This script does the following to setup the Meta Layer Schema:
| 1. Create RML schema
|
| Usage (As System user):
| knta_create_rml_schema [rml_user] [rml_pwd] [DATA_TABLESPACE]
|   [TEMP_TABLESPACE]
|
| The script will connect you as Kintana User, so you must have
| Kintana user created.
* *************************************************************** */

— create RML User

— already connected as system

PROMPT
PROMPT — Enter the name the ITG RML schema to create
DEFINE RML_USERNAME = &1;

PROMPT
PROMPT — Enter the password the ITG RML schema name
DEFINE RML_PASSWORD = &2;

PROMPT
PROMPT — Enter the DATA tablespace
DEFINE DATA_TABLESPACE = &3;

SET SERVEROUTPUT ON SIZE 999999;

WHENEVER SQLERROR EXIT FAILURE ROLLBACK;

CREATE USER &RML_USERNAME
IDENTIFIED BY “&RML_PASSWORD”
DEFAULT TABLESPACE &DATA_TABLESPACE;

grant create session to &RML_USERNAME;
grant create table to &RML_USERNAME;
grant create view to &RML_USERNAME;
grant create synonym to &RML_USERNAME;
grant resource to &RML_USERNAME;

exit

–$Project: Dev – Kintana$
–$Folder: sys$
–$Workfile: GrantSysPrivs.sql$
–$Date: 11/12/08 1:11:56 PM PST$
–$Revision: 4$


— HP PPM Center: GrantSysPrivs.sql

— This script is provided as part of the Mercury ITG installation and upgrage
— to help you grant the necessary SYS level privileges.  When prompted you can
— run the following command:

— sqlplus sys/<sys_password>@<sid> @GrantSysPrivs.sql <db_user>

PROMPT — This script is provided as part of the HP PPM installation and
PROMPT — upgrade to help you grant the necessary SYS level privileges to the
PROMPT — ITG Schema.  In order to do this the script needs the name of the
PROMPT — Schema (DB_USERNAME in server.conf)
PROMPT

define db_user = &ITG_SCHEMA_NAME;

grant select  on v_$parameter to &db_user;

— Needed for Statistic Calculation
grant execute on dbms_stats   to &db_user;
grant select  on v_$mystat    to &db_user;
grant select  on v_$process   to &db_user;
grant select  on v_$session   to &db_user;
–grant execute on DBMS_SHARED_POOL to &db_user;

exit;

 

NOT : Scriptler anlaşılacağı üzere alıntıdır.

Aralık 24, 2011 Posted by | PPM | , , , , , | 3 Yorum

PPM’de veritabanından paydaşların(stakeholders) listesini almak.

Merhaba arkadaşlar , daha önceki yazımızda PPM nedir kısaca bir giriş yapmıştık . PPM’in insanları en çok zorlayan tarafı eminim ki raporlama kısmıdır. Veritabanı oldukça karışık ve bir sorguyu oluşturabilmek için tırmalamak gerekebiliyor. Ben de bu konu ile ilgili Türkçe kaynak olmadığı için bulduğum pratik bilgileri sizlerle zaman içinde paylaşıyor olacağım.

İlk konumuz bir SELECT ifadesi. Projelere eklenen paydaşların yani Stakeholders olarak atanan
kişilerin bir listesini alabilmek. Aşağıdaki sayfaya Projenin ilk sayfasına geldikten sonra en üstte yer
alan Katılımcıları Yapılandır(Configure participants) butonu yardımı ile ulaşabiliyorsunuz.
Sorgumuz ise aşağıdaki gibi.
1. Get delimited list of user ID’s for all stakeholders of the specified project
select PM_UTILS.get_prj_stakeholders() from dual
2. Get delimited list of all project stakeholder usernames for the specified project
select PM_UTILS.get_prj_stakeholder_usernames() from dual
3. Get delimited list of all project stakeholder full names for the specified project
select PM_UTILS.get_prj_stakeholder_name_list() from dual
Buradaki Request id sini bildiğimiz bir işin Project id sini aşağıdaki sorgu yardımı ile bulabiliriz.
select project_id from PM_PROJECTS t WHERE t.PFM_REQUEST_ID=

Ekim 25, 2011 Posted by | PPM | , , , | Yorum bırakın

HP PPM (Project and Portfolio Management) Nedir?

Kodun içinden biraz sıyrılıp farklı bir konuda kısaca bilgi vermeye çalışacağım. Ürünümüzün adı : PPM , HP’nin talep yönetimi(demand management),proje ve program yönetimi(Project-Program management) üzerine geliştirmiş olduğu esnek bir yazılım. Ha nerden merak saldın derseniz , şirkette yazılım geliştirme süreçlerini bu araç ile takip ediyoruz. Bir çok noktada sıkıntıları olsa da , veritabanı çok karmaşık olsa da genel itibariyle güzel bir program. Altyapı olarak JSP ve Oracle kullanıyor. Windows ve Linux işletim sistemlerinde koşabiliyor.

Program genel itibari ile 2 taraflı 1.Arayüz (JSF) ve 2.Workbench

Workbench yani admin panelinde bütün süreçlerin tanımlaması yapılıyor , alanlar ,userlar, yetki grupları , istek tipleri,validasyonlar,notifikasyonlar vs.

Ben örnek bir senaryo üzerinden yazılımın nasıl işlediğini anlatıp, programı hiç bilmeyen ve görmeyenler için bir örnekleme yapacağım. Örneğin şirketimizde işlerin büyüklüğüne göre süreçleri 3’e ayırdık : DEĞİŞİKLİK,GELİŞTİRME ve PROJE. Bu 3 tip içinde farklı süreçler tanımlanıyor. Değişiklik sürecindeki adımlarımız sırasıyla : Atamalar,Analiz,Yazılım,Fonksiyonel Test,Son kullanıcı kabul testi Dağıtım Onayı,Canlıya Geçiş,Kapanış. PPM Workbench’te her bir adımı bir workflow step olarak tanımlıyoruz. Her bir adımda hangi user group’un onayına gidecek kime mail gidecek belirliyoruz.

Daha sonra DEĞİŞİKLİK süreci için hangi alanlar gerekiyorsa hepsini tanımlıyoruz örnek vermek gerekirse bu sürecin analisti kim,yazılımcısı kim,planlanan adam günü kaç,hangi ekibe ait bir süreç vs bunları da Request ler altında tanımlayıp bu request şu workflow’u kullanacak diye tanımlamasını yapıyoruz.

PPM Web Arayüzü

PPM Workbench Arayüzü

Sürecin tanımlamasında çok detay var ancak ben sadece PPM nedir,neye benziyor ve ne işe yarıyor biraz canlandırmak istedim. Eğer firmanızda PPM kullanıyorsanız ve sorularınız olursa bana mail adresimden ulaşabilirsiniz.

Detaylı bilgiyi HP’nin kendi sitesinden de edinebilirsiniz.

http://www8.hp.com/us/en/software/software-product.html?compURI=tcm:245-937033

Ekim 14, 2011 Posted by | PPM | , , , | Yorum bırakın