Survey
* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project
* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project
Welcome! Pieces of the Application Front End Accepts user input Validates user input Required Date fields and numeric fields in proper places. Auto capitalizes where necessary Reporting Displays data returned from AppServer Sends in reporting requests Communicates with Appserver All transactional requests, searches, etc are sent to AppServer from front end. All results (reports, list screens, acknowledgements of saved transactions are sent back to front end. Database MS SQL Server or Interbase Collects and stores information sent from AppServer Send back data requested by AppServer Lists screen searches Reports Detail views (Style Detail, Customer Detail, etc) Executes functionality on data Deducting inventory when saving a sale Increasing inventory when receiving from a PO Anatomy of a Database Tables Contains the actual data (Customers, Inventory, etc) Tables are made up of Rows (Records) and Columns (fields) Triggers Tiny programs that executes upon an event, typically upon the saving of a certain record. Stored Procedures Small to mid sized programs that execute when requested. Examples would be preprocessing for a report. Database Process Program that loads when system boots up. Controls all database requests that comes in and helps execute them in an efficient manner. Database Tables Tables are like excel spreadsheets Fields are the columns Records are the rows. Database Tables Example Table 1 – TB_CUSTOMERS Database Tables Example Table 1 – TB_STYLES Database Triggers Sample Triggers Upon insert of line item on receipt, inventory is deducted Upon insert of receiving, inventory is incremented, on order reduced Upon insert of purchase order, quantity on order is incremented Upon update of receiving, payable amount is modified. Benefits Single DB process keeps updates from over writing. Speed benefit by executing in database vs. application Database Stored Procedures Sample Stored Procedures Upon update of receiving, payable amount is modified. Comparison of a physical inventory. Resolve of a physical inventory Style audit screen Benefits Significant speed benefit by executing in database vs application Database Process Process Runs on Computer like any other service or program Receives all requests from network and enterprise Organizes these requests to balance most efficient usage of machine and response time Keeps many generations of database in the event of unintended shutdown Performs maintenance on databases AppServer Middleware – Communicates between DB and Front ends Performs business logic Translates information from front end and inserts into database Retrieves information from database and prepares in a format ready for front end Controls most communications Controls store level redundancy Basic Transaction User presses a Save button Front End pull data from screen and sends to AppServer AppServer determines the transaction intended (new receipt, update inventory, etc) and prepares data to be saved in the database AppServer writes all records to the database within a transaction AppServer sends acknowledgement back to the front end Front end displays window showing results or simply closes the current window Sample Transaction 1 User Presses Finish on Pay Screen Front end compiles data from screen and sends to AppServer Receipt.Insert?543~^0~^0~^TBRECEIPT~^70~^1~^RECEIPT_NUM~^EMPLOYEE_ID~^CUSTOMER_ID~^STORE_ID~^MACHINE_ID~^DATE_TIME~^GIFT_AMOUNT~^SUBTOTAL~^LINE_ DISC_AMOUNT~^OTHER_DISC_AMOUNT~^SHIPPING_CHARGE~^ALTERATION_CHARGE~^AFTER_DISC_AMNT~^TAX1~^TAX2~^TOTAL~^PAID~^TOTAL_CREDITS~^TOTAL_DUE~ ^PICKUP_DATE~^COMMENTS~^CREDIT_AMOUNT~^READY_TO_PICKUP~^DATE_CLOSED~^PENALTY~^SHIP_MODE~^LAST_INSTALL~^ZIP~^EMAIL~^PARENT_ID~^TOTAL_WEIG HT~^WEB_STATUS~^WEB_NUM~^LAST_SAVE_BY~^TYP~^AVAILABLE~^GIFT_FOR_NUM~^CLOSED~^VOID_BY~^CREDIT_ISSUED~^FREE_DOLLARS_USED~^BUYCLUB_DOLLAR S~^CATEGORY1~^CATEGORY2~^CATEGORY3~^DISC_REASON~^OUR_NUM~^PER_OFF~^UNITS_SHIPPED~^FREE_ITEMS_USED~^BUYCLUB_ITEMS~^OLD_ID~^HAS_CUSTOM_ WORK~^CURRENT_STATE_ID~^BIN_NUM~^ORIG_RECEIPT_NUM~^VAT_AMT~^VAT_SERIAL_NUM~^VAT_REFUND_AMT~^VAT_REFUND_CHARGE~^CUSTOM_COMMENT_1~^CU STOM_COMMENT_2~^CUSTOM_COMMENT_3~^CUSTOM_COMMENT_4~^EVENT_ID~^ORDER_TYP_ID~^IS_MULTI_SHIP~^CHARGE_UPS_ACCOUNT~_TAX_REFUND_ID~_TAX_EX EMPT_REASON~_~^305~^73673~^185~^1851~^"03/21/2007 13:23:48"~^0.00~^620.00~^930.00~^0.00~^0.0~^0.0~^670.38~^50.38~^0.00~^670.38~^670.38~^0.00~^0.00~^~^""~^0.00~^~^"03/21/2007 13:23:48"~^0.00~^0~^~^""~^""~^~^0.00~^""~^~^0~^0~^0.00~^~^"Y"~^~^0.00~^0.0~^0.0~^""~^""~^""~^""~^""~^0.00~^0.0~^0~^0.0~^~^""~^~^""~^~^0.0~^""~^0.0~^0.0~^""~^""~^""~^""~^~^~^~^~ _~_""~*TBRECEIPTLINE~^40~^1~^RECEIPTLINE_ID~^EMPLOYEE_ID~^RECEIPT_NUM~^PRICE~^LOOKUP~^EXTENDED~^ORIG_PRICE~^REG_MARKDOWN~^BO_MARKDOWN~^CO ST~^NOTES~^SPIFF~^COMMISSION~^COMM_DTE~^AMOUNT_OFF~^MEMBER~^RETURN_REASON~^OFF_FROM~^WEB_FLAG~^UPDATE_DTE~^SKU_BUCKET_ID~^MKDN_REAS ON~^ORIG_RECEIPTLINE_ID~^REGISTRY_ENTRY_ID~^QUANTITY~^SHIPPED~^SERIAL_NUM~^OLD_ID~^LINK_LINE_ID~^PICKED~^SHIP_TAX_ENTRY_ID~^TAX_CODE_ID~^TAX1_ AMOUNT~^TAX2_AMOUNT~^KIT_ITEM~^VAT_AMT~^SHIP_CUST_ID~^SALE_TYP~_TAX1_PER~_TAX2_PER~_1~^305~^~^620.00~^"10923484960"~^620.00~^1550.00~^930.00~^0.00~^313.20~^""~^0.0~^0.0~^~^0.00~^""~^""~^0~^0~^~^49272~^"SALE"~^~^~^1.0~^0.0~^""~^~^~^0.00~^~^~^50.38~^0. 0~^~^0.0~^~^0~_8.125~_0.0~*TBTENDERED~^14~^1~^TENDER_NUM~^PAYIN_ID~^EMPLOYEE_ID~^MACHINE_ID~^RECEIPT_NUM~^DATE_TIME~^AMOUNT~^ACTUAL~^CONVERSI ON~^SIGN_CAPTURE_ID~^SETUP_TENDER_ID~^IS_CHANGE~^SDTE~^TAX_REFUND_ID~_-1~^~^305~^1851~^~^"03/21/2007 13:23:27"~^670.38~^670.38~^0.00~^~^3~^""~^"2007-0321"~^~*TBCCDETAILS~^13~^1~^TENDER_NUM~^CARD_NUM~^NAME_ON_CARD~^EXP_DATE~^OTHER_ID_1~^OTHER_ID_2~^AUTH_CODE~^TRACK2~^REF_NUM~^PIN~^DLU~^E SC_FLAG~^AUTH_RESP~_-1~^__________________- CARD_NUM HAS BEEN REMOVED FROM THE LOG -__________________~^"OFFUTT/JAMES"~^"1008"~^""~^"2405 "~^"04637B"~^""~^"04637B"~^""~^~^"0"~^"1"~*TBGIFTSUSED~^7~^0~^GIFT_NUM~^RECEIPT_NUM~^AMOUNT~^PAYIN_ID~^DTE~^GIFT_USED_ID~^MACHINE_ID~*TBCREDITUSED~^ 7~^0~^CREDIT_NUM~^RECEIPT_NUM~^AMOUNT~^PAYIN_ID~^DTE~^CREDIT_USED_ID~^MACHINE_ID~*TBRECEIPTSHIP~^11~^0~^RECEIPT_NUM~^CUSTOMER_ID~^CUST_SHIP _ID~^SHIP_METHOD_ID~^TAX_1~^TAX_2~^RECEIPT_SHIP_ID~^PICKUP_STORE~^VAT~^OLD_ID~^HOLD_TO_COMPLETE~*TBRECEIPTSLSMN~^3~^1~^RECEIPT_NUM~^EMPLOY EE_ID~^PERCENTAGE~_~^305~^100.00~*TBRENTALS~^24~^0~^RENTAL_ID~^SKU_BUCKET_ID~^EMPLOYEE_ID~^RECEIPT_NUM~^LOOKUP~^TIME_UNITS~^PRICE~^EXTENDED~ ^METHOD~^DTE_TIME_DUE~^SHIPPED~^MEMBER~^DTE_RETURN~^UPDATE_DTE~^SERIAL_NUM~^RENTAL_MODE~^LATE_FEE1~^LATE_FEE2~^SHIP_TAX_ENTRY_ID~^TAX_C ODE_ID~^TAX1_AMOUNT~^TAX2_AMOUNT~^TAX1_PER~^TAX2_PER~*TBUNKNOWNLOOKUPS~^2~^0~^RECEIPTLINE_ID~^LOOKUP~*TBSCHEDPAYMENTS~^19~^0~^SCHED_PA YMENT_ID~^EMPLOYEE_ID~^MACHINE_ID~^RECEIPT_NUM~^TENDER~^DATE_TIME~^SCHED_DATE~^AMOUNT~^ACTUAL~^CONVERSION~^CARD_NUM~^NAME_ON_CARD~^EX P_DATE~^OTHER_ID_1~^OTHER_ID_2~^AUTH~^TRACK2~^REF_NUM~^SIGN_CAPTURE_ID~*TBRECPACK~^10~^0~^REC_PACKING_ID~^RECEIPT_NUM~^RECEIPTLINE_ID~^STO RE_ID~^EMPLOYEE_ID~^MACHINE_ID~^TRACK_NUM~^DTE~^QUAN~_OLD_ID~*TBSMCDUSED~^7~^0~^SMCD_USED_ID~^SMART_CARD_ID~^AMOUNT~^RECEIPT_NUM~^PAYIN_ ID~^DTE~^MACHINE_ID~*TBSMARTCARD~^10~^0~^SMART_CARD_ID~^SMART_CARD_NUM~^AVAILABLE~^IS_ACTIVE~^REPLENISH_DATE~^CUSTOMER_ID~^PURCHASED_BY~^ TURN_ON_DATE~^TURN_OFF_DATE~^ORIG_RECEIPT_NUM~*TBSMCDREPLENISH~^5~^0~^SMCD_REPLENISH_ID~^SMART_CARD_ID~^RECEIPT_NUM~^DTE~^REPLENISH_AM OUNT~*TBRECEIPTSTATES~^7~^0~^RECEIPT_STATE_ID~^ RECEIPT_NUM~^ORDER_STATE_ID~^DATE_STARTED~^EMP_STARTED~^ DATE_COMPLETE~^EMP_COMPLETE~*TBSTORERECEIPT~^3~^1~^STORE_RECEIPT_NUM~^STORE_ID~^RECEIPT_NUM~_26522~^~^~*TBSHIPMEMO~^3~^0~^SHIP_MEMO_ID~^R ECEIPT_NUM~^MEMO~*& AppServer responds to front end with a “Y” Receipt prints out Sample Transaction 2 User requests all receipts from store 19 where the date closed is 3/20/07. User Presses Search on Receipt List screen Front end sends the following to AppServer Receipt.ListAll?579~^0~^80~^A.STORE_ID=19 and A.DATE_CLOSED>='3/20/2007' and A.DATE_CLOSED<'3/21/2007'& AppServer returns the following to the front end Sample Transaction 2 TBRECEIPTLIST~^52~^19~^RECEIPT_NUM~^EMPLOYEE_ID~^CUSTOMER_ID~^STORE_ID~^MACHINE_ID~^DATE_TIME~^GIFT_AMOUNT~^SUBTOTAL~^LINE_DISC_AMOUNT~^O THER_DISC_AMOUNT~^SHIPPING_CHARGE~^ALTERATION_CHARGE~^AFTER_DISC_AMNT~^TAX1~^TAX2~^PAID~^TOTAL_CREDITS~^TOTAL~^TOTAL_DUE~^PICKUP_DATE~^ CREDIT_AMOUNT~^READY_TO_PICKUP~^DATE_CLOSED~^PENALTY~^LAST_INSTALL~^ZIP~^EMAIL~^PER_OFF~^TOTAL_WEIGHT~^UNITS_SHIPPED~^WEB_STATUS~^WEB_N UM~^LAST_SAVE_BY~^TYP~^AVAILABLE~^GIFT_FOR_NUM~^OUR_NUM~^CLOSED~^VOID_BY~^CREDIT_ISSUED~^FREE_DOLLARS_USED~^FREE_ITEMS_USED~^BUYCLUB_I TEMS~^BUYCLUB_DOLLARS~^CATEGORY1~^CATEGORY2~^CATEGORY3~^DISC_REASON~^FIRST_NAME~^LAST_NAME~^STORE_RECEIPT_NUM~^ORDER_STATE_LABEL~_5 77452~^648~^295865~^19~^1901~^2007-03-20 10:47:45.0~^~^139.99~^0.00~^0.00~^0.00~^0.00~^139.99~^9.80~^0.00~^149.79~^0.00~^149.79~^0.00~^~^0.00~^N~^2007-03-20 10:47:45.0~^0.00~^~^~^~^~^0.000~^~^~^~^~^0~^~^~^~^N~^~^0.00~^0.00~^~^~^0.00~^~^~^~^~^DAVID~^DREW~^29146~^~_577476~^738~^404851~^19~^1900~^2007-03-20 11:14:29.0~^~^1.99~^0.00~^0.00~^0.00~^0.00~^1.99~^0.14~^0.00~^2.13~^0.00~^2.13~^0.00~^~^0.00~^N~^2007-03-20 11:14:29.0~^0.00~^~^~^~^~^0.000~^~^~^~^~^0~^~^~^~^N~^~^0.00~^0.00~^~^~^0.00~^~^~^~^~^~^~^29147~^~_577510~^648~^404868~^19~^1901~^2007-03-20 12:01:14.0~^~^80.00~^0.00~^0.00~^0.00~^0.00~^80.00~^5.60~^0.00~^85.60~^0.00~^85.60~^0.00~^~^0.00~^N~^2007-03-20 12:01:14.0~^0.00~^~^~^~^~^0.000~^~^~^~^~^0~^~^~^~^N~^~^0.00~^0.00~^~^~^0.00~^~^~^~^~^VANESSA~^CUCCHI~^29148~^~_577534~^738~^404882~^19~^1901~^2007-03-20 12:22:39.0~^~^79.99~^0.00~^0.00~^0.00~^0.00~^79.99~^5.60~^0.00~^85.59~^0.00~^85.59~^0.00~^~^0.00~^N~^2007-03-20 12:22:39.0~^0.00~^~^~^~^~^0.000~^~^~^~^~^0~^~^~^~^N~^~^0.00~^0.00~^~^~^0.00~^~^~^~^~^SOLOMON~^SHAFFER~^29149~^~_577555~^648~^404171~^19~^1900~^2007-03-20 12:41:50.0~^~^367.96~^0.00~^0.00~^0.00~^0.00~^367.96~^25.76~^0.00~^393.72~^0.00~^393.72~^0.00~^~^0.00~^N~^2007-03-20 12:41:50.0~^0.00~^~^~^~^~^0.000~^~^~^~^~^0~^~^~^~^N~^~^0.00~^0.00~^~^~^0.00~^~^~^~^~^ANDREW~^JOHNSON~^29150~^~_577590~^648~^404902~^19~^1901~^2007-03-20 13:02:37.0~^~^329.98~^0.00~^0.00~^0.00~^0.00~^329.98~^23.10~^0.00~^353.08~^0.00~^353.08~^0.00~^~^0.00~^N~^2007-03-20 13:02:37.0~^0.00~^~^~^~^~^0.000~^~^~^~^~^0~^~^~^~^N~^~^0.00~^0.00~^~^~^0.00~^~^~^~^~^CONNER~^HENRY~^29151~^~_577617~^738~^404911~^19~^1900~^2007-03-20 13:18:31.0~^~^9.50~^0.00~^0.00~^0.00~^0.00~^9.50~^0.67~^0.00~^10.17~^0.00~^10.17~^0.00~^~^0.00~^N~^2007-03-20 13:18:31.0~^0.00~^~^~^~^~^0.000~^~^~^~^~^0~^~^~^~^N~^~^0.00~^0.00~^~^~^0.00~^~^~^~^~^~^~^29152~^~_577636~^258~^404921~^19~^1901~^2007-03-20 13:39:11.0~^~^271.85~^0.00~^0.00~^0.00~^0.00~^271.85~^19.03~^0.00~^290.88~^0.00~^290.88~^0.00~^~^0.00~^N~^2007-03-20 13:39:11.0~^0.00~^~^~^~^~^0.000~^~^~^~^~^0~^~^~^~^N~^~^0.00~^0.00~^~^~^0.00~^~^~^~^~^LUANNE~^WEBB~^29153~^~_577669~^233~^404936~^19~^1900~^2007-03-20 14:17:59.0~^~^40.00~^0.00~^0.00~^0.00~^0.00~^40.00~^2.80~^0.00~^42.80~^0.00~^42.80~^0.00~^~^0.00~^N~^2007-03-20 14:17:59.0~^0.00~^~^~^~^~^0.000~^~^~^~^~^0~^~^~^~^N~^~^0.00~^0.00~^~^~^0.00~^~^~^~^~^GAIL~^SERNERSHEIN~^29154~^~_577672~^233~^355632~^19~^1900~^2007-03-20 14:19:33.0~^~^5.99~^0.00~^0.00~^0.00~^0.00~^5.99~^0.42~^0.00~^6.41~^0.00~^6.41~^0.00~^~^0.00~^N~^2007-03-20 14:19:33.0~^0.00~^~^~^~^~^0.000~^~^~^~^~^0~^~^~^~^N~^~^0.00~^0.00~^~^~^0.00~^~^~^~^~^NOT~^INT~^29155~^~_577688~^258~^278316~^19~^1900~^2007-03-20 14:44:35.0~^~^16.00~^0.00~^0.00~^0.00~^0.00~^16.00~^1.12~^0.00~^17.12~^0.00~^17.12~^0.00~^~^0.00~^N~^2007-03-20 14:44:35.0~^0.00~^~^~^~^~^0.000~^~^~^~^~^0~^~^~^~^N~^~^0.00~^0.00~^~^~^0.00~^~^~^~^~^MR~^DECLINED~^29156~^~_577689~^258~^278316~^19~^1900~^2007-03-20 14:45:30.0~^~^3.50~^0.00~^0.00~^0.00~^0.00~^3.50~^0.25~^0.00~^3.75~^0.00~^3.75~^0.00~^~^0.00~^N~^2007-03-20 14:45:30.0~^0.00~^~^~^~^~^0.000~^~^~^~^~^0~^~^~^~^N~^~^0.00~^0.00~^~^~^0.00~^~^~^~^~^MR~^DECLINED~^29157~^~_577699~^233~^404951~^19~^1900~^2007-03-20 14:54:15.0~^~^130.00~^0.00~^0.00~^0.00~^0.00~^130.00~^9.10~^0.00~^139.10~^0.00~^139.10~^0.00~^~^0.00~^N~^2007-03-20 14:54:15.0~^0.00~^~^~^~^~^0.000~^~^~^~^~^0~^~^~^~^N~^~^0.00~^0.00~^~^~^0.00~^~^~^~^~^JESSICA~^EMMITT~^29158~^~_577744~^217~^404966~^19~^1901~^2007-03-20 15:47:39.0~^~^88.00~^0.00~^0.00~^0.00~^0.00~^88.00~^6.16~^0.00~^94.16~^0.00~^94.16~^0.00~^~^0.00~^N~^2007-03-20 15:47:39.0~^0.00~^~^~^~^~^0.000~^~^~^~^~^0~^~^~^~^N~^~^0.00~^0.00~^~^~^0.00~^~^~^~^~^CHRISTINE~^BONATZ~^29159~^~_577874~^220~^386677~^19~^1900~^2007-03-20 18:22:50.0~^~^104.89~^0.00~^0.00~^0.00~^0.00~^104.89~^7.34~^0.00~^112.23~^0.00~^112.23~^0.00~^~^0.00~^N~^2007-03-20 18:22:50.0~^0.00~^~^~^~^~^0.000~^~^~^~^~^0~^~^~^~^N~^~^0.00~^0.00~^~^~^0.00~^~^~^~^~^SHARON~^ROMEO~^29160~^~_577896~^233~^405040~^19~^1900~^2007-03-20 19:07:20.0~^~^19.95~^0.00~^0.00~^0.00~^0.00~^19.95~^1.40~^0.00~^21.35~^0.00~^21.35~^0.00~^~^0.00~^N~^2007-03-20 19:07:20.0~^0.00~^~^~^~^~^0.000~^~^~^~^~^0~^~^~^~^N~^~^0.00~^0.00~^~^~^0.00~^~^~^~^~^GENE~^ROHEG~^29161~^~_577905~^272~^405043~^19~^1901~^2007-03-20 19:26:45.0~^~^55.00~^0.00~^0.00~^0.00~^0.00~^55.00~^3.85~^0.00~^58.85~^0.00~^58.85~^0.00~^~^0.00~^N~^2007-03-20 19:26:45.0~^0.00~^~^~^~^~^0.000~^~^~^~^~^0~^~^~^~^N~^~^0.00~^0.00~^~^~^0.00~^~^~^~^~^CHARLES~^DOWNS~^29162~^~_577925~^220~^96247~^19~^1900~^2007-03-20 19:58:16.0~^~^48.93~^20.97~^0.00~^0.00~^0.00~^48.93~^3.43~^0.00~^52.36~^0.00~^52.36~^0.00~^~^0.00~^N~^2007-03-20 19:58:16.0~^0.00~^~^30066~^~^~^0.000~^~^~^~^~^0~^~^~^~^N~^~^0.00~^0.00~^~^~^0.00~^~^~^~^~^WARD~^PYLES~^29163~^~_577952~^233~^399999~^19~^1900~^2007-03-20 20:50:43.0~^~^-66.40~^0.00~^0.00~^0.00~^0.00~^-66.40~^-4.65~^0.00~^-71.05~^0.00~^-71.05~^0.00~^~^0.00~^N~^2007-03-20 20:50:43.0~^0.00~^~^~^~^~^0.000~^~^~^~^~^0~^~^~^~^N~^~^0.00~^0.00~^~^~^0.00~^~^~^~^~^DIANA~^SIMAAN~^29164~^~* Front end displays the data on the list screen grid Transaction Process Start Transaction AppServer sends data to database record by record If everything saves properly, transaction is committed If anything fails, entire transaction rolled back. Non-Transaction Processing Front end saves data record by record A sale is comprised of 4-100 records If any one record fails, transaction still finishes Sales could have headers but miss line items or payments. Flow of Data Application Server/ Redundant Database Real-Time data is sent to head-office application server for permanent storage and enterprise-wide viewing As data flows on internet, it’s protected by highest security protocol Reduce Unforeseen Problems If connectivity lost, store continues to function without interruption Store app server/database handles all store’s information and requests Reduce Unforeseen Problems Data is sent to head office as soon as the line is restored Software Updates Update Process Software Updates AppServer Update Two files – CelerantEAS.jar, AppController.jar Copied into current location overwriting existing files Small file transfer (2-3 Mb) Must be done on Head Office AppServers and ALL Local AppServers New automated process copies these files automatically Software Updates Front End Update Front end copied to all machines in form of an archive (Zip) Custom files must be included in zip or copied later Large file transfer even archived – 40 meg Files extracted to every terminal overwriting existing front end New automated process does NOT address Front End updating Software Updates Database Update Database is updated using scripts Scripts are commands the database executes to add or alter the database structure or programs (stored procedures or triggers) Each change to the database is made in a single script An update can have one script or one hundred scripts Scripts must be executed at the head office database and all local databases. Any script that is not executed or fails to execute can cause undesired results Procedures or triggers not functioning as intended or at all Downloads or uploads failing due to incongruent table structures. Scripts are a part of the new automated update process