77 lines
3.7 KiB
Markdown
77 lines
3.7 KiB
Markdown
# 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.
|
||
|