...
- NEW FEATURES in v2.0.102 - 03/10/2018
- Settings Group Membership Assignment for Vehicles on Vehicle, Vehicle Type and Terminal
- Settings Group Membership Assignment for Vehicles on Vehicle, Vehicle Type and Terminal
- CORRECTION in v2.0.101 - 01/25/2018 - PLEASE UPDATE YOUR IMPLEMENTATION
AuthorityGroupAssignment operation response ‘errors’ element has been changed to “Errors” due to issues it caused with newer java wsdlimport
Expand title Example of Namespace Rewrite Response Example prior to 01/25/2018 v2.0.101:
Response Example after 01/25/2018 v2.0.101:
- Carrier_GetAll default namespace has been changed to AdminService_v2
The service will detect if the client request uses DataService_v2 and will rewrite the response to use that namespace to prevent breaking change. Otherwise, the service will respond with the correct NS of AdminService_v2
Expand title Example of Namespace Rewrite Example using incorrect DataService_v2 Namespace - Service will rewrite response to match to prevent breaking client integrations developed before 01/25/2018 v2.0.101:
Example using default namespace of AdminService_v2 Namespace after 01/25/2018 v2.0.101:
- NEW in v2.0.100 - 11/01/2017
- Update to support new backend framework. No API changes are being made at this time
- NEW in v2.0.90
- NEW 02/2015: Support for Multiple Operating Authority and Hierarchical Reporting Groups
- Terminal Setting configurations(s)
- Authority Group Membership management
Existing ReportingGroup_GetAll operation will automatically include Hierarchical Reporting Groups and Membership (if enabled). Expand the following section for detail on how the Heirarchical groupId is comprised using a HIGH WORD and LOW WORD in a single integer value. This example also includes example code for encoding/decoding the value
Expand title Click to expand for details.... - The ID of a Hierarchical reporting group will be comprised using "Hi word, Lo word": (CompanyId * 2^16) + TerminalId
This will produce result where:- Value does not complete with existing Custom Reporting Groups
- Value is a positive integer (does not require any change to Vendor software)
- Value is easily/accurately encoded and decoded to/from HiLo value
- CompanyId has a ceiling of 32768 (set at 30k to provide a buffer if needed in the future)
- TerminalId has a ceiling of 65535 (set at 60k to provide a buffer if needed in the future)
Examples:- A Company Level Hierarchical Reporting Group:
CompanyId = 201
CompanyName = BurgerKing
======================================
HierarchicalReportingGroupId = 13172736
HierarchicalReportingGroupName = "BurgerKing" (Company Name Only) - A Terminal Level Hierarchical Reporting Group:
CompanyId = 201
CompanyName = BurgerKing
TerminalId = 54
TerminalName = Denver102
======================================
HierarchicalReportingGroupId = 13172790
HierarchicalReportingGroupName = "BurgerKing - Denver102"
- A Company Level Hierarchical Reporting Group:
- Existing structure is not affected:
Code Block language c# title Encoding and Decoding LOW HIGH WORD value - this does not apply the additional ^ or root math namespace LOWHIGHWORD_EncodeDecodeId { class Program { static void Main(string[] args) { if(args == null || args.Length < 1) { Console.WriteLine("Provide Arguments for either Encoding or Decoding as follows: "); Console.WriteLine(" To Encode: LOWvalue HIGHvalue(optional, defaults to 1)"); Console.WriteLine(" To Decode: value"); } else if(args[0].Length <= 4) { var encoded = MAKELONG(Convert.ToInt16(args[0].Replace("DT", "")), args.Length == 2 ? Convert.ToInt16(args[1]) : (short)1); var low = LOWORD(encoded); var high = HIWORD(encoded); Console.WriteLine($"EncodedId for LOW {low} and HIGH {high} is {encoded}"); } else if(args[0].Length > 4) { var encoded = Convert.ToInt32(args[0]); Console.WriteLine($"EncodedId {encoded} contains LOW {LOWORD(encoded)} and HIGH {HIWORD(encoded)}"); } } static short MAKEWORD(byte a, byte b) { return ((short)(((byte)(a & 0xff)) | ((short)((byte)(b & 0xff))) << 8)); } public static byte LOBYTE(short a) { return ((byte)(a & 0xff)); } public static byte HIBYTE(short a) { return ((byte)(a >> 8)); } public static int MAKELONG(short a, short b) { return (((int)(a & 0xffff)) | (((int)(b & 0xffff)) << 16)); } public static short HIWORD(int a) { return ((short)(a >> 16)); } public static short LOWORD(int a) { return ((short)(a & 0xffff)); } } }
- The ID of a Hierarchical reporting group will be comprised using "Hi word, Lo word": (CompanyId * 2^16) + TerminalId
API Examples