Produktová základna: Technická a Integrační architektura
1. Architektonický kontext
Modul product-base funguje jako vrstva Master Data Management (MDM) pro ERP sadu. Poskytuje základní záznamy "Materiálového kmene", které řídí logiku v Logistice, Výrobě a Financích. Sám neřeší skladové pohyby ani transakční deníky; definuje, co se přesouvá nebo prodává.
2. Graf závislostí
2.1 Příchozí závislosti (Kdo spoléhá na product-base)
Modul je pevnou závislostí pro následující vertikální řešení:
| Modul | Povaha závislosti | Kritičnost |
|---|---|---|
| Skladové hospodářství (Warehouse Management) | Dědičnost a Rozšíření | 🔴 Kritická |
| Výroba (Production) | Asociace | 🟠 Vysoká |
| Účetnictví (Accounting) | Asociace | 🟡 Střední |
2.2 Odchozí závislosti (Na čem product-base spoléhá)
| Modul | Účel |
|---|---|
| Autocrm | Základní nástrojové třídy (ErrorFactory, ExtensionUtil), Rozšíření základního frameworku. |
3. Detaily integrace
3.1 Integrace Skladového hospodářství
Typ: Hluboké provázání / Dědičnost
Modul warehouse-management produkty nejen "používá"; rozšiřuje chování jádra produktové entity o přidání skladových schopností.
- Dědičnost tříd:
Espo\Modules\WarehouseManagement\Entities\Productdědí zEspo\Modules\ProductBase\Entities\Product.Espo\Modules\WarehouseManagement\Services\Productdědí zEspo\Modules\ProductBase\Services\Product.
- Funkční rozšíření:
- Informace o zásobách: Skladový modul volá
ProductBasepro získání základních detailů položky a poté překrývá logikuStockHelperpro výpočet "Množství na skladě". - Doplňování zásob: Využívá strategie
Espo\Modules\ProductBase\Tools\ProductSupplierpro určení, od koho nakoupit, když jsou zásoby nízké. - Serializace: Záznamy
WarehouseItemodkazují přímo na entityProductSerialdefinované vproduct-base.
- Informace o zásobách: Skladový modul volá
3.2 Integrace Výroby
Typ: Asociativní / Definice kusovníku (BOM)
Modul production spotřebovává definice Produktů pro sestavení Kusovníků (BOM) a sledování výstupu.
- Odkazy entit:
- Výrobní model (BOM): Entita "Hlavička" odkazuje na
Product(co vyrábíme?). - Výrobní zakázka: Konkrétní práce na výrobu určitého množství
Product. - Kooperační položka: Subdodavatelské položky odkazují na záznamy
Product.
- Výrobní model (BOM): Entita "Hlavička" odkazuje na
- Využití služeb:
- Logika výchozích hodnot:
Hooks\ProductionModelItem\SetDefaultFieldsvoláProductServicepro předvyplnění dat při přidávání položek do kusovníku. - Propagace ceny: Výrobní zakázky spoléhají na
Cost Price(Nákladovou cenu) definovanou vProductBase(přesProductSupplierItem) pro odhad materiálových nákladů.
- Logika výchozích hodnot:
3.3 Integrace Účetnictví
Typ: Transakční / Řádkové položky
Modul accounting vytváří snímek dat Produktu v čase vytvoření transakce.
- Řádkové položky:
QuoteItem,SalesOrderItem,InvoiceItemaPurchaseOrderItemmají cizí klíče naProduct.
- Dodavatelská logika:
- Ověření faktury:
Hooks\SupplierInvoice\UpdateInvoiceItemProductpoužíváProductSupplierItemServicepro validaci cen dodavatele vůči hlavní smluvní ceně definované vproduct-base. - Zdanění: Používá
TaxClasszproduct-basepro určení výchozích sazeb DPH pro řádkové položky.
- Ověření faktury:
4. Sdílené datové modely a rozhraní
4.1 Řetězec entity "Produkt"
Systém zachází s entitou Produkt jako s polymorfním objektem v závislosti na kontextu:
Zobrazit diagram
4.2 Klíčová rozhraní služeb
-
Espo\Modules\ProductBase\Tools\ProductSupplier\Factory:- Používáno:
WarehouseManagement(GoodsRestock). - Účel: Poskytuje standardní způsob nalezení "Nejlepšího dodavatele" pro produkt (nejlevnější, nejrychlejší nebo primární) napříč moduly.
- Používáno:
-
Espo\Modules\ProductBase\Services\Product::calculatePricing:- Používáno: Interními hooky
product-base. - Dopad: Nepřímo ovlivňuje
AccountingaProductionzajištěním, žeSalesPriceje vždy aktuální, než ji tyto moduly načtou.
- Používáno: Interními hooky
5. Technická rizika a omezení
- Riziko cyklické závislosti:
WarehouseManagementrozšiřujeProductBase. Jakákoli změna služebProductBasemusí být regresně testována vůčiWarehouseManagement, protože přímo dědí logiku. - Zamykání dat:
ProductBasedefinuje "Locked" traity. Pokud je Produkt uzamčen,ProductionaAccountingnemohou měnit odvozená pole, což zajišťuje integritu dat napříč ERP.