When developing or debugging ADempiere's Documents there several classes that determine the behavior of all types of documents. Their certain specifics are described here.
The Common Classes
Common classes. No matter what the type of the document is, its general behavior is determined by such class.
- DocAction.java (from org.compiere.process in base subproject)- this actually is not a class but an interface. It holds the definitions of the methods needed for all documents. It is said that classes that implement DocJava interface are usually documents
- DocumentEngine.java (from org.compiere.process in base subproject) - if you're interested only in how the engine is organised into packages in the code read here.