TABLE OF CONTENTS
1 INTRODUCTION 7
1.1 How this document is organized 7
1.2 Purpose 7
1.3 Definitions, Acronyms and Abbreviations 7
1.4 Referenced Documents 8
2 ARCHITECTURE DESIGN 9
2.1 CRM Overview 9
2.1.1 External/Internal interfaces 9
2.1.2 Constraints and assumptions 9
2.1.3 Transaction management 10
2.1.4 Connection pooling 10
2.1.5 The .NET Framework 11
2.2 CRM System Architecture 12
2.3 Module Hierarchy 17
2.3.1 CRM Modules 17
2.4 Logical View 17
2.4.1 UI Package 18
2.4.2 BO Package 18
2.4.3 DAO Package 18
2.4.4 Common Package 19
2.4.5 Controls Package 19
2.4.6 System Package 19
2.5 Deployment 19
2.5.1 CRM Side 19
2.5.2 Other Sides 19
2.6 Hardware and Software requirement 19
2.6.1 Handheld Device 19
2.6.2 Software 20
3 DETAILED DESIGN 20
3.1 Detailed Design Methodology 20
3.2 Detailed Design Overview 20
3.3 Use Cases View 22
3.4 Packages 22
3.4.1 DAO Package 22
3.4.2 Business Object Package 24
3.4.3 UI Package 25
3.4.4 Common Package 26
3.4.5 Controls Package 27
3.4.6 System Package 28
3.5 Exception Handling and Logging 28
3.5.1 Exception Handling 28
3.5.2 Logger 29
3.6 Diagrams 30
3.6.1 Logon 30
3.6.2 Route Management 31
3.6.3 Download 33
3.6.4 Import Data 35
3.6.5 Totals 36
3.6.6 Setup 37
3.6.7 Beginning of Day 39
3.6.8 Loads 41
3.6.9 Sales 44
3.7 Database 47
3.7.1 Relationship Diagram 47
3.7.2 CommProfiles table 47
3.7.3 Routes table 47
3.7.4 AppSettings table 48
3.7.5 SecurityCodes table 49
3.7.6 Loads table 50
3.7.7 LoadDetails table 50
3.7.8 LiquorLicenses table 51
3.7.9 Messages table 51
3.7.10 Customers table 51
3.7.11 Surveys table 52
3.7.12 LookUp table 52
3.7.13 Vending table 52
3.7.14 DailyInfo table 52
3.7.15 Products table 53
3.7.16 Expenses table 53
3.7.17 RouteStop table 53
3.7.18 Orders table 54
54 trang |
Chia sẻ: maiphuongdc | Lượt xem: 1741 | Lượt tải: 0
Bạn đang xem trước 20 trang tài liệu Đề tài Customer relation managerment software architecture and detailed design, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
Framework does not take the lowest-common denominator approach used by other device programming platforms. Developers can get broad portability and reusability by writing to the common programming model, but the .NET Framework is also designed to be extended with class libraries that expose features unique to a family of devices, or even unique to a particular device model. This approach allows developers to create the best possible application experience on each specific device, while reusing skills and code.
Enterprise-Class Features for More Capable Devices
The success of Microsoft Pocket PC devices is growing, in part, because they have the computing resources necessary to handle sophisticated business applications. The .NET Compact Framework takes advantage of the Pocket PC platform by providing enhanced frameworks that greatly simplify the process of developing enterprise applications on Pocket PC devices.
Robust Code, Secure Execution
The .NET Compact Framework offers a robust and secure environment for running client-side code. The managed code model supported by the .NET Compact Framework increases the reliability of code, thus reducing software defects. The managed code execution engine ensures that an ill-behaved application will not be able to "crash" the device. At the same time, the evidence-based security model built into the .NET Compact Framework ensures that malicious code will not be allowed to gain access to secure system resources. The security model also enables software updates to be delivered over the wireless network in a secure way, decreasing the possibility of a costly device recall.
Great Offline Application Support
With secure client-side code, the .NET Compact Framework enables responsive applications that can be used offline. This allows a smooth execution despite any intermittent connectivity problems that might occur when accessing the network. The developer can choose the right mix of client-side and server-side programming to deliver a rich and always interactive application.
Reduced Cost of Development Creates New Opportunities
This new ease of development provided by the .NET Compact Framework will lead to the creation of a broad new range of applications and services that will help manufacturers win greater market acceptance for their mobile devices and create new opportunities for developers. Many businesses that were unable to afford the cost or special developer training necessary for mobile development will be able to develop new mobile applications much more efficiently, which in turn can help lower their costs of doing business, and increase their market opportunities.
CRM System Architecture
The architecture of CRM system will be designed to illustrate:
Transaction Data exchange between Insight host system and CRM machine
Architecture in CRM machine
From above information and flow constraints:
CRM client program is built upon .NET Framework 1.1
The communication via network FTP
Transaction management mechanism is ADO.NET
We provide the architecture of CRM system as follow:
CRM system architecture
Presentation layer:
Purpose of this layer is for user-interaction. In CRM system, Windows-based GUI application will be used for most business processes. Built upon System.Windows.Form package from .NET Framework, the interface is used for inputting complex data and displaying complex views. This layer will be containing some business actions that manual data in local database.
Business layer:
The Business layer manages all internal business logic. It will receive data\request from Presentation, process necessary business logic, access or update data from\to local DB on CRM Application.
Data layer:
This layer includes storage database, data access components and data conversion sub system
Data access component: ADO.NET (CRUD Methods – Create – Read – Update – Delete and orther methods) – Data access logic components retrieve data from database and save entity data back to the database.Data Access Logic Components also contain any business logic needed to achieve data – related operations.
Business Entities components: Data is used to represent real world business entities, such as products or order.there are numerous ways to represent these business entities in your application – for example , XML or DataSets or custom object – oriented classes – depending on the physical and logical design constraints of the application.
CRM MVC model
CRM System Logical Architeture
The CRM System was built exactly to resolve problem dispersion of Business unit,However database Store require common managerment.For this reason,we have been combined CRM Architeture Application and XML Web Service base on .NET Framework follow Multi tier Architeture and MVC model is sensible.
This Model is principle for CRM System.follow this Model:
Application will resolve business functions,user methods with unique presentation,application cover work under structure with user.
XML Web Service,supply Serviceses message- based that be called by Application through Business Layers tier of Application
CRM System has been built combine of Application components :
CRM Components Model
CRM clients Application(Windows forms) : supply Customer Relation Managerment and Business managerment tools,WareHouse for Enterprise.
CRM Admin Application(ASP.NET Forms):supply Administrator tools and synthetize data business Process of Enterprise.
CRM XML Web Service :supply Services about synchronous data,manipulate so far with data center
Module Hierarchy
CRM Modules
Below is the list of functions to be implemented in the application:
My Informations
My Customers
My Quote
My Order
My Tasks
My Products
My WareHouse
My Sales
My Inventory
Logical View
This session provide an overview of the logical packages of ROUTEPAD-PDA system. Details are described in Detailed Design session.
CRM Logical Package
UI Package
This package contains all business object classes which encapsulate business logic of the application. They will receive requests from Presentation layer, process business logic and call DAO layer to update/retrieve data to/from CRM Database.
BO Package
This package contains all business object classes which encapsulate business logic of the application. They will receive requests from Presentation layer, process business logic and call DAO layer to update/retrieve data to/from CRM Database.
DAO Package
This package contains classes which will be used for manipulating data on CMR Server.
Common Package
This package contains entity objects which are used for transferring data between internal modules in CRM program.
Controls Package
This package contains custom controls which are used for specific display purpose. These controls are consumed by UI components.
System Package
This package contains objects used for logging purpose and objects to download/upload files.
We will use Log4Net to log necessary information for later tracking. This library is open source, run very fast and reliable.
Deployment
CRM Side
Packages to be deployed on handheld device:
Package
Note
PC CRM Application
CRM application running on PC
CRM Database
SQL Server 2000 Service Pack 3
Other Sides
N/A
Hardware and Software requirement
Handheld Device
Configuration
Recommended
CPU
Intel Pentium IV
Memory
RAM 128 MB and ROM 64 MB
OS
Windows Server 2003,WinXP…
Software
Name
Purpose
.NET Framework v1.1
Development Framework
SQL Server 2000 Service Pack 3
Used for storing data on local CRM
Detailed Design
Detailed Design Methodology
In this detailed design document, UML is used as main methodology to illustrate the structure of ROUTEPAD-PDA application. Diagrams in this document are created in Visual Studio.NET 2005, Microsoft Visio 2003, and Rational Rose.
Detailed Design Overview
ROUTEPAD-PDA Architecture Overview
As described in Figure 4, PDA application will have three layers- Presentation Layer, Business Layer, Data Access Layer and Value Objects Common package.
Presentation Layer contains User Graphical Components, UI Process Components (Form Package).
User Graphical Components and UI Process Components build screens to interact with users. They show the information to the user or capture data or actions from the user to call business layer in order to update into database.
Business Layers contains all Business Object classes that will encapsulate business logic of the application. They will receive requests from Presentation layer, process business logic and call DAO layer to update/retrieve data to/from PDA Database.
Data Access layer contains classes which will be used for manipulating data on PDA machine and synchronize data between insight host and PDA Database
Value Objects classes are used to contain data for transferring between internal Modules/Layers in PDA application.
Use Cases View
ROUTEPAD-PDA Use Cases View
Packages
DAO Package
The base class of DAO package implements common methods to manipulate database. Derived classes can override those methods if necessary. Below is the specification of DAO base class:
DAO Class Diagram
No
Member Name
Require derived class to implement
Description
1
Conn
Connection used to connect to database
No
Method Name
Description
1
AddNew
If necessary
Adds a new record
2
Connect
No
Opens connection to database
3
Close
No
Close connection
4
Delete
If necessary
Delete a record
5
ReadAll
If necessary
Returns all records
6
ReadOne
If necessary
Reads one record base on identity value
7
Update
If necessary
Updates a record
Below is description of all classes in DAO package
No
Class Name
Description
1
CommProfileDAO
Encapsulates methods to interact with CommProfiles data table.
2
RoutesDAO
Encapsulates methods to interact with Routes data table.
3
LoadDAO
Encapsulates methods to interact with Loads data table.
4
AppSettingsDAO
Encapsulates methods to interact with AppSettings data table.
5
LiquorLicenseDAO
Encapsulates methods to interact with LiquorLicenses data table.
6
SecurityCodeDAO
Encapsulates methods to interact with SecurityCodes data table.
7
MessageDAO
Encapsulates methods to interact with Messages data table.
8
CustomerDAO
Encapsulates methods to interact with Customers data table.
9
SurveyDAO
Encapsulates methods to interact with Surveys data table.
10
LookupDAO
Encapsulates methods to interact with Lookup data table.
11
VendingDAO
Encapsulates methods to interact with Vending data table.
12
DailyInfoDAO
Encapsulates methods to interact with DailyInfo data table.
13
ProductDAO
Encapsulates methods to interact with Products data table.
14
ExpenseDAO
Encapsulates methods to interact with Expenses data table.
15
RouteStopDAO
Encapsulates methods to interact with RouteStop data table.
16
OrdersDAO
Encapsulates methods to interact with Orders data table.
Business Object Package
The following figure describes the class diagram of Business Objects package
Business Layer Class Diagram
No
Member Name
Require derived class to implement
Description
No
Method Name
Description
1
AddNew
If necessary
Adds a new record
2
Delete
If necessary
Delete a record
3
DeleteAll
If necessary
Delete all records
4
ReadAll
If necessary
Returns all records base on condition
5
ReadOne
If necessary
Reads one record base on identity value
6
Update
If necessary
Updates a record
7
Validate
Required
Validate data base on business logic
Below is description of Business Objects
No
Class Name
Description
1
CommProfileBO
Encapsulates business logic related to communication profile.
2
RoutesBO
Encapsulates business logic related to routes.
3
LoadBO
Encapsulates business logic related to load.
4
AppSettingsBO
Encapsulates business logic related to application settings.
5
LiquorLicenseBO
Encapsulates business logic related to liquor license.
6
SecurityCodeBO
Encapsulates business logic related to security code.
7
MessageBO
Encapsulates business logic related to message.
8
CustomerBO
Encapsulates business logic relates to customer.
9
SurveyBO
Encapsulates business logic relates to survey.
10
LookupBO
Encapsulates business logic relates to look up.
11
VendingBO
Encapsulates business logic relates to vending.
12
DailyInfoBO
Encapsulates business logic relates to daily information.
13
ProductBO
Encapsulates business logic relates to product.
14
ExpenseBO
Encapsulates business logic relates to expense.
15
RouteStopBO
Encapsulates business logic relates to route stop.
16
OrdersBO
Encapsulates business logic relates to order.
UI Package
The following figure describes the class diagram of UI package
Presentation Class Diagram
No
Member Name
Require derived class to implement
Description
1
previousForm
Stores the form which calls this form
2
PreviousForm
Property which encapsulates previousForm
No
Method Name
Description
1
ShowNextForm
If necessary
Shows a new form
2
ShowPreviousForm
If necessary
Returns to caller form
Common Package
Each class in this package, except base class, contains appropriate properties to represent the corresponding data table. Below is the specification of common base class:
Common Class Diagram
No
Member Name
Require derived class to implement
Description
No
Method Name
Description
1
GetIdentityName
Required
Returns identity column name
2
GetTableName
Required
Returns name of data table
3
Populate
Required
Maps values in a data row to properties
4
SetIdentityValue
Required
Sets value for identity property
Here is the list of classes derived from base class:
No
Class Name
Description
1
CommProfileVO
Represents a record of CommProfiles data table
2
RoutesVO
Represents a record of Routes data table
3
LoadVO
Represents a record of Load data table
4
AppSettingsVO
Represents a record of AppSettings data table
5
LiquorLicenseVO
Represents a record of LiquorLicense data table
6
SecurityCodeVO
Represents a record of SecurityCodes data table.
7
MessageVO
Represents a record of Messages data table.
8
CustomerVO
Represents a record of Customers data table.
9
SurveyVO
Represents a record of Surveys data table.
10
LookupVO
Represents a record of Lookup data table.
11
VendingVO
Represents a record of Vending data table.
12
DailyInfoVO
Represents a record of DailyInfo data table.
13
ProductVO
Represents a record of Product data table.
14
ExpenseVO
Represents a record of Expense data table.
15
RouteStopVO
Represents a record of RouteStop data table.
16
OrdersVO
Represents a record of Orders data table.
Controls Package
Controls Class Diagram
Below is the list of custom controls using in this application:
No
Class Name
Description
1
RPADSignatureCapture
Captures the signature of user on Pocket PC screen as a bitmap
2
RPADLabel
Can draw background with gradient color
3
RPADButton
Can display text on the left, right and center position
4
RPADImageButton
Can display image
5
RPADBorderPanel
Can display a 3D border around the panel
6
RPADTextBox
Can display a currency symbol at the beginning of the text
System Package
Refer to Error Handling and Logging
Exception Handling and Logging
Exception Handling
Data Access Layer
Exception handling flow for DAO objects
Business Logic Layer
Exception handling flow for BO objects
Presentation Layer
Exception handling flow for UI objects
Logger
Class Diagram
Logger Diagram
In the ROUTEPAD-PDA system, a third party component called Log4NET is used to trace business flows and log errors into a text file. All exceptions of the system will be logged.
Usage mechanism
The log messages of the system will be divided to five levels:
Info: Log a message with stack trace of Exception at INFO level. This log level is used to trace business flows of the system and help administrator/users to know track the flows and data during the PDA running.
Debug: Log a message with stack trace of Exception at DEBUG level. This messages are used for developers to debug the application during development phases
Warning: Log a message with stack trace of Exception at WARNING level.
Error: Log a message with stack trace of Exception at ERROR level.
Fatal: Log a message with stack trace of Exception at FATAL level.
Diagrams
Logon
Functional Overview
Security Codes may be established on the Insight host for each route for certain functions on the handheld. Before accessing a protected function, the user must enter security code for that function.
Activity Diagram
Logon Activity Diagram
Class Diagram
Logon Class Diagram
Route Management
Functional Overview
This function allows user to select, delete or add a route.
Activity Diagram
Route Management Activity Diagram
Class Diagram
Route Management Class Diagram
Download
Functional Overview
This function downloads text files from FTP server to handheld device. Then it calls Import Data function to import data in those files to database.
Activity Diagram
Download Data Activity Diagram
Class Diagram
Download Data Class Diagram
Import Data
Functional Overview
This function imports data contained in text files to database.
Activity Diagram
Import Data Activity Diagram
Class Diagram
Import Data Class Diagram
Totals
Functional Overview
This function displays product inventory base on orders recorded during the course of the day.
Activity Diagram
Totals Activity Diagram
Class Diagram
Totals Class Diagram
Setup
Functional Overview
Set Clock: Set the system date and time on the handheld device.
Route Info: Identify the handheld to the Insight system by entering the company, route, and salesman numbers.
App Settings: Control the way certain functions work in Pocket Routepad.
Comm. Config: Make entries to establish communications between the handheld and the Insight host system.
Activity Diagram
Setup Activity Diagram
Class Diagram
Setup Class Diagram
Beginning of Day
Functional Overview
This function allows user to change Activity date, view BOD messages, and set Starting Load.
Activity Diagram
BOD Activity Diagram
Class Diagram
BOD Class Diagram
Loads
Functional Overview
This function allows user to enter Load Adjustment or to view load reports.
Activity Diagram
Load Adjustment Activity Diagram
Load reports Activity Diagram
Class Diagram
Loads Class Diagram
Sales
New Customer
Functional Overview
This function allows user to add new customer.
Activity Diagram
New Customer Activity Diagram
Class Diagram
New Customer Class Diagram
Database
Relationship Diagram
Entity Relationship Diagram
CommProfiles table
This table contains communication profiles.
No
Column Name
Data Type
PK
Allow Null
Description
1
ProfileID
Int
Yes
No
Auto Increase
2
ProfileName
Nvarchar(255)
No
No
3
Username
Nvarchar(255)
No
No
4
Password
Nvarchar(255)
No
No
5
IPAddress
Nvarchar(255)
No
No
6
Port
Int
No
No
7
UploadDir
Nvarchar(255)
No
No
8
DownloadDir
Nvarchar(255)
No
No
Routes table
This table contains route information.
No
Column Name
Data Type
PK
Allow Null
Description
1
RouteNo
Int
Yes
No
Present an unique route number
2
CompanyNo
Int
No
No
Present an unique company number
3
RouteType
Int
No
No
Presale / Driver-Sale / None
4
SalemanNo
Nvarchar(255)
No
No
Present an unique salesman
5
AssistantNo
Nvarchar(255)
No
No
The employee to be credited with assisting the salesman in making the sale.
6
VehicleNo
Nvarchar(255)
No
No
The number of the truck from which the sale was made.
7
StartingOdometerNo
Nvarchar(255)
No
No
The odometer reading at the beginning of the day.
8
StartingInvoiceNo
Int
No
No
The identification number of the day’s first invoice. Each subsequent invoice will be incremented by one from this number.
AppSettings table
This table contains application settings.
No
Column Name
Data Type
PK
Allow Null
Description
1
CompanyNo
Int
No
No
Company associated with this route configuration
1 - 9
2
RouteNo
Int
Yes
No
Route #
1 - 999
3
AllowFreeProduct
Int
No
No
User may award free product manually to customers
0 = No; 1 = Yes
4
AllowPostVoid
Int
No
No
Allow user to void orders
0 = disallow; 1 = allow
5
DiscountGroupOverride
Int
No
No
The user can change the discount group associated with an order/ticket or detail item
0 = No; 1 = Yes
6
AllowNewCustomer
Int
No
No
User may create orders/tickets for customers not on the handheld
0 = disallow;
1 = allow;
2 = allow with added promos
7
DisplayBuildUpOnHand
Int
No
No
Allow or disallow the Build Up and On Hand fields to display in sales entry
0 = disallow; 1 = allow
8
DisplayScanField
Int
No
No
Allow or disallow the Scan field to display in sales entry
0 = disallow; 1 = allow
9
AlcoholicSales
Int
No
No
Allow or disallow the sale of any alcoholic products
0 = disallow; 1 = allow
10
IncludeCRVInPrice
Int
No
No
Include CRV amount in the product price
0 = CRV is separate;
1 = CRV is included in price
11
SignatureCapture
Int
No
No
Allow or disallow customers to enter their signatures confirming entries in the Sales function.
0 = disallow; 1 = allow
12
AllowDamagedReturn
Int
No
No
User may enter damaged returns for products.
0 = disallow; 1 = allow
13
ARBalanceOnInvoice
Int
No
No
Allow or disallow each customer’s accounts receivable balance to print on the invoice.
0 = No; 1 = Yes
14
NumberOfInvoicePrints
Int
No
No
Number of invoices you want to print (from 1 to 9) each time you record a sale.
15
BackupToStorageCard
Int
No
No
Allow or disallow sending a backup to a storage card.
0 = disallow; 1 = allow
16
BackupFolderPath
Nvarchar(255)
No
No
Defaults to the location on your handheld for the backup device.
17
ManualPrice
Int
No
No
Allow the user to change prices
0 = No changes;
1 = All Changes Allowed;
2 = Changes For Returns Only
18
LoadRequest
Int
No
No
Load request input option
0 = not allowed;
1 = enter total request;
2 = enter add on quantities
19
Log
Int
No
No
Number of days you want the log file to hold.
20
Level
Nvarchar(255)
No
No
This field is for future use.
21
BTPort
Nvarchar(255)
No
No
This is the port used for Bluetooth printing.
22
PrintDelay
Int
No
No
Number of seconds delay when switching from text to graphics mode to print the signature.
SecurityCodes table
This table contains security codes.
No
Column Name
Data Type
PK
Allow Null
Description
1
RouteNo
Int
Yes
No
Route number
2
AppSetting
Nvarchar(6)
No
No
Setup -> App. Setting
3
CommConfig
Nvarchar(6)
No
No
Setup -> Communication Configuration
4
StartingLoad
Nvarchar(6)
No
No
BOD -> Starting Load
5
LoadAdjustment
Nvarchar(6)
No
No
Load -> Load Adjustment
6
DiscountGroup
Nvarchar(6)
No
No
Sales -> Change discount group
7
OversellConfirm
Nvarchar(6)
No
No
Sales -> Oversell confirmation
8
RetailPrice
Nvarchar(6)
No
No
Sales -> Retail Price
9
ClearAllOrders
Nvarchar(6)
No
No
Order Management -> Clear All Orders
10
Settlement
Nvarchar(6)
No
No
Settlement
11
EndingInventory
Nvarchar(6)
No
No
Settlement -> Ending Inventory
12
LoadRequest
Nvarchar(6)
No
No
Settlement -> Ending Inventory -> Load Request
Loads table
This table is the load master table.
No
Column Name
Data Type
PK
Allow Null
Description
1
LoadID
Int
Yes
No
An unique Load number
2
LoadType
Int
No
No
StartingLoad / Load Adjustment/ Ending Load
3
LoadDate
DateTime
No
No
Created date
LoadDetails table
This table is the load detail table, which contains detailed information of Starting Load, Load Add/Off, and Ending Load.
No
Column Name
Data Type
PK
Allow Null
Description
1
LoadDetailID
Int
Yes
No
2
LoadID
Int
No
No
3
ProductNo
Int
No
No
4
QtyCase
Int
No
No
Qty of cases of product loaded
5
QtyUnit
Int
No
No
Qty of units of product loaded
6
AddOnCase
Int
No
No
Qty of cases of product added
7
AddOnUnit
Int
No
No
Qty of units of product added
8
OffCase
Int
No
No
Qty of cases of product returned
9
OffUnit
Int
No
No
Qty of units of product returned
10
OffIDCase
Int
No
No
Qty of cases of product damaged
11
OffIDUnit
Int
No
No
Qty of units of product damaged
12
EndCase
Int
No
No
Qty of cases of product ending load
13
EndUnit
Int
No
No
Qty of units of product ending load
14
VarCase
Int
No
No
Var = blank: the ending inventory equals the beginning inventory plus add-ons minus sales and off-loads.
Var > 0: number of units you are short
Var < 0: Current qty is more units than the qty supposed to have.
15
VarUnit
Int
No
No
Qty of units of product variance
16
LoadRequestCase
Các file đính kèm theo tài liệu này:
- crm_architecture_and_detailed_design_v2_0_6059.doc