Migrate Studio · User Manual

Apply migration fixes to SAS programs with an original backup and auditable history.

Migrate Studio reads a folder of SAS programs, applies selected migration rules, writes approved fixes in place when write access is available, and lets you compare every changed program against its original.

R Shiny editionBuild 2026.09.21

Quick start #

  1. Click Folder and choose the study/program folder containing the SAS programs you want to migrate.
  2. Review the program list, select one or more programs, and confirm which rules are ticked on the Rules tab.
  3. Click Apply Fix. Migrate Studio creates or verifies the original backup before writing fixed programs in place.
  4. Review Fixed SAS and Fix Compare, then use History to review the run and per-program versions.
Normal safety path: Apply Fix backs up the original program first. The backup is kept in a write-once _migrate_original folder beside the programs.

Screen layout #

Left · Programs

Select the folder, search programs, select multiple programs, and see each program's current change count.

Center · Workspace

Work in Rules, Fixed SAS, Fix Compare, and History for the currently selected program.

Right · Details

See program summary, fix counts, rules applied, and recent versions at a glance.

Top · Actions

Save, Apply Fix, import/export rules, download updated programs/summary, profile, and sign out.

Folder selection #

Click Folder in the upper-left program rail. Migrate Studio reads *.sas files recursively, ignores migration output/backup folders, lists the programs by relative path, and selects the first loaded program.

If the selected folder contains the canonical Migrate_Studio_Rules.xlsx, that rule book is loaded automatically. You can still use Import Rules to load a different workbook.

Search: use the left search field to filter by folder, program, or both. A folder term can be combined with a program term to narrow a large study quickly.

Reopening a previously migrated folder #

When the folder already contains _migrate_original backups, Migrate Studio reads matching history.json records for the selected root folder and reconstructs the previous migration state. It uses the saved program path, rule applications, line-level details, and prior run information to restore the original-versus-fixed relationship.

The left program list then shows each recovered change count, and selecting that program restores the information needed by Fix Compare. A recorded Revert clears the corresponding applied state, so reverted programs are not treated as still migrated.

Program list #

The left rail is both a navigator and an Apply Fix selection list. Click a program name to make it the active program; tick individual programs to run the same selected rule set across several files.

ControlPurpose
Select All / Deselect AllSelects every program currently shown by the search/filter; once all are selected, the button changes to Deselect All and clears them.
Program checkboxIncludes that program in a multi-program Apply Fix run.
Number beside programNumber of recovered or currently applied line changes/fix details for that program.
SearchFilters the tree by folder name, program name, or both.

Migration name #

Click the editable label beside Migrate Studio in the top navigation bar to set the migration name. The name is used by the application when identifying the migration in fixed-program header information.

Rules #

The Rules tab displays the Rules sheet from the loaded rule workbook. Each runnable row includes its Rule ID, short title, category, description, and a tick that determines whether the rule will run.

  • Ticked rules run top to bottom when Apply Fix is executed.
  • Documentation-only rows that contain no executable pattern cannot be selected.
  • Rules requiring an unresolved parameter are protected from running until they are valid.
  • The rule filter narrows the visible rule list without changing the underlying program selection.

Import Rules loads another workbook. Export Rules writes the currently loaded workbook back out for review or reuse.

Apply Fix #

Apply Fix runs the ticked, in-scope rules against the active program or against the checked program set in the left rail. When changes are found, the fixed text is written in place when the selected folder is writable, and the run is recorded in migration history.

Programs already marked as applied by their backup/history state are skipped. This prevents a previously completed in-place migration from being applied again unintentionally.

Backup safety #

Before the first in-place write in a directory, Migrate Studio creates _migrate_original in that directory and copies its SAS programs into the backup folder. Existing backup files are never overwritten.

Modified dates: when the server can identify the selected folder directly, backup copies retain the original modified dates. If folder resolution falls back to a browser copy, the backup contents remain correct but the backup file timestamp may be the current date.

Fixed SAS #

The Fixed SAS tab shows the current fixed program with SAS syntax coloring. Use the view controls to expand or fullscreen the code panel when reviewing large programs.

Apply FixRun the currently selected rules against the active/selected program set.
ReloadReload the current fixed view from the program state.
CopyCopy the fixed SAS text to the clipboard.
DownloadDownload the current fixed program.
Download Updated ProgramsDownload the set of updated programs as a ZIP.

Fix Compare #

Fix Compare displays the original program on the left and the fixed program on the right. Added, deleted, and modified lines are visually marked, and the two panes scroll together.

  • Changes only hides unchanged context so you can focus on migration edits.
  • The version selector lets you choose the comparison reference when multiple versions are available.
  • Previous/Next moves between modified lines. For a single modified line, the modified-count link jumps directly to it.
  • When an already migrated folder is reopened, the original is recovered from _migrate_original and the prior fixed/change details are reconstructed from history.json.

History #

The History tab contains two independent views: migration-wide run history and the version history of the selected program.

Migration History #

Migration History reads history.json from your per-user data folder, which is printed when Migrate Studio starts, and summarizes Apply Fix/Revert activity by root folder, program, rule, user, and run. Search and filter controls let you narrow the view, and Download exports the history information.

Each successful Apply Fix run records the root folder, relevant subfolder/program paths, rule applications, changed-line details, totals, user/profile information, rule book, and timestamps used by the dashboard and folder-reopen workflow.

This Program #

This Program shows the selected program's versions, newest first. Apply Fix, Revert, and Restore add version records rather than silently rewriting the history trail.

Select a version to review it or choose Restore. Restore makes that version the current fixed state and writes it in place when the folder is writable.

Revert #

Revert restores the active program from its matching _migrate_original backup. The action is recorded in history and the program's applied marker/backup entry is cleared so Apply Fix can be run again if needed.

Revert writes to the live program. It requires write access to the selected folder and asks for confirmation before restoring the original.

Save #

Save writes the current fixed state back to the live program files. Because Apply Fix already writes in place in the normal workflow, Save is primarily useful after restoring an older version or when the application reports unsaved restored state.

The top-bar Save action also advertises the standard Ctrl/Cmd+S shortcut.

Downloads #

DownloadContents
Download Updated ProgramsZIP containing the updated SAS programs.
Download Update SummaryExcel workbook summarizing program-level changes, line-level detail, and rule information.
Fixed SAS · DownloadThe currently selected fixed SAS program.
History · DownloadMigration history data from the run-history view.

Profile #

Open the ⋯ menu and choose Profile to set your name and email. The profile name is used as the operator/author in migration history and fixed-program header information.

Browser & folder modes #

ModeBehavior
Browser mode · Chrome/EdgeBrowser can read and, when permission is granted, write the chosen local/mapped folder in place.
Browser mode · Firefox/SafariRead-only folder fallback. Fixes can be reviewed, but updated programs are downloaded rather than written back directly.
Server folder modeR/Shiny reads and writes programs on allowlisted server roots. The same front-end workflow is used, while server-side file operations preserve the deployment's file controls.

If Migrate Studio cannot obtain write access, it displays an amber read-only banner rather than waiting until Save or Revert to report the limitation.

Troubleshooting #

Folder loads read-only

Use Chrome/Edge in browser-folder mode or use the server-folder deployment. If prompted, grant the application write permission to the selected folder.

No rules loaded

Confirm the folder contains Migrate_Studio_Rules.xlsx or use Import Rules to select the correct workbook.

Apply Fix skips a program

The program may already be marked as applied by its backup/history state. Review History or Revert before intentionally reapplying.

Prior changes do not reappear

Confirm the program has a matching _migrate_original backup and that history.json in the startup data folder contains records for the same root folder and relative program path.

Fix Compare has no changes

Confirm a fix was applied or recovered from history and that the original backup can be read for the selected program.

Revert is unavailable

Revert requires a readable original backup and write access to the live program folder.