Your SlideShare is downloading. ×
progressokulu.com Advanced Business Language Slide 7
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×

Introducing the official SlideShare app

Stunning, full-screen experience for iPhone and Android

Text the download link to your phone

Standard text messaging rates apply

progressokulu.com Advanced Business Language Slide 7

158
views

Published on

"ABL'e Giriş Eğitimi" nde kullandığımız 7. Bölüm sunumudur.

"ABL'e Giriş Eğitimi" nde kullandığımız 7. Bölüm sunumudur.

Published in: Technology

0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total Views
158
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
4
Comments
0
Likes
0
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide

Transcript

  • 1.
  • 2. Bölüm 7 : Transaction Yönetimi
    Bu dersi tamamladığımız zaman şunları yapabileceksiniz;
    • Bir transaction tanımlamak
    • 3. Veritabanı bütünlüğünü tanımlamak
    • 4. Bir transaction’ın nerede başlayıp nerede bittiğini bilmek
    • 5. Transaction’ların ne zaman etkin olduklarını bilmek
    • 6. Varsayılan transaction kapsamını değiştirmek
  • Transaction: Ya Hep Ya Hiç
  • 7. Bir Transaction İçinde Veritabanını Güncellemek
    REPEAT:
    . . .
    CREATE Customer.
    . . .
    END.
    Transaction
  • 8. SİSTEM HATASI!
    Veri Bütünlüğünü Korumak
    Tamamlanmış Transaction (İkinci Customer kaydını ekle)
    REPEAT:
    . . .
    CREATE Customer.
    . . .
    END.
    Veritabanı
    Tamamlanmamış Transaction (3. Customer kaydını ekle)
    REPEAT:
    . . .
    CREATE Customer.
    . . .
    END.
  • 9. Neler Saklandı?
    SİSTEM HATASI!
  • 10. Transaction Kapsamını Tanımlamak
    . . .
    DEFINE VARIABLE iCount AS INTEGER NO-UNDO.
    REPEAT WHILE iCount < 3:
    CREATE Customer.
    DISPLAY CustNum.
    UPDATE Name EmailAddress Contact WITH 1 COLUMN.
    iCount = iCount + 1.
    END.
    . . .
    Transaction bloğu
    Doğrudan veritabanına yazılır
  • 11. Transaction Kapsamı Nedir?
    . . .
    . . .
    FOR EACH Invoice WHERE Invoice.CustNum = iCustNum:
    MESSAGE "Are you sure you want to delete invoice#" invoice.invoicenum
    "of customer #" invoice.custnum VIEW-AS ALERT-BOX BUTTONS YES-NO UPDATE lYesno.
    IF lYesno THEN
    DELETE Invoice.
    ELSE DO: /* DO statement #1 */
    MESSAGE "Cancelled deletion of invoice #" invoice.invoicenum .
    RETURN NO-APPLY.
    END. /* End DO statement #1 */
    END. /* End FOR EACH Invoice3 */
    FOR EACH Order WHERE Order.CustNum = iCustNum:
    . . .
    . . .
    ???
  • 12. Bir LISTING Dosyasının Derlenmesi (COMPILE)
    COMPILE eTrans1.p LISTING eTrans1.lst.
    forOrder:
    FOR EACH Order WHERE OrderNum < 5:
    FOR EACH Customer OF Order:
    DISPLAY Customer.NAME FORMAT "x(15)"
    Ordernum FORMAT ">>9".
    1 /***********************/
    2 /* eTrans1.p */
    3 /***********************/
    4 forOrder:
    5 1 FOR EACH Order WHERE OrderNum < 5:
    6 2 FOR EACH Customer OF Order:
    7 2 DISPLAY Customer.NAME FORMAT "x(15)"
    8 2 Ordernum FORMAT ">>9".
  • 13. Transaction Kapsamının Belirlenmesi
    File Name Line Blk.TypeTran Blk.Label
    --------- ---- -------- ---- ---------
    eTrans1.p 0 Procedure No
    eTrans1.p 9 For No forOrder
    Buffers: Mysports.Order
    eTrans1.p 10 For Yes
    Buffers: Mysports.Customer
    Frames: Unnamed
  • 14. TRANSACTION Fonksiyonunun Kullanımı
    . . .
    . . .
    FOR EACH Invoice WHERE Invoice.CustNum = iCustNum:
    MESSAGE "Are you sure you want to delete invoice#" invoice.invoicenum
    "of customer #" invoice.custnum VIEW-AS ALERT-BOX BUTTONS YES-NO UPDATE lYesno.
    IF lYesno THEN
    FOR EACH Order WHERE Order.CustNum = iCustNum:
    . . .
    . . .
    IF TRANSACTION THEN response-if-true ELSE response-of-false
    Bir transaction aktif olduğunda çalışması gereken kod
    Transaction’ın aktif OLMADIĞI durumda çalışması gereken kod
  • 15. Transaction’ın Aktif Olup Olmadığını Sorgulamak
    REPEAT:
    MESSAGE "A transaction" (IF TRANSACTION THEN "IS" ELSE
    "IS NOT")"active in the outer REPEAT block," SKIP
    " before creating the Order" VIEW-AS ALERT-BOX.
    CREATE Order.
    DISPLAY OrderNumOrderDate.
    UPDATE CustNum.
  • 16. Uygulama 1 : Transaction Kapsamının Tespit Edilmesi
  • 17. Transaction Kapsamının Özel Olarak Belirlenmesi
    Belirtilmiş transaction kapsamı
    . . .
    DO TRANSACTION:
    . . .
    . . .
    FOR EACH . . .
    . . .
    . . .
    END.
    . . .
    . . .
    END.
    Varsayılan Transaction Kapsamı
  • 18. Game Set Match DOS
    LagtKortLigger DOS
    Soccer Universe DOS
    Play Sports DOS
    Varsayılan Transaction Kapsamının Değiştirilmesi
    <start outer transaction-scoping block>
    . . .
    FOR EACH Customer
    WHERE SalesRep = "RDR" TRANSACTION:
    ASSIGN SalesRep = “DOS".
    DISPLAY NAME SalesRep.
    END.
    . . .
    <end outer transaction-scoping block>
    Trans 1
    Trans 2
    Trans 3
    Trans 4
  • 19. SİSTEM HATASI!
    Neler Kaydedildi?
    Veritabanı
  • 20. Uygulama 2 : Varsayılan Kapsamla Kaydedilen Veri
  • 21. Bir Transaction’ın Kapsamının Genişletilmesi
    OrjinalTransaction Kapsamı
    DO TRANSACTION:
    REPEAT:
    . . .
    . . .
    . . .
    REPEAT:
    . . .
    . . .
    END./* Inner REPEAT block */
    END. /* Outer REPEAT block */
    END. /* Transaction */
    Yeni transaction kapsamı
  • 22. Uygulama 3 : Artırılmış Kapsamla Kaydedilen Veri
  • 23. Bir Transaction’ın Kapsamının Küçültülmesi
    Orjinaltransaction kapsamı
    REPEAT:
    DO TRANSACTION:
    <Do task 1>
    . . .
    . . .
    END. /* end first transaction */
    REPEAT TRANSACTION:
    <Do task 2>
    . . .
    . . .
    END. /* end second transaction */
    END./* End REPEAT block */
    Daha küçük iki transaction kapsamı
  • 24. Uygulama 4 : Küçültülmüş Kapsamla Kaydedilen Veri
  • 25. Bir Alt-transaction ile Çalışmak
    Transaction
    Alt-transaction
    REPEAT: /* Start of the transaction */
    PROMPT-FOR Order.OrderNum.
    . . .
    SET Order.PO.
    REPEAT:
    . . .
    SET Qty.
    . . .
    END. /* Inner REPEAT block - subtransaction*/
    END. /* Outer REPEAT block – transaction */
  • 26. Alt-transaction’ları Tanımlamak
    İlk düzey blok
    Line Blk
    ---- ---
    2 1 REPEAT: /* Start of the transaction */
    3 1 PROMPT-FOR Order.OrderNum.
    4 1 FIND Order WHERE OrderNum = INPUT Order.OrderNum.
    5 1 DISPLAY OrderNumCustNum PO SalesRep.
    6 1 SET Order.PO.
    7 2 REPEAT:
    8 2 FIND NEXT OrderLine OF order.
    9 2 DISPLAY LineNumItemNum Qty Price . . .
    10 2 SET Qty.
    11 2 DISPLAY Qty * Price LABEL "Total price".
    1 END. /* FIND OrderLine block */
    END. /* End of the transaction */
    İkinci düzey blok
  • 27. Değişkenleri Saklamak
    lbi4321
    iVctr = 1
    dNewPrice = 10.25
    iLineNum = 16
  • 28. Bir Trsansaction içinden Bir Alt-prosedur’ü Çağırmak
    eRunTrans.p
    REPEAT:
    PROMPT-FOR Customer.CustNum.
    FIND Customer USING CustNum.
    ...
    UPDATE CreditLimit..
    ...
    RUN eUpdOrder.p (BUFFER Customer).
    .
    .
    .
    END.
    Altprosedürü çalıştır
    eUpdOrder.p
    FOR EACH Order OF Customer:
    DISPLAY Order...
    UPDATE Carrier.
    ...
    END.
    İşlemi çağıran prosedüre bırak
    Transaction Kapsamı
  • 29. Uygulama 5 : Bir Transaction İçinden Bir Alt-procedur’ü Çağırmak
  • 30. Neler Kaydedildi?
    Veritabanı
    SİSTEM HATASI!
  • 31. Uygulama 6 : Varsayılan Transaction Kapsamını Değiştirmek