31 Mart 2009 Salı

TableWindow - Üzerinde bulunduğum satır numarası ne ?

nContext = SalTblQueryContext ( hWndTbl )

26 Mart 2009 Perşembe

Tablomda veri var mı?

Aşağıdaki örnekteki fonksiyonu kullanarak,
herhangibir cTableWindow veya cChildWindow
içinde satır olup olmadığı test edebilirsiniz.

If SalTblAnyRows( mytablename, 0 , 0 )
..çeşitli işler..

aşağıdaki satır eğer tabloda data varsa TRUE döndürecektir.
SalTblAnyRows( mytablename, 0 , 0 )

23 Mart 2009 Pazartesi

Bir IFS/Centura TableWindow a filtrelenmiş kayıt kümesini nasıl getirebilirim?

Aşağıdaki örnek kodu değiştirerek kullanabilirsiniz. İstediğiniz forma bir buton koyduktan sonra Sam_Click (butona tıklama) olayında filtreleme yaparak veri getirebilirsiniz.
Burada sOlusturulanSql değişkeni tanımlanmış olmalıdır. Değişken tanımlama ile ilgili de bir yazım mevcut. İhtiyaç durumunda inceleyebilirsiniz.

On SAM_Click
Set sOlusturulanSql = "doc_class = 'EYS' "
! ---------------------------------------------------------------------
! ---------------------------------------------------------------------
Call SalSendMsg( tbwUzmarDocIssues, PM_DataSourceUserWhere, METHOD_Execute, SalHStringToNumber( sOlusturulanSql ) )
Call SalSendMsg( tbwUzmarDocIssues, PM_DataSourcePopulate, METHOD_Execute, 0 )

Çalışma anında db den getirilecek veri kümesi aşağıdaki gibi olacaktır.

*****************************
select * from formdaki_tablo where sOlusturulanSql
*****************************

Herhangibir IFS Ekranına Nasıl Yetki Veririm?

Ekran tasarlama ile ilgili anlatımlarımızın son ayağını yeni ekrana
yetki verme işlemi oluşturuyor. IFS yazılımı üzerinde ekranların
yetkilendirilmesi çok ayrıntılı ve akılcı olarak ele alınmıştır.
Her ekran için hangi kullanıcı grubunun neler yapabileceği
belirlenebilir. Örneğin "Satınalma" kullanıcı grubu yeni sipariş ekleyebilir
fakat "Stok" kullanıcı grubu sadece görüntüleyebilir gibi.
Ekranda kullanılan her oracle prosedürüne ayrı ayrı yetki verilmesi veya
yetki iptali de mümkündür.

IFS Yetki işleri Admin.Exe kullanılarak gerçekleştirilir.
Ben bu aşamada Admin.exe ile bu işlerin nasıl halledileceğine değinmek yerine
alternatif bir yöntemden bahsetmek istiyorum. İleride Admin.Exe 'den de
bahsedebiliriz.

Pek çok durumda Admin.Exe içerisinde yetki vermek istediğimiz ekranı bulmanın da
problem olduğunu göz önüne alarak bu yöntemin çok işinize yarayacağını düşünüyorum.
Aşağıdaki kodu değiştirerek Toad veya SqlDeveloper vs. programlardan birinde çalıştırabilirsiniz. Aşağıdaki kodu çalıştırmanızın ardından ilgili rol verilmiş olan tüm kullanıcılar belirttiğiniz ekranı tam yetkili olarak kullanabilecektir.
Form adları küçük-büyük harf duyarlıdır. Bu konuya dikkat etmelisiniz.
Bu tür bir yanlışlık yapmanız veya olmayan bir formu parametre olarak vermeniz durumunda hata oluşacaktır.

BEGIN
ifsapp.Security_SYS.Grant_Pres_Object( 'frmWorkOrderReportInTab', 'UZM_BAKIM', 'TRUE', 'TRUE' );
commit;
EXCEPTION
WHEN OTHERS THEN
rollback;
raise;
END;

Kullanım Detayları
******************************
ifsapp.Security_SYS.Grant_Pres_Object('yetkiverilecekekranismi','Rol_ismi','TRUE','TRUE')

17 Mart 2009 Salı

Yeni IFS Ekranı Tasarlama (4)

Evet şimdi elimizde bir IFS ekranı var fakat sadece
ifsapp kullanıcısı veya başka bir değişle sadece application owner ı
tarafından bu ekrana ulaşılabiliyor. Bu noktada bizim
diğer kullanıcılara da bu ekrana erişim izni vermemiz gerekir.
Öncelikle yeni eklenan ekranın ifs ekran yetkilerinin verildiği admin.exe de
görüntülenmesi için yapılması gereken işlemden başlayayım.
Aşağıda bu işlem hakkında adım adım bilgiler verilmektedir.

1) DEVTOOLS.exe çalıştırılır.



2) “Scan Tool” üzerinde çift tıklanır ve ilgili component seçilir.



3) “Add Files” butonu kullanılarak ilgili app uzantılı dosya seçilir.



4) Aşağıda işaretli olan “Scan” butonuna basılır ve yetki nesneleri ile program kodu arasındaki farklar otomatik tespit edilir.



5) Aşağıda gösterilen “Transfer” butonuna basılarak eksikliği belirlenmiş olan nesneler yetki sistemine eklenilir ve işlem tamamlanmış olur. Bu noktadan sonra admin.exe kullanılarak yeni yaptığımız ekrana yetki verebiliriz.

3 Mart 2009 Salı

Yeni IFS Ekranı Tasarlama ( 3 )

Centura ile ekran tasarımı videosu için aşağıdaki linki kullanabilirsiniz.
Bu videoda oluşturduğumuz API ve APY dosyasını kullanarak yeni veri giriş
ekranını IFS içerisine ekliyoruz.

Video için buraya tıklayın...

2 Mart 2009 Pazartesi

Yeni IFS Ekranı Tasarlama (2)

Bu adımda, ihtiyacımız olan tablo tasarımını Rationa Rose ile yaptıktan sonra Design.exe yi kullanarak tablo oluşturma DDL kodunu db ye göndereceğiz. Son aşamada da ekran tasarımında kullanmak üzere API ve APY (oracle package spec. ve body) dosyalarını otomatik text dosya olarak oluşturduktan sonra Admin.exe ile compile ederek database e göndereceğiz.

Aşağıdaki linkte RationalRose ile yaptığım tablo tasarımının ve sonrasında design.exe kullanımı videosu bulunuyor.

Video için buraya tıklayın...

Adım adım anlatacak olursak;

1. Kullanılacak Rose model dosyası (.mdl) açılır.





2. Table eklenilmek istenilen component e ait içerik sayfası açılır.



3. Buraya, eklemek istediğimiz table ın field ve fonksiyonlarını içerecek olan class (table için mantıksal altyapı diyebiliriz.) oluşturulur.



4. Yeni table ımıza ait alanları oluştururuz.



5. Yeni eklediğimiz alanları “Public” konumuna getiririz.



6. Rose model dosyasını kaydederiz. Rational Rose programını kullanarak yapılacak işlerimiz tamamlanmış olur.



7. Design.exe yi çalıştırıp projemizi açarız.



8. Yeni tablomuza ilişkin son ayarlamalar yapılır.



9. Şimdi yeni eklediğimiz deneme4 tablosunu cre dosyamıza ekleyelim.



10. Yeni deneme4 table ımızın yaratılması için gerekli DDL ler zaten oluşturulmuş durumdadır. Bunları cre dosyamıza ekliyoruz.





11. Projemizi ve cre dosyamızı kaydettikten sonra “Deploy CRE” yani DDL leri db ye gönderme işlemine başlıyoruz.





12. Sadece yeni tablomuz için gerekli DDL leri çalıştıralım.



13. Bu aşamada yeni tablomuza ait DDL cümleleri database imize gönderilmiştir. Şimdi gerekli oracle package leri (IFS API ve APY dosyaları) oluşturalım ve database e göndermek kaldı. Önce API ve APY dosyalarımızı export edelim.







14. Admin.exe yi kullanarak API ve APY dosya sını database imize gönderdiğimizde işlem tamamlanmış olur.