Traditionally, Cost Centers were used to allocate costs to different parts of the organization. The newer concepts of Profit Centers also include the revenue side. Service Centers extend this concept sometimes giving internal organizations the option to aquire services internally or externally - so a Service Center could actually external as outsourced.
Compiere provides a variety of options to model these concepts. At the center is the Organization entity. In Compiere, you can create unlimited organizational entities. You can define and differentiate different types of organization (Division, Store, Legal Entity, ...) and maintain multiple organizational hierarchies (ownership, logistics, reporting, ...). Organizations can be linked to (external) Business Partners for easier management of legal entities as well for outsourced service organizations.
Every transaction (e.g. invoice) requires an organization and that organization is then available for financial reporting. A document may have actually different organization (e.g. in one invoice you may have the invoice lines split up between sales organizations).
From an accounting perspective, you chan choose, if the organization is a balancing segment. If enabled, Compiere creates automatically the inter-org due-to/due-from balancing accounting entries. Compiere even enables to automatically create explicit documents via it's Counter Document feature.
Compiere provides two Organization fields - Organization (AD_Org_ID) and Transaction Organizaion (AD_OrgTrx_ID). You can use the latter to maintain information, if you do not want to balance transactions on a low organizational level. Example here would be to maintain the Organization field on Legel Entity level and the Transaction Organization on Cost Center or Service Center level. With little effort, you could e.g. customize the system, that you enter information on Cost Center level, and continue to maintain the balancing entries on Legal Entity level. You could certainly also allow the user to enter the two fields independently. With minor system customization you can restrict all entries in the Organization field to Legal Entities whereas in the Transaction Org field, you have all organisational entities available or restrict those too. Depending on the requirements, you can also easily add rules like "The Transaction Organization [AD_OrgTrx_ID] must be part (child) of the Organization [AD_Org_ID]".
The primary customization techniques to use are Dynamic Validation rules and for more complex rules the Model Validation routines. Feel free to contact us if you have questions.