Look at the next definition in the model file:
event InitialApplicationEvent {
--> LetterOfCredit loc
}
It's an event! You'll often see this–an event definition immediately next to a transaction of the same name. That's because this is really an external event–it's simply capturing the applicant applying for a letter of credit. It simply points to the letter that generated the event. In the application, it's simply used to keep the UI up-to-date, but in general, all kinds of processing could be triggered by this initial application.
Continue to look through the model file, and you'll see transactions and events defined for every step of the process, and sometimes extra attributes relevant to that transaction step. Spend a little time looking at these–they are interesting!
As we've seen, it's also possible to declare more explicit events, such as a high value letter, or a low-risk application. Imagine our application doing this with the following events:
event highValueLetterEvent {
--> LetterOfCredit loc
}
event lowRiskLetterEvent {
--> LetterOfCredit loc
}
Which transactions in the model file do you think these would be associated with?
To determine this, we need to think about the process–a high-value letter is known about immediately after application, so it would be associated with the InitialApplication transaction. However, until the transaction has been initially processed by the both banks, and both applicant and beneficiary assessed, it's hard to say that the letter is low risk. It means that this event would be more closely associated with the Approve transaction.
Moreover, in this higher resolution scenario, we would consider creating separate transactions for importer bank approval and exporter bank approval, ImportBankApproval and ExportBankApproval.