progressokulu.com advanced business language slide 10
DESCRIPTION
"ABL'e Giriş Eğitimi" nde kullandığımız 10. Bölüm sunumudur.TRANSCRIPT
![Page 1: progressokulu.com Advanced Business Language Slide 10](https://reader036.vdocuments.pub/reader036/viewer/2022062514/5590ba111a28abd1308b4597/html5/thumbnails/1.jpg)
![Page 2: progressokulu.com Advanced Business Language Slide 10](https://reader036.vdocuments.pub/reader036/viewer/2022062514/5590ba111a28abd1308b4597/html5/thumbnails/2.jpg)
Bölüm 10 : Modüler Prosedürler Geliştirmek
Bu dersi tamamladığımız zaman şunları yapabileceksiniz;
• AppBuilder bileşenlerini açıklamak• AppBuilder’dan veritabanına bağlanmak• AppBuilder’dan prosedür açmak ve çalıştırmak• Yapısal prosedürler yaratmak• Modüler kodlamayı açıklamak• Dış prosedürler çağırmak• İç prosedürler oluşturmak ve çağırmak• Kullanıcı tanımlı fonksiyonlar yaratmak ve çağırmak• Kalıcı prosedürler yaratmak ve çağırmak• Bir uygulamayı derlemek
![Page 3: progressokulu.com Advanced Business Language Slide 10](https://reader036.vdocuments.pub/reader036/viewer/2022062514/5590ba111a28abd1308b4597/html5/thumbnails/3.jpg)
AppBuilder Araçları
Desktop
AppBuilder
Nesne paleti
AppBuilder simgesi
![Page 4: progressokulu.com Advanced Business Language Slide 10](https://reader036.vdocuments.pub/reader036/viewer/2022062514/5590ba111a28abd1308b4597/html5/thumbnails/4.jpg)
Bir Veritabanına Bağlanmak
![Page 5: progressokulu.com Advanced Business Language Slide 10](https://reader036.vdocuments.pub/reader036/viewer/2022062514/5590ba111a28abd1308b4597/html5/thumbnails/5.jpg)
AppBuilder’daki Dosyalarla Çalışmak
Yeni
Aç Kaydet Çalıştır
Dur
![Page 6: progressokulu.com Advanced Business Language Slide 10](https://reader036.vdocuments.pub/reader036/viewer/2022062514/5590ba111a28abd1308b4597/html5/thumbnails/6.jpg)
Dosya İsimlendirme Üslubu
DEFINE INPUT PARAMETER pcDeptCode AS CHARACTER NO-UNDO.DEFINE OUTPUT PARAMETER pcDepartment AS CHARACTER NO-UNDO.FIND Department NO-LOCK WHERE Department.DeptCode = pcDeptCode NO-ERROR.IF AVAILABLE(Department) THEN ASSIGN pcDepartment = Department.DeptName.
eEmpLib.p prosedüründeki iş mantığı
City.w grafiksel prosedürü içindeki GUI penceresi
Müşteri bilgisi
Müşteri No:İsim:Şehir:
Sipariş No:Teslim Tarihi:
Çıkışİptal
Dosya Raporlar Bul Yardım
![Page 7: progressokulu.com Advanced Business Language Slide 10](https://reader036.vdocuments.pub/reader036/viewer/2022062514/5590ba111a28abd1308b4597/html5/thumbnails/7.jpg)
Yapısal Prosedür Bölümleri
Definitions/*************************************/
Main Block/*************************************/
Internal Procedures/*************************************/
Functions/*************************************/
![Page 8: progressokulu.com Advanced Business Language Slide 10](https://reader036.vdocuments.pub/reader036/viewer/2022062514/5590ba111a28abd1308b4597/html5/thumbnails/8.jpg)
Yapısal Prosedurler Yaratmak
1. Procedures’i seç
2. Diğer seçimleri kaldır
3. Structured Procedures’i seç
![Page 9: progressokulu.com Advanced Business Language Slide 10](https://reader036.vdocuments.pub/reader036/viewer/2022062514/5590ba111a28abd1308b4597/html5/thumbnails/9.jpg)
Yapısal Prosedurler
Tree view
Section editor
![Page 10: progressokulu.com Advanced Business Language Slide 10](https://reader036.vdocuments.pub/reader036/viewer/2022062514/5590ba111a28abd1308b4597/html5/thumbnails/10.jpg)
AppBuilder’da Kod Önizlemesi
![Page 11: progressokulu.com Advanced Business Language Slide 10](https://reader036.vdocuments.pub/reader036/viewer/2022062514/5590ba111a28abd1308b4597/html5/thumbnails/11.jpg)
Section Editor’ü Kullanmak
1. Bir prosedür seç 2. Prosedürü düzenle
![Page 12: progressokulu.com Advanced Business Language Slide 10](https://reader036.vdocuments.pub/reader036/viewer/2022062514/5590ba111a28abd1308b4597/html5/thumbnails/12.jpg)
AppBuilder’da Bir Dosya Açmak
Bu dosya veritabanına erişiyor mu?
FIND Customer WHERE ...
![Page 13: progressokulu.com Advanced Business Language Slide 10](https://reader036.vdocuments.pub/reader036/viewer/2022062514/5590ba111a28abd1308b4597/html5/thumbnails/13.jpg)
Progress Advisor
Ne yapmak istersiniz?
![Page 14: progressokulu.com Advanced Business Language Slide 10](https://reader036.vdocuments.pub/reader036/viewer/2022062514/5590ba111a28abd1308b4597/html5/thumbnails/14.jpg)
Pencereler ve Diyalog Kutuları
Pencere
Diyalog kutusu
Kullanıcı hareketi gerekli
Opsiyonel menü
Minimize, Maksimize, Kapat
Kapat
![Page 15: progressokulu.com Advanced Business Language Slide 10](https://reader036.vdocuments.pub/reader036/viewer/2022062514/5590ba111a28abd1308b4597/html5/thumbnails/15.jpg)
Bir GUI Penceresi İçin Varsayılan Kod
Boş pencere
Boş pencere için Main
Block kodu
![Page 16: progressokulu.com Advanced Business Language Slide 10](https://reader036.vdocuments.pub/reader036/viewer/2022062514/5590ba111a28abd1308b4597/html5/thumbnails/16.jpg)
Uygulama 1 : AppBuilder’ı Keşfetmek
![Page 17: progressokulu.com Advanced Business Language Slide 10](https://reader036.vdocuments.pub/reader036/viewer/2022062514/5590ba111a28abd1308b4597/html5/thumbnails/17.jpg)
Modüler Kodlama
A Prosedürü
Main Block:Procedure: CalcVacationProcedure: GetEmpNameFunction: CalcAge
B prosedürü
Main Block:Procedure: GetCustBalanceProcedure: GetCustLimitProcedure: GetCustName
Application
![Page 18: progressokulu.com Advanced Business Language Slide 10](https://reader036.vdocuments.pub/reader036/viewer/2022062514/5590ba111a28abd1308b4597/html5/thumbnails/18.jpg)
İç Prosedur’leri Çalıştırmak
/***** Internal Procedures *******/RUN valDept (INPUT fiDeptCode, OUTPUT fiDeptName).<sonraki deyimler>
PROCEDURE valDept: <prosedür deyimleri>END PROCEDURE.
wDepartment.w
![Page 19: progressokulu.com Advanced Business Language Slide 10](https://reader036.vdocuments.pub/reader036/viewer/2022062514/5590ba111a28abd1308b4597/html5/thumbnails/19.jpg)
Bir Blok İçinde Varsayılan Hata Yönetimi
Çağıran prosedür
Çağrılan prosedür......RUN... ...... /****** Definitions ******/
INPUT parametre tanımlaması OUTPUT parametre tanımlaması
Input değeriOutput değeri
![Page 20: progressokulu.com Advanced Business Language Slide 10](https://reader036.vdocuments.pub/reader036/viewer/2022062514/5590ba111a28abd1308b4597/html5/thumbnails/20.jpg)
Parametre İsimlendirme Üslubu
Parametre tipi Önerilen önek Örnek
Character pc pcDeptCode
Date pdt pdtBirthDate
Integer pi piReturnCount
Decimal pd pdPrice
Logical pl plOK
ROWID pr prCustRow
![Page 21: progressokulu.com Advanced Business Language Slide 10](https://reader036.vdocuments.pub/reader036/viewer/2022062514/5590ba111a28abd1308b4597/html5/thumbnails/21.jpg)
Birden Çok Parametre Göndermek
Çağıran prosedür Çağrılan prosedür
/**** Procedure: valDept ****/INPUT parameter pcDeptCode
OUTPUT parameter pcDeptName
RUN valDept (INPUT fiDeptCode, OUTPUT fiDeptName)
Departman kodu (input)
Dönen departman adı (output)
![Page 22: progressokulu.com Advanced Business Language Slide 10](https://reader036.vdocuments.pub/reader036/viewer/2022062514/5590ba111a28abd1308b4597/html5/thumbnails/22.jpg)
Nasıl Çalışır?1. Departman kodu girilir
2. Butona basılır
3. Butonun olay prosedürü valDept prosedürünü çağırır
4. valDept prosedürü tarafından üretilen Departman Adı bilgisi görüntülenir
DO: ASSIGN fiDeptCode. RUN valDept (INPUT fiDeptCode, OUTPUT fiDeptName). DISPLAY fiDeptName WITH FRAME {&FRAME-NAME}.END.
![Page 23: progressokulu.com Advanced Business Language Slide 10](https://reader036.vdocuments.pub/reader036/viewer/2022062514/5590ba111a28abd1308b4597/html5/thumbnails/23.jpg)
Bir İç Prosedur’deki Yerel Tanımlamalar
![Page 24: progressokulu.com Advanced Business Language Slide 10](https://reader036.vdocuments.pub/reader036/viewer/2022062514/5590ba111a28abd1308b4597/html5/thumbnails/24.jpg)
Olay Kodu Eklemek
Buton arkasındaki olay kodu
![Page 25: progressokulu.com Advanced Business Language Slide 10](https://reader036.vdocuments.pub/reader036/viewer/2022062514/5590ba111a28abd1308b4597/html5/thumbnails/25.jpg)
Prosedur’lerin Aranma Sırası
1. İç prosedür mü?
Hayır?
2. PROPATH klasörlerini incele
RUN getCustRec.
![Page 26: progressokulu.com Advanced Business Language Slide 10](https://reader036.vdocuments.pub/reader036/viewer/2022062514/5590ba111a28abd1308b4597/html5/thumbnails/26.jpg)
Dış Prosedur Çağırmak
Çağırılan prosedür: valRep.p
Çağıran prosedür
. . .
. . .RUN valRep.p.<sonraki deyim>.. . . DO:
. . . . . . . . .END.
![Page 27: progressokulu.com Advanced Business Language Slide 10](https://reader036.vdocuments.pub/reader036/viewer/2022062514/5590ba111a28abd1308b4597/html5/thumbnails/27.jpg)
Modülerlik ve Yeniden Kullanılabilirlik
PROCEDURE getCustomerBalance: RUN getCustRec. . . .PROCEDURE getCustLimit: RUN getCustRec. . . .PROCEDURE getCustName: RUN getCustRec.
PROCEDURE getCustRec: (Prosedür deyimleri).END PROCEDURE.
![Page 28: progressokulu.com Advanced Business Language Slide 10](https://reader036.vdocuments.pub/reader036/viewer/2022062514/5590ba111a28abd1308b4597/html5/thumbnails/28.jpg)
Fonksiyonların Yeniden Kullanımı
Hacim ve yüzey alanlarıyükseklik ve açıya ihtiyaç duyar
![Page 29: progressokulu.com Advanced Business Language Slide 10](https://reader036.vdocuments.pub/reader036/viewer/2022062514/5590ba111a28abd1308b4597/html5/thumbnails/29.jpg)
Bu Fonksiyonu Ne Zaman Kullanırız?
Function YearsOld Function YearsEmployed
![Page 30: progressokulu.com Advanced Business Language Slide 10](https://reader036.vdocuments.pub/reader036/viewer/2022062514/5590ba111a28abd1308b4597/html5/thumbnails/30.jpg)
Yeni Bir Fonksiyon Tanımlamak
Fonksiyon adı
Dönüş tipi
![Page 31: progressokulu.com Advanced Business Language Slide 10](https://reader036.vdocuments.pub/reader036/viewer/2022062514/5590ba111a28abd1308b4597/html5/thumbnails/31.jpg)
Yeni Bir Fonksiyon Yaratmak
Parametreleri buraya girin
Dönüş değerini de buraya
![Page 32: progressokulu.com Advanced Business Language Slide 10](https://reader036.vdocuments.pub/reader036/viewer/2022062514/5590ba111a28abd1308b4597/html5/thumbnails/32.jpg)
Fonksiyon Çağırmak
1. Kaydı seçin
2. Browse’daki kaydın değeri şu anda değişti
3. Fonksiyonu çağırın
![Page 33: progressokulu.com Advanced Business Language Slide 10](https://reader036.vdocuments.pub/reader036/viewer/2022062514/5590ba111a28abd1308b4597/html5/thumbnails/33.jpg)
Uygulama 2 : Parametreler ve Fonksiyonlar
![Page 34: progressokulu.com Advanced Business Language Slide 10](https://reader036.vdocuments.pub/reader036/viewer/2022062514/5590ba111a28abd1308b4597/html5/thumbnails/34.jpg)
Belleğe Yerleşen Kütüphane Modülü
/* eEmpLibrary.p */Procedure calcVacation:......Procedure setVacation:......
![Page 35: progressokulu.com Advanced Business Language Slide 10](https://reader036.vdocuments.pub/reader036/viewer/2022062514/5590ba111a28abd1308b4597/html5/thumbnails/35.jpg)
Kalıcı Prosedur’ler Yaratmak
DEFINE VARIABLE hEmpLib AS HANDLE NO-UNDO.
RUN eEmpLibrary.p PERSISTENT SET hEmplib.
eEmpLibrary.p
![Page 36: progressokulu.com Advanced Business Language Slide 10](https://reader036.vdocuments.pub/reader036/viewer/2022062514/5590ba111a28abd1308b4597/html5/thumbnails/36.jpg)
Bir İç Prosedur’ü Çağırmak
hEmpLib
RUN calcVacation IN hEmpLib (INPUT Employee.EmpNum, INPUT fiStart, INPUT fiEnd, OUTPUT logOK).
calcVacation
![Page 37: progressokulu.com Advanced Business Language Slide 10](https://reader036.vdocuments.pub/reader036/viewer/2022062514/5590ba111a28abd1308b4597/html5/thumbnails/37.jpg)
Bir Kalıcı Prosedur’ü Bellekten Silmek
DELETE PROCEDURE hEmpLib
eEmpLibrary.p
![Page 38: progressokulu.com Advanced Business Language Slide 10](https://reader036.vdocuments.pub/reader036/viewer/2022062514/5590ba111a28abd1308b4597/html5/thumbnails/38.jpg)
Uygulama 3 : Kalıcı Prosedur’ler
![Page 39: progressokulu.com Advanced Business Language Slide 10](https://reader036.vdocuments.pub/reader036/viewer/2022062514/5590ba111a28abd1308b4597/html5/thumbnails/39.jpg)
Uygulamayı Derlemek
![Page 40: progressokulu.com Advanced Business Language Slide 10](https://reader036.vdocuments.pub/reader036/viewer/2022062514/5590ba111a28abd1308b4597/html5/thumbnails/40.jpg)
Uygulama 4: Uygulamayı Derlemek
![Page 41: progressokulu.com Advanced Business Language Slide 10](https://reader036.vdocuments.pub/reader036/viewer/2022062514/5590ba111a28abd1308b4597/html5/thumbnails/41.jpg)
![Page 42: progressokulu.com Advanced Business Language Slide 10](https://reader036.vdocuments.pub/reader036/viewer/2022062514/5590ba111a28abd1308b4597/html5/thumbnails/42.jpg)