Alu.cardRPA → readable documentation
← Gallery
Blue PrismPublic sampleBlue Prism 5.0.32.0

Lifecycle Orientation Solution

PragyanaAcharya/BluePrismTravel Desk Solution.bpreleasebuilt by admin

  • Calls into other assets100
  • Decisions71
  • Loops8
  • Error handling57
  • Other steps1238
assets
10
steps
1474
notes
60
source
54k
ExcelCSVWeb browserQuote Requests
SessionRestored from cache — 0 tokens spent
in
65k
out
25k
from cache
144k
cost
$1.09
  1. Read the project files

    Parsed Lifecycle Orientation Solution (Blue Prism).

    • 10 assets — BP Travel - Create Report, Create Quotes, BP Travel - Basic Actions, BP Travel - Quotes, +6 more
    • 1474 steps, 71 decision points, 8 loops, 57 error-handling steps
    • 60 steps carry the original developer's notes
    • Systems: Excel, CSV, Web browser
    • Work queues: Quote Requests

    Reading a 54.1k-token digest — 10 assets in full detail.

  2. Work out what the process actually does

    44.6s3.4k out
    Purpose
    Turns a batch of customer flight-quote requests into priced quotes in the BP Travel web application: each request is worked one at a time from a shared work list, the quote is raised on screen, and the resulting quote reference and total price are captured back. A companion routine writes a supplied data set out as an Excel report.
    Trigger
    Not stated in source. The 'Create Quotes' process starts with a Start Up step and then loops while items remain in the 'Quote Requests' work list ('Got Item?' checks that an item ID was retrieved), so a run is started either on a schedule or manually and then drains the list.
    Frequency
    not determinable from source
    Systems
    1. BP Travel web application (Internet Explorer, URL held in an environment setting 'BP Travel URL')
      Role: Log in, navigate the left-hand menu (Search / Create Quote / View Quote / View Booking / Log Out), fill the Create Quote form, submit it, and read back the quote reference, total price or error message
    2. Microsoft Excel
      Role: Source of the quote requests ('Loads quote requests from an Excel file' per the developer's own description) and destination for the generated report workbook
    3. Blue Prism work list named 'Quote Requests'
      Role: Holds one pending quote request per item; items are marked completed or exceptioned as they are worked
    4. CSV / file system (utility objects present)
      Role: Supporting file handling — read/write/move/delete files, parse CSV; no specific path is exercised in the visible steps
    Inputs
    • Excel file of quote requests (path not shown in the visible steps)
    • Per request: From Airport code, To Airport code, Departing Date (UK format only — developer note: 'UK format dates only'), One Way flag, Returning Date, number of Adults, number of Children, Name, Postcode, Telephone, Email
    • BP Travel login credentials (User Name defaults to 'bp'; Password held as a secure value)
    • Environment settings: 'BP Travel URL' and 'BP Travel Window Titles' (comma-separated list of acceptable browser window titles for test vs production)
    • Report Data collection and Report Path (inputs to the 'BP Travel - Create Report' process)
    Outputs
    • Quote Number (quote reference) and Total Price read from BP Travel for each successful request
    • Work list items in 'Quote Requests' marked Completed or Exception
    • Excel workbook written to the supplied Report Path, data starting at cell A1 of 'Sheet1' with column headers included
    Stages
    1. 1. Start up and load the request batch
      Summary: The process runs its Start Up routine, which per the process description loads the quote requests from an Excel file (presumably populating the 'Quote Requests' work list). The individual load steps are not exposed in the outline.
      Assets: Create Quotes / Main Page / Start Up, MS Excel VBO
    2. 2. Launch and log in to BP Travel
      Summary: Open Internet Explorer at the URL held in the 'BP Travel URL' environment setting and wait up to 30s for the login screen. Type user name and password, click Log In, then wait up to 30s for either the 'Create Quote' link (success) or the invalid-credentials error message.
      Assets: BP Travel - Basic Actions / Launch, BP Travel - Basic Actions / Log In, BP Travel - Basic Actions / Attach
    3. 3. Take the next request from the work list
      Summary: Retrieve the next pending item from the 'Quote Requests' work list. 'Got Item?' tests that an item ID was returned; if none, the run ends. Each item carries one customer's trip and contact details.
      Assets: Create Quotes / Main Page, Blueprism.Automate.clsWorkQueuesActions
    4. 4. Navigate to the Create Quote page
      Summary: Using the left-hand navigation menu, wait for the menu to load (up to 30s) then click the 'Create Quote' link (confirmed present within 1s).
      Assets: Create Quotes / 01 - Navigate to Page (Page="Create Quote"), BP Travel - Basic Actions / Left Menu
    5. 5. Select the airports
      Summary: Read every entry from the 'From' airport dropdown, skipping the first (blank) entry — developer note: 'The first item in the list is null. Ignore it' — and select the entry whose last three characters match the requested From airport code. Repeat for the 'To' dropdown.
      Assets: BP Travel - Quotes / Create Quote
    6. 6. Complete the quote form
      Summary: Type the departing date (UK format only), tick or clear the One Way checkbox, then either type the returning date or blank that field if one-way. Enter Adults, Children, Name, Telephone, Email and Postcode.
      Assets: BP Travel - Quotes / Create Quote
    7. 7. Submit and capture the result
      Summary: Click 'Create Quote' and wait up to 30s for either a quote reference or an error message. If a non-blank quote reference is present, read it and convert the displayed total to a number, returning Quote Number and Total Price.
      Assets: BP Travel - Quotes / Create Quote
    8. 8. Close out the work item
      Summary: On success the item is marked completed in the 'Quote Requests' list. On failure it is marked as an exception, with retry logic (see exceptions). The process then loops back to take the next item.
      Assets: Create Quotes / Mark Item As Completed, Create Quotes / Mark Item As Exception
    9. 9. Log out and close the browser
      Summary: At clean-up, re-attach to the browser and, if still attached, click 'Log Out' from the left menu, wait for the logout link to disappear, then terminate the browser. Developer note: this exists 'To prevent someone being able to take control of the session logged in by a robot'.
      Assets: BP Travel - Basic Actions / Terminate, BP Travel - Basic Actions / Clean Up
    10. 10. (Separate routine) Produce the Excel report
      Summary: Given a data set and an output file path, open Excel with events disabled, create a workbook, write the data to 'Sheet1' starting at A1 including column headings, save as the supplied path, then close the workbook and Excel without saving further changes.
      Assets: BP Travel - Create Report / Main Page, MS Excel VBO / Create Instance, Create Workbook, Write Collection, Save Workbook As, Close Workbook, Close Instance
    Exceptions
    1. Requested From or To airport code is not present in the dropdown list
      Handling: Raised as a business exception: 'The requested From/To airport was not available in the From/To combobox' — the request cannot be quoted as supplied
    2. BP Travel displays a validation error after submitting the quote form
      Handling: The on-screen error text is read and raised as a business exception carrying that message
    3. No quote reference appears after clicking Create Quote
      Handling: System exception, 'try once' style: 'Unable to retrieve Quote Reference after creating quote'; if neither confirmation nor error appears within 30s, 'No confirmation or error message was displayed after clicking the Create Quote button'
    4. Browser is not running / cannot attach
      Handling: Attach returns not-attached and the Create Quote action raises 'Unable to attach to BP Travel - is the application running?'
    5. Login screen not found on launch, or credentials rejected, or the app does not move on from the login screen within 30s
      Handling: System exceptions: 'Login screen not found', 'Invalid Log in details', 'Timeout waiting for application to navigate from login screen after entering credentials'
    6. Navigation menu or a specific menu link not found
      Handling: System exception naming the missing link (Search / Create Quote / View Quote / View Booking / Logout); an invalid navigation instruction raises a 'try once' system exception flagged as a potential configuration error
    7. An item fails with a system or internal exception
      Handling: Marked as an exception in the 'Quote Requests' list and retried (a new item ID is created)
    8. The same exception detail recurs on consecutive items
      Handling: A counter increments; when it reaches the Consecutive Exception Limit (default 3) the whole run is terminated. Developer note: 'The consecutive exception limit has been reached, so throw a new exception to terminate the process.'
    9. Excel report: instance handle invalid, workbook or worksheet missing, or file not found
      Handling: Utility raises 'Bad Handle', 'Workbook Not Found', 'Worksheet Not Found' or 'File Not Found' with the offending name in the message
    10. Logout link already gone during termination
      Handling: Handled and ignored, then the browser is killed. Developer note: 'If the link doesn't exist we have already logged out so handle and ignore the exception and terminate the application.'
    Unknowns
    • Path, sheet name and column layout of the source Excel file of quote requests — the Start Up page's internals are not shown
    • How and when items are loaded into the 'Quote Requests' work list, and who owns/monitors that list
    • Schedule, expected daily volume, and cut-off times
    • What the 'BP Travel - Create Report' output is used for, who receives it, and where Report Path points — no caller of this process appears in the outline
    • Whether captured Quote Numbers and Total Prices are written back to the work list, the source file, or the report
    • The exact BP Travel URL and window titles (held as environment settings, values not in source)
    • How the Total Price text is converted to a number (the 'Cast Price' step's formula is not shown)
    • Retry limit per individual item (only the consecutive-exception limit of 3 is visible)
    • Downstream handling of business exceptions such as unavailable airports — whether a human reworks them
    • Whether the Search, View Quote and View Booking menu options are used by any live process (they are built but not called on the happy path shown)
  3. Write the SOP

    71.3s6.1k out

    Procedure written →

  4. Check the SOP against the source

    109.2s8.8k out
    Verdict
    minor issues
    Confidence
    medium
    Coverage
    Strong, well-traceable coverage of the BP Travel web path: launch/login waits and error texts, left-menu navigation (30s menu wait, 1s link check), Create Quote form fill (airport combos, UK-format departing date, One Way branch blanking/writing Returning Date, passenger/contact fields), submit-and-read of Quote Reference/Total Price, work-item completion/exception handling with the consecutive-exception limit of 3, logout/terminate clean-up, and the standalone BP Travel - Create Report Excel routine (Sheet1, A1, headings included, Save As Report Path, close without saving). Correctly declares as unknown: Start Up internals, source file path/sheet/columns, schedule, report consumer, price-cast formula. Weak points are all in areas the outline does not expose (Start Up, '01 - Navigate to Page', queue get-next-item), where the SOP sometimes states inference as fact.
    Issues
    1. medium
      Location: Stage 5, step 4 (airport matching) and Data handled table
      Problem: States the automation matches 'the last three characters' of each dropdown entry. Source condition is Mid([...Item Text],Len([...Item Text])-3,3)=[From Airport], which returns the three characters ending one position before the final character (e.g. the code inside a trailing bracket), not the final three.
      Correction: Say the code is taken from the three characters immediately preceding the last character of the list entry (consistent with entries ending in a bracketed code), quoting the formula if useful.
    2. medium
      Location: Stage 1, step 2
      Problem: Attributes the process-level purpose text ('Loads quote requests from an Excel file and performs updates in the BP Travel system') to the Start Up routine, and asserts Start Up populates the Quote Requests work list. The outline gives that text as the description of the whole Create Quotes process; Start Up's contents are not exposed.
      Correction: Attribute the quote to the Create Quotes process as a whole and state that which routine reads the Excel file and loads the queue is not determinable from the source.
    3. low
      Location: Stage 2 (Launch and log in)
      Problem: Presented as a definite step of the run, but the outlined Create Quotes Main Page shows only Start Up, the 'Got Item?' decision and '01 - Navigate to Create Quotes'; no call to Launch or Log In appears. Launch/Log In exist only as pages on the BP Travel - Basic Actions object.
      Correction: Note that launch and login are capabilities of the BP Travel - Basic Actions object presumed to run inside Start Up; the source does not show where they are called.
    4. low
      Location: Stage 2, step 5 (attach check)
      Problem: The connect/re-attach check is placed after login as a general precaution. In the source the Attach call sits at the start of the BP Travel - Quotes 'Create Quote' action (immediately before the Create Quote screen wait), with 'Unable to attach to BP Travel' raised if it fails.
      Correction: Move the attach check to the beginning of Stage 5 (before waiting for the Create Quote form) where the source performs it.
    5. low
      Location: Stage 3 and Stage 8 step 4 (loop back)
      Problem: Describes retrieving the next pending item and looping until the list is empty. The outlined Main Page contains no get-next-item stage and no loop; only the decision IF Got Item? ⟨[Item ID]<>""⟩.
      Correction: State that the outline shows only the 'Got Item?' check on an item reference; the queue-fetch stage and loop-back are inferred and not visible in the source.
    6. low
      Location: Stage 8, steps 1-2 (Mark Item As Exception)
      Problem: Asserts the item is marked Exception and then a fresh item reference is created for system/internal exceptions. The outlined page shows only the retry-type decision (Exception Type = 'system exception' or 'internal'), a New Item ID data item and the consecutive-count logic — no queue 'Mark Exception' or retry call is listed.
      Correction: Say the page decides retry eligibility on exception type and holds a New Item ID; the actual queue exception/retry calls are not shown in the source.
    7. low
      Location: Stage 9, step 2
      Problem: Says the automation waits up to 30 seconds 'for the Log Out link to disappear'. The wait condition in the source is HTMLCheckExistsAndDocumentLoaded on the Log Out link (exists and parent document loaded), despite the stage being named 'Wait for Logout to go' — the SOP may have the condition backwards.
      Correction: Describe the wait as confirming the logged-out page has loaded (check-exists/document-loaded on the Log Out link), noting the ambiguity between stage name and condition; a timeout is caught and the browser is terminated regardless.
    8. low
      Location: Stage 6, step 1
      Problem: Expands the developer note 'UK format dates only' to 'i.e. DD/MM/YYYY'; the specific mask is not in the source.
      Correction: Quote the note as-is and mark the exact date mask as unconfirmed.
  5. Apply the corrections

    69.1s7.0k out

    Procedure written →

# BP Travel — Create Flight Quotes from a Batch of Customer Requests

Customer flight-quote requests are collected into a shared work list and each one is raised as a priced quote in the BP Travel web application. For every request the automation fills in the Create Quote form (route, dates, passenger counts, contact details), submits it, and captures the quote reference and total price returned by the system. Each request is then closed off as completed or flagged as an exception for follow-up. A separate supporting routine writes a supplied data set out to an Excel workbook as a report.

## At a glance

| | |
|---|---|
| **Trigger** | Not recorded in the source. The `Create Quotes` process begins with a Start Up routine and then works items from the **Quote Requests** work list (a shared to-do list of pending requests) until none remain — consistent with either a scheduled or manually started run. |
| **Frequency** | Not recorded in the source. |
| **Systems used** | BP Travel web application in Internet Explorer (address held in the environment setting **BP Travel URL**); Microsoft Excel; the **Quote Requests** work list; general file/CSV handling utilities |
| **Inputs** | Excel file of quote requests ("Loads quote requests from an Excel file" — developer's own description of the process); per request: From Airport code, To Airport code, Departing Date (UK format), One Way flag, Returning Date, Adults, Children, Name, Postcode, Telephone, Email; BP Travel credentials (user name defaults to `bp`, password held securely); environment settings **BP Travel URL** and **BP Travel Window Titles** |
| **Outputs** | A Quote Number (quote reference) and Total Price per successful request; each work-list item marked Completed or Exception; (separate routine) an Excel workbook saved to a supplied path, data written from cell **A1** of **Sheet1** with column headings |
| **Typical run** | Not recorded in the source. The run drains the Quote Requests list one item at a time; it self-terminates if the same error occurs on 3 consecutive items. |
| **Owner** | Not recorded in the source. |

## Before you start

- **BP Travel access.** A working login for the BP Travel web application. The stored user name defaults to `bp`; the password is held as a protected value and is not visible in the source.
- **Environment settings configured for the right environment.** Two settings must point at the correct system:
  - **BP Travel URL** — the web address the browser opens. The developer notes: *"Different Blue Prism environments may contain different values. e.g. the value in development environment may contain the URL to the test application whilst the value in the production environment will contain the URL of the production environment."*
  - **BP Travel Window Titles** — a comma-separated list of acceptable browser window titles. The developer notes: *"The test systems use different window titles to the production system … we use the option (in the attach stage) to attach to a collection of titles."* The automation splits this text on commas before trying to find the window.
- **Internet Explorer** available; the automation attaches to a process named `IEXPLORE`.
- **Microsoft Excel** installed on the machine running the work.
- **The source Excel file of quote requests** in place. Its path, sheet name and column layout are not visible in the source — confirm these with the process owner before a run.
- **The Quote Requests work list** should contain (or be about to be loaded with) the requests to be processed. Confirm who loads it and that yesterday's items are cleared.
- No other Excel instance holding the source or report file open in a way that blocks writing.

## Procedure

### Stage 1 — Start up and load the request batch

1. Start the **Create Quotes** process. It first runs its **Start Up** routine.
2. The developer describes the **Create Quotes** process as a whole as one that *"Loads quote requests from an Excel file and performs updates in the BP Travel system"* — i.e. the request rows originate in an Excel file and are worked as items in the **Quote Requests** work list. Which routine actually reads the Excel file and loads the work list is **not determinable from the source**: the steps inside Start Up are not exposed, so the file path, sheet name and column mapping cannot be stated here either.

### Stage 2 — Launch and log in to BP Travel

1. Open Internet Explorer at the address held in the **BP Travel URL** setting.
2. Wait up to **30 seconds** for the login page to finish loading and the **Log In** button to appear.
   - **If it does not appear within 30 seconds**, the automation stops the item with the system error *"Login screen not found"*.
3. Type the user name and password into the login fields and click **Log In**.
4. Wait up to **30 seconds** for one of two outcomes. The developer's note explains: *"This wait stage waits for two outcomes: The Create Quote Link to exist. This confirms we have successfully logged in. An error message that is thrown by the system when the credentials are incorrect."*
   - **If the Create Quote link appears** → logged in successfully; continue.
   - **If the invalid-credentials error message appears** → raise *"Invalid Log in details"*.
   - **If neither appears in 30 seconds** → raise *"Timeout waiting for application to navigate from login screen after entering credentials"*.
5. Before any screen work, the automation confirms it is still connected to the browser. If it is not connected, it re-finds the Internet Explorer window using the titles listed in **BP Travel Window Titles**. If no such window is found, it treats the application as not running.

### Stage 3 — Take the next request from the work list

1. Retrieve the next pending item from the **Quote Requests** work list. Each item carries one customer's trip and contact details.
2. **If an item was returned** (the check is *"Got Item?"* — that an item reference is not blank) → proceed to Stage 4.
   **If no item was returned** → the list is empty; the run finishes and moves to clean-up (Stage 9).

### Stage 4 — Navigate to the Create Quote page

1. Wait up to **30 seconds** for the left-hand navigation menu to be present and its page fully loaded.
   - **If not found** → system error *"Navigate menu was not found"*.
2. Confirm the **Create Quote** link exists (a short **1-second** check — the developer notes: *"We only need an extra small wait as we know the page is already loaded. We are simply confirming that the link is on the page."*) and click it.
   - **If the link is missing** → system error *"Unable to find Create Quote link"*.

*(The same menu routine also supports Search, View Quote, View Booking and Log Out. Only Create Quote and Log Out are used on the path described here.)*

### Stage 5 — Select the airports

1. Wait up to **10 seconds** for the Create Quote form to be loaded.
   - **If not found** → system error *"Create Quote screen not found"*.
2. Read every entry from the **From** airport dropdown list.
3. Work down the list, skipping the first, blank entry. Developer's note: *"The first item in the list is null. Ignore it."*
4. Match the requested From airport code against the **three characters immediately preceding the last character** of each list entry — the comparison is `Mid([From Airports.Item Text],Len([From Airports.Item Text])-3,3) = [From Airport]`. This is consistent with list entries that end in a bracketed three-letter code (e.g. "London Heathrow (LHR)"), where the code sits just inside the closing bracket rather than at the very end of the text.
   - **If a match is found** → select that entry.
   - **If no entry matches** → raise the business exception *"The requested From airport was not available in the From combobox"* and close the item out as an exception (Stage 8).
5. Repeat steps 2–4 for the **To** airport dropdown, with the equivalent error *"The requested To airport was not available in the To combobox"*.

### Stage 6 — Complete the quote form

1. Type the **Departing Date**. Developer's note on this field: *"UK format dates only"* (i.e. DD/MM/YYYY).
2. Set the **One way** checkbox to match the request's One Way flag.
3. **If the request is one-way** → clear the **Returning Date** field (write it blank).
   **If the request is a return** → type the **Returning Date** into that field.
4. Enter the remaining passenger and contact details: **Adults**, **Children**, **Name**, **Telephone**, **Email**, **Postcode**.

### Stage 7 — Submit and capture the result

1. Click the **Create Quote** button.
2. Wait up to **30 seconds** for either a quote reference or an on-screen error message to appear.
   - **If neither appears** → system error, flagged for a single retry: *"No confirmation or error message was displayed after clicking the Create Quote button"*.
3. Read the quote reference and the displayed total price from the results screen.
4. **If the quote reference is not blank** → convert the displayed total to a number and return **Quote Number** and **Total Price** for the request. (The exact conversion formula is not visible in the source.)
   **If the quote reference is blank** → system error, single retry: *"Unable to retrieve Quote Reference after creating quote"*.
5. **If an error message is shown instead** → read the message text from the screen and raise it as a business exception carrying that exact wording (typically a data-validation problem with the request).

### Stage 8 — Close out the work item

1. **On success** → mark the item **Completed** in the **Quote Requests** list.
2. **On failure** → mark the item as an **Exception**, then apply the retry rules:
   - **If the failure is a system exception or an internal error** → the item is made available again for another attempt (a fresh item reference is created).
   - Otherwise (business exceptions such as an unavailable airport or a validation message) → the item stays as an exception for human follow-up.
3. Consecutive-failure guard: the automation compares each new failure's detail text to the previous one.
   - **If the same detail repeats** → increment a counter.
   - **If the detail differs** → reset the counter to zero and remember the new detail.
   - **If the counter reaches the limit (default 3)** → the whole run is stopped with a terminal error reading *"<limit> consecutive incidents of <exception type>: <detail>"*. Developer's note: *"The consecutive exception limit has been reached, so throw a new exception to terminate the process."*
4. Return to Stage 3 for the next item.

### Stage 9 — Log out and close the browser

1. Check whether the browser session is still attached.
   - **If not attached** → nothing to do; finish.
   - **If attached** → continue.
2. Click **Log Out** on the left-hand menu, then wait up to **30 seconds** for the Log Out link to disappear.
   - **If the Log Out link is already gone**, the error is caught and ignored. Developer's note: *"In case the process hasn't already logged out call the logout link. If the link doesn't exist we have already logged out so handle and ignore the exception and terminate the application."*
3. Close the browser.
4. Why this matters — developer's note: *"To prevent someone being able to take control of the session logged in by a robot terminate the session on clean up. If someone attempts to take control off the robot the process will eventually throw a terminal exception. This will cause the process to fail which will dispose of the object and invoke the Clean Up action."*

### Stage 10 — (Separate routine) Produce the Excel report

This is the standalone **BP Travel - Create Report** process — *"Creates an Excel report with the supplied data collection"*. No caller for it appears in the source, so it is either run on demand or invoked from something outside this package.

1. Given a data set (**Report Data**) and an output file path (**Report Path**), open a new Excel session with automatic events disabled.
2. Create a new blank workbook.
3. Write the data set into worksheet **Sheet1**, starting at cell **A1**, **including the column headings** as the first row.
4. Save the workbook to the supplied **Report Path**.
5. Close the workbook without saving further changes, then close Excel without saving changes.

## Exceptions and recovery

| Condition | What the automation does | What a human should do |
|---|---|---|
| Requested From or To airport code not in the dropdown | Business exception: *"The requested From/To airport was not available in the From/To combobox"*; item left as an exception | Check the airport code on the source request; correct it and resubmit, or confirm BP Travel does not serve that route |
| BP Travel shows a validation error after submitting the form | Reads the on-screen message and raises it verbatim as a business exception | Read the message on the exception, fix the underlying request data (dates, passenger counts, contact details) and resubmit |
| No quote reference appears after clicking Create Quote | System exception, retried once: *"Unable to retrieve Quote Reference after creating quote"* | If it recurs, check manually in BP Travel whether the quote was in fact created before re-running, to avoid duplicates |
| Neither confirmation nor error within 30 seconds of submitting | System exception, retried once: *"No confirmation or error message was displayed after clicking the Create Quote button"* | Check application responsiveness; verify in BP Travel whether the quote exists |
| Browser not running / cannot be attached | *"Unable to attach to BP Travel - is the application running?"* | Confirm Internet Explorer is running with a window title matching the **BP Travel Window Titles** setting; correct the setting if the environment changed |
| Login page not found on launch | *"Login screen not found"* | Verify the **BP Travel URL** setting and that the site is reachable |
| Credentials rejected | *"Invalid Log in details"* | Verify/reset the BP Travel credentials held for the robot |
| Application does not leave the login screen within 30 seconds | *"Timeout waiting for application to navigate from login screen after entering credentials"* | Check application performance and network |
| Navigation menu or a menu link missing | System exception naming the missing element (*"Navigate menu was not found"*, *"Unable to find Create Quote link"*, etc.) | Likely an application change or a slow page; escalate to the automation team if the screen layout has changed |
| Invalid navigation instruction supplied internally | System exception, single retry: *"Invalid input parameter to action, potential configuration error: <value>"* | Escalate — this indicates a configuration or build fault, not a data fault |
| Item fails with a system or internal exception | Item marked as an exception and made available for a retry | Monitor; repeated retries on the same item point to a genuine fault |
| Same failure detail on consecutive items (default limit **3**) | Terminates the entire run with a message listing the repeated error | Investigate the common cause (application down, environment misconfigured, bad batch) before restarting |
| Logout link already gone at clean-up | Caught and ignored; browser is closed anyway | Nothing |
| Excel report: bad session handle, missing workbook, missing worksheet, or missing file | Raises *"Bad Handle"*, *"Workbook Not Found"*, *"Worksheet Not Found"* or *"File Not Found"*, naming the offending item | Check the report path exists and is writable, and that no conflicting workbook is open |

## Data handled

| Item | What it holds | Where it comes from |
|---|---|---|
| **Quote Requests** (work list) | One pending customer quote request per item, each carrying the trip and contact details | Loaded during Start Up from the source Excel file |
| From Airport / To Airport | Three-letter airport codes for the route; matched against the three characters immediately preceding the last character of each dropdown entry (i.e. the code inside a trailing bracket) | Request item |
| Departing Date / Returning Date | Travel dates in **UK format only** (developer's note). Returning Date is blanked for one-way trips | Request item |
| One Way | Flag; drives the One way checkbox and whether Returning Date is entered or cleared | Request item |
| Adults / Children | Passenger counts (both default to 0 if not supplied) | Request item |
| Name, Postcode, Telephone, Email | Customer contact details typed into the quote form | Request item |
| Quote Reference (Quote Number) | The quote identifier read back from BP Travel after successful submission | BP Travel results screen |
| Total Price | The quoted total, read as text and converted to a number | BP Travel results screen |
| Error Message | Validation text shown by BP Travel when the form is rejected; becomes the business-exception message | BP Travel Create Quote screen |
| **BP Travel URL** | Web address of the BP Travel application for this environment | Environment setting |
| **BP Travel Window Titles** | Comma-separated list of acceptable browser window titles; split into a list before attaching | Environment setting |
| User Name / Password | BP Travel login credentials; user name defaults to `bp`, password held as a protected value | Stored configuration |
| Consecutive Exception Limit | Threshold for aborting the run when the same error repeats; default **3** | Process configuration |
| Previous Exception Detail | The text of the last failure, used to decide whether the current failure is "the same" | Set at runtime |
| Report Data / Report Path | The data set to publish and the full output file path for the Excel report | Supplied to the Create Report routine by its caller |
| Wait timeouts | Standard waits used throughout: XXS 0.5s, XS 1s, S 5s, M 10s, L 30s, XL 60s, XXL 120s | Object configuration |

## Not determinable from the source

- Path, sheet name and column layout of the source Excel file of quote requests — the Start Up routine's internals are not exposed.
- Which routine reads the Excel file and loads the **Quote Requests** work list.
- How and when items are loaded into the **Quote Requests** list, and who owns or monitors it.
- Schedule, expected daily volume, and any cut-off times.
- What the **BP Travel - Create Report** output is used for, who receives it, and where **Report Path** points — no caller for this routine appears in the source.
- Whether the captured Quote Numbers and Total Prices are written back to the work list, the source Excel file, or the report.
- The actual BP Travel URL and window titles (held as environment settings; values not in the source).
- How the displayed total price text is converted to a number (the conversion step's formula is not shown).
- Any per-item retry limit — only the consecutive-exception limit of 3 is visible.
- Downstream handling of business exceptions such as unavailable airports — whether a human reworks and resubmits them.
- Whether the **Search**, **View Quote** and **View Booking** menu options are used by any live process; they are built but not called on the path described here.

How this SOP was checked

Generated from the project's source files and audited against them. Audit verdict: minor issues, confidence medium.

Strong, well-traceable coverage of the BP Travel web path: launch/login waits and error texts, left-menu navigation (30s menu wait, 1s link check), Create Quote form fill (airport combos, UK-format departing date, One Way branch blanking/writing Returning Date, passenger/contact fields), submit-and-read of Quote Reference/Total Price, work-item completion/exception handling with the consecutive-exception limit of 3, logout/terminate clean-up, and the standalone BP Travel - Create Report Excel routine (Sheet1, A1, headings included, Save As Report Path, close without saving). Correctly declares as unknown: Start Up internals, source file path/sheet/columns, schedule, report consumer, price-cast formula. Weak points are all in areas the outline does not expose (Start Up, '01 - Navigate to Page', queue get-next-item), where the SOP sometimes states inference as fact.

2 corrections from the audit were applied to the procedure above.

Remaining minor notes, not corrected:

  • Stage 2 (Launch and log in) — Presented as a definite step of the run, but the outlined Create Quotes Main Page shows only Start Up, the 'Got Item?' decision and '01 - Navigate to Create Quotes'; no call to Launch or Log In appears. Launch/Log In exist only as pages on the BP Travel - Basic Actions object. (Note that launch and login are capabilities of the BP Travel - Basic Actions object presumed to run inside Start Up; the source does not show where they are called.)
  • Stage 2, step 5 (attach check) — The connect/re-attach check is placed after login as a general precaution. In the source the Attach call sits at the start of the BP Travel - Quotes 'Create Quote' action (immediately before the Create Quote screen wait), with 'Unable to attach to BP Travel' raised if it fails. (Move the attach check to the beginning of Stage 5 (before waiting for the Create Quote form) where the source performs it.)
  • Stage 3 and Stage 8 step 4 (loop back) — Describes retrieving the next pending item and looping until the list is empty. The outlined Main Page contains no get-next-item stage and no loop; only the decision IF Got Item? ⟨[Item ID]<>""⟩. (State that the outline shows only the 'Got Item?' check on an item reference; the queue-fetch stage and loop-back are inferred and not visible in the source.)
  • Stage 8, steps 1-2 (Mark Item As Exception) — Asserts the item is marked Exception and then a fresh item reference is created for system/internal exceptions. The outlined page shows only the retry-type decision (Exception Type = 'system exception' or 'internal'), a New Item ID data item and the consecutive-count logic — no queue 'Mark Exception' or retry call is listed. (Say the page decides retry eligibility on exception type and holds a New Item ID; the actual queue exception/retry calls are not shown in the source.)
  • Stage 9, step 2 — Says the automation waits up to 30 seconds 'for the Log Out link to disappear'. The wait condition in the source is HTMLCheckExistsAndDocumentLoaded on the Log Out link (exists and parent document loaded), despite the stage being named 'Wait for Logout to go' — the SOP may have the condition backwards. (Describe the wait as confirming the logged-out page has loaded (check-exists/document-loaded on the Log Out link), noting the ambiguity between stage name and condition; a timeout is caught and the browser is terminated regardless.)
  • Stage 6, step 1 — Expands the developer note 'UK format dates only' to 'i.e. DD/MM/YYYY'; the specific mask is not in the source. (Quote the note as-is and mark the exact date mask as unconfirmed.)

Source