How to integrate your custom logic into the official Oracle RMS nightly run.
Why Register Custom Batches?
Once you've built your custom staging tables and written your PL/SQL validation framework, you need a way to actually run it automatically every night.
You could just run it on a standard Linux cron job, but that is highly dangerous. What if your custom cron job kicks off right in the middle of the RMS saldly (Stock Ledger) batch? You could cause massive deadlocks or data corruption.
Custom batches must be integrated into the official RMS batch dependency tree. They must run after the data they need is ready, and before downstream batches that rely on them.
The Wrapper Script
Oracle RMS expects batches to behave in a specific way—they must return specific exit codes (0 for success, non-zero for failure) and log to standard directories.
To execute your PL/SQL package, you should wrap it in a standard Bash script.
POM (Process Orchestration & Monitoring)
In modern Oracle Retail Cloud environments, the traditional schedulers (like Control-M or Autosys) have been replaced by POM (Process Orchestration and Monitoring).
To schedule your wrapper script in POM:
- Register the Job: You define a new Job in the POM UI, pointing to your wrapper script.
- Define Dependencies: You explicitly state that your Job requires
posupld.pc(Sales Upload) to complete successfully before it can run. - Add to Schedule: You place your Job into the nightly batch cycle flow.
If your script exits with a 1 (failure), POM will pause the batch run, alert the on-call team, and prevent any dependent jobs from starting until the issue is resolved.
Key Takeaways
- Never use standard cron jobs for RMS integration batches; you must respect dependencies.
- Wrap PL/SQL executions in Bash scripts that return proper exit codes.
- Use POM (or your enterprise scheduler) to interlock your custom job with standard RMS programs.


