Application Map

From MCS
Revision as of 19:42, 9 December 2019 by Anw (talk | contribs) (Added application map developer guide.)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)

MCS Project Structure.

Note Note: This is a developer guide.

Warning Warning: This is an incomplete guide.


Top-level WebSite project

  • App_Code
    • CalidusWebServices.cs - not used as far as I can tell
    • MCSService.cs - mobile app webservice request/response handlers for the server.
    • MCSServiceAH.cs.exclude - not used as far as I can tell
  • App_Data
    • PublishProfiles
    • knownBadList.txt
    • knownBadList.txt
  • App_GlobalResources - not used as far as I can tell - see project ResourceClassLibrary instead.
    • Messages.resx
    • Terms.resx
  • App_Themes
    • Images - not used?
    • Media
      • pop_sound.WAV - not used?
      • vega.mp3 - the error sound. Ref: JavaScript\App\app.js: MCS.App.GenericAudioAlertFile
  • Bin - other application project dependencies
  • CSS - styling of the app, over-riding the jQuery styles. Although there are lots, the following are the latest:
    • DHL.css - DHL colours, extensively tested for Project Hamilton. Used if set in web.config
    • Dunelm.css - Dunelm colours, based on DHL above. Used if set in web.config
    • HMPS.css - OBS Dark mode, extensively tested. Used if set in web.config
    • MCSDefault.css - the default, used at all times.
    • standard_menu_control.css - menu styles.
    • Nothing else is referenced in the app at all.
  • Images - images used in the standard menu control stylesheet.
  • JavaScript - the main control of the mobile app - in detail below.
  • MasterPage
    • MasterPage.master - the master page for the mobile device screens. Referenced by \WebForm\Default.aspx.
  • UserControl - ASCX files included to generate mobile device pages. See the following section for details.
  • WebForm
    • Default.aspx - the default webform, which includes all of the UserControl ASCX files shown in the section below.
    • CalidusMCS.aspx - a testing form
  • WebService
    • MCSService.svc - the server-side webservices - code is in App_Code\MCService.cs.
  • Errors.htm
  • Global.asax
  • index.html
  • InvalidAccess.htm
  • LoggedOut.htm
  • NotAuthorised.htm
  • packages.config
  • pej_MCS_ERROR_LOG.html - testing
  • pej_MCS_ITEM.html - testing
  • pejdialog.html - testing
  • SessionExpired.htm
  • test.html
  • Web.config - settings - see section below
  • website.publishproj


UserControl

ASCX files included to generate mobile device pages. Organised by functional screen or generic process. Each individual screen standardises the ID of the screen in the name of the APSX file, the ID of all fields defined in this file and the associated JavaScript UI file, to make it easier to identify elements that are intended for this functionality. This also keeps item IDs unique, which is essential, as all of these are loaded into the same page. It is not enough that the ID of elements is unique to the page - it must be unique to the entire application, as all of these are loaded into the same DOM.

  • LookupList.ascx - general lookup list (DDL) control, to control looking up data. Backed from LookupListDAL.
  • m000a01e_uc_menu.ascx - the main menu
  • m001a01t_uc_login.ascx - the login screen
  • m002a01t_uc_receipt.ascx - TMS receipt
  • m003a01t_uc_item_processing.ascx - item processing for TMS Receipt and Despatch.
  • m004a01t_uc_pallets.ascx - TMS Pallet Building
  • m005a01t_uc_labels.ascx - Warning Warning:
  • m007a01t_uc_settings.ascx - Settings
  • m008a01e_uc_dialogue.ascx - Warning Warning:
  • m009a01t_uc_damages.ascx - TMS Damages process
  • m010a01t_uc_despatch.ascx - TMS Despatch process
  • m011a01t_uc_start.ascx - Warning Warning:
  • m012a01e_uc_error_log.ascx - Error Log
  • m014a01e_uc_update_queue.ascx - Update Queue
  • m015a01t_uc_wmsreceipt.ascx - WMS Receipt
  • m016a01t_uc_wmsreceipt_items.ascx - WMS Receipt Items
  • m017a01t_uc_wmsreceipt_item_modify.ascx - WMS Receipt Items Edit
  • m018a01t_uc_wms_stock_take.ascx - WMS Stock Take
  • m019a01t_uc_wms_stock_take_item.ascx - WMS Stock Take Items
  • m020a01t_uc_wms_stock_take_item_entry.ascx - WMS Stock Take Items Edit
  • m021a01t_uc_wms_location_enquiry.ascx - WMS Location Enquiry.
  • m022a01t_uc_trans_ship.ascx - TMS Trans Ship Process Validation
  • m023a01t_uc_pallet_closure.ascx - TMS Pallet Closure.
  • MenuControl.ascx - standard menu control
  • MenuControlTreeView.ascx - standard menu control
  • MenuFavourites.ascx - standard menu control
  • SideBar.ascx - standard menu control
  • StandardMenuControl.ascx - standard menu control
  • WarningDialogue.ascx - Warning Warning:


JavaScript

  • App - main process control for the mobile device. Loads into MCS.App object.
    • app.js - global definitions required by the mobile app in all areas.
    • updateQueueTimer.js - loads to MCS.App. Controls running the Update Queue process.
  • Database - mobile device database. See below.
  • jQuery - jQuery javascript plus CSS styles.
  • UI - mobile device main screen process. See below.
  • WebServices - mobile device webservice requests and responses. See below.
  • custom_server_controls.js - Warning Warning: generic functions loaded globally.
  • lookups.js - Warning Warning: generic functions loaded globally.
  • McsDebugFlag.js - Warning Warning: Loads to MCS.App.Debug
  • McsUtilities.js - Warning Warning: generic functions loaded globally.
  • page_control.js - Warning Warning: generic page functions loaded globally.
  • utilities.js - Warning Warning: generic functions loaded globally.
  • validation.js - Warning Warning: generic validation functions loaded globally.
  • validation_class.js - Warning Warning: generic validation functions loaded globally.


Javascript Objects Summary

  • MCS
    • App - app.js
      • Debug - McsDebugFlag.js
      • UpdateQueue - updateQueueTimer.js
  • MCSUI
    • Common - commonScreenFunctions.js
      • Resources
    • ItemProc - m003a01t_uc_item_processing.js
    • Pallets - m004a01t_uc_pallets.js
    • Damages - m009a01t_uc_damages.js
    • Despatch - m010a01t_uc_despatch.js
    • ErrorLog - m012a01e_uc_errorlog.js
    • UpdateQueue - m014a01e_uc_update_queue.js
    • WMSReceipt - m016a01t_uc_wmsreceipt.js
    • WMSReceiptItem - m017a01t_uc_wmsreceipt_items.js
    • WMSStockTake - m018a01t_uc_wms_stock_take.js
    • WMSStockTakeItem - m019a01t_uc_wms_stock_take_item.js
    • WMSStockTakeItemEntry - m020a01t_uc_wms_stock_take_item_entry.js
    • WMSLocationEnquiry - m021a01t_uc_wms_location_enquiry.js
    • TransShip - m022a01t_uc_trans_ship.js
    • PalletClosure - m023a01t_uc_pallet_closure.js
    • Messages - msgDialogue.js
  • MCSDB
    • Model
      • MCS_AWB_CONS - McsAWBCons.js
      • MCS_CONTROL_PARAM - McsControlParam.js
      • MCS_ERROR_LOG - McsErrorLog.js
      • MCS_GRN_ITEMMcsGRNItem.js
      • MCS_ITEM - McsItem.js
      • MCS_PALLET - McsPallet.js
      • MCS_PRINTER - McsPrinter.js
      • MCS_REASON_CODE - McsReasonCode.js
      • MCS_SITE - McsSite.js
      • MCS_STOCKTAKE_LINE - McsStockTakeLine.js
      • MCS_UPDATE_QUEUE - McsUpdateQueue.js
      • MCS_USER - McsUser.js
      • MCS_LOCATION_DETAIL - McsWmsLocationDetail.js
      • MCS_WMS_PALLET_TYPE - McsWmsPalletType.js
      • MCS_WMS_RECEIPT_LOCATION - McsWmsReceiptLocation.js
    • DAL
      • MCS_AWB_CONS - McsAWBConsDAL.js
      • MCS_CONTROL_PARAM - McsControlParamDAL.js
      • MCS_ERROR_LOG - McsErrorLogDAL.js
      • MCS_GRN_ITEM - McsGrnItemDAL.js
      • MCS_ITEM - McsItemDAL.js
      • MCS_PALLET - McsPalletDAL.js
      • MCS_PRINTER - McsPrinterDAL.js
      • MCS_REASON_CODE - McsReasonCodeDAL.js
      • MCS_SITE - McsSiteDAL.js
      • MCS_STOCKTAKE_LINE - McsStockTakeDAL.js
      • MCS_UPDATE_QUEUE - McsUpdateQueueDAL.js
      • MCS_USER - McsUserDAL.js
      • MCS_WMS_PALLET_TYPE - McsWMSPalletTypeDAL.js
      • MCS_WMS_RECEIPT_LOCATION - McsWMSReceiptLocationDAL.js
    • BAL
      • MCS_ERROR_LOG - McsErrorLogBAL.js
      • MCS_ITEM - McsItemBAL.js
      • MCS_UPDATE_QUEUE - McsUpdateQueueBAL.js
    • Management - McsDatabase.js
    • Errors - MCSDbErrors.js
  • MCSDAMAGES
  • MCSWS
    • Requests - webServiceRequests.js
    • Responses - webServiceResponses.js (unless specified otherwise below).
      • Generic
      • ItemValidation
      • DespatchUpdate
      • AddToPallet
      • NewPallet
      • ValidatePkgForPallet
      • ReceiptUpdate
      • LabelUpdate
      • DamagesUpdate
      • RequestStatus
      • Logon - logonResponse.js
      • OpenAWB - openAWBResponse.js
      • SuitablePallet - suitablePalletResponse.js
      • TripItems - tripItemsResponse.js
      • GrnItems - grnItemsResponse.js
      • ReceiptUpdate
      • GrnCancel
      • GrnConfirm
      • GrnValidateItem
      • StockTakeValidateItem
      • StockTakeValidateCycle
      • StockTakeValidateQty
      • StockTakeAddDetail
      • StockTakeConfirm
      • StockTakeLine - stockTakeLineResponse.js
      • StockTakeLocationDetails
    • Utilities - webServiceUtilities.js
    • Errors - webServiceErrors.js


Database

All objects are loaded to the MCSDB object.

  • BAL - Business Access Layer - the main processing of data on the mobile device. All objects load to MCSDB.BAL object.
    • McsErrorLogBAL.js - loads to MCSDB.BAL.MCS_ERROR_LOG
    • McsItemBAL.js - loads to MCSDB.BAL.MCS_ITEM
    • McsUpdateQueueBAL.js - loads to MCSDB.BAL.MCS_UPDATE_QUEUE
  • DAL - Data Access Layer - direct access to database objects defined in Model. Loaded to MCSDB.DAL object
    • McsAWBConsDAL.js - AWB/Consignment information for TMS Despatches and Pallet Buiding. Loads to MCSDB.DAL.MCS_AWB_CONS object.
    • McsControlParamDAL.js - MCS control parameters from TMS/WMS. Loads to MCSDB.DAL.MCS_CONTROL_PARAM object.
    • McsErrorLogDAL.js - for error logging. Loads to MCSDB.DAL.MCS_ERROR_LOG object.
    • McsGrnItemDAL.js - WMS Goods Receipt items. Loads to MCSDB.DAL.MCS_GRN_ITEM object.
    • McsItemDAL.js - TMS Receipt/Despatch Items. Loads to MCSDB.DAL.MCS_ITEM object.
    • McsPalletDAL.js - TMS Pallets for Pallet Building. Loads to MCSDB.DAL.MCS_PALLET object.
    • McsPrinterDAL.js - Generic Printers used for label printing. Loads to MCSDB.DAL.MCS_PRINTER object.
    • McsReasonCodeDAL.js - generic Reason Codes used. Loads to MCSDB.DAL.MCS_REASON_CODE object.
    • McsSiteDAL.js - TMS Site information, including site-based settings. Loads to MCSDB.DAL.MCS_SITE object.
    • McsStockTakeDAL.js - WMS Stock Take Items. Loads to MCSDB.DAL.MCS_STOCKTAKE_LINE object.
    • McsUpdateQueueDAL.js - Generic Update Queue. Loads to MCSDB.DAL.MCS_UPDATE_QUEUE object.
    • McsUserDAL.js - Generic Users, for device login. Loads to MCSDB.DAL.MCS_USER object.
    • McsWMSPalletTypeDAL.js - WMS pallet types. Loads to MCSDB.DAL.MCS_WMS_PALLET_TYPE object.
    • McsWMSReceiptLocationDAL.js - WMS Receipt Locations. Loads to MCSDB.DAL.MCS_WMS_RECEIPT_LOCATION object.
  • Errors - error logging constants and functions. Loads to MCSDB.Errors object.
  • Management - database creation and definition. Loads to MCSDB.Management object.
  • Model - object definitions for each of the database tables. These are instantiated and passed to functions to read, write or update data in BAL and DAL objects.
    • McsAWBCons.js - AWB/Consignment information for TMS Despatches and Pallet Buiding. Loads to MCSDB.Model.MCS_AWB_CONS object.
    • McsControlParam.js - MCS control parameters from TMS/WMS. Loads to MCSDB.Model.MCS_CONTROL_PARAM object.
    • McsErrorLog.js - for error logging. Loads to MCSDB.Model.MCS_ERROR_LOG object.
    • McsGrnItem.js - WMS Goods Receipt items. Loads to MCSDB.Model.MCS_GRN_ITEM object.
    • McsItem.js - TMS Receipt/Despatch Items. Loads to MCSDB.Model.MCS_ITEM object.
    • McsPallet.js - TMS Pallets for Pallet Building. Loads to MCSDB.Model.MCS_PALLET object.
    • McsPrinter.js - Generic Printers used for label printing. Loads to MCSDB.Model.MCS_PRINTER object.
    • McsReasonCode.js - generic Reason Codes used. Loads to MCSDB.Model.MCS_REASON_CODE object.
    • McsSite.js - TMS Site information, including site-based settings. Loads to MCSDB.Model.MCS_SITE object.
    • McsStockTake.js - WMS Stock Take Items. Loads to MCSDB.Model.MCS_STOCKTAKE_LINE object.
    • McsUpdateQueue.js - Generic Update Queue. Loads to MCSDB.Model.MCS_UPDATE_QUEUE object.
    • McsUser.js - Generic Users, for device login. Loads to MCSDB.Model.MCS_USER object.
    • McsWMSPalletType.js - WMS pallet types. Loads to MCSDB.Model.MCS_WMS_PALLET_TYPE object.
    • McsWMSReceiptLocation.js - WMS Receipt Locations. Loads to MCSDB.Model.MCS_WMS_RECEIPT_LOCATION object.


UI

Loads to MCSUI object.

  • commonScreenFunctions.js - common TMS screen functions. loads to MCSUI.Common object.
  • default_callbackprocessing.js - standard menu call-back functions. Loads to global object.
  • m003a01t_uc_item_processing.js - TMS item processing for receipt and despatch. Loads to MCSUI.ItemProc object.
  • m004a01t_uc_pallets.js - TMS Pallet Building. Loads to MCSUI.Pallets object.
  • m009a01t_uc_damages.js - TMS Damages. Loads to MCSUI.Damages object.
  • m010a01t_uc_despatch.js - TMS Despatch. Loads to MCSUI.Despatch object.
  • m012a01e_uc_errorlog.js - Generic Error Logging. Loads to MCSUI.ErrorLog object.
  • m014a01e_uc_update_queue.js - Generic Update Queue. Loads to MCSUI.UpdateQueue object.
  • m016a01t_uc_wmsreceipt.js - WMS Receipt. Loads to MCSUI.WMSReceipt object.
  • m017a01t_uc_wmsreceipt_items.js - WMS Receipt Items. Loads to MCSUI.WMSReceiptItem object.
  • m018a01t_uc_wms_stock_take.js - WMS Stock Take. Loads to MCSUI.WMSStockTake object.
  • m019a01t_uc_wms_stock_take_item.js - WMS Stock Take Items. Loads to MCSUI.WMSStockTakeItem object.
  • m020a01t_uc_wms_stock_take_item_entry.js - WMS Stock Take Item Entry. Loads to MCSUI.WMSStockTakeItemEntry object.
  • m021a01t_uc_wms_location_enquiry.js - WMS Location Enquiry. Loads to MCSUI.WMSLocationEnquiry object.
  • m022a01t_uc_trans_ship.js - TMS Trans-Ship process. Loads to MCSUI.TransShip object.
  • m023a01t_uc_pallet_closure.js - TMS Pallet Closure. Loads to MCSUI.PalletClosure object.
  • McsDamages.js - TMS Damages. Loads to global MCSDAMAGES object.
  • msgDialogue.js - constants and functions for dialogues. Loads to MCSUI.Messages object.
  • standard_menu_control.js - standard menu events. Loads to global windows events and objects.


Webservices

Generic and specific Functions and objects used for sending and receiving data through the webservices. Generally loads to MCSWS object.

  • ExternalSource
    • jstz.js - timezone information.
    • suds2.js - sending and receiving through a webservice
  • Responses - Loads to MCSWS.Responses object.
    • webServiceResponses.js - contains all webservice response functions with the exception of those listed below.
    • grnItemsResponse.js
    • logonResponse.js
    • openAWBResponse.js
    • stockTakeLineResponse.js
    • suitablePalletResponse.js
    • tripItemsResponse.js
  • webServiceErrors.js - Loads to MCSWS.Errors object.
  • webServiceRequests.js - Loads to MCSWS.Requests object.
  • webServiceUtilities.js - Loads to MCSWS.Utilities object


Web.Config Settings

  • appSettings
    • MessageFile - must point to the locally-installed txt file, delivered in App_Data.
    • KnownBadListFile - must point to the locally-installed txt file, delivered in App_Data.
    • TestMode - Warning Warning:
    • DebugConnections - Warning Warning:
    • INV_EMAIL_TO - Warning Warning:
    • INV_EMAIL_FROM - Warning Warning:
    • autologin_user - Warning Warning:
    • autologin_pass - Warning Warning:
    • MasterStyleSheet - controls the general look and feel. Select a css file from \Css\ and add here, with the extension e.g. "DHL.css".
    • PersonalisationMessage - Warning Warning:
    • WelcomeMessage - Warning Warning:
    • WelcomeTitle - Warning Warning:
    • JSVersion - must be changed with every release. Enforces updating stylesheets and javascript on the device, to prevent caching being an issue. Set to the version of the application.
    • MissingReasonCode - Warning Warning:
    • LateReasonCode - Warning Warning:
    • FreightNotReceivedReasonCode - Warning Warning:
    • SystemType - can be TMS or WMS.
    • NotAuthorised - Warning Warning:
    • ArrowImage - standard menu image. Relative path e.g. "~/Images/arrow-37-16.png"
    • SettingsImage - standard settings icon. Relative path e.g. "~/Images/settings-8-16.png"
  • connectionStrings
    • calidus - the TMS or WMS database name. Provider System.Data.OracleClient