Вы находитесь на странице: 1из 26

Handover

SBOL V1/V2
GDD
Prodigious
Topics

1. What is BAS?
2. Business View
3. Sbol V1 & V2
4. Technical Overview
5. Get Calendar
6. Booking a service
What is BAS?

This is a functionality that allows the end user (cars owner)


to book a service in a specific dealer for a given date,
through the website.
Business View A2A (Renault
Booking
Is
Is no HTTP
Booking 409
System) OK?
OK?
Book a
Dealers API
Service (MongoDB) yes

Car Registration
(VIN plate)
SBOLV1 no
Leads API
Does
the yes
Find a dealer dealer
have a SBOLV2
DMS?
yes
Pick a Service Does
the
Opening dealer Salesforce
hours have a no
Get Calendar DMS?

Book
appointment
What is DMS?
System that allows the booking automatically, for the dealer

You can know if the Dealer has DMS (sbolv2) by looking for its services

If the dealer has a service ended in 913, it will be sbol v2

If the dealer has a service ended in 00, it will be sbol v1


SbolV2 & SbolV1
Sbol v1 requests mongo db for calendar and it will book directly to salesforce

Sbol v2 will ask for calendar to A2A service, and also will confirm availability
using A2A
SbolV2 (DMS) dealer example
SbolV1 (DMS) dealer example
Apigee Endpoints
/v1/dealers/services/calendar(only for v1)
/v1/leads/book (v2 as well)
Technical Overview
Get Calendar
Present in the v1 dealers apiproxy
i.e. https://digitaslbi-nonprod-qa.apigee.net/v1/dealers/services/calendar

Sbolv2 dealers will provide their calendar from the A2A service
Sbolv1 dealers will get their Calendar from mongo db (dealers opening Hours)
Get Calendar
Calendar by default will bring the next 3 weeks MINUS a period of
carence days, the next 2 days actually

So if you ask for calendar with date 14/06/16, Calendar will bring slots
from 16/06/16 to 04/07/16 (see example)

Parameters to set from dev app (sbol_calendar_carence_days and


sbol_calendar_num_of_weeks)
Get Calendar
Request:
Get Calendar
Response:
Calendar Dev App
configuration
You have to add these parameters to make the flow work:

dealer_calendar_webservice_base_path = helios-api-
renault-sbol-calendar/service
dealer_complement_target_system = FullSix
Calendar for Sbolv1 Opening
Hours
The calendar is obtained from Mongo DB
The data is in the Dealers Opening Hours Structure
This data is stored in Services Structure attached to the
dealer
To build the response, numOfWeeks and carenceDays
are taken into account
Booking A Service
Allows to book a date for a service to the car.
SBOLV1 will create the reservation and if theres a
conflict, someone will notice that manually.
SBOLV2 verifies instantaneously if the slot of time
requested is available.
Implemented on Leads v1 and v2 apiproxy
The appointment will be booked by sending a lead to
salesforce (LMTV2).
Booking A Service (Errors)
Error Case StatusCode Response
When a booking request is made to a dealer with
none of the sbol services (nor with 00 neither 913
suffix) 204
When A2A returns error codes 0003, 0301, 0303, Error connecting. Please
0401, 0502 500 contact support

The requested dealer is not found 404 empty String


If there's no dealer found in A2A webservice, A2A
returns 0501 404 No data found for request
If the booking system (A2A) replied that the
requested slot is not available anymore (0002). AEM
should allow the user to select another timeslot in this
case. 409 ("Conflict") empty String

If any technical error calling A2A renault web service 500 empty String

booking request malformed, A2A returns 0000 500


Bad request - The json request is malformed or some
required fields are missing 400 empty String
Bad request - targetSystemRoutingId is missing. targetSystemRoutingId is not
The message is based on current leads API. 400 found
bookingSystemRoutingId is
Bad request - bookingSystemRoutingId is missing 400 not found
Booking (Leads v1)
Endpoints involved on Apigee for SBOL v1 Request
1. Leads
2. Lead Management - Salesforce - Store - Soap

Endpoints involved on Apigee for SBOL v2 request


1. Leads
2. Owner Services - Car Data Renault (A2A)
3. Lead Management - Salesforce - Store - Soap
Booking (Leads v1) Dev app
configuration
Add these parameters to the AEM devApp for the market to
configure:

os_a2abook_apigeeEndpoint = /owner-
services/renault/a2a/book
os_a2abook_application = dms
os_a2abook_connectorAPIKey=
{current_AEM_devApp_apiKey}
os_a2abook_service = sbl
lm_a2abook_send_lead_endpoint = /v1/leads
Booking (Leads v2)
In order to improve the functionality the booking process was
migrated
From Leads to Leads V2 (Apigee)
From helios-api-mongo to helios-api-leads (Tomcat)
From Owner Services Car Data Renault to V2 Connector
Renault Datapower (Apigee)
Leads will end up in salesforce (LMTV2), but through a different
apiproxy
Booking V2 router lmtv1v2
Booking (Leads v2)
Endpoints involved on Apigee for SBOL v1 Request
1. Leads - V2
2. V2 - Connector - LMT Router (if lmtv1v2 used)
3. V2 - Connector - Salesforce SOAP

Endpoints involved on Apigee for SBOL v2 request


1. Leads - V2
2. V2 - Connector - Renault Datapower (A2A)
3. V2 - Connector - LMT Router (if lmtv1v2 used)
4. V2 - Connector - Salesforce SOAP
Booking (Leads v2) Dev app
configuration
Add this json to the lm_targetSystems property array, on the AEM
devApp for the market to configure:

{"id":"a2abook, "url: "/v2/connector/renault-datapower/a2a/book,


"errorEmailAddress: qa@test.heliosalliance.net,
"service":"sbl","application":"dms}
Documentation Links
https://confluence.lbi.co.uk/display/HII/14.+SBOL+Opening+hours

https://confluence.lbi.co.uk/display/HII/SBOL+Opening+hours+clarification

SBOL General Information


https://confluence.lbi.co.uk/pages/viewpage.action?pageId=77858358

Some Q&A https://confluence.lbi.co.uk/pages/viewpage.action?pageId=108539043


Q&A

Any Questions?

Вам также может понравиться