Bharat
Bharat

Reputation: 177

How to see .w trigger is working for my query?

Just for the knowledge I just want to see how WRITE triggers execute for the query below. Is it possible to see them?.

    FOR EACH Customer EXCLUSIVE-LOCK WHERE NAME = "Go Fishing Ltd":
      ASSIGN  Customer.Balance = 600.
    END.

Upvotes: 0

Views: 166

Answers (2)

Tom Bascom
Tom Bascom

Reputation: 14020

Add:

-clientlog path/to/log.log -logginglevel 4 -logentrytypes 4GLTrace

to your startup command.

This will create a log of all of the calls that your code makes.

For more information: https://knowledgebase.progress.com/articles/Knowledge/P9893

You can also use the LOG-MANAGER system handle within your code to dynamically control the logging at runtime:

https://docs.progress.com/bundle/openedge-abl-troubleshoot-applications/page/LOG-MANAGER-system-handle-attributes-and-methods.html

but for simple purposes like this it is easier to just add the startup parameters.

Upvotes: 4

Stefan Drissen
Stefan Drissen

Reputation: 3379

Watch the log-manager show the write trigger being executed on the sports2020 database:

def var clog as char no-undo.
def var lclog as longchar no-undo.

assign
    clog = guid + '.log'.
    log-manager:logfile-name = clog
    log-manager:log-entry-types = '4gltrace:5,4glmessages'
    .

for each Customer exclusive-lock where name = 'Go Fishing Ltd':
    Customer.Balance = Customer.Balance + 1. // write trigger only fires when record changes
end.

log-manager:close-log().
copy-lob from file clog to lclog.
message string( lclog ).

https://abldojo.services.progress.com/?shareId=62978a833fb02369b25479f0

Relevant snippet from the output:

4GLTRACE       Return from Main Block "Customer Customer" [sports2020trgs/wrcust.p]

Upvotes: 2

Related Questions