What to actually do: SCMON → ATC → baseline
What you'll learn
Scope live code with SCMON/UPL, quality-scan it with the Custom Code Migration app, freeze today's debt under an ATC baseline, and re-run after every FPS.
- Scope with SCMON/UPL for 1–3 months so you fix live code, not dead code.
- Quality-scan with the Custom Code Migration app or SYCM against the Simplification DB.
- Baseline the findings so only new debt raises alerts; then chip away at the baseline.
Knowing the pitfalls is not a plan; the plan is a four-step loop that scopes effort to code that actually runs. First, run SCMON (object usage) and UPL (procedure-level usage) on the productive system for a representative period of one to three months, so you fix live code and decommission the dead rather than rewriting everything.
Second, run the Custom Code Migration app (Fiori) or SYCM in the back end to produce a prioritized quality report against the Simplification Database — a findings list per object, ranked by impact. Third, bring those findings under an ATC baseline: the baseline freezes today's debt so the team is only alerted about new debt, then chips away at the frozen set deliberately.
Fourth, re-run after every FPS, because the Clean-Core and readiness checks gain rules each release — a pipeline that is green today can turn red after the next feature pack. The loop, not any single scan, is what keeps custom code converging on upgrade-safety.
Key points
- Scope with SCMON/UPL for 1–3 months so you fix live code, not dead code.
- Quality-scan with the Custom Code Migration app or SYCM against the Simplification DB.
- Baseline the findings so only new debt raises alerts; then chip away at the baseline.
- Re-run after every FPS — readiness checks gain rules each release.
Examples
SCMON/UPL scopes what is live → Custom Code Migration app / SYCM ranks the findings → ATC baseline freezes existing debt → re-run after each FPS to catch new rules.
Source notes: clean-core-curriculum §2.4
Ask Claude
Build a prompt from this lesson + your question and open a fresh Claude chat with it pre-filled — handy for adapting a before/after pattern to your own object.