Creating a transactional document works a lot like creating a maintenance document, but with the added need to put together the web layer. This isn't as hard as it seems, though, and for the trouble, the developer gains a lot of flexibility. Here, we'll examine how to create a transactional document.
What is a transactional document? A transactional document represents not data that is being maintained, but an "action" that will occur in the system. Take the Internal Billing document. This is a financial document which charges one account for a service or goods and credits another account. Here, we're not really changing the core data of the chart, the accounts, or any of that. We're creating accounting lines with the sole purpose of an action: having them change the general ledger (adding money to one account and removing it from another). This is the essential difference between transactional documents and maintenance documents: while the maintenance documents do standard maintenance on data, here we want to perform an action.
That doesn't mean we're free of business objects, of course. A transactional document is itself a very special kind of business object; oftentimes, it includes heterogeneous collections of other kinds of business objects within it (though there is no requirement for it to do so). Otherwise, the recipe to create a transactional document looks a bit like this:
Let's look at each of these steps in turn: