Koray Kırdinli

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

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

Gridview’e Freeze Özelliği Eklemek

1-  Gridimizi 2 tane panel içine alıyoruz ve her bir kolona width veriyoruz.

—-şsadsadas

2-  Page load da da aşağıdaki metodu çağırıp freze özelliğini kolayca eklemiş oluyoruz.

FreezeGridviewHeader(GridRequestProgress, _tb, PanelContainer, grid1.Width.Value);

protected void FreezeGridviewHeader(GridView _gv1, Table _tb1, Panel _pc1, double panelWidth)

{

_gv1.EnableViewState = false;

_tb1.Rows.Add(_gv1.HeaderRow);

_tb1.Rows[0].ControlStyle.CopyFrom(_gv1.HeaderStyle);

_tb1.CellPadding = _gv1.CellPadding;

_tb1.CellSpacing = _gv1.CellSpacing;

_tb1.BorderWidth = Unit.Pixel(1);

_tb1.GridLines = GridLines.Vertical;

_pc1.Width = Unit.Pixel(panelWidth.ConvertToInt());

for (int Count = 0; Count < _gv1.HeaderRow.Cells.Count – 1; Count++)

{

_tb1.Rows[0].Cells[Count].Width = _gv1.Columns[Count].ItemStyle.Width;

_tb1.Rows[0].Cells[Count].BorderWidth = _gv1.Columns[Count].HeaderStyle.BorderWidth;

_tb1.Rows[0].Cells[Count].BorderStyle = _gv1.Columns[Count].HeaderStyle.BorderStyle;

_pc1.Width = Unit.Pixel(Convert.ToInt32(_tb1.Rows[0].Cells[Count].Width.Value) + Convert.ToInt32(_pc1.Width.Value) + 4);

}

for (int i = 0; i < _gv1.HeaderRow.Cells.Count – 1; i++)

{

_gv1.HeaderRow.Cells[i].Width = _tb1.Rows[0].Cells[i].Width;

_gv1.HeaderStyle.Width = _tb1.Rows[0].Cells[i].Width;

}

//_pc1.Width = Unit.Pixel(Convert.ToInt32(_tb1.Rows[0].Cells[Count – 1].Width.Value) + 12);

}

Ekim 11, 2011 Posted by | ASP.NET | , , | Yorum bırakın

C# ile Sertifika Yüklemek

Merhaba arkadaşlar ,

Geçenlerde bir projemde dış firmanın bizim DMZ üzerinden bir web servise erişmesi gerekiyordu. Güvenlik yöntemi olarak sertifika kullandık. Servera bir web servis publish ettik localimden ilk önce web servisin metodunu çağırabiliyordum . Ne zamanki sunucu IIS’inde sertifika ayarları yapıldı aşağıdaki hatayı almaya başladık. Neyseki çözümü basit. “The request failed with HTTP status 403: Forbidden.”

Aşağıdaki kod ile servis metodunu hata almadan çağırabiliyoruz.

WebApplication1._Web_Service.TestWebService request = new _Web_Service. TestWebService();

WebProxy proxy = new WebProxy();

request.Credentials = CredentialCache.DefaultCredentials;

request.Proxy = proxy;

string certPath = @”C:test.cer”;

request.ClientCertificates.Add(X509Certificate.CreateFromCertFile(certPath));

request.CallTestMethod();

Ekim 10, 2011 Posted by | C# | , , , | Yorum bırakın