Airline 1.8.0

Welcome to the Airline app - created and maintained by Sascha Wildgrube.

This app was built to help organizing the shipment of medical supplies to the Ukraine during the full-scale invasion that started in February 2022.

It is dedicated to the people of Ukraine, their resistance, their bravery and to everyone who invests their time and resources to help.

Features

Manage pilots, aircraft, aircraft models and airports.

Plan and schedule flights - produce PDF flight sheets for pilots and PPRs for airports.

Manage safety requirements for flights, like IPR and deicing requirements.

Aggregate multilpe flights to a mission - to coordinate connection flights and complex transport operations.

Mission planning is supported by maintaining a list of potential airports and pilots.

Manage freight and passengers.

Connect to the OpenAIP API to get additonal information on airports automatically.

Disclaimer

Airline is NOT an officially supported ServiceNow product.

Airline does NOT come with any kind of warranty. If you use it, you own it!

System Requirements

Installation

  1. Create an account on GitHub - if not done already.
  2. Create a personal access token for your GitHub account.
  3. Add credentials to access GitHub - use "Basic Auth".
  4. Fork the repository https://github.com/saschawildgrube/servicenow-devtools.
  5. Go to Studio and import the DevTools application from source control.
  6. Perform all installation steps for the DevTools application documented here: https://www.wildgrube.com/servicenow-devtools 
  7. Fork the repository https://github.com/saschawildgrube/servicenow-geodata.
  8. Go to Studio and import the GeoData application from source control.
  9. Perform all installation steps for the GeoData application documented here: https://www.wildgrube.com/servicenow-geodata 
  10. Fork the repository https://github.com/saschawildgrube/servicenow-parcel.
  11. Go to Studio and import the Parcel application from source control.
  12. Perform all installation steps for the Parcel application documented here: https://www.wildgrube.com/servicenow-parcel 
  13. Execute installation scripts.
    Run the following script as a background script in scope x_snc_airline:
  14. x_snc_devtools.InstallApp("x_snc_airline");
  15. Add at least one airline.
  16. Configure at least one country for airline operations.
  17. Add aircraft models, aircraft, airports and pilots.
  18. To enable the airport map, Google Maps API must be setup on the instance. Refer to the ServiceNow documentation.
  19. To enable the OpenAIP API, add an API key credential and associate it to the OpenAIP API connection alias.

Glossary

Mission
A mission is an aggregation of flights. This could be all flights related to a specific event, all flights of a day or any other meaningful grouping.
Potential Aircraft Capacity
The potential aircraft capacity is the estimated available cargo and passenger capacity in kilogram. This is a remaining capacity after deducting fuel and the pilot (and the pilot's luggage) from the total capacity of an aircraft.
Total Aircraft Capacity
The total aircraft capacity is the maximum allowed total weight of an aircraft at lift-off minus the weight of the totally empty aircraft (i.e. no cargo, no passengers, no fuel).

Reference

Configuration Options

Connection and Credential Aliases

Roles

  • x_snc_airline.admin

    The airline admin role grants all access to all areas, including the test suite and application logs.

  • x_snc_airline.manager

    The airline manager role grants all read and write access to all data and all flight planning and operations activities.

  • x_snc_airline.viewer

    The airline viewer role grants read access to all areas and data.

UI Actions

Script Includes

  • AppBaseline

    Activities to be performed when the application is being baselined.

  • AppCreateTestData

    Creates test data for the Airline app.

  • AppGetDependencies

    Retrieves information about the app's dependencies to other apps and required versions.

  • AppGetProperty

    Gets a system property of this application.

  • AppInstall

    This script installs Airline.

  • AppSetDefaults

    Sets all system properties to default values.

  • AppSetProperty

    Sets a system property of this application.

  • CreateFlightSheet

    Creates the flight sheet pdf document and attaches it to the flight record.

  • Debug

    Produces a log output in the application log using the DevTools Debug function.

  • DevTools

    Implements the extension point for DevTools.

  • DevToolsGetApplicationStatus

    The function DevToolsGetApplicationStatus is called by the DevTools extension point instance class and returns the application status object with additional status information to be displayed on the "DevTools Application Overview" page.

  • DevToolsGetFormatConfig

    The DevToolsGetFormatConfig function is called by the DevTools extension point instance class and returns an object with field formatting information.

  • DevToolsGetInstancePipelineName

    The function DevToolsGetInstancePipelineName is called by the DevTools extension point instance class and returns the pipeline name of an instance based on the given actual name.

  • DevToolsGetLinkDirectory

    The DevToolsGetLinkDirectory function is called by the DevTools extension point instance class and returns an extended (or modified) link directory object that serves as the basis for the DevTools Link page.

  • DevToolsGetParentRecord

    The DevToolsGetParentRecord function is called by the DevTools extension point instance class and returns a parent record for the given record if it can be determined.

  • DevToolsRenderDebugDump

    The function DevToolsRenderDebugDump is called by the DevTools extension point instance class and returns additional debug information provided by the application.

  • GetAircraftRecord

    Returns a GlideRecord object representing the aircraft based on the given Sys ID, or false if the aircraft does not exist.

  • GetAirportCoordinatesByICAO

    Returns an object containing coordinates of the airport in longitude and latitude values.

  • GetAirportRecord

    Returns an airport record if the given record can be found, false if not.

  • GetFlightRecord

    Returns a GlideRecord object representing a flight based on the given Sys ID, or false if the flight does not exist.

  • GetPassengerDisplayValue

    Renders a passenger's display value.

  • GetPassengerRecord

    Returns a GlideRecord object representing the passenger based on the given Sys ID, or false of the passenger does not exist.

  • GetPilotRecord

    Returns a pilot record if the given record can be found, false if not.

  • IsActive

    Returns true if the application is active, otherwise false.

  • Log

    Produces a log output in the application log.

  • LogError

    Produces an error log output in the application log.

  • LogWarning

    Produces a warning log output in the application log.

  • OpenAipApiGetAirportByICAO

    Retrieves airport information from the OpenAIP API based on a given ICAO code.

  • OpenAipApiRequest

    Sends a request to the OpenAIP API using the API key configured with the OpenAIP API credential alias.

  • OpenAipApiSearchAirports

    Searches for airports via the OpenAIP API based on a given search string.

License

Copyright 2022-2024 by Sascha Wildgrube

Licensed under the Apache License, Version 2.0 (the "License")

You may not use Airline except in compliance with the License.

You may obtain a copy of the License at: https://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.

Release Notes

1.8.0 - 2024-07-07

  1. DevTools 1.95.0 is now required.
  2. The Airport Map now starts in normal mode (instead of terrain mode).
  3. Activated business rule "Airport - Get coordinates" to automatically retrieve coordinates if missing.
  4. Added ACLs for x_snc_airline.manager users to access credentials used for Open AIP API calls.
  5. Added ATF test for CreateFlightSheet().

1.7.0 - 2024-06-30

  1. DevTools 1.92.0 is now required.
  2. Utah is no longer actively supported.
  3. Airline is fully tested with Washington.
  4. Introduced the Airport Map to show all airports on a map.
  5. Introduced support for the OpenAIP API.
  6. Added function AppCreateTestData() to create test data for manual testing.
  7. Added function GetAirportCoordinatesByICAO().
  8. Added function AirportsDataImprovement().
  9. Added function OpenAipApiRequest().
  10. Added function OpenAipApiSearchAirports().
  11. Added function OpenAipApiGetAirportByICAO().
  12. Added ATF tests for various functions. However Script Include test coverage is not yet complete.

1.6.0 - 2024-02-25

  1. Missions now have a list of potential airports.
  2. Potential pilots for a mission are identified based on the list of potential airports.
  3. A mailing list with the identified potential pilots for a mission can now be generated.

1.5.0 - 2024-02-15

  1. The Airport form now shows related lists to departing, arriving and stopping flights.
  2. The Pilot form now has the field "ID" to store passport or id card numbers.
  3. Missions now have a list of potential pilots.

1.4.0 - 2023-12-13

  1. Added "Deicing Methods" which can be associated to Aircraft.
  2. When scheduling a flight, deicing requirement is checked against the aircraft's ability to deice.
  3. Deicing requirement can be set on mission-level. If set, all related flights in planning are set to require deicing.
  4. Fuel Type form shows related lists for Airports and Aircraft Models.
  5. Removed the "Pilot Briefing" from the main section of the Airport form.
  6. The PDF flight sheet now displays the fuel type based on the new configurable fuel types configured for the aircraft model.

1.3.0 - 2023-11-29

  1. Tokyo is no longer actively supported.
  2. Airline has been fully tested with Vancouver.
  3. DevTools 1.76.0 is now required.
  4. Parcel 1.2.0 is now required.
  5. Fuel types can now be configured by Airline manager users.
  6. Fuel types can be associated with aircraft models.
  7. When scheduling a flight, the compatible fuel types of the aircraft (model) are compared to the offered fuel types of the airport.
  8. The airport form has a new tab "Pilot Briefing" with the pilot briefing field and the tower frequency.
  9. The airport name field is no longer mandatory.
  10. Added more missing ATF tests.

1.2.4 - 2023-08-19

  1. Added missing Parcel roles to Airline roles.
  2. GetAirportsFromFlight() did not return the depature airport. This has been fixed.

1.2.3 - 2023-08-16

  1. The UI Action "New Airport Schedule" appeared on every list view. This was fixed but the fix was destroyed when committing to source control. This issue has now been resolved in a different way.

1.2.2 - 2023-08-16

  1. The UI Action "New Airport Schedule" appeared on every list view. This has been fixed.

1.2.1 - 2023-08-12

  1. When creating an new Airline Operating Hours Schedule the schedule is always created in the global scope.

1.2.0 - 2023-08-12

  1. DevTools 1.65.0 is now required.
  2. GeoData 1.2.0 is now required.
  3. Operating Hours can now be documented for Airports.
  4. The "Mission Contact" UI action did not work. This has been fixed.

1.1.0 - 2023-07-02

  1. DevTools 1.63.0 is now required.
  2. Added "Website" field to Airport form.
  3. Added "Tower Frequency" field to Airport form.
  4. AppInstall() now adds "x_snc_airline_passenger" to system property "glide.ui.text_search.fallback_table_list".
  5. Removed system property "glide.ui.text_search.fallback_table_list" which was added to the "Airline" scope by mistake.

1.0.0 - 2023-04-22

First baselined version