Skip to content

Domain deep dive — Corporate AGM

Single D1 narrative for engineers working on annual general meeting compliance, ACRA-related batch jobs, and scheduler interactions. It ties together:

In scopeOut of scope (link instead)
AGM master, Status of AGM search UI, cron/sync logsFull ACRA product documentation
scheduler_events/agm_legacy.py, 0 7 * * * jobGeneric Frappe scheduler tuning — ERPNext docs
PDFs tied to Application / corporate docsBroad Application PDF pipeline — Application lifecycle
Sub-themeExamples
Coreagm, status_of_agm, agm_table
Cron / sync logsagm_cron_log, agm_cron_manual, agm_sync_log, agm_sync_legacy_log, agm_cron_legacy_log

See the category index: corporate-agm.

LayerPrimary locations
Cronscheduler_events/agm_legacy.pyagm_conditional_legacy (daily 0 7 * * * per Schedulers)
AGM controllerlee_kim_alliance_erp/doctype/agm/agm.py — ACRA helpers, analyze_table_fields, etc.
Hooks (disabled)hooks.py — commented "AGM": {"on_update": "leekimerp.tasks.after_agm_update_generate_auto_email"}
Taskstasks.pyafter_agm_update_generate_auto_email (do not wire back without staging proof)

Daily 07:00

agm_conditional_legacy

ACRA token / request helpers

AGM DocType updates

PriorityDocType keysRationale
P1 — Overlays presentagm, status_of_agm, agm_cron_logMaster record, ops dashboard, cron debugging
P2agm_sync_log, agm_cron_manual, agm_tableSync troubleshooting and child data
P3Legacy log DocTypesRetention / migration; overlay if still queried
SymptomFirst checks
Cron “stuck” or silentAGM & scheduler — never re-enable broken on_update without load tests
ACRA errorsToken helpers in agm.py / legacy paths; Error Log; API rate limits
Wrong company / UENAGM idApplication; nominee / UEN fetch fields

Logs: Scheduled Job Log, agm_cron_log, Frappe Error Log, MariaDB slow queries if batch scans grow.