Guide · updated

How to read a Best Practices Analyzer report: every pattern code explained

Best Practices Analyzer (BPA) is Adobe's free package that scans an AEM 6.x instance and lists what will need work before moving to AEM as a Cloud Service. It runs on AEM 6.1 and later. Its report can be uploaded to Cloud Acceleration Manager or exported as a CSV file (results.csv).

The CSV columns

ColumnMeaning
codeThe pattern category, for example CCOM or REP.
type / subtypeThe finding type within the category.
importanceINFO, ADVISORY, MAJOR or CRITICAL.
identifierUsually the repository path or class involved.
other, moreInfoExtra details and a documentation link.
messageHuman-readable description.
contextA JSON string with finding data. The value \N means no data.

Importance levels

  • CRITICAL: very likely to be an upgrade issue that must be addressed to prevent loss of function or performance.
  • MAJOR: likely to be an upgrade issue that should be addressed.
  • ADVISORY: potentially an upgrade issue; review it.
  • INFO: for information only, such as system details or inventory counts.

Pattern codes

CodeWhat it flags
ACVAssets missing mandatory nodes or original renditions
ASOSystem information (AEM version, installed products)
CAV / ECUContent in areas that break content classification rules
CCLCustom client libraries
CCOMCustom components, including ones based on Foundation components
CDWCustom Classic UI dialog widgets
CIFClassic commerce framework usage
CTEMCustom templates, editable or static
DGDeviations from development guidelines
DMDynamic Media use and mode
DOPIDeprecated ordered property indexes
FORMSAEM Forms features that change or are unavailable
INSInvalid namespaces
INSTCustom and third-party packages and bundles
IOIImports of internal Oak packages
LOCPPackages that write to /libs
LUILegacy UI dialogs (Classic or Coral 2)
MIMisconfigurations
MSMMulti Site Manager usage
NBCC / NCCNon-backward-compatible node or bundle changes
OAUIOAuth-configured users that need migrating
OCU / OUDeprecated or removed components and APIs in use
OIDOak index definition issues
PCXPage complexity
REPEnabled forward or reverse replication agents
UMIModified OSGi configurations that break upgrades
URCConfigurations based on unsupported run modes
URSUnsupported repository structure
WRKCustom asset workflow models and launchers

Turning the report into a plan

  1. Ignore INFO rows for effort; use them for inventory (how many custom components, which products).
  2. Group the rest by code and take the worst importance per code. That gives you a short list of work types instead of thousands of rows.
  3. Separate content findings (ACV, CAV, PCX, REP, URS) from code findings. Cloud Acceleration Manager's Content Transformer can fix many content findings automatically.
  4. Estimate code findings by type: dialog conversions and config moves are mechanical, workflow and authentication changes need design.

The free readiness scan on this site does exactly these steps in your browser: drop in results.csv and it groups, weights and estimates the findings without uploading the file.

Questions

Where do I get the BPA CSV?

Install Best Practices Analyzer from the Software Distribution portal, generate a report under Tools, Operations, Best Practices Analyzer, and use Export to CSV. The file is called results.csv.

Is BPA output the full migration scope?

No. BPA reports on the running instance. It does not estimate effort, test integrations, review dispatcher rules in depth or plan the cutover.

Sources