CP00312 Sales ReportingData Migration (BMorpheusabel)Enforced Registration
Conceptual Design (draft)
* Please note that this document is only a subset of the Full Conceptual design. This is available via a full non-disclosure agreement.
1. Revision History
Author |
David Stokes |
Document |
ConceptualDesign11.doc.doc |
Version |
Dated |
Comments |
1.0 |
1228/301/20029/9/2002 |
Initial release, using David Karlin’s "Sage Sales Reporter - ProposalMigration Utility" document for base requirements. FURPS section has been added with all the information from Rainie Dhanoa’s "User Reporting Requirements" document. extracted from Andrew Clayson’s ER Vision document A good deal of the technical requirements comes from this document. |
2.01.01 |
29/12/20026/5/2002 |
Changes to reflect a more RUP approach. Updated FURPS and stakeholders sections etcUpdated with TAS style requirements boxes, and more in-depth technical requirements |
2.011.02 |
8/1/200317/5/2002 |
Adding Sage US StakeholdersAdded actors onto the summary use cases |
2.021.03 |
226/7/20025/1/2003 |
Added for use cases to coverRemoved US Stakeholders. Added Central Projects review of the current requirements. Review on the entire document. |
2.031.04 |
5/2/20038/7/2002 |
Added the US requirements into the Technical Requirements section.Extra capability requirements added |
2.041.05 |
11/2/200318/7/02 |
Adding in the optional requirement for the product to ship with generic reports that can be run on the before and after dataAdded assumptions about the Line 100 ODBC driver. Also added technical requirements for parameters and the ability to export data. |
2.051.06 |
19/2/200330/08/02 |
Changes following comments from Guy Letts (Added Top level/detailed and modified the stakeholders/#capture resources) and feedback from Alistair Leadbetter (4.3.10, 4.3.11, 4.32 and technical requirements).Further requirement to have find / replace within the spreadsheet editing |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2. Introduction
2. Introduction
The Conceptual, Logical, and Physical design documents are the central components of the project. The target audience for the documents are:
Conceptual: People who require an overview of the requirements and a summary of the solution. This would probably include people who aren’t directly involved with the implementation, but need an understanding of what the solution will entail for them and their department.
Logical: An intermediate look at the solution. For those who require details of the interfaces and components being used. Developers will also find the document useful for understanding to a reasonable level the other pieces of architecture they are plugging their solution into.
Physical: The actual design specification for the solution. Developers and reviewers of the solution need to go to this level. Functions, Structures, and Application Interfaces are fully modelled in this document.
The goal of the Conceptual design is to identify the business needs and to understand what the users do and what they require. It does not cover in any great detail the approach taken or the technologies used to build the solution. This is covered in the Logical and Physical design documents. This document should be written in non-technical language that both customer and supplier could understand. This document corresponds very closely to a traditional requirements specification document.
The Logical design’s aim is to organise the details of the application that the team will build to fulfil the business needs and user requirements. The Logical design will layout the structure of the solution and the communication paths among elements. This document does not contain the detailed blueprint for the solution, but should provide the methodology for doing so.
The goal of the Physical design is specify which logical pieces fit into specific physical pieces of the architecture. It also addresses any outstanding technology issues or constraints. The physical design corresponds to a contractor’s blueprints for a building. The contractor’s plans add detail to the architect’s plans and reflect real-world circumstances. This document is written in technical language that requires technical and possibly programming knowledge to fully understand the plans. This documents corresponds very closely to a traditional design specification document.The goal of the conceptual design is to identify the business needs and to understand what the users do and what they require. It does not cover in any great detail the approach taken or the technologies usedr to build the solution. This is covered in the Logical and Physical design documents. This document should be written in a non-technical language that both customer and supplier could understand. The Conceptual, Logical, and Physical methodology is based upon Microsoft’s Framework Component Design Model.
3. Summary of Requirements
The basic requirements is to deliver a Sales Reporting tool which addresses the following:
4. Detailed Requirements
4.1 Stakeholders
Name |
Represents |
Role |
David Karlin |
Sage technology direction |
CTO and owner of the strategic vision in terms of the technical direction Sage will take with its products. |
Guy Letts |
SME |
Development Director for SME. |
Ian Corcoran (Yash Sarnaik, Andy French), Nick Voller |
Product Management |
To handle the commercial aspects surrounding the product. |
David Stokes |
Sage R&D |
Development management for the project. Project control. |
4.2 Requirements Capture Resources
4.2.1 Products
4.2.2 Internal People
4.2.3 External People and Miscellaneous resources
4.3 Detailed explanation of Summary Requirements
4.14.3.1 Remove casual copying and use of Sage UK Products Produce sales reports of very highHigh presentation qualityWhen persuading a customer to migrate from one Sage suite to another, the conversion of the data is not seen as a problem.
One of the key downsides with upgrading from one product to another is generally not all the data. Cosmetically the output from the reports have output from the reports has to be of the very best standards. The target audience could range anywhere from the rank and file of an organisation, up to the Managing Director of a large organisation. The most probable users will be people in a decision-making role (ie. Management).
can be converted. Thus a great deal of time is required to re-enter (manually or automatically) the same data that was available before. Most conversion processes when moving product with only cover the static master tables such as Customers, Suppliers, Stock, and Nominal Ledger codes.
With the proposed solution customers must be confident that virtually all-important data will be brought across, and the costs (in terms of time and money) of the data migration will be minimal.
Currently, Sage products are protected from use by an existing registration system that requires users to enter a serial number and activation key. The serial number allows installations to be tracked while the activation key determines the configuration for the product – the number of concurrent users, companies, etc. In addition SES licences each individual company with a SOP generated password as present (although this is planned for change to match the rest of the group).
The current system uses fixed activation keys for each recognised product installation. Therefore, not only can activation keys be exchanged between users, they are also widely known outside Sage allowing users to obtain a product and run it without registration.
This registration model and the practices of those that circumvent it is are believed to be costing Sage a significant amount of lost revenue.
4.21.2 Tie Allow high configuration of data selection, presentation, and formatting options It is a fast and easy process of bringing data from one package to another installations into specific computers and hence owners
The data used in the reports she be sourced from anywhere in the Accountancy system. The ability to specify "dimensions" is crucial. The report order, groupings, and rationalisation is are important.
The layout of the report has to be fully configurable. The aim would be to get it to Excel or Word standards.
With the aid of pre-built mappings and conversion rules it should be as near as possible an automatic process to get data from one system to another. The rules should include basic validation also, so that the information can be in a cleansed and consistent state on the new system.
At present there is nothing stopping users from duplicating Sage software from one machine to another. Firstly there is nothing tying any of the licences into the specific hardware on the machine (such as Network Card, Hard Disk ID etc). This means that an entire solution can be copied verbatim from one machine to another.
One other practice that is presently allowed by a number of the Sage UK support helpdesks is facilitating customers running multiple instances of the legally purchased product. The licence agreement allows a single instance of Sage product. Ie. A customer running a copy of his software at work and home is not allowed.
There are a number of "back-door" methods for licensing Sage product, or bypassing the licensing altogether. An example of this is the "chid" program for SES, where once obtained can licence any server product infinitum.
4.14.3.3 Eliminate the need for manual transcription of data from the ERP system
Once configured the ability to extract information from the finance system, and produce the report should be automatic. No, and require no manual intervention should be required in order to produce the report.
4.14.3.4 Allow the tool to work on generic data for any mainstream Sage UK product
The concept of a generic Data Dictionary would be employed for this project. What this actually means is that a superset data model is used to pipe in data from any Sage UK source. For example the Generic customer is capable of holding all the information defined in a Line 50, 100, or 200 Customer data record. By doing this reports can be generated based on the Generic model, thus reducing the time spent writing reports across the group’s products.
4.14.3.5 Work off an intermediate storage (a "superset" data warehouse) for the production of reports
As part of the method for implementing a generic data dictionary we require a central storage area (or Data Warehouse). The Data Warehouse comprises a Database such as SQL Server which Server, which sucks in data from the required data sources and makes the information available in a structured fashion. The data is periodically synchronised from the data sources (such as Line 50 / 100) to ensure the reporting data is fresh up to date enough for its purpose.
4.14.3.6 Ensure the tool can be used in the future as a foundation for a product wide reporting tool
Although it won’t be the case that this tool can be used for any reporting purpose across the anan Accountancy product, a number of the components need to be available for this future task. This means delivering the functionality in a modular and structured framework.
4.14.3.7 Ensure that the that the tool can be used by people who are not technically literate (ie. Do not understand Database terminology)
One of the key problems with all existing reporting products is that it requires really good technical skills to produce reports. This is because the person creating the report often has to do the work to get the data in the correct state so it can be reported on. This includes setting up the "dimensions" of the report.
This reporting tool has to be "simple" enough so that Salesmen (with no technical IT skills of note) can have to be able to get the information they require from out of the system. Although it may be agreed the most powerful reports will still need IT literate people who understand the data, it should not prevent basic users from extracting the information they require.
4.14.3.8 Via an "Excel" grid like mechanism people should be able to build as simple or as powerful reports as they wish without getting swamped by too much detail
A grid like mechanism will be made available for report configuration and configuration and report viewing. Very much like a standard spreadsheet style mechanism (such as Excel), in its basic form it will be simple and easy to use. More advanced and powerful features will be hidden from the casual user.
4.14.3.9 Integration with other packages like Word and Excel is essential
Excel is the base tool used to run virtually all companies. It is probably the most widely used piece of computer software in the business arena. Although an average Excel user may not know how to use the advanced features like creating Pivot tables, using, using the product would not be an issue to the vast majority of users.
This being the case it should be possible to use a suitable technology (OLE) to input / output to and from Excel and even Word.
4.14.3.10 The configuration of reports must be dynamic in that it should be possible to specify additional categories from that the accountancy system has no knowledge of
Besides the main and obvious categories (ie. Region/Salesmen/Product etc), it should be possible to specify additional categories, providing the information is available and it can be linked to the Sales information.
Obviously with additional "free-to-use" columns throughout the accountancy packages it is possible for users to use them to store additional information. It should be possible to users to stipulate these extra fields as categories in their reports. This will enable as flexible and as powerful of reporting as possible.
4.14.3.11 There should be an ability to make adjustment to grid cells to correct anomalies4.3 Static data, balances, transactions, and historic data should be brought across Provide a Registration solution that is practical for the mass market
The migration tool needs to cover the following data:
Basic financial data
This is the chart of accounts, together with outstanding balances.
Static data
Lists of customer accounts and supplier accounts, with details relating to contact addresses, credit control terms, and various other information.
Price book and discounting regimes
The stock master table (sometimes called "part master" or "item master" or "product list")
Outstanding transaction data
The most important area here is any open or part-complete sales orders and purchase orders.
An advanced option would be to deal correctly with any blanket orders with call-offs (also known as "contract purchases").
Transaction history
This involves the records of past purchases, sales, dispatches, payments, credits, journal entries and account movements generally.
An advanced system would also migrate the history of all stock movements.
Advanced financial data
This would include items such as the fixed asset register, and accruals and prepayments.
Manufacturing data
This would include bills of materials, and any data about labour content. It might also include open works orders.
An advanced system would include manufacturing history.
It is possible to deliver a system that is virtually impossible to duplicate or copy. However there are a number of drawbacks with such a solution. Firstly it would tedious for the customer to get a licence (as the licence key could be hundreds of characters in length in order to give unbreakable encryption). Secondly the performance of such a mechanism could be slow. Thirdly the more complex the solution, the more chance there is that it will be difficult to implement and support (ie. bugs).
The solution must be a compromise between practicality and security.
4.4 Users can use the process to cleanse and rationalize their data and remove anomalies. Deliver a generic coding solution so that "one size fits all" for all Sage UK products
Converting from one product to another is one of the few times available to review the existing data in a system and clean it up. This may be something fundamental like stock movements when tallied down add up to the in-stock figure, or as trivial as ensuring all the customer names used "ltd" rather than "limited". Examples of cleansing and rationalisation methods are:
Changing scheme or naming conventions
Data corruption
Matching movements/transactions against tallied totals stored in master tables
Combining accounts
Deleted old or stale data or tables
Validating rows within a system
Archiving
Exporting data to Excel for manual revision
Highlighting zero or negative balances
All records have valid currency or VAT codes
There is no reason why the cleansing functionality could not used in isolation, so customers could validate their existing data at perhaps year-end.
4.5 The uses of the tool should be controlled
With all systems there will be invalid data that has slipped through. For example if a typoe on an Invoice was meant for £1,000, but was entered as a million, or records were posted into the wrong financial ledger. This being the case it should be possible to define rules, or manually adjust these figures in order that the report produces sensible information.
It is critical that the changes made are recorded and listed at the end of the report. This will ensure that financial mis-accounting does not take place.
4.3.12 Preserve any formatting changes which have been applied to the Report output
The solution should have the ability to retain any formatting that has been applied to the report output. For example if the report is output vehicle is Excel, there should be a mechanism that any cosmetic formatting applied will not be lost when the report data is refreshed.
The system should have the following uses:
Upgrading from recognised other products (ie. Pegasus) to Sage products
Upgrading/Downgrading from other products (ie. SAP) to Sage products
Migrating from recognised one Sage product to another (ie. Line 100->Line 200)
Migrating from other Sage products to another (ie. Best->Line 500)
The following should be controlled (via licensing or other mechanism):
Upgrading from Sage product to a competitor product
Upgrading from any product to any product.
Downgrading from one Sage product to another
4.3.62 Technical Requirements
At present there are over a dozen licensing mechanisms that exist within the Sage UK products. The basic requirement for licensing is the same for all products in the group. Therefore from one code-base the solution must generically cover:
Products and versions
Max users counts (concurrent and payroll)
Modules
Companies
Hardware being used
4.5
As part of the solution it will help facilitate the capturing of CRM information by sage.com
As part of securing up licensing of the products, the solution can also provide a valuable CRM function. With accurate CRM information customers can be targeted with the right sales campaign. It also saves time, money, and embarrassment by ensuring the wrong marketing drives do not end up with the wrong customer (ie. A Line 100 upgrade campaign for someone running Line 500)
4.6
The end solution will be implement-able by either a help desk (ie. Phone) or via the Web (sage.com)
PA part of a latter phase should include automatic licensing should be included.. However for this first phase, the only two methods of solution delivery will be via phone (help/support desk), and web (hosted sage.com website).
(FURPS)
F
unctionality, Usability, Reliability, Performance, Supportability.4.64.32.1 Functionality
Functional requirements may include:
Feature |
Reference |
Est. resource |
Reviewer thoughts (I)n, (O)ut, (F)uture / Review at a later date |
Conclusion (I)n,(O)ut, (F)uture |
FUNCTIONALITY |
|
|
|
|
|
|
|
|
|
Compatibility |
|
|
|
|
Support for Line 50,100,200,500 products |
DJS 9/9/02 |
Medium |
I (DJS), I (CP) |
|
Support for other Non Sage UK products that have an ODBC capability (resource estimate excludes the work required for the mappings) |
DJS 29/12/02 |
Medium |
F (DJS), F (CP) |
|
Support ProvideX Database Support |
LM 30/9/02 |
Medium |
F (DJS) |
|
Support Microsoft MSDE (SQL Server) |
DJS 5/2/03 |
Low |
I (DJS) |
|
Support Microsoft Access |
DJS 5/2/03 |
Low |
I (DJS) |
|
|
|
|
|
|
General |
|
|
|
|
Reports definitions can be written to work for all products (although formatting maybe different for each of them) |
DJS 9/9/02 |
Low |
I (DJS), I (CP) |
|
Real time data access avoiding a Data Warehouse |
LM 30/9/02 |
V High |
O (DJS) |
|
Client / Server based solution (ie. Reporting is based on the server). This will enable reports to be run without hindering the client machine. |
DJS 27/2/03 |
Medium |
I (DJS) |
|
|
|
|
|
|
Performance |
|
|
|
|
Use of an "OLAP" cube for performance (intermediate storage that intelligently sorts and services information requests in an efficient manner). |
DJS 9/9/02 |
V High |
O (DJS), ? (CP) |
|
|
|
|
|
|
Data Selection & Transformation |
|
|
|
|
Selection of a range of records (eg. Where currency is GBP) |
DJS 9/9/02 |
Low |
I (DJS), I (CP) |
|
Wildcard searches (eg. Where postcode is RG12*) |
DJS 9/9/02 |
Medium |
F (DJS), I (CP) |
|
Column sort order. The ability to ensure data comes out in the required order. |
DJS 9/9/02 |
Low |
I (DJS), I (CP) |
|
Multiple tables. Enabling the reporting engine to report of more than one table at once via the use of joins between those data objects. This is a fundamental requirement for a generic reporting engine. |
DJS 9/9/02 |
V High |
F (DJS), I (CP) |
|
Ignoring NULL, zeroes, or small values (eg. < .01p) |
DJS 9/9/02 GL 19/2/03 |
Low |
I (DJS), I (CP) |
|
Additional "calculation" columns. Ability for users to create their own calculations based on existing data and rules. |
DJS 9/9/02 |
High |
I (DJS), I (CP) |
|
Calculation fields should be able to use other calculation fields, such as sub-totals and totals |
AL 19/2/03 |
Medium |
I (AL) |
|
Interpretation of values. Eg. 001 is displayed as Fixed Assets. There will cater for users when they have employed their own coding structures within standard fields. An example of this is the coding of Stock Codes in the SES accounts department. |
DJS 9/9/02 |
Low |
I (DJS), I (CP) |
|
Handling different sized data chunks, and frequency of occurrences in that range Eg. 100K+, 75-100K, <75K |
DJS 9/9/02 |
V High |
F (DJS), I/F (CP) |
|
Conditions on data (if, <>, else not null)). Eg. Only show if > 100K, or show in Red if negative |
DJS 9/9/02 |
Medium |
I (DJS), I (CP) |
|
Apply a specified rounding method on the values, in order to make a report balance |
LM 30/9/02 |
Low |
F (DJS) |
|
|
|
|
|
|
Reporting sections |
|
|
|
|
Report Header, Footer support |
DJS 9/9/02 |
Low |
I (DJS), I (CP) |
|
Page Header, Footer support |
DJS 9/9/02 |
Low |
I (DJS), I (CP) |
|
Detail lines (multiple) |
DJS 9/9/02 AL 19/2/03 |
Medium |
I (DJS), I (CP), I (AL) |
|
Multiple Detail lines based on values or rules Eg. 100K+, 75-100K, <75K |
DJS 9/9/02 |
High |
F (DJS), F (CP) |
|
Groupings (each with own Header / Footer). Eg. Group by Customer, by Region, by Sales |
DJS 9/9/02 |
V High |
I (DJS), I (CP) |
|
The ability to set up and prompt for runtime parameters (ie. Range of dates / products) |
DJS 11/2/03 |
Medium |
I (DJS) |
|
|
|
|
|
|
Pre-calculated columns and constants |
|
|
|
|
Hours, Days, Weeks, Months, Years |
DJS 9/9/02 |
Low |
I (DJS), I (CP) |
|
Financial periods, quarters, half-years and years. Next / Previous and ranges for any of them. Month to Date / Year to Date. |
DJS 9/9/02 |
High |
I (DJS), I (CP) |
|
Budget, Actual, variance, % (out of total) figures |
DJS 9/9/02 |
Medium |
I (DJS), I (CP) |
|
Work across multiple data-sets (ie. This years and last years) of the same format and financial structure |
DJS 9/9/02 |
High |
I (DJS), I (CP) |
|
Handing different data sets with different financial structures (consolidation), including from potentially different products |
RD 25/1/03 |
V High |
F (DJS), F (CP), I (AL) |
|
Working days gone / remaining / total in a month or year / day of month |
DJS 9/9/02 |
Low |
I (DJS), I (CP) |
|
Title, Comments, Filename, Author, Date, Company Name |
DJS 9/9/02 |
Low |
I (DJS), I (CP) |
|
Row and Page numbering |
DJS 9/9/02 |
Low |
I (DJS), I (CP) |
|
Currencies and conversions to base Currency |
DJS 9/9/02 |
High |
I (DJS), I (CP) |
|
"Lookups" should be possible into other tables eg. Currency spot rates or item descriptions |
DJS 9/9/02 |
Medium |
I (DJS), I (CP) |
|
Sales by Product |
DJS 26/1/02 |
Low |
I (DJS), I (CP) |
|
Sales by Product Group |
DJS 26/1/02 |
Low |
I (DJS), I (CP) |
|
Sales by Stock Code Volumes |
DJS 26/1/02 |
Low |
I (DJS), I (CP) |
|
Sales by Stock Code Price |
DJS 26/1/02 |
Low |
I (DJS), I (CP) |
|
Sales by Customer |
DJS 26/1/02 |
Low |
I (DJS), I (CP) |
|
Sales by Sales Order |
DJS 26/1/02 |
Low |
I (DJS), I (CP) |
|
Sales by Invoiced / On-order / "In the bag" |
DJS 9/9/02 |
Medium |
I (DJS), I (CP) |
|
Sales by Region |
DJS 26/1/02 |
Low |
I (DJS), I (CP) |
|
Sales by Department |
DJS 26/1/02 |
Low |
I (DJS), I (CP) |
|
Sales by Cost Centre |
DJS 26/1/02 |
Low |
I (DJS), I (CP) |
|
Sales by Salesmen |
DJS 26/1/02 |
Low |
I (DJS), I (CP) |
|
Sales by Account Code |
DJS 26/1/02 |
Low |
I (DJS), I (CP) |
|
Sales by Customer Post Code |
DJS 26/1/02 |
Low |
I (DJS), I (CP) |
|
Sales by Customer Type |
DJS 26/1/02 |
Low |
I (DJS), I (CP) |
|
Sales by Account Manager |
DJS 26/1/02 |
Low |
I (DJS), I (CP) |
|
Sales by Currency |
DJS 26/1/02 |
Low |
I (DJS), I (CP) |
|
Sales by Price Band |
DJS 26/1/02 |
Low |
I (DJS), I (CP) |
|
Cost of Sale details |
IS 27/2/03 |
Medium |
F (DJS) |
|
|
|
|
|
|
Business Intelligence |
|
|
|
|
Trend identification and analysis for standard deviation from budgets and forecast |
RD 9/9/02 |
Medium |
? (DJS), F (CP) |
|
Regressive analysis |
RD 9/9/02 |
Medium |
? (DJS), F (CP) |
|
Support multiple moving averages, and weighted moving averages. |
RD 9/9/02 |
Medium |
? (DJS), F (CP) |
|
Adaptive filtering |
RD 9/9/02 |
Medium |
? (DJS), F (CP) |
|
Analysis of time series and expected values. |
RD 9/9/02 |
Medium |
? (DJS), F (CP) |
|
Variance from mean |
RD 9/9/02 |
Medium |
? (DJS), F (CP) |
|
Forecast probabilities |
RD 9/9/02 |
Medium |
? (DJS), F (CP) |
|
Deterministic planning. |
RD 9/9/02 |
Medium |
? (DJS), F (CP) |
|
What if and risk analysis |
RD 9/9/02 |
Medium |
? (DJS), F (CP) |
|
|
|
|
|
|
Data Join types available |
|
|
|
|
Inner join functionality |
DJS 9/9/02 |
High |
F (DJS), I (CP) |
|
Outer join functionality |
DJS 9/9/02 |
High |
F (DJS), I (CP) |
|
Cartesian Product functionality |
DJS 9/9/02 |
High |
F (DJS), I (CP) |
|
|
|
|
|
|
Errors handling |
|
|
|
|
To search for anomalies in the data Highlight them to the users. |
DJS 9/9/02 |
High |
F (DJS), F (CP) |
|
Ability to dynamically adjust anomalies for the sake of a report (this would also involve providing audit ability for the modifications) |
DJS 9/9/02 |
High |
F (DJS), F (CP), O (AL) |
|
|
|
|
|
|
Formatting |
|
|
|
|
Base Reporting generating application |
DJS 25/1/03 |
V High |
I (DJS), I (CP) |
|
Alignment of fields |
DJS 9/9/02 |
Low |
I (DJS), I (CP) |
|
Fonts (Bold, Italics, Foreground and Background Colours, Vertical Text?) |
DJS 9/9/02 |
Low |
I (DJS), I (CP) |
|
Boxes |
DJS 9/9/02 |
Medium |
I (DJS), I (CP) |
|
Excel cell style number formatting (decimal places, numbers, dates, 000’s etc) |
DJS 9/9/02 |
Medium |
I (DJS), I (CP) |
|
Advanced VB scripting formatting (Assignment, sub-strings etc) |
DJS 9/9/02 |
Medium |
F (DJS), F (CP) |
|
Excel grid style formatting and editing (drag/drop, column widths, ruler, tool tips) |
DJS 9/9/02 |
High |
I (DJS), I (CP) |
|
Bitmap support |
DJS 25/1/03 |
Low |
I (DJS), I (CP) |
|
|
|
|
|
|
Output |
|
|
|
|
Drill down functionality. Ie Explode out a column to see the calculations |
DJS 9/9/02 |
V High |
I (DJS), I (CP) |
|
Integrate into Excel (eg. Via OLE) |
DJS 9/9/02 |
High |
I (DJS), I (CP) |
|
Automatically email reports. Impress solutions asked if we could add functionality to email a group of customers etc based on fields in a Line 50/100 system (ie. The e contacts table). This could also be done by rules. |
DJS 9/9/02 |
Medium |
IF (DJS), I/F (CP) |
|
Publish reports to enable sharing. Solution would involve some Web service integration. |
DJS 9/9/02 |
High |
FI (DJS), F (CP) |
|
Support html web output |
DJS 9/9/02 |
V High |
I (DJS), I (CP) |
|
Support Print output |
DJS 9/9/02 |
V High |
I (DJS), I (CP) |
|
XML Output support |
DJS26/1/03 |
Medium |
F (DJS), F (CP) |
|
XBRL support (new internal standard for data structures) |
LM 30/9/02 |
High |
F (DJS), F (CP) |
|
PDF format from the HTML output for good printed web reports |
DJS 6/3/03 |
Medium |
F (DJS) |
|
OLAP cube (.CUB) format for use as an import for Excel pivot tables |
DJS 6/3/03 |
High |
F (DJS) |
|
Print preview |
DJS 9/9/02 |
Low |
I (DJS), I (CP) |
|
Set print areas |
DJS 9/9/02 |
Low |
I (DJS), I (CP) |
|
Set print to fit on certain size paper (margins etc) |
DJS 9/9/02 |
Low |
I (DJS), I (CP) |
|
Support standard windows printers |
DJS 9/9/02 |
Low |
I (DJS), I (CP) |
|
Ticker-tape report output. As per programs like the BBC ticker tape, give the ability to dynamically see report summary information in the same format. |
DJS 9/9/02 |
High |
F (DJS), F (CP) |
|
Different report outputs depending on the target product. Even though report content may be the same, depending on what product is running to actual cosmetics of the reports are different. |
DJS 9/9/02 |
Medium |
I (DJS), I (CP) |
|
Allow multiple reports to be viewed at once |
LM 30/9/02 |
Medium |
F (DJS) |
|
Ability to output data into the Generic or host product’s Database |
DJS 11/2/03 |
High |
F (DJS) |
|
|
|
|
|
|
Extra Functionality |
|
|
|
|
Scheduling report engine. This would be used to schedule the running of reports AND the updating of the Data Warehouse. |
DJS 9/9/02 |
High |
FI (DJS), F (CP) |
|
All functionality should be re-usable for the wider-scale reporting solution. Ie. A modular design to ensure the solution is produced that will neatly fix within the framework of the generic reporting tool. |
DJS 9/9/02 |
High |
I (DJS), I (CP) |
|
Basic security. User access to reports and tables |
DJS 9/9/02 |
Medium |
I (DJS), I (CP) |
|
Advanced Security model. Fully flexible ability to prevent access down to field level in individual rows. Eg. Salesmen’s targets / Budgets / Payroll |
CP 25/1/03 |
High |
F (DJS), F (CP) |
|
Ability to refresh reports without losing associated Excel/Word formatting |
DJS 9/9/02 |
High |
? (DJS), ? (CP) |
|
Run in silent or interactive mode or from the command line |
DJS 9/9/02 |
Medium |
F (DJS), I/F (CP) |
|
Graphical representation of data |
RD 25/1/03 |
V High |
F (DJS), F (CP) |
|
Providing base templates and example reports |
RD 25/1/03 |
Medium |
I (DJS), I (CP) |
|
Synchronising Engine. The ability to synchronise the live Application data with the Data Warehouse so that only rows that have changed would be updated. This would also include only updating tables that were needed in the specific reports being run on a particular system. |
DS 25/1/03 |
V High |
F? (DJS), F (CP) |
|
Offer an SDK API toolkit for the Reporting Tool |
LM 30/9/02 |
High |
O (DJS) |
|
Include Spreadsheet data in reports |
LM 30/9/02 |
Medium |
F (DJS) |
|
Output report into a text file (ie. Not XML) |
LM 30/9/02 |
Medium |
O (DJS) |
|
Create Account sets |
LM 30/9/02 |
Medium |
O (DJS) |
|
Support multilingual languages (ie. Double byte character sets) |
LM 30/9/02 |
Medium |
F (DJS) |
|
Allow drilldowns into applications |
LM 30/9/02 |
High |
F (DJS) |
|
Drag and Drop restructure of business hierarchies (ie what if analysis). Also ability to slice and dice data to resegment chart of accounts. |
LM 30/9/02 |
High? |
O? (DJS) |
|
Key to name abbreviations:
CP: Central Projects
DJS: Dave Stokes,
GL: Guy Letts,
DK David Karlin.
LM: Lori Maloof (Best Software)
AL: Alistair Leadbetter
The resource estimates at this stage are based on experience and gut feeling. The value is based on the time to design, code, test, and implement the item. The estimates will be revised as the Logical and Physical design work is completed. As a guide resource estimates are as follows:
Low: 1 day
Medium: 5 days
High: 20 days
V High: 50 days
Throughout 2003 Central Projects resource available is estimated at 70 days / month for the project.
Must allow upgrade between all possible Sage UK products
4.64.23.2 Usability
Usability requirements may include such subcategories as:
4.64.23.3 Reliability
Reliability requirements to be considered are:
4.64.32.4 Performance
A performance requirement imposes conditions on functional requirements. For example, for a given action, it may specify performance parameters for:
4.64.32.5 Supportability
Supportability requirements may include:
Stop migration of table if error/warning is produced
4.4 Key Requirement Decisions
4.4.1 Can we rely upon a Data Warehouse or is there an immediate requirement to work off the live data?
4.4.2 For the initial release can we use Excel as the output / formatting engine?
4.4.3 Does the solutions have to work with Microsoft Access?
4.5 Triple Constraints Are
All projects are bounded by the triple constraints of time, budget, and quality. It is important to identify their order of importance, along with noting any trade-offs that would need to take place between them. The constraints are rated as follows:
Driver: Driving force of the project. This must be achieved at all cost or the project is a failure.
Middle Constraint: Second in order of importance.
Weak Constraint: The constraint we will take from first to help the driver if/when it gets into trouble.
4.51 Driver: Quality
4.52 Middle Constraint: Time
4.53 Weak Constraint: Budget
5. Conceptual Solution
5.1 Overview
The two dynamic components that using poling (one way or the other) are the Scheduler and Synchronisation parts. The Synchronisation part ensures that the data is kept up to date in accordance with how fresh or stale the customer wants their data to be requirement is. The scheduler is responsible for kicking off reports at the desired time.
Data preparation is done in several stages. Firstly the Transformation components sucks the data from the desired accountancy system and transforms the data into a generic superset structure which can house the format of the data being send to it. From the Generic database data is pulled out (pending the security checks to ensure only the right people have access to the data) into the "OLAP cube". This is the engine that organises the data into the right "buckets" of the same data (ie. Sales of red widgets in the UK during August) basically like a postal sorting office. It ensures all the data items are placed in the correct "pigeon hole" when the report actually needs the data. The primary reason for doing this is speed.
When the scheduler kicks off a report the Report Generator engine will produce the raw report based on the data required. It will pull all the information it requires from the "OLAP cube" (calculated financial information etc), and the Generic database (static and simple data).
The raw report can then have the required styling applied to it to produce the end report. The end report is then made available to be printed, or exposed made available for publishing on the web.
The solution is a two-tier solution, which treats the end-user’s PC systems as a single tier (whether they have separate clients and servers or not) with a central licence-processing tier working in Sage’s environment.
The Enforced Registration Service system is responsible for generating Enabling Keys and managing interaction with users over the automated channel. Sage Internal Systems (IS) are responsible for managing the manual interfaces, licence details and any supporting applications and databases. Access to Sage IS’ applications or data from the Licensing Application will be through a "CRM Application" using an interactive messaging protocol, and vice versa. No file transfer processes will be used.
Licensee installation (can be at an agent’s site) comprises at least one server and zero or more client PCs. For many smaller customers, the server and client is the same computer and the software will manage this appropriately.
Upon invocation, the utility will have access to the product Data Dictionary that outlines what products he can converted from and to, and also which tables and columns it can deal with.
Kicking off a new "Project Creation wizard", the user will select which product, tables they wish to convert. Next the location of the old data will be prompted for. This will be in the form of using an ODBC driver entry. A standard or bespoke set of build rules can be applied at this point that will rationalise the data when required to do so.
All the above information will be saved to a "project" file, so that configuration and cleansing operations are stored to re-runs of the conversions etc.
Once the "OK" button is pressed the data will be extracted from the old system and pulled into an intermediate database (ie. Microsoft Access Engine). The rules selected will be applied to that data, either modifying and correcting the data or just in read-only mode highlighting the potential errors.
The user at this point they can either apply more rules, modify the data manually, or reject it all together.
Once they are satisfied with the data it can be exported via a different ODBC entry to the new system. The rules and changes applied are stored so that subsequent conversions can also use the previously defined modifications.
The Data Dictionary definitions, which contains the data description and rules, is critical to the quality of the conversions. As part of Data Dictionary project schemas and editing tools will be available for maintaining the mappings and the rules.
5.2 Scope, Stakeholders, roles and responsibilities:
Stakeholders (to be confirmed)
Name |
Represents |
John Huggins |
Steve Leggetter and Sage IS |
5.3 Components
5.3.1 Client
When the product is registered for the first time, the user will need to either contact the helpdesk or register through the web. The information they need to register is their customer number, and the local PC details (ie. The machine from which they plan to run the product on).
The information is generated using a new program supplied by the registration solution, or the program is embedded in the application (ie. A function API library or DLL) that the user is trying to register. This program grabs machine specific information (ie. Hard Disk, Network card etc), and then creates a registration key (ie. 4324-4532-5432-6432-6535-5435).
The registration key and customer ID can now be supplied to the helpdesk or web site. The customer will then be supplied with an enabling or activation key, which is in a similar format to the key they supplied. This key can then be used to register the product.
At any time the local Sage application can check whether the system is correctly licensed by again calling from the supplied ER functions. These functions return the licence details supplied and also validate that the licence is actually for the machine the product is running on. For items such as max concurrent users, the functions will only return what the product is licensed for. It will be up to the local Sage program to compare to the currently active users, and take appropriate actions.
If the hardware changes enough, the licence expires, or anything underhand goes on, the licence will become null and void, so forcing the end user to register the product again.
The above work will need to be carried out by the ER system and the local Sage product.
5.3.2 Sage.com (+Firewall), CRM App (SalesLogix?), CRM Info and Helpdesk.
The role of the sage.com hosting pages is to accept the users details (customer id and client’s registration key), validate them via the CRM system, request additional CRM information, ask the Licensing Registration application for a enabling key, and then return it to the client, storing the information as it does so.
The sage.com system is the central component of the solution. It will access and update the CRM data via the SalesLogix APIs. The role of Sage Enterprise may be redundant.
Sage.com will call the licensing functions of the ER system by an agreed web ASP/API interface.
The role of the helpdesk, just adds an extra layer of communication to the process. The registration process will still come through the sage.com registration pages (be itn via Internet or Intranet).
The work will need carrying out by IS (Web, IT services, Support etc)
5.3.3 Enforced Registration Application
The ER system will take the client registration information, the customer ID, and the CRM information (ie. Max-concurrent users, modules etc), and then create an encoded enabling key. This can then be stored by the CRM system before returning to the customer.
It is important for the CRM system to store this data for future reference, validation, and marketing purposes.
The actual encryption methods employed by the solution are deliberately not documented here for security reasons. The Physical design document will cover the process involved in the encryption and key exchange.
5.42 Summary Use Cases and Testing ScenariosThe typical usage scenarios
Software and Hardware testing combinations is found in the Logical Design
Fulfil Sage Newcastle Reporting requirements
Upgrading from Instant accounting to Tas Books [actor:customer: customer]
5.4.2 Internet registration
Ian types in the Enabling key value into his product, and his Line 50 is ready to run.
6. Assumptions, dependencies, and constraints/limitations and Areas not covered
General
The system will cope with staggered, or same-time (ie. April Payroll) licensing. Avoiding licence issues around Payroll year-end would be welcomed
The licensing of individual product companies (ie. SES’s companies) will not be covered by this solution. Ie. The ER system licensing each instance of the product on a machine. Andy Birch and Gavin May have devised a licensing model that no longer means the individual licensing of each company.
Time expiry will only be supported in phase I through the ER system
The Start and end date for licences are stored (in month granularity)
There will be no "back doors" to the solution.
The system must cope with all present licensing and be future-proof to a sensible level.
The customer code will be an 8 digit number (giving 100M customer IDs)
The maximum licence expiry would presently be 20 years.
Solution is Sage UK only (geographically UK & Ireland) in phase I (ie. we assume that both the Client and Sage.com are running with the same date)
The solution must cope with the software licence model. This includes:
Yearly licences for products that can no longer be used (except for reporting purposes) unless they are renewed.
Click-charges where the product performs a dedicated single task (such as £x per P11d produced). This would be done via the local app. via extended licensing information being passed.
Compulsory purchase of SageCover. Solution as above.
Hardware and Software
Hardware
Sage UK Products
Local UK products will must be able to support WIN32 / COM API function calls (ie. C or VB)
Frequency of the licensing checking calls is down to the calling app. Therefore the ER system is only as strong as how the local application actually enforces the solution when its told that the licence is no longer valid.
The local application could choose itself to invalidate the licence based on other criteria (keystrokes, transactions etc).
The machine where the product is installed on must be available to ensure all other client machines can access the product. This is required in order to prevent copying to other machines. Client machines will need to know the name/location of the main machine. The solution requires the "owner" PC to access periodically to validate the licence. More than one instance of the same product is allowed on a system, but it can’t be installed in the same directory.
Demonstration systems (ie. A free 30 day CD on Computer-Shopper), may or may not use the ER system. The choice will be down to the Sage UK product, and also whether the licences are one off or can be used again (if going through the ER system, the CRM have validate this)
A full test harness, software SDK, and training will be provided to Sage UK companies to aid with implementation.
The system does not cater for the SES licensing model of licensing each company. That will continue as it currently does where SOP will supply each company licence, until the new SES licensing becomes operational. The ER of the site though will still be mandatory.
Sage.com / CRM system
ER Specifics
Legal
The Future
7. Glossary
Item |
Meaning |
Explanation |
DDCRM |
Data DictionaryCustomer Relationship Management |
The definition for application data structure, such as the Sales Customer table.System for storing and maintaining all customer related information |
VbsSES |
Visual Basic ScriptSage Enterprise Solutions |
An embedded programming language basic on Visual basic. |
FunctoidLAN |
Local Area Network |
A Microsoft term in its Biztalk product term for describing functions. Similar to Excel macros but utilise Visual Basic Script.Short range physical network for connecting machines |
ODBCASP |
Application Service Provider Active Server PagesOpen DataBase Connectivity |
A recognised standard for Database interfaces. Most storage system like Excel, SQL Server have ODBC interfaces so that developers only need to write for the ODBC interface and not worry about the underlying storage system.Hosting programs on behalf of someone else A web programming interface |
. CSVAPI |
Comma Separated VariablesApPplication Programming Interface |
Import file standard when all fields are separated by a ‘,’, and then a "new line" at the end of each line.A published programming interface that are is specially made available for being called externally from the core application. |
SQLDLL |
SDynamic Link Librarytructured Query Language |
English style language for communicating with storage systems. ODBC supports the SQL language.Microsoft runtime function library |
WIN32 |
DimensionNA |
A report variant such as a product, region, time period, salesperson.A recognised runtime standard that solutions can be coded to (ie. 32bit programs). |
.NET |
Data WarehouseMicrosoft programming environment |
A consolidation storage area for holding data from a number of different sources. Doing this enables easier querying of the data, because it has all been grouped together correctly.The latest Microsoft programming environment |
OLEC# |
Object Linking and Embedding####NA |
Is a feature of Microsoft Windows, which enables one application to load and send messages to any application, registered with the operating system as an OLE class or server.New Microsoft programming language based upon the .NET framework |
OLAPSOP |
On-Line Analytical Processing####Sales Order Processing |
Is a category of software technology that enables analysts, managers and executives to gain insight into data through fast, consistent, interactive access to a wide variety of possible views of information that has been transformed from raw data to reflect the real dimensionality of the enterprise as understood by the user.Department for dealing with Orders/Invoices etc |
SMEBIOS |
|
Small to Medium sized business that is traditionally the Instant / Line 50 / Line 100 market place.Battery packed area of PCs that store the current date and time etc |
CTOIS |
Chief Technology OfficerInternal Systems |
|
Data MartER |
Enforced Registration |
A type of data warehouse designed primarily toaddress a specific function or department's needs, as opposed to a data warehouse, which is traditionally meant to address the needs of the organisation from an enterprise perspective. In addition, a data mart often uses aggregation or summarisation of the data to enhance query performance. However, it is important to maintain the ability to access the underlying base data to enable drill-down analysis as necessary. Term for the proposed licensing solution |
|
PERT Analysis |
An estimation method. ((1 x optimistic amount of time to complete the item) + (4 x The most likely time) + (1 x the worst time)) / 6 |
* Please refer to the
Central Projects generic Glossary, which covers the main generic terms.