# Rome – Update Body Shop Management Repair Order (v1.6, Jan 2016) β€” Full Synapse **Purpose** This interface allows a Body Shop Management (BSM) system to update an existing *Repair Order (RO)* in the Reynolds & Reynolds DMS. It covers updates to general RO details, labor operations, parts, GOG (gas, oil, grease) items, and miscellaneous charges . --- ## 🧩 Core Workflow 1. **BSM System β†’ RCI Gateway β†’ Reynolds DMS** * BSM sends a SOAP/XML request (`rey_RomeUpdateBSMRepairOrderReq`) to RCI. * DMS validates and processes the update. * DMS replies with `rey_RomeUpdateBSMRepairOrderResp`. 2. **Supported updates** * Comments, tax codes, and estimate type. * Labor operation details (e.g., billing rates, opcodes). * Parts (add, delete, modify). * GOG and Misc items with financial attributes. --- ## 🧱 Request Structure β€” `rey_RomeUpdateBSMRepairOrderReq` | Section | Description | | | ------------------- | ---------------------------------------------------------------------------- | -------------------------------------------------------------- | | **ApplicationArea** | Identifies sender (`Rome/RCI`), creation time, and destination dealer/store. | | | **RoRecord** | Main data payload, with attribute `FinalUpdate="Y | N"`. Includes general, labor, part, GOG, and misc subsections. | ### RoRecord subsections * **Rogen:** Header data β€” `RoNo`, `CustNo`, `TagNo`, mileage, and optional `RoCommentInfo`, `EstimateInfo`, and `TaxCodeInfo`. * **Rolabor:** One or more `OpCodeLaborInfo` nodes containing: * `OpCode`, `JobNo`, and pay type flags (`Cust`, `Intr`, `Warr`). * Nested `BillTimeRateHrs`, `CCCStmts` (Cause/Complaint/Correction), and `RoAmts` (billing amounts). * **Ropart:** Job-linked `PartInfoByJob` with `OSDPartDetail` items. * **Rogog:** β€œGas/Oil/Grease” lines (`AllGogOpCodeInfo` β†’ `AllGogLineItmInfo`). * **Romisc:** Miscellaneous charge sections (`MiscOpCodeInfo` β†’ `MiscLineItmInfo`). --- ## πŸ“€ Response Structure β€” `rey_RomeUpdateBSMRepairOrderResp` | Element | Description | | | ------------------- | ---------------------------------------------------------------------------------------- | --------------------------------- | | **ApplicationArea** | Mirrors the request metadata (sender now `ERA/RR`). | | | **GenTransStatus** | `Status="Success | Failure"`and numeric`StatusCode`. | | **RoRecordStatus** | Attributes include `Status`, `Date`, `Time`, `OutsdRoNo`, `DMSRoNo`, and `ErrorMessage`. | | --- ## βš™οΈ Key Return Codes | Code | Meaning | | ------ | ---------------------- | | `0` | Success | | `300` | RO not found | | `301` | Invalid RO number | | `501` | Invalid tax code | | `503` | Invalid opcode | | `9999` | Undefined system error | --- ## 🧩 Implementation Notes * **FinalUpdate="Y"** signals the RO is finalized in the DMS. * The DMS uses **RO#, Dealer#, and Store#** to locate the target record. * **JobNo** groups labor and parts within the same operation. * Monetary and tax fields are sent as strings (DMS expects implicit decimal). * Every RO update must be uniquely identified by a **BODId** (GUID). * Validation failures trigger a response with `Status="Failure"` and `ErrorMessage` populated.