60 lines
3.2 KiB
Markdown
60 lines
3.2 KiB
Markdown
# Rome – Search Customer Service Vehicle Combined (v1.1, May 2015) — Full Synapse
|
||
|
||
**What it does:** one-shot search that returns **customer identity + all matching service vehicles** based on exactly **one** of the permitted search patterns (e.g., `NameRecId`, `FullName`, `Phone`, `Partial VIN`, `Stock #`, `License #`, or `FullName/LName + Model triple`). Results include customer contact info and each vehicle’s details and service metadata.
|
||
|
||
## Transport
|
||
|
||
* **SOAP/HTTPS** to RCI `ProcessMessage`, separate **test** and **prod** endpoints/credentials.
|
||
* Standard HTTP response codes; XML payloads validate against request/response XSDs.
|
||
|
||
## Trigger & allowed search modes
|
||
|
||
Pick **exactly one** of these (no mixing):
|
||
|
||
1. `Last Name + Partial VIN`
|
||
2. `Full Name + Partial VIN`
|
||
3. `Last Name + Phone`
|
||
4. `Full Name + Phone`
|
||
5. `Full Name` (alone)
|
||
6. `NameRecId` (alone)
|
||
7. `Phone` (alone)
|
||
8. `Phone + Partial VIN`
|
||
9. `Last Name + (Make, Model, Year)`
|
||
10. `Full Name + (Make, Model, Year)`
|
||
11. `Vehicle Stock #` (alone)
|
||
12. `Vehicle License #` (alone)
|
||
13. `Partial or Full VIN` (alone)
|
||
Business customers only match with `NameRecId`, `Phone`, `Stock #`, `License #`, `Phone+Partial VIN`, or `Partial/Full VIN`.
|
||
|
||
## Request (`rey_RomeCustServVehCombReq`)
|
||
|
||
* **`ApplicationArea`**: `Sender` (Component=`Rome`, Task=`CVC`, CreatorNameCode=`RCI`, SenderNameCode=`RCI`), `CreationDateTime` (`yyyy-mm-ddThh:mm:ssZ`), optional `BODId` (GUID), `Destination` (DestinationNameCode=`RR`, plus dealer/store/area routing).
|
||
* **`CustServVehCombReq`**:
|
||
|
||
* `QueryData`: one of `LName`, `FullName(FName,LName,MName)`, `NameRecId(CustIdStart)`, `Phone(Num)`, `PartVIN(Vin)`, `StkNo(VehId)`, `LicenseNum(LicNo)`; optional `MaxRecs` (≤ 50).
|
||
* `VehData`: `MakePfx` (2-char make), `Model` (carline/description match), `Year` (2 or 4).
|
||
* `OtherCriteria` present but “not used”.
|
||
|
||
## Response (`rey_RomeCustServVehComb`)
|
||
|
||
* **`ApplicationArea`** (Sender typically `RR`, Task=`CVC`, etc.) and **`TransStatus`** with `Status`=`Success|Failure`, `StatusCode` (numeric), and optional message text.
|
||
* **`CustServVehComb`** records (0..n), each with:
|
||
|
||
* **`NameContactId`**: `NameId` (`IBFlag` `I|B`, individual or business name + optional `NameRecId`), plus repeating `Address`, `ContactOptions`, `Phone`, `Email`.
|
||
* **`ServVehicle`** (0..n): `Vehicle` (VIN, Make, Year, Model, Carline, color, detail attrs), and `VehicleServInfo` (attributes for StockID, CustomerNo, Service history fields; children: `VehExtWarranty`, `Advisor.ContactInfo@NameRecId`, `VehServComments*`).
|
||
|
||
## Return codes (subset)
|
||
|
||
* `0` Success; `201` Required data missing; `202` Validation error; `213` No matching records; `9999` Undefined error. (Use `TransStatus@StatusCode` + text to decide UX.)
|
||
|
||
## Implementation checklist
|
||
|
||
* Build one of the **allowed** queries; if multiple criteria are supplied, RCI treats it as invalid.
|
||
* Generate **`BODId`** GUID per call; log it for tracing.
|
||
* Fill **routing** (`DealerNumber`, `StoreNumber`, `AreaNumber`) for the target store/branch.
|
||
* Enforce `MaxRecs` (default is 1; if >1 results and `MaxRecs` omitted, API returns “multiple exist” error).
|
||
* XSD-validate request/response; map `TransStatus` to domain errors; return empty list on `213`.
|
||
|
||
---
|
||
|