The Business Document entity is probably the most unique and complex entity in the Data Models. It is used to support all Sales and Purchase Documents - Quotes, Orders, Shipments, Invoices, Payments etc. in a unified way.
At the "heart" of the entity is the bBusinessDocument table; don't confuse this table with the Business Document entity.
Every REAL Business Document has one [and only one] record in the bBusinessDocument table and depending on the nature of the document, record(s) in many other related tables.
For example, Sales Invoices, have related entries in the following tables:
and if you support Serial Numbers, Lot Numbers and Direct Payments, entries in the following tables also:
Business Documents[BD] can be in ANY currency and they can be changed or deleted as long as they are not posted. When a BD gets posted, various transaction entries are created in the transaction tables [always in the implementations LOCAL currency] and the BD cannot be changed or deleted.
Note that in v2 we have included 2 new BPs that can "act" on posted BDs - purge and update. See the project for more information ..
The posting of a BD is controlled by the following fields: bBusinessDocument.bPosted and nBusinessObjectRole_PST.
Do not confuse bBusinessDocument.bPosted with bBusinessDocument.bPostedGL. The later controls the posting of the BD to Accounting.
What entries are created [or posted] in the transaction tables depends ONLY on the nBusinessObjectRole_PST value - and this is a BD wide value.
You can find a list or enumeration of the above values in the Projects, project code, with a simple explanation. To understand these enumerations see the code in the CODE BRICKs, where everything is included in a simple switch statement !!
I am deliberately keeping this post short, so I can post "underneath it", various answers to questions we have received about BDs.
Feel free to "reply or add a comment" to this post with any questions you may have about Business Documents.