Home

Oracle® Retail Point-of-Service

image

Contents

1. 11 13 11 17 GetCheckInfoSite java Tour Code Using JournalManagerlfc sss 11 14 12 1 TenderPurchaseOrderlfc java Class Header sse 12 2 12 2 TenderPurchaseOrder java Class Header sss een 12 2 12 3 DomainObjectFactorylfc java Method For Instantiating TenderPurchaseOrder 12 3 12 4 DomainObjectFactory java Method For Instantiating TenderPurchaseOrder 12 3 12 5 GetCheckInfoSite java Instantiating Check from DomainObjectFactory 12 4 12 6 GetCheckInfoSite java Setting Attributes of Check ooo 12 4 12 7 ItemInfoEnteredAisle java CodeListlfc in Tour Code eese 12 6 12 8 PurchaseOrderAmountEnteredAisle java Currencylfc in Tour Code 12 8 12 9 JdbcSaveTenderLinelItems java SaleReturnTransactionIfc in Tour Code 12 9 13 1 CreateTableCreditDebitCardTenderLineltem sgq sessssseeeee 13 6 13 2 InsertTableTenderLineltem sgq sse nennen 13 6 13 3 String Constant in ARTSDatabaselfc java sessssssssseseeseneeneneenenenennee 13 7 13 4 mysgl builddb bat Changes to Implement Foreign Key Checking 13 7 13 5 ValidCreditInfoEnteredRoad java Transaction Object esses 13 9 13 6 SaveRetailTransactionAisle java Save Transaction s
2. VALUE value GBP gt PARAMETER PARAMETER final N hidden N name TravelersChecksAccepted type LIST gt lt VALIDATOR class EnumeratedListValidator package com extendyourstore foundation manager parameter PROPERTY propname member propvalue None PROPERTY propname member propvalue SEKCHK gt PROPERTY propname member propvalue USDCHK PROPERTY propname member propvalue CADCHK gt PROPERTY propname member propvalue GBPCHK gt PROPERTY propname member propvalue EURCHK gt lt VALIDATOR gt lt VALUE value SEKCHK gt lt VALUE value USDCHK gt lt PARAMETER gt lt GROUP gt lt GROUP hidden N name Reconciliation gt PRO PRO PRO PRO PRO PRO PRO PRO PRO PRO PRO PRO PRO PRO PRO PRO PRO PRO PRO PRO PRO PRO PRO PRO PRO PRO PRO PRO PRO PRO PRO PRO PRO PRO PRO PRO PRO A A A A A A A AAA A AA AAA A A A AAA A AA AAA A AKA A AAA AA APDO NA lt VAI lt VAL lt VAL PARAMETER final N hidden N name TendersToCountAtTillReconcile type LIST gt VALIDATOR class EnumeratedListValidator ackage com extendyourstore foundation manager parameter gt PERTY propname member propvalue Cash gt PERTY propname member propvalue Check gt PERTY propname member propvalue ECheck PERTY propname member propvalue Credit gt PERTY propname member propvalue Debit PERTY propname
3. sse 9 9 tender xml Definition of Traffic Signal sse eene 9 10 tender xml Signal Processing With Negate Tag sss eee 9 10 tender xml Definition of tourcam siner iett h EERE ette eene tnit ie 9 12 tender xml Definition of Road With TourCam Attributes sse 9 13 GiftReceiptCargo java TourCamlfc Implementation sse 9 16 Sample Backupshuttle Definition sssseseeeeeenee nennen nnne 9 16 alterationsuicfg xml Overlay Screen Definition sss 10 4 defaultuicfg xml Bean Specification Using PromptAndResponseBean 10 5 tenderuicfg xml PromptAndResponseBean Property Definition sss 10 6 tenderText en US properties PromptAndResponseBean Text Bundle Example 10 6 GetPurchaseOrderAmountSite java Creating and Displaying PromptAndResponseModel 10 6 PurchaseOrderNumberEnteredRoad java Retrieving Data From PromptAndResponseModel 10 7 manageruicfg xml Bean Specification Using DataInputBean sss 10 7 managerText en US properties DatalnputBean Text Bundle Example 10 8 SelectParamStoreSite java Creating and Displaying DatalnputBeanModel 10 8 StoreParamGroupAisle java Retrieving Data from DatalnputBeanModel 10 9 customeruicfg xml Bean Specification Using NavigationButtonBean 10 9
4. eese eene B 26 Retail Transaction DTO ias oat eiit et B 26 Transaction Group Rule Tax DTO ssssssseeeeee e eene enne B 26 Sale Return Line Item Fax DTO mide ann Miia nian e HER ee LR B 27 Sale Return Line Hem DTO occidente eB ine B 27 Shipping Record Tax DT Oi seit a n rere tu ree ten E B 27 Shipping Record DITO ien Ee ec Eee tre te tenete erede a B 27 Web Modules Transaction View Bean Classes sessi B 28 Database Design Changes Tables views sees eee eee eene B 28 Tax Group Rule Table RU EX GP eiii rior er egre per ie i RP B 28 xii Retail Transaction Fable TR ARV Ls e t ee ite ete er ere tive egos a ec ee eT Spe eed B 28 Tac Time Hem Table TRE EM TX iste i ette ettet vive eee even ir eere i ee edes B 28 Sales Return Line Item Table TR LTM SLS RTN sese B 29 Sales Return Tax Line Item Table TR LTM SLS RTN TX eese B 29 Order Item Table QRSETM eit tei te ert ee e ed Eee E ee E B 29 Point of Service Department History Table LE HST PS DPT sss B 29 Till History Iable LE SHS TE Murat tiir ree ete ire rte bete ri tee rtt ebbe dee dts B 29 Register History Table LE HST WS sese eee nennen nennen entente B 30 Store History Table LE FIST STR tii rente bcn e tiis B 30 Tax History Table HST LX oil iia ib nre eere ee reden B 30 Shipping Methods Table CO SHP MTH esee ee eene n nene enne nnnennn
5. 4 Set the launch properties listed in the table below The program arguments differ depending on the Server Tier type chosen during the Point of Service installation This option is determined by the Server Tier Type selected Table 5 3 lists Point of Service launch properties Table 5 3 Launch Properties Property Value main class com extendyourstore foundation config TierLoader program arguments If the Tier type is N Tier Client and N Tier Server there are two sets of launch properties The Store Server launch setting has its program argument set to classpath config conduit StoreServerConduit xml classpath config rmihost xml The Client launch setting has its program argument set to classpath config conduit ClientConduit xml classpath config rmihost xml Wait for the StoreServerConduit to finish starting before launching the ClientConduit classpath Add the database runtime directory to the classpath To find this path open C OracleRetailStore pos logs classpath 1log and search for the local database directory Also add the installation config directory Choose C OracleRetailStore pos config Update Java Security and Policy Files Copy the java security and java policy files dropped by the Point of Service installation located in C OracleRetailStore jre lib security Paste these files in the java jre lib security directory for the JDK that the IDE is referencing Development Environmen
6. com extendyourstore domain arts JdbcSaveStore com extendyourstore domain arts JdbcReadTaxHistory com extendyourstore domain arts JdbcSaveTaxHistory Accumulate Shipping Charge Tax For a send transaction its shipping charge tax must be accumulated in financial totals and added to store register and till history tables A detail break down of the tax collected for each tax group rule must be accumulated in financial totals and added to tax history table Note that shipping charges are not tracked in Point of Service department history table since a shipping method is not associated with a department id Financial totals classes must be enhanced to hold shipping charges tax For details see Enhancing Financial Totals Interfaces classes The following API of a send package line item is responsible of returning a financial totals object populated with shipping charges and its tax information See Send Package Line Item Interface class for more details public FinancialTotalsIfc getFinancialTotals boolean isNotVoid The following existing member function in sales return transaction class com extendyourstore domain transaction SaleReturn Transaction will be modified to collect financial totals of all send packages and add them up It will retrieve the financial totals of a send package line item by calling its getFinancialTotals function listed above protected FinancialTotalsIfc getSaleReturnFinancialTotals
7. System Date System date of the event System Time Time of the event Store ID Store number the event transpired at Applicable only for Back Office User ID User ID is recorded Register Number For Point of Service the register number the event transpired at Password Audit Log Events Change Password This is a Back Office and Point of Service and Central Office event This event is written to the audit log if the Settings For Audit Logging system setting INFO and the Change Password system setting INFO Event data collection starts when the operator selects or is prompted to change their password Event data collection ends when the operator selects to save their new password a Failure Condition will occur when the Employee User for whom the password is being changed does not exist in the DB Also the New password supplied if it does not meet the password criteria then also a Failure condition will be logged Appendix Audit Logging D 17 Password Audit Log Events Table D 15 Change Password Event Components Event Components Notes Event Name User Change Password Event Status Success a Failure Event Originator Class Name and Method Name ClassName methodName System Date System date of the event System Time Time of the event Store ID Store number the event transpired at Applicable only for Back Office User ID User ID is recorded Register Number For P
8. Event data collection starts and ends when the user attempts to login and is locked out due to unsuccessful login attempts or an expired password No failure condition Table D 13 User Lock Out Event Components Event Components Notes Event Name User Lock Out Event Status Success Event Originator Class Name and Method Name ClassName methodName D 16 Oracle Retail Back Office Operations Guide Password Audit Log Events Table D 13 User Lock Out Event Components Event Components Notes System Date System date of the event System Time Time of the event Store ID Store number the event transpired at Only applicable for Back Office User ID User ID is recorded Register Number For Point of Service the register number the event transpired at Lockout Reason a lt ARG gt consecutive unsuccessful login attempts lt ARG gt Number of login attempts Expired Password User Logout This is a Back Office and Point of Service and Central Office event This event is written to the audit log if the Settings For Audit Logging system setting INFO and the User Logout system setting INFO a Event data collection starts and ends when the user selects to log out No Failure Condition Table D 14 User Logout Event Components Event Components Notes Event Name User Logout Event Status Success Event Originator Class Name and Method Name ClassName methodName
9. MODIFY EMPLOYEE ADD TEMPORARY MODIFY RESET EMPLOYEE RESET TEMPORARY CHANGE USER_LOGOUT gt USER_LOGIN gt USER_LOCK_OUT gt ADD_ROLE gt ADD_USER gt Audit Logging D 5 Configuring the Audit Log priority value INFO appender ref ref AUDIT gt category category name com 360commerce commerceservices priority value INFO appender ref ref AUDIT gt category category name com 360commerce commerceservices priority value INFO appender ref ref AUDIT gt category category name com 360commerce commerceservices APPLICATION PARAMETER priority value INFO appender ref ref AUDIT gt category category name com 360commerce commerceservices PARAMETER IN LIST priority value INFO appender ref ref AUDIT gt category category name com 360commerce commerceservices LIST FOR DISTRIBUTION priority value INFO appender ref ref AUDIT gt category category name com 360commerce commerceservices PARAMETER LIST priority value INFO appender ref ref AUDIT category category name com 360commerce commerceservices PARAMETER LIST priority value INFO appender ref ref AUDIT gt category category name com 360commerce commerceservices TENDERED WITH CREDIT CARD priority value
10. lt lowercase two letter language abbreviation uppercase two letter country abbreviation The following table shows some sample uses of the convention Table 1 2 identifies sample language bundle names Table 1 2 Sample Bundle Names Language Bundle Directory jar file United States English en US en US jar Creating a New Language Bundle To create a new language bundle 1 Create a new source code directory in OracleRetailStore lt Client or Server Npos locales for the language bundle starting with a copy of the en US directory 2 Replace the English text in the properties files and help files in your new directory with translated text 3 Generate a jar file using the naming convention described in the preceding section Configuring the System to Use a New Language Bundle To add a new language and change the default language 1 Store the new jar file in OracleRetailStore lt Client or Server gt pos lib locales 2 Editthe OracleRetailStore lt Client or Server gt pos config application properties file a If you want the new locale to be the default locale replace the value of the default_locale property with your new locale name 1 16 Oracle Retail Point of Service Operations Guide Configuring Logging b Add your new locale name to the list in the supported locales property default localezen US supported locales en US 3 If the standard installation script is not used then
11. public String doSomething String input String result null result MyNewTechnician processed input using techField logger debug LogMessageConstants SCOPE SYSTEM MyNewTechnician doSomething returns 0 result return result Manager Technician Reference The following sections describe a Manager Technician pair important methods on the Manager and an example of using the Manager in the application code Parameter Manager Technician The Parameter Manager is the interface that allows parameters to be used for customization and runtime configuration of applications The following code from config conduit ClientConduit xml specifies the location and properties of the Parameter Manager and Technician Note that the Parameter Manager is a Session Manager because it is defined with a PROPERTY element inside the APPLICATION tag This means it can only be accessed via a tour bus Example 11 9 ClientConduit xml Code to Configure Parameter Manager APPLICATION name APPLICATION class TierTechnician package com extendyourstore foundation manager tier startservice classpath com extendyourstore pos services main main xml gt lt PROPERTY propname managerData propvalue name ParameterManager managerpropname className managerpropvalue com ex tendyourstore foundation manager parameter ParameterManager PROPERTY propname managerData propvalue name ParameterManager managerpropname useDefaults
12. 5 Bills Entered currency denomination amount and Count Till at Reconcile Detail Only recorded if a value is entered 10 Bills Entered currency denomination amount and Count Till at Reconcile Detail Only recorded if a value is entered 20 Bills Entered currency denomination amount and Count Till at Reconcile Detail Only recorded if a value is entered 50 Bills Entered currency denomination amount and Count Till at Reconcile Detail Only recorded if a value is entered 100 Bills Entered currency denomination amount and Count Till at Reconcile Detail Only recorded if a value is entered Check Total a Entered tender amount if Count Till at Reconcile Summary Only recorded if this tender was received and this tender is included in the Tenders To Count at Till Reconcile and if Blind Close No Total amount all deposited checks entered when Count Till at Reconcile Detail lt ARG gt Check a Check amount entered when Count Till at Reconcile Detail There is an audit log entry for each check entered a lt ARG gt the number of the Check Credit Total Entered tender amount if Count Till at Reconcile Summary Only recorded if this tender was received and this tender is included in the Tenders To Count at Till Reconcile and if Blind Close No a Total of all entered Credit when Count Till at Reconcile Detail and the tender w
13. Method Description MailboxAddress Gets address of Technician getAddress Boolean getExport Checks if this Technician is exportable String getName Gets name of Technician void shutdown Shuts this Technician down void startUp Starts up Technician process Often a subclass of Technician can use these methods exactly as written The most likely methods to require additional implementation are startUp and shutdown which needs to handle connections with external systems Technician Configuration The Technician is configured within the conduit script Each Technician should have the following Name A Manager typically locates its Technician using its name Often this name is the same as the name of the class and may be defined as a constant within the Technician This is what Technician getName returns Class The name of the class minus its package Package The Java package where the class resides Export This should be Y if the Technician may be accessed by an external Java process N otherwise The value returned by Technician getExport is based on this In Technicians it indicates whether the Technician can be remotely accessed from another tier commScheme optional Specifies the communication scheme used to communicate with the Technician The default is RMI encryptValets optional Specifies whether the valets should be encrypted during network transmission The default is N
14. public void setSendInclusiveTaxAmount BigDecimal amount Shipping Record DTO This existing shipping record DTO class com 360commerce commerceservices transaction shipping SaleReturnShippingRecordDTO will be modified to have the additional get set methods for the newly added columns in table SHP RDS SLS RTN see Shipping Record Table SHP RDS SLS RTN Appendix Value added Tax B 27 Database Design Changes Tables views public int getTaxGroupId public void setTaxGroupId int taxGroupId public BigDecimal getTax public void setTax BigDecimal tax public BigDecimal getInclusiveTax public void setInclusiveTax BigDecimal inclusiveTax It will also be enhanced to take an array of shipping record tax DTO objects The following methods will be added public SaleReturnShippingRecordTaxDTO getTaxInformation public void setTaxInformation SaleReturnShippingRecordTaxDTO dtos Web Modules Transaction View Bean Classes An instance of a transaction view bean class com _ 360commerce webmodules transaction app TransactionDetail ViewDTO serves as a bean for jsp pages to render transaction details display It must be enhanced to hold transaction summary tax information broken down by tax group rules An array of group rule tax DTO objects of class com _ 360commerce commerceservices transaction tax GroupRuleTaxDTO will be added for inclusive tax summary The following api will be added to access the array pu
15. sss B 18 Financial Tax Totals Interface Class eese eene eee nrnr innen B 18 Financial Totals Interface Class eese eene nnne enne etnnr entras innen B 19 Add Support for Inclusive Tacita oc ie ees B 19 Add Support for Shipping Charges Tax sss eee B 19 Shipping Method Interface class sse nennen nennen B 20 Send Package Line Item Interface class sse eene B 20 Enhancing Sale Return Transaction Interface class sss B 23 Enhancing POSLog Interface class esee eee eene nennen B 24 Log Retail Transaction Class reseo iien TE ADETE E EEA B 24 Log Sale Return Line Item C lass nete inei meer eet e tin B 24 IXRetail Constants V21 Ifc Class iiis it e o ete ete edens B 24 Retail Transaction Delivery 360 Ifc Interface Class sese eee B 25 Schema Types Factory Ifc Interface Class ooococononcnnoncnonnnnnnenncnncncnorornnnnnrnrnnnenonaranannnnnraros B 25 Retail Transaction Line Item Ifc Interface Class eese B 25 XmlToSqlTaxHistoryInsert Class sese eren B 25 XmlToSglFinancialTotalsCommon Class sese eee B 25 XmlToSqIDeliv ry Tax ass etia ee e tete etude ect edet latus B 25 JdbcSavelXRetailRetailTransaction Class essere B 25 360POSLog Library xsd e ie trt ert Re HP nete RII tee qnie B 25 Commerce Service Transaction DTO Classes
16. sss neret eren enne nn corno restes tette nro nena nnns 2 2 Frameworks coi Sere tet a eH e netiis idee be he ote i e tute 2 4 Managery Technician Ei qenenuiee 2 4 User Irnterface uis s eere ie t eet t tides 2 5 PO AAA A E TNA 2 6 A RT 2 7 TOTES AE oka sau ees E Nak IS Sd Pepe 2 9 Design Patterns in iii eod add a ina a ede eie Ad 2 9 MVE Patteet M A AA A AAA AA AAA AA ARA 2 9 Factory Pattern iiie e tener reete des ee rp dre Dr eter Aid a etd 2 10 Command Pattern aie ti iets 2 10 Singleton Patton iio stem bates pop de diia bind 2 11 Extracting Source Code Customization Iu ielldr2cte P P T u X 4 1 Parameter Flierarchy 2e ete te a e er en eee olle tete 4 1 Parameter Group aee meret eg Ihnen eiie ne nei ee per ee e ee ne i eere 4 2 Parameter Properties 25 eene e Re e Pn e Eni hes en ie etie te ice ge 4 3 Device M EE 4 3 Set Up the Device iacere tn edicto ed red ui bre n i b iri t Ge ia bess Eos 4 4 Testthe Device 5 one E ER reete re ete EE e ERE o e pere ie tee eter re bee 4 4 Create a Session and ACHONGTOUD riisin aseda aneao Enaaak aana r ea ait de Seane ane nieee 4 4 Simulate the Device mom 2 edi e E e te t edi a eben b o oe icis 4 6 Help Fleitas 4 6 Modifying Help Files via A teet iii 4 6 Development Environment PLATON O A oderam ce nbl e de AAA 5 1 A A NIN TNT 5 1 Install Point of Service A A e e rh RR 5 1 Build the D
17. Appendix Audit Logging D 15 Login Logout Lockout Audit Log Events Table D 11 Add Temporary Employee Event Components Event Components Notes Storeft Entered store number Days Valid Selected remaining days valid Employee Status Selected employee status Login Logout Lockout Audit Log Events User Login This is a Back Office and Point of Service and Central Office event This event is written to the audit log if the Settings For Audit Logging system setting INFO and the User Login system setting INFO Event data collection starts when the operator enters their login information Event data collection ends when the operator selects to login a Even failure can happen only when there is a technical exception Table D 12 User Login Event Components Event Components Notes Event Name User Login Event Status Success Failure Event Originator Class Name and Method Name ClassName methodName System Date System date of the event System Time Time of the event Store ID Store number the event transpired at Only applicable for Back Office User ID User ID is recorded Register Number For Point of Service the register number the event transpired at User Lock Out This is a Back Office and Point of Service and Central Office event This event is written to the audit log if the Settings For Audit Logging system setting INFO and the User Lock Out system setting INFO
18. Transaction Group Rule Tax DTO The group rule tax DTO class com 360commerce commerceservices transaction tax GroupRuleTaxDTO will be created to hold a transaction s tax information at the group rule level It is the base class for sale return line item tax dto and shipping record tax dto classes It will contain the following methods public String getStoreID public void setStoreID String storied public String getWorkstationID public void setWorkstationID String workstationId public Date getBusinessDate public void setBusinessDate Date date public int getTransactionSequenceNumber public void setTransactionSequenceNumber int number public int getTaxAuthorityId public void setTaxAuthorityId int id public int getTaxGroupId public void setTaxGroupId int id public int getTaxType public void setTaxType int type public boolean getTaxHolidayFlag public void setTaxHolidayFlag boolean flag public int getTaxMode public void setTaxMode int mode public BigDecimal getTaxableAmount public void setTaxableAmount BigDecimal amount public boolean getInclusiveTaxFlag public void setInclusiveTaxFlag boolean flag public BigDecimal getTaxAmount public void setTaxAmount BigDecimal amount public String getTaxRuleName public void setTaxRuleName String name public BigDecimal getTaxPercentage public void setTaxPercentage BigDecimal percentage public S
19. import com extendyourstore domain lineitem ItemTaxIfc public interface SendPackageLineItemIfc extends TaxLineItemInformationIfc EYSDomainIfc ShippingMethodLineItem ShippingMethodIfc shippingMethod CustomerIfc customer item tax is null ShippingMethodLineItem ShippingMethodIfc shippingMethod CustomerIfc customer ItemTaxIfc tax public ShippingMethodIfc getShippingMethod public void setShippingMethod ShippingMethodIfc shippingMethod public CustomerIfc getCustomer public void setCustomer CustomerIfc customer protected ItemTaxIfc getItemTax protected void setItemTax ItemTaxIfc itemTax The send package line item class implements all the methods defined in send package line item interface The following is a complete list of its member functions B 20 Oracle Retail Central Office Operations Guide New Or Changed Classes services This function initializes the line item by setting its shipping method send customer and item tax instances public void initialize ShippingMethodIfc shippingMethod CustomerIfc customer ItemTaxIfc tax These two are the get set functions for the shipping method public ShippingMethodIfc getShippingMethod public void setShippingMethod ShippingMethodIfc shippingMethod These two are the get set functions for the send customer public CustomerIfc getCustomer public void setCustomer CustomerIfc customer These two are the get set functions for the item ta
20. Bus The vehicle that provides The entity that follows the workflow transportation from city to city between the sites Cargo The baggage that the traveler The data that follows the workflow takes with him her from city to modified as necessary city Site A city A function point in the workflow Road A path the bus takes to get from A transition that takes place based on an one city to another event that changes the state Aisle A path the traveler takes while An action that takes place based on an staying on the same bus in the event without leaving the current state same city Letter A message the bus driver receives A message that causes a road or aisle to instructing him her to performan be taken action When given a use case create a tour script by identifying components for the tour metaphor Strategies for identifying components are listed in the table below The following sections describe each component in more detail Table 9 2 includes strategies for identifying components Table 9 2 Component Identification Strategies Component How to Identify Service A service generally corresponds to a set of related functionality Site Sites generally correspond to points in the workflow that need input from outside the tour Outside input sources include the user interface the database and devices among others Road At a site look at the ways control can be moved to another site There is one road for each of these cases Aisle At a
21. NavigationButtonBeanModel navModel new NavigationButtonBeanModel navModel setButtonEnabled TransDiscAmt true navModel setButtonEnabled TransDiscPer true model setLocalButtonBeanModel navModel ui showScreen POSUIManagerIfc PRICING OPTIONS model The screen constant PRICING OPTIONS is mapped to an overlay screen name found in the UI script for the package The screen constants are defined in src com extendyourstore pos ui POSUIManagerlfc java The DialogBean provides dynamic creation of dialog screens This bean is implemented by src com extendyourstore pos ui bundles DialogBean java and its corresponding model DialogBeanModel java Bean Properties and Text Bundle DialogSpec is the name of a bean specification that defines an implementation of the DialogBean class The following code sample shows the bean specification defined in src com extendyourstore pos services common commonuicfg xml Example 10 16 commonuicfg xml Bean Specification Using DialogBean lt BEAN specName DialogSpec configuratorPackage com extendyourstore pos ui configuratorClassName POSBeanConfigurator beanPackage com extendyourstore pos ui beans UI Framework 10 11 Beans beanClassName DialogBean gt lt BEANPROPERTY propName cachingScheme propValue none lt BEAN gt The DialogBean does not have any properties that can be defined in UI scripts Therefore all its properties are defined in Tour code discu
22. New DataSet ID gt gt Store ID gt gt lt lt Tablel gt gt lt lt Tablel txt gt gt 1 eg insert into CO DT ST TB IDDI ID DT ST ID STR RT NM TB NM FL AI LD SEQ values 6 04241 TABLE1 TABLE1 TXT 1 insert into CO DT ST TB IDDI ID DT ST ID STR RT NM TB NM FL AI LD SEQ values 6 04241 TABLE2 TABLE2 TXT 2 2 Create lt DataSetKey gt Producer and lt DataSetKey gt Consumer classes extending from AbstractDataSetProducer and AbstractDataSetConsumer respectively Example A 4 DataSetProducer Code package com extendyourstore domain iddi import com extendyourstore foundation iddi AbstractDataSetProducer import com extendyourstore foundation iddi DataSetMetaData import com extendyourstore foundation iddi TableQueryInfo import com extendyourstore foundation iddi ifc DataSetMetaDatalfc public class NewDataSetProducer extends AbstractDataSetProducer private final String TABLE FIELDS NewDataSetProducer constructor Nf public NewDataSetProducer Get DataSetMetatlfc reference xy public DataSetMetaDatalfc getDataSetMetaData Get the table names for the Key return dataSetMetaData Initialize the MetaData for the DataSetProducer ur public void initializeDataSet dataSetMetaData new DataSetMetaData dataSetKey A 14 Oracle Retail Point of Service Operations Guide Extensibilit
23. a com extendyourstore domain arts JdbcUpdatePriceAdjustedLineltems For an order transaction inclusive tax amount must be saved at order item level For schema enhancement of an order item see Order Item Table OR_LTM The following is a list of domain persistence classes that need to be enhanced to load or save the additional inclusive tax amount of an order item Appendix Value added Tax B 5 Tracking VAT Financial Totals com extendyourstore domain arts JdbcCreateOrder com extendyourstore domain arts dbcRetrieveOrder com extendyourstore domain arts JdbcSaveOrderLineltems com extendyourstore domain arts JdbcUpdateOrder Persist Shipping Charge Tax For a send transaction all its shipping information including the tax on shipping charges must be saved to the shipping record table SHP RDS SLS RTN and the new shipping record tax table SHP RDS SLS RTN TX For schema enhancements of the shipping record table see Shipping Record Table SHP RDS SLS RTN For schema of the new shipping record tax table see Shipping Record Tax Table SHP_ RDS SLS RTN TX The following new functions will be added to class com extendyourstore domain arts dbcRead Transaction to read tax information of a send package from the shipping record tax table SHP RDS SLS RTN TX protected TaxInformationIfc readTransactionShippingTaxInformation JdbcDataConnection dataConnection SaleReturnTransactionIfc transaction int sendLabe
24. lt GROUP gt SOURCE C 8 Oracle Retail Back Office Operations Guide Configuring a New Base Currency Resource Bundle Configuration New resource bundle keys describing the new currency its issuing country and its denominations must be added to the Point of Servidce resource bundle commonText For example Example C 6 New commonText Resource Bundle Keys Supported Nationalities Common SE Nationality Swedish Supported Currencies Common SEK Swedish Krona Supported Checks Common SEKCHK Swedish Krona SE Currency denominations Common SE 500res 50 Ores Common SE 1Kronas 1 Kronas Common SE 5Kronas 5 Kronas Common SE 10Kronas 10 Kronas Common SE 20Kronas 20 Kronas Common SE_50Kronas 50 Kronas Common SE 100Kronas 100 Kronas Common SE 1000Kronas 1000 Kronas Appendix Changing and Configuring a New Base Currency C 9 Configuring a New Base Currency C 10 Oracle Retail Back Office Operations Guide D Appendix Audit Logging The audit log retains events that are logged to the file system Audit Logs include access search view generate print and export for the following functional areas in Point of Service Daily Operations Audit Log Events Employee Audit Log Events Login Logout Lockout Audit Log Events a Password Audit Log Events Point of Service Transaction Events a Role Audit Log Events Till Audit Log Events Parameter Log Events Each event has a specific
25. temDataSetConsumer TaxDataSetConsumer CurrencyDataSetConsumer A 18 Oracle Retail Point of Service Operations Guide Extensibility AdvancedPricingDataSetConsumer Data Formatter Offline DB Helper Offline Data Source Any and all of these implementations can be replaced with custom implementations by updating the ServiceContext xml file to point to custom implementations Appendix Intra Store Data Distribution Infrastructure A 19 Extensibility A 20 Oracle Retail Point of Service Operations Guide Appendix Value added Tax The value added tax VAT is a consumption tax that is levied at each stage of production based on the value added to the product at that stage VAT is used across the European Union as well as other locales but different rates of VAT can be applied in different regions Point of Service currently supports various tax rules as well as Canadian taxes GST PST HST a type of VAT but additional support for VAT is required to support an EU deployment One difference between a sales tax and a VAT is that with a sales tax the tax is added to the retail price of an item whereas with a VAT the retail price includes the tax amount there are exceptions in some types of Canadian VAT This project addresses the price inclusive VAT only If the associate overrides the default price the overridden price is assumed to include VAT so the VAT calculation is based on the price entered by th
26. Common Frameworks 6 16 Oracle Retail Point of Service Operations Guide 7 Point of Service Development Standards The following standards specific to the Point of Service architecture have been adopted by Oracle Retail product and service development teams These standards are intended to reduce bugs and increase the quality of the code Note Before extending the Point of Service application make sure the changes will not affect the PABP settings For more information on PABP see the Oracle Retail Strategic Store Solutions Security Implementation Guide The guide is available on Metalink Metalink Note 567438 1 Screen Design and User Interface Guidelines Avoid creating new screen beans and screen models for every new screen Look for ways to reuse existing or generic beans such as the Data Input Bean to avoid complicating the code base Tour Framework This section includes general guidelines as well as subsections on specific tour components For more information see Chapter 9 Tour Framework Tour Architectural Guidelines Consult these guidelines when making architecture decisions in tour framework designs Services When designing services consider their size and reusability Services that are overlarge create additional work when a portion must be extended Utility Manager Put methods used by multiple services in this manager so they can be easily extended If the reusable behav
27. Ifc unit tests append Test to the name of the tested class DatabaseException DatabaseExceptionTest FoundationScreenlfc File Names File names are the same as the DatabaseException java name of the class Method Names Method names are mixed case isEmpty starting with a lowercase letter Method names are an action verb hasChildren where possible Boolean valued getAttempt methods should read like a setName question with the verb first Accessor functions use the prefixes get or set Attribute Names Attribute names are mixed case lineItemCount starting with a lowercase letter Constants Constants static final variables final static int NORMAL_SIZE 400 are named using all uppercase letters and underscores EJBs entity Use these conventions for entity beans where Transaction is a name that describes the entity TransactionBean Transactionlfc TransactionLocal TransactionLocalHome TransactionRemote TransactionHome EJBs session Use these conventions for session TransactionService beans where Transaction is a TransactionAdapter name that describes the session TransactionManager SQL Guidelines The following general guidelines apply when creating SOL code Keep SOL code out of client UI modules Such components should not interact with the database directly Table and column names must be no longer than 18 characters Comply with ARIS spe
28. Only recorded if a value is entered Quarters Entered currency denomination amount and Count Float at Open Detail Only recorded if a value is entered Half Dollars Entered currency denomination amount and Count Float at Open Detail Only recorded if a value is entered 1 Coins Entered currency denomination amount and Count Float at Open Detail Only recorded if a value is entered 1 Bills Entered currency denomination amount and Count Float at Open Detail Only recorded if a value is entered 2 Bills Entered currency denomination amount and Count Float at Open Detail Only recorded if a value is entered 5 Bills Entered currency denomination amount and Count Float at Open Detail Only recorded if a value is entered 10 Bills Entered currency denomination amount and Count Float at Open Detail Only recorded if a value is entered 20 Bills Entered currency denomination amount and Count Float at Open Detail Only recorded if a value is entered 50 Bills Entered currency denomination amount and Count Float at Open Detail Only recorded if a value is entered 100 Bills Entered currency denomination amount and Count Float at Open Detail Only recorded if a value is entered Transaction Number Transaction number assigned to closed register Appendix Audit Logging D 23 Till Audit Log Events Till Suspen
29. Role Audit Log Events Event data collection ends when the operator selects Yes Failure Condition will be logged only in case of technical failures such as DB is down Table D 17 Reset Temporary Employee Password Event Components Event Components Notes Event Name Reset Temporary Employee Password Event Status Success a Failure Event Originator Class Name and Method Name ClassName methodName System Date System date of the event System Time Time of the event Store ID Store number the event transpired at User ID User ID performing the event Register Number For Point of Service the register number the event transpired at Employee ID Employee ID whose password was reset Role Audit Log Events Edit Role This is a Back Office and Point of Service and Central Office event This event is written to the audit log if the Settings For Audit Logging system setting INFO and the Edit Role system setting INFO Event data collection starts when the operator edits the role Event data collection ends when the operator selects Save Failure Condition only due to Technical exceptions Table D 18 Edit Role Event Components Event Components Notes Event Name Edit Role Event Status Success Failure Event Originator Class Name and Method Name ClassName methodName System Date System date of the event System Time Time of the event User ID User ID performing the even
30. The db properties tax enableTaxInclusive flag is used to determine which rules are used by 04241 and 01291 When the flag is true the stores will use the geo codes of the VAT seed data If the flag is not defined or false stores 04241 and 01291 will use the existing tax rules geo codes VAT Tax Rule Seed Data Two vat rules are created Both of them will be associated with store 04241 and 01291 The following is a brief description of the rules Table B 1 describes Rule 1 Tax Authority Id8888600 Table B 1 Rule 1 Tax Authority Id8888600 Tax Group ID Name Rate 8888640 S 17 596 8888650 R 5 8888660 Z 0 B 12 Oracle Retail Central Office Operations Guide Seed Data Population Table B 2 describes Rule 2 Tax Authority Id8888601 Table B 2 Rule 2 Tax Authority Id8888601 Tax Group ID Name Rate 8888670 S 12 5 8888680 R 3 8888690 Z 0 Point of Service Department Seed Data The following Point of Service departments will be created They will be associated with both stores Point of Service Department ID Tax Group ID 8888602 8888640 8888603 8888670 8888604 Invalid tax group ID Item Seed Data A couple of items must be created for each tax group The following table defines the item number range for each tax group Among them at least one kit header item containing a couple of kit components must be created for each group Tax Group ID Item Num
31. The following existing member function in post void transaction class com extendyourstore domain transaction Void Transaction will be modified to collect financial totals of all send packages and add them up It will retrieve the financial totals of a send package line item by calling its getFinancialTotals function listed above public FinancialTotalsIfc getFinancialTotals The following is a list of domain persistence classes that need to be enhanced to load or save the additional shipping charge tax information of the history tables com extendyourstore domain arts dbcReadTill com extendyourstore domain arts JdbcSaveTill com extendyourstore domain arts dbcReadRegister com extendyourstore domain arts dbcReadStoreRegisters com extendyourstore domain arts JdbcSaveRegister com extendyourstore domain arts dbcReadStoreTotals com extendyourstore domain arts JdbcSaveStore B 8 Oracle Retail Central Office Operations Guide Transaction Retrieval In CO Transaction Retrieval In CO Enhancing Transaction Entity Beans The following is a list of entity beans that will be enhanced to accommodate the columns Entity Bean Name RetailTransactionBean Table TR RIL see Retail Transaction Table TR RTL Bean DTO Classes com 360commerce commerceservices transaction retail com 360commerce commerceservices transaction retail ejb Entity Bean Name SaleReturnLineItemBean
32. customerText en US properties NavigationButtonBean Text Bundle Example 10 10 defaultuicfg xml Bean Specification Using GlobalNavigationButtonBean 10 10 tenderuicfg xml GlobalNavigationButtonBean Property Definitions 10 10 PricingOptionsSite java Creating and Displaying NavigationButtonBeanModel 10 11 commonuicfg xml Bean Specification Using DialogBean 1 4 amp 10 11 InquirySlipPrintAisle java DialogBean Label Definition sss 10 12 dialogText en US properties DialogBean Text Bundle Example 10 12 LookupStoreCreditSite java Creating and Displaying DialogBeanModel 10 12 tender xml ClearActionListener XML tag ccocicccnonnncnonincnnoronnnnonconorannnnincnno ronca nene 10 15 tender xml DocumentListener XML tag ccococococicicocinononcnnoninanananonanonancnonononononanononanananonononos 10 15 tender xml ValidateActionListener XML tag eee 10 15 tenderuicfg xml ValidateActionListener Required Fields sssss 10 16 BundleConstantslfc java String Constant for receiptText sss 10 16 GiftCardInquirySlip java Tour Code to Print Receipt sese 10 16 receiptText en US properties Text Bundle sss 10 16 parameteruicfg xml Overlay Specification Using parameterText ss 10 17 GiftCardUtility java Tou
33. file creates the JDBC code that saves the tender line items to the database via the saveTenderLineltem method shown in Example 13 13 This code checks the type of a line item If the tender line item is an instance of the TenderChargelfc then it calls the insertCreditDebitCardTenderLineItem method Example 13 13 JdbcSaveTenderLineltems Saving Tender Line Item public void saveTenderLineItem JdbcDataConnection dataConnection TenderableTransactionIfc transaction int lineItemSequenceNumber TenderLineItemIfc lineItem throws DataException if lineItem instanceof TenderCashIfc insertTenderLineItem dataConnection transaction lineTtemSequenceNumber lineItem else if lineItem instanceof TenderGiftCardIfc 13 14 Oracle Retail Point of Service Operations Guide Example of Saving Data Storing Tender Information insertGiftCardTenderLineItem dataConnection transaction lineTtemSequenceNumber TenderGiftCardIfc lineltem else if lineItem instanceof TenderChargeIfc Charge tender updates the Credit Debit Card Tender Line Item Tender Line Item and Retail Transaction Line Item tables insertCreditDebitCardTenderLineItem dataConnection transaction lineItemSequenceNumber TenderChargelfc lineItem 2 Write an implementation for methods written for the data operation class Example 13 14 lists the source code for the insertCreditDebitCardTenderLineltem called in Example 13 13 Fi
34. member propvalue TravelCheck gt PERTY propname member propvalue GiftCert gt PERTY propname member propvalue Coupon gt PERTY propname member propvalue GiftCard gt PERTY propname member propvalue StoreCredit PERTY propname member propvalue MallCert gt PERTY propname member propvalue PurchaseOrder PERTY propname member propvalue MoneyOrder PERTY propname member propvalue USDCash gt PERTY propname member propvalue USDTravelCheck gt PERTY propname member propvalue USDCheck gt PERTY propname member propvalue USDGiftCert gt PERTY propname member propvalue USDStoreCredit gt PERTY propname member propvalue CADCash gt PERTY propname member propvalue CADTravelCheck gt PERTY propname member propvalue CADCheck gt PERTY propname member propvalue CADGiftCert gt PERTY propname member propvalue CADStoreCredit gt PERTY propname member propvalue MXNGiftCert gt PERTY propname member propvalue MXNStoreCredit gt PERTY propname member propvalue GBPGiftCert gt PERTY propname member propvalue GBPStoreCredit gt PERTY propname member propvalue GBPCash gt PERTY propname member propvalue GBPTravelCheck gt PERTY propname member propvalue GBPCheck gt PERTY propname member propvalue EURCash gt PERTY propname member propvalue EURTravelCheck gt PERTY propname member propvalue EURCheck gt PERTY propname me
35. roadClear in Signals and load and unload in Shuttles Letters can be mailed from traverse in Aisles Define Shuttles in the calling Service package If they are reusable Shuttles define them in a common package Table 7 1 provides naming conventions for Tour components Table 7 1 Tour Naming Conventions Description Example Service description of the related functionality Login Site element VerbNoun indicating the action taking place EnterID at the Site Site class The same as the Site name with Site as a suffix EnterIDSite java Road element NounVerb indicating the event that caused IDEntered the Road to be taken Road class The same as the Road name with Road as a IDEnteredRoad java suffix Aisle element NounVerb indicating the event that caused PasswordEntered the Aisle to be taken Aisle class The same as the Aisle name with Aisle as a PasswordEnteredAisle java suffix Cargo ServiceNameCargo LoginCargo java 7 2 Oracle Retail Point of Service Operations Guide Tour Framework Table 7 1 Tour Naming Conventions Element Description Example Letter One word action name indicating the event Success see list defined in commonLetterlfc java Failure Continue Next Cancel OK Retry Invalid Add Yes No Undo Done Transfer Station element NestedServiceNameStation FindCustomerStation Shuttle class NestedServiceNameLaunchShuttle FindC
36. tape ADVANCE This combination allows you to track visited sites and allows you to attach undo index OFF behavior However you cannot back up to this site A common scenario for use i would be for performing external lookups and the user must backup to the site that record ON started the lookup This combination is used rather than the following combination when changes made to the cargo that must be reversible tape ADVANCE This combination is useful for sites that require external setup from another site but index OFF do not result in a significant change in cargo You cannot back up to a site that uses these settings and you cannot restore cargo at this site As with the previous record OFF combination these settings are used for sites that perform external lookups 9 14 Oracle Retail Point of Service Operations Guide Tour Cam Table 9 5 Forward TourCam Settings Settings Behavior tape ADVANCE This combination is used when a site does not do anything of significance to cargo de ON You would use this setting if a site prompts to choose an option from a list and there i is a default or to respond to a yes no dialog and you want to ensure the data record OFF collected at the site is reset tape ADVANCE namedIndex LOGIN This combination is used when you want the application to be able to return to a specific index even if the backup begins in a child tour tape DISCARD This combination is used when y
37. templates and specs and references to all tour specific uicfg xml files If you change any UI script in the customer implementation the defaultuicfg xml file must be replaced It also needs to be replaced if the displays templates and basic bean specs need to be replaced Follow these steps to replace the file 1 Copy the file defaultuicfg xml to the posNconfig defaults directory in the customer source tree and rename it for example to MBSdefaultuicfg xml Modify the displays templates default screens and specs as necessary to represent the customer s user interface Verify that the conduit script for the client tier has been customized and is located in the customer source tree Modify the client conduit script to include the new filename and package name for the MBSdefaultuicfg xml file in the configFilename property value in the UlSubsystem section of the UITechnician tag Extension Guidelines 8 7 POS Package Example 8 9 ClientConduit xml Conduit script modified to use custom UI configuration file TECHNICIAN name UITechnician class UITechnician package com extendyourstore foundation manager gui export Y gt lt CLASS name UISubsystem package com extendyourstore pos ui class POSJFCUISubsystem gt lt CLASSPROPERTY propname configFilename propvalue classpath com mbs pos config defaults MBSdefaultuicfg xml proptype STRING gt additional class properties omitted lt C
38. tour gt Shuttle Since shuttles do not mail letters they may be extended or replaced however extending them is recommended Follow these steps in either case 1 Modify the shuttle class Create a new class in the customer source tree If it extends or replaces the product bean class add the customer abbreviation to the filename For example TenderAuthorizationLaunchShuttle java becomes MBSTenderAuthorizationLaunchShuttle java 2 Edit the appropriate Tour Map for the locale using the replacewith property in the lt SHUTTLE gt tag to define the new package and filename for the shuttle Extension Guidelines 8 5 POS Package Example 8 6 tourmap_CA xml Replacing or Extending a shuttle tour name tender file classpath com mbs pos services tender file SITE name RefundDueUI useaction com mbs pos services tender refundDueUISite gt gt lt SHUTTLE class TenderAuthorizationLaunchShuttle replacewith com mbs pos services tender MBSTenderAuthorizationLaunchShuttle gt lt tour gt 3 Modify the calling and nested tour scripts as necessary to adjust to the change Signal Extending signals in the traditional object oriented sense is not recommended This is because signals are typically so small that extending an original signal class makes them overly complex The REPLACEWITH tag of the TourMap does not work for Signals The tour script must be customized to refer to the package and filename of
39. 10 17 11 Manager Technician Framework New Manager Technician indidit ii hee E bee rr Re ER A Pe id 11 3 12 13 Manager Class td ect e A o eMe hee eee ANG IM e LAC LUE 11 3 Manager Configuration eeeetediee A ne iei e hd ie E dete eerte 11 4 Technica Class Renee e e ee S e tee ed E e tt 11 4 Techniciari Configuration teo ire terae ed tit e at nee icut antes 11 5 Valet Class sie HER eet bete b eel s be e eit howd b o em ome ed 11 6 Sample Code eee ee iet fert retur repe per tre tee Side coals eet epe ted ede pios 11 6 Config ratiOti a c oe ee nee ne aet peii Bee ua PEDIR e abe a ER dado 11 6 NR EE 11 7 Managers esed ebat ditte to eos man rc DR bon e etd ese le dedos 11 7 Male n REC ree e RE AERE 11 8 Technilelan ingens edicere dini ie ie etai n te E P cg 11 9 Manager Technician Reference sss eene e enne 11 10 Parameter Manager Technician sse eene nnne nnne 11 10 UILManager Tlechrm ciari sisis tete o bee Pee imt ra iri EL UP ni e de nad 11 11 Journal Manager Technician aiite ot eei one eb ai 11 13 Retail Domain New Domain Object needed oc ete e eee ole ttbi ero 12 2 Domain Object in Tour Code ener isaac 12 3 Domain Object Reference A tee tetti e re te deve taba seas aes 12 4 Codelast Maps aT erat NA 12 4 CUPL OL CY ii re NN 12 6 TRATISACH OM EM R 12 8 Store Database ARTS Conipliance Denn dele eet ite tete ete i deeem ederent
40. 2 Selecta role name from the list and choose Enter Next The Edit Role screen appears with the selected role displayed 3 Choose Enter Next to display the Set Access screen for the selected role Figure 1 1 Set Access Screen Oracle Retail Point of Service Select a function to toggle access then press Yes No Press Done when complete Function Access Auu remp ermpluyee Aurimsuwauuri Sark unte bark VepUSIL Vance ur er Vance ransacuuri IUCR ITI vut LIUSE Register vIUSE HII USIUFTIET AUF Iria v usiurrier veele v usiurrier D ISCUUFL Laly uperauuris L ISUUUFIL rule Auunuuinr CIELUUMIL JUUTE E matl Errpliuyeg AQUI iru EMpluyee nme mwamntenante enu ul Vay 129 Guest User Guest User 8 6 07 1 25 PM Set Access Online F12 Esc Enter 4 To edit the role scroll through the list of functions While a function is selected choose F2 Yes No to toggle the access for that function 5 When you are finished choose F3 Done to save the settings Adding a Role To add a role 1 From the Main Options screen choose F4 Administration F4 Security F3 Roles and F3 Add The Add Role screen appears 1 2 Oracle Retail Point of Service Operations Guide Defining Security with Roles Figure 1 2 Add Role Screen Oracle Retail Point of Service Enter a role name then press Next Role Name District Manager sk Required Fields 129 Guest User Guest User 8 6 07 1 24 PM
41. 30 tax line item table TR LTM TX B 28 till history tableLE HST TL B 29 dataset compressed file structure A 8 example A 8 dataset flat file structure A 9 example A 9 defining security with roles 1 1 addingarole 1 2 modifying a role 1 2 secured features 1 4 security implementation warnings and advice 1 5 design patterns 2 9 command pattern 2 10 factory pattern 2 10 MVC 2 9 singleton pattern 2 11 development environment 5 1 preparation 5 1 setup 5 1 build the database 5 2 configure the IDE 5 2 configure the version control system 5 4 create a sandbox 5 2 install Point of Service 5 1 update Java security and policy files 5 3 devices 4 3 create a Session and ActionGroup 4 4 set up the device 4 4 simulate the device 4 6 test the device 4 4 domain package 8 11 database 8 13 retail domain 8 12 E enhancing POSLog B 10 extensibility A 9 adding a new dataset A 10 adding new dataset type A 13 adding new table to existing dataset A 10 adding more tables to existing dataset types A 10 changing Oracle Retail Point of Service client database vendor A 18 configuring schedule for dataset producer and consumer A 11 configure dataset consumer A 12 configure dataset producer A 11 plugability A 18 extension guidelines 8 1 conventions 8 1 directory paths 8 2 filename conventions 8 2 modules 8 2 terms 8 1 pos package 8 3 other 8 9 Index 2 tour 8 3 Ulframework 8 7 extract
42. 4 1 Parameter Directories Files and Descriptions Directory Parameter Related XML File Description store store xml Local store information register workstation xml Register level information user role operator xml User level information Higher level parameters by default are overridden by lower level parameter settings For example store level configuration parameters override application level parameters The FINAL element in a parameter definition signifies whether the parameter can be overridden The following is an excerpt from config manager NV PosParameterTechnican xml showing the order of precedence from highest level to lowest level Example 4 1 Default Parameter Settings SELECTOR name defaultParameters gt SOURCE categoryname application alternativename application gt SOURCE categoryname corporate alternativename corporate gt SOURCE categoryname store alternativename store gt SOURCE categoryname service alternativename NO_OP gt SOURCE categoryname uidata alternativename NO_OP gt SOURCE categoryname register alternativename workstation gt lt SOURCE categoryname userrole alternativename operator gt lt SELECTOR The categoryname specifies the directory name and the alternativename specifies the name of the XML file All parameter subdirectories reside in config parameter Parameter Group Each parameter belongs to a group which is a collection of rel
43. 7 1 9 1 aisles 7 5 cargo 7 7 choosing among sites aisles and signals 7 6 foundation 7 3 general tour guidelines 7 2 managers and technicians 7 4 renaming letters 7 6 roads 7 5 shuttles 7 7 signals 7 5 sites 7 4 tour architectural guidelines 7 1 tour components 9 1 aisles 9 8 bus 9 3 cargo 9 5 common roads 9 7 exception region 9 10 letters 9 6 roads 9 7 service and service region 9 3 signals 9 10 sites 9 5 stations and shuttles 9 9 system sites 9 6 tour metaphor 9 1 tourmap 9 4 tours and services 7 3 tracking VAT financial totals B 6 accumulate inclusive tax B 7 accumulate shipping charge tax B 8 transaction persistence for VAT B 5 persist inclusive tax B 5 persist shipping charge tax B 6 transaction retrieval in CO B 9 enhancing transaction entity beans B 9 enhancing transaction manager bean B 10 enhancing transaction service bean B 9 U Ulframework 10 1 beans 10 4 DataInputBean 10 7 DialogBean 10 11 field types 10 13 NavigationButtonBean 10 9 Index 3 PromptAndResponseBean 10 4 connections 10 14 ClearActionListener 10 15 DocumentListener 10 15 ValidateActionListener 10 15 screens 10 2 text bundles 10 16 parameterText 10 17 receiptText 10 16 understanding data managers and technicians 13 1 V value added tax B 1 VAT calculation B 1 calculate VAT for returns transactions B 3 calculate VAT for reverse transactions other than return B 3
44. Business Object Manager Technician Data Persistence and Navigation frameworks interact to provide a powerful flexible application framework Manager Technician 2 4 Oracle Retail The Manager Technician framework is the component of Oracle Retail Platform that implements the distribution of data across a network A Manager provides an API for the application and communicates with its Technician which implements the interface to the external resource The Manager is always on the same tier or machine as the application while the Technician is usually on the same tier as the external resource The following figure shows an example of the Manager Technician framework distributed on two different tiers Figure 2 3 Manager Technician Framework Application Tier Resource Tier Application f Manager Technician External Database Table 2 3 describes the components of the Point of Service architecture Point of Service Operations Guide Frameworks Table 2 3 Manager Technician Framework Components Component Description Manager Managers provide a set of local calls to the application There are various types of managers to handle various types of activity For example the Data Manager receives the request to save data from Point of Service It locates the appropriate Technician that should perform the work and insulates the application from the process of getting the work accomplished The Manager is availa
45. Count Operating Fund at Start of Day Detail 5 Bills Entered currency denomination amount Only recorded if a value is entered and Count Operating Fund at Start of Day Detail 10 Bills Entered currency denomination amount Only recorded if a value is entered and Count Operating Fund at Start of Day Detail 20 Bills Entered currency denomination amount Only recorded if a value is entered and Count Operating Fund at Start of Day Detail 50 Bills Entered currency denomination amount Only recorded if a value is entered and Count Operating Fund at Start of Day Detail 100 Bills Entered currency denomination amount Only recorded if a value is entered and Count Operating Fund at Start of Day Detail Store Status Open a Close End of Day This is a Back Office and Point of Service event D 8 Oracle Retail Back Office Operations Guide Daily Operations Audit Log Events This event is written to the audit log if the Settings For Audit Logging system setting INFO and the End of Day system setting INFO a Event data collection starts when the operator selects to begin end of day Event data collection ends when the system assigns a transaction number The format of this event is dependent on the Count Operating Fund at End of Day parameter setting Event failure can happen only due to technical reasons for example unable to get next sequence number for transaction transaction creation excep
46. DC RT EXC EF DC RT EXC EP ID CNY ICD MO RT TO BUY MO RT TO MO FE SV EXC VALUES 0 00 TO DATE 1990 01 01 YYYY MM DD TO DATE 2099 12 31 YYYY MM DD 4 12 434 12 441 0 00 INSERT INTO CO RT EXC LL CNY EXC DC RT EXC EF DC RT EXC EP ID CNY ICD MO RT TO BUY MO RT TO MO FE SV EXC VALUES 0 00 TO DATE 1990 01 01 YYYY MM DD TO DATE 2099 12 31 YYYY MM DD 5 9 3739 9 3796 0 00 INSERT INTO CO RT EXC LL CNY EXC DC RT EXC EF DC RT EXC EP ID CNY ICD MO RT TO BUY MO RT TO MO FE SV EXC VALUES 0 00 TO DATE 1990 01 01 0 05782 YYYY MM DD 6 0 05786 INSERT INTO CO RT EXC C 4 Oracle Retail Back Office Operations Guide YYYY MM DD 0 00 TO DATE 2099 12 31 SL SL SL SL SL SL Configuring a New Base Currency LL CNY EXC DC RT EXC EF DC RT EXC EP ID CNY ICD MO RT TO BUY MO RT TO SL MO FE SV EXC VALUES 0 00 TO DATE 1990 01 01 YYYY MM DD TO DATE 2099 12 31 YYYY MM DD 7 1 0 1 0 0 00 Store Safe Tender Table LE TND STR SF Add the store safe tenders supported for the new base currency For example Example C 4 Add Store Safe Tenders for Krona INSERT INTO LE TND STR SF ID RPSTY TND TY TND TY SB TND LU CNY ISSG CY TS CRT RCRD TS MDF RCRD ID CNY ICD VALUES 1 CASH SE CURRENT TIMESTAMP CURRENT TIMESTAMP 7 INSERT INTO LE TND STR S ID RPSTY TND TY TND TY SB TND LU CNY ISSG CY
47. Defining Security with Roles a Password Policy Reason Codes Configuring Transaction ID Lengths Configuring RMI Timeout Intervals Configuring Third party Tender Authorization System Settings Adding or Changing Language Bundles Configuring Logging Note Before making changes to default settings in the Point of Service application make sure the changes will not affect the PABP settings For more information on PABP see the Oracle Retail Strategic Store Solutions Security Implementation Guide Defining Security with Roles In Point of Service you specify user access to the application by assigning a role to each user Each role contains a list of the security access points of the application specifying which access points that role is allowed to use You can create as many roles as you need Roles are typically named for job titles by creating a manager role and a clerk role for example you define two classes of employees with different access to Point of Service functions All clerks however would have the same access rights The procedures in this section describe how to modify existing roles or add new ones For a list of security access points see Secured Features Backend System Administration and Configuration 1 1 Defining Security with Roles Modifying a Role To modify a role 1 From the Main Options screen choose F4 Administration F4 Security F3 Roles and F2 Find
48. Enhancing Sale Return Transaction Interface class The following two methods will be added to the sale return transaction interface com extendyourstore domain transaction SaleReturnTransactionlfc and class com extendyourstore domain transaction SaleReturn Transaction to support adding and updating send shipping packages public void addSendPackageInfo ShippingMethodIfc shippingMethodUsed CustomerIfc shippingToCustomer This function will create a send package line item based of the shipping method and customer passed in and adds the line item to the transaction totals It will invoke the addSendPackage method on the transaction totals to do the adding see Transaction Totals Interface Class for more details on the transaction totals method public void updateSendPackageInfo int index ShippingMethodIfc shippingMethodUsed CustomerIfc shippingToCustomer Appendix Value added Tax B 23 New Or Changed Classes services This function will create a send package line item based of the shipping method and customer passed in and set the line item at the location specified by the index The index is an index to the send package line item vector returned by getSendPackages function in the transaction totals class see Transaction Totals Interface Class for more details on the transaction totals method The following code illustrates how a send package line item is created from a shipping method and customer in the sales return t
49. Figure 2 1 Oracle Retail Architecture New Retail Oracle Retail Stores Cash Registe Applications Point of Service Back Office Mobile Oracle Retail Enterprise Central Office Commerce Services Oracle Retail Platform Technical Architecture 2 1 Point of Service Arch itecture Component Table 2 1 describes the components in the diagram Table 2 1 Oracle Retail Architecture Components Description Oracle Retail Platform Oracle Retail Platform provides services to all Oracle Retail applications It contains the tour framework UI framework and Manager Technician frameworks Oracle Retail Platform is not retail specific Commerce Services Commerce Services implement business logic Commerce Services define data and behavior for retail applications This component is referred to as Retail Domain in Point of Service Oracle Retail Applications All Oracle Retail applications leverage the frameworks and services provided by Oracle Retail Platform and Commerce Services External Interfaces Using frameworks and services the applications are able to interface to other applications and resources Advantages of the Oracle Retail architecture include its object oriented design and scalability The system is designed to support existing systems and customer extensions Oracle Retail Platform frameworks support integration by adhering to retail and technology standards The multi tier desig
50. Flat File Structure The following is the format of the DataSet flat file Table Row Data with the column information separated by comma and enclosed within double quotes if the information is not of numeric data type The table row data is followed by New line character DataSet Flat File Example The following is the DataSet flat file example for CO CNY table Lous DSD USO US o E19 2 0 2 DA CAD CAD CA 0 2 1 3 MX MXN MXN MX 0 2 3 4 GB GBP GBP GB 0 2 4 5 EU EUR EUR EU 0 2 5 6 gpl JPY JPY JP 0 0 6 Note All the data type values except number type must be within double quotes Extensibility Extensibility is supported through the interface based design and the use of the Spring Framework From an extensibility stand point an alternate implementation of any of the exposed interfaces could inherit from one of the out of the box implementation classes and be injected into the system through Spring Additionally the schema has been designed to enable the addition of datasets and dataset tables Appendix Intra Store Data Distribution Infrastructure A 9 Extensibility Adding New Table To Existing Dataset Adding a new dataset table to the data model is as simple as adding a new row to the table CO DT ST TB IDDI and creating table script in CreateSchema sq Adding More Tables To Existing Dataset Types The following example walks t
51. INFO appender ref ref AUDIT gt category category name com 360commerce commerceservices TENDERED WITH DEBIT CARD priority value INFO appender ref ref AUDIT gt category D 6 Oracle Retail Back Office Operations Guide audit audit audit audit audit audit audit audit audit event event event event event event event event event EDIT_ROLE gt v REMOVE_ROLE MODIFY_ MODIFY_ ADD PARAMETER REMOVE DISTRIBUTE TRANSACTION TRANSACTION Daily Operations Audit Log Events Daily Operations Audit Log Events Enter Business Date Event Components This is a Back Office and Point of Service event This event is written to the audit log if the Settings For Audit Logging system setting INFO and the Enter Business Date system setting INFO Event data collection starts when the operator enters a business date Event data collection ends when the operator selects Next a There is no failure condition to this event Table D 1 Enter Business Date Event Components Notes Event Name Enter Business Date Event Status Success Event Originator Class Name and Method Name ClassName methodName System Date System date of the event Business Date Entered Business date System Time Time of the event Store ID Store number the event tra
52. Number For Point of Service the register number the event transpired at Employee ID Employee ID First Name Entered first name Middle Name Entered middle name Last Name Entered last name Employee Login ID Entered login ID Role Name Selected role Employee Status Selected employee status Add Temporary Employee This is a Back Office and Point of Service event This event is written to the audit log if the Settings For Audit Logging system setting INFO and the Add Temporary Employee system setting INFO Event data collection starts when the operator selects to add a temporary employee Event data collection ends when the operator selects Save Failure Event is when the login ID provided is already in use Table D 11 Add Temporary Employee Event Components Event Components Notes Event Name Add Temporary Employee Event Status X Success a Failure Event Originator Class Name and Method Name ClassName methodName System Date System date of the event System Time Time of the event Store ID Store number the event transpired at User ID User ID performing the event Register Number For Point of Service the register number the event transpired at Employee ID Employee ID First Name Entered first name Middle Name Entered middle name Last Name Entered last name Employee Login ID Entered login ID Role Name Selected role
53. PRI 5 where DE CNY JPY Add store safe tenders supported for the new base alternate currency For example if EUR is the new base currency add money order tender support for EUR insert into le tnd str sf ID RPSTY TND TY TND TY SB TND LU CNY ISSG CY TS CRT RCRD TS MDF RCRD ID CNY ICD VALUES 1 MNYO EU CURRENT TIMESTAMP CURRENT TIMESTAMP 5 Remove store safe tenders no longer support for the old base alternate currency For example if USD if the old base currency remove money order tender support for USD delete from le tnd str sf where LU CNY ISSG CY US and TY TND MNYO Add exchange rate records for alternate currencies into the CO RT EXC table based on the new base currency Delete all exchange rate records based on any previous base currency Appendix Changing and Configuring a New Base Currency C 1 Configuring a New Base Currency There are some application parameters that must be changed as well lender Group CashAccepted For example if EUR is base and GBP is alternate make sure that the CashAccepted parameter is changed so that EUR and GBP are selected TravelersChecksAccepted For EUR as base and GBP as alternate the values for the TravelersChecksAccepted parameter should be EURCHK and GBPCHK ChecksAccepted For EUR as base and GBP as alternate the values for the ChecksAccepted parameter should be EURCHK and GBPCHK GiftCertificateAccepted Stor
54. Required Modules in Dependency Order Customer Modules Standard Modules MBS common MBS 3rd party MBS commerce services MBS pos root src locales US and other pos root src locales US and other language directories language directories domain root and src MBS domain root and src 360common commerce services foundation 3rd party Directory names in parentheses must be specified individually in the classpath Directory Paths Paths given in this chapter are relative starting either with the module or with the source code as follows a Paths beginning with a module name start from the module location pos config refers to the config directory within the pos module wherever that module is located on your system 8 2 Oracle Retail Point of Service Operations Guide POS Package Paths beginning with com refer to source code Source code paths are nested within modules in Nsrc directories Multiple src com file hierarchies are built together into one file structure during compilation For example a reference to com _360commerce pos services tender can be found in the pos module s src directory If your pos module is in c workspace VOracleRetailStore then the full path is C workspace OracleRetailStore applications pos src com _360commerce pos services tender POS Package Tour This section addresses extension of files in the pos package Note The pos module may be nested wit
55. Retail Point of Service Modify the reason code value and press Next Reason Code Group Timekeeping Reason Codes Reason Code Name AAN Database ID sk Required Fields 129 Guest User Guest User 8 6 07 1 23 PM Edit Reason Code Online F1 hil F12 Esc Enter 4 Press F2 Make Default to save your changes and make the selected settings the new default ll Ll unir PNE Ll ae aa HE 5 Choose Enter Next The changes are saved and the system displays the Reason Code Group screen Configuring Transaction ID Lengths You can change the lengths of some of the most common data values associated with transactions These changes affect every aspect of the software and should not be undertaken lightly Changes should only be performed before Point of Service is installed Changes to these settings can require substantial testing to establish that no problems result from the change Understanding Transaction IDs A transaction ID is a composite key made from the store number register number and sequence number When combined these attributes create a unique number for each transaction Transaction IDs can also include an eight digit date to ensure that they are unique For example if you restart your sequence numbers on a daily basis the date value prevents transaction ID repetition Key points about the transaction ID and related properties a You can change the length of the store register and sequence numbers whi
56. Service event This event is written to the audit log if the Settings For Audit Logging system setting INFO and the Register Open system setting INFO Event data collection starts when the operator selects to open a register Event data collection ends when the system assigns a transaction number If more than one register is selected to open at one time a separate independent event is written to the audit log Each opened register is assigned an individual transaction number Event failure can happen only due to technical reasons e g unable to get next sequence number for transaction transaction creation exception EJB call exception or if the financial totals are not found in the database Table D 4 Register Open Event Components Event Components Notes Event Name Register Open Event Status Success a Failure Event Originator Class Name and Method Name ClassName methodName System Date System date of the event Business Date Business date of the event System Time Time of the event Store ID Store number the event transpired at User ID User ID performing the event Register Number For Point of Service the register number the event transpired at Transaction Number Transaction number assigned by the system to the opened register Register Close This is a Back Office and Point of Service event This event is written to the audit log if the Settings For Audit Logging system settin
57. TABLE offlinedb TABLE1 COLUMN1 lt lt TYPE gt gt lt lt Constraint gt gt COLUMN2 lt lt TYPE gt gt lt lt Constraint gt gt CREATE TABLE offlinedb TABLE2 COLUMN1 lt lt TYPE gt gt lt lt Constraint gt gt COLUMN2 lt lt TYPE gt gt lt lt Constraint gt gt insert into CO DT ST IDDI ID DT ST ID STR RT NM DT ST values 6 04241 NEW Changing Oracle Retail Point of Service Client Database Vendor Currently the Oracle Retail Point of Service client uses Derby Database However the modifications to the code are minimal for replacing the Oracle Retail Point of Service client database from Derby to another database Do the following to change the Oracle Retail Point of Service client database 1 Plugability Add Off line lt lt DBName gt gt Helper class which implements offlineDBHelperIfc Change the installer to have new database driver jar file paths Update the POOL name jdbcpool class DataConnectionPool package com extendyourstore foundation manager data section of PosLFFDataTechnician xml file with the driver databaseUrl userid password The plug points have been identified as follows DataSetService ClientDataSetService ClientDataSetController DataSetProducers EmployeeDataSetProducer ItemDataSetProducer TaxDataSetProducer CurrencyDataSetProducer PricingDataSetProducer DataSetConsumers EmployeeDataSetConsumer
58. Table TR LTM SLS RTN see Sales Return Line Item Table TR LTM SLS RTN Bean DTO Classes com 360commerce commerceservices transaction salereturn com 360commerce commerceservices transaction salereturn ejb Entity Bean Name SaleReturnShippingRecordBean Table SHP RDS SLS RTN see Shipping Record Table SHP RDS SLS RTN Bean DTO Classes com 360commerce commerceservices transaction shipping com 360commerce commerceservices transaction shipping ejb The following are new entity beans that will be created Entity Bean Name SaleReturnLineItemTaxBean Table TR LTM SLS RTN TX see Sales Return Tax Line Item Table TR_LTM_ SLS RTN TX Bean DTO Classes com 360commerce commerceservices transaction salereturn com 360commerce commerceservices transaction salereturn ejb Entity Bean Name SaleReturnShippingRecordTaxBean Table SHP RDS SLS RTN TX see Shipping Record Tax Table SHP_RDS_ SLS RTN TX Bean DTO Classes com 360commerce commerceservices transaction shipping com 360commerce commerceservices transaction shipping ejb For details of the DTO data transfer object class enhancements see Commerce Service Transaction DTO Classes The toDTO method in all the above bean classes must be enhanced or created to populate the DTO objects Enhancing Transaction Service Bean The transaction retrieval logic in transaction service bean class com 360commerce commerceser
59. Tour code eene tenente nennen ii 4 6 4 8 Simulated Device Configuration esse eene nennen nnnnn 4 6 4 9 JavaHelp helpscreens properties sse eee nennen nene e nnne 4 6 4 10 JavaHelp toexmbl eet tnt oa eite nb gebe lee ote ertet aberit 4 7 6 1 Header Samples 5 ose usted et ete e e e Dee e TA 6 2 6 2 Wrapping Code in a Code Guard esses ee eee nennen 6 10 6 3 Switching Graphics Contexts via a Logging Level Test 6 10 6 4 T OE scent te NOR dette testet aie dane tef tac sis traf etit cdd 6 11 6 5 Network Testi races ande fetus cee hua reete etia ee eese es epi EENE 6 13 6 6 Network Test with Shortened Try Block 6 13 6 7 Wrapped Exception 5t emere rte rre n ia pacha 6 14 6 8 Declaring ani Exception iieii miina n ad E ete ite need nes eee eate need ills 6 14 6 9 Clean Up First then Rethrow Exception eene 6 14 6 10 Using a Switch to Execute Code Specific to an Exception sssssssssssssss 6 15 6 11 Using Multiple Catch Blocks Causes Duplicate Code sss 6 15 8 1 MBStourmap_CA xml Sample initial tourmap file for Canadian locale 8 3 8 2 posfoundation properties Adding new Tour Maps sssssssssseseeee 8 4 8 3 tourmap CA xml Replacing one tour script nnns 8 4 8 4 tourmap CA xml Replacing a siteaction sss eee eene 8 5 8 5 tourmap_CA xml Replacing a laneaction sse eene nen
60. Transaction For a post void transaction the following function in class com extendyourstore domain transaction Void Transaction must be enhanced to negate the shipping charges tax of the original transaction protected void setVoidTransactionTotals TransactionTotalsIfc origTotals Enhance Overlay Lane Action Class SendMethodSelectedRoad The lane action class for road DisplaySendMethodNext in tour script com extendyourstore pos services send displaysendmethod displaysendmethod xml is com extendyourstore pos services send displaysendmethod SendMethodSelectedRoad This action class is invoked when a send method is selected We will overlay this class with the following one for VAT com extendyourstore pos services send displaysendmethod VatSendMethodSelectedRoad B 4 Oracle Retail Central Office Operations Guide Transaction Persistence for VAT The lane action class com extendyourstore pos service send displaysendmethod SendMethodSelectedRoad is invoked when a send method is selected in Point of Service UI Since shipping charges can be taxable it will be enhanced to call the sales return transaction API updateTransactionTotals to force tax recalculation after the shipping method is added updated to the transaction Calculate VAT For Send Transactions For a send transaction its VAT will be calculated based on local tax rules not the destination tax rules The tax rules of a send transaction are retrieved in GetTaxRules sit
61. a Java class in the customer source tree and prepend the customer abbreviation to the filename If you are modifying an existing transaction have the class extend the transaction class in the product code and overwrite the methods you are modifying Copy POSDataManager xml to the customer source tree For customized transactions with new filenames modify the transaction name Copy DefaultDataTechnician xml to the customer source tree m m M Modify package and class names for data actions and data operations that have been modified 6 Ifnotalready done modify the conduit scripts to reference the new package and or filename of the technician script 7 Extend DataTransactionKeys java as MBSDataTransactionKeys java in the customer source tree to add or modify the static final String for each transaction the file serves as a list of string constants Example 8 14 MBSDataTransactionKeys java Adding Strings public static final String DATA MAINTENANCE TRANSACTION data transaction DATA MAINTENANCE TRANSACTION public static final String PLU RETURN TRANSACTION data transaction PLU RETURN TRANSACTION 8 Update domain properties in the customer source tree to add or modify the name value pairs for each transaction Example 8 15 domain properties Sample Modified and New Data Transactions Registry of DataTransactionIfc implementations try to keep in alphabetical order data transaction ADVANCED PRICING DATA TRANSACTION com
62. all entered Canadian Check when Count Till at Reconcile Detail and the tender was received lt ARG gt Canadian Check Canadian Check amount entered when Count Till at Reconcile Detail a There is an audit log entry for each Canadian Check entered a lt ARG gt the number of the Canadian Check Canadian Travelers Check Total Entered tender amount if Count Till at Reconcile Summary Only recorded if this tender was received and this tender is included in the Tenders To Count at Till Reconcile and if Blind Close No Total of all entered Canadian Travelers Check when Count Till at Reconcile Detail and the tender was received lt ARG gt Canadian Travelers Check Canadian Travelers Check amount entered when Count Till at Reconcile Detail There is an audit log entry for each Canadian Travelers Check entered a lt ARG gt the number of the Canadian Travelers Check D 30 Oracle Retail Back Office Operations Guide Till Audit Log Events Table D 27 Till Reconcile Event Components Event Components Notes Canadian Gift Certificate Total Entered tender amount if Count Till at Reconcile Summary Only recorded if this tender was received and this tender is included in the Tenders To Count at Till Reconcile and if Blind Close No Total of all entered Canadian Gift Certificate when Count Till at Reconcile Detail and the tender was received lt ARG gt Canadian Gift Certific
63. all the top level directories The following lists the directories that should be created C mySandbox C mySandbox src C AmySandbox config C AmySandboxl1localeslen_US Configure the IDE The following configuration enables your IDE to build and run the Point of Service application 1 Setthe JRE System Library In the IDE preferences point to the JRE included in the JDK installed earlier Point to the root of the Java directory in which JDK 1 4 was installed not the JRE directory in the Point of Service installation directory For example if the JDK directory is named C jdk1 4 1 the JRE Home Directory would be C Njdk1 4 1 5 2 Oracle Retail Point of Service Operations Guide Setup 2 Specify the path for the source directories on the build path to be the same as the directory or directories created for the sandbox 3 Specify the following jars on the build path in the order described in the following table These directories are the same as the directories in C OracleRetailStore pos logs classpath log Table 5 2 lists Point of Service build path orders Table 5 2 Build Path Order Directory 1 C VOracleRetailStoreNpos Mib 2 C OracleRetailStore pos lib locales 3 C OracleRetailStore pos 3rdparty Mib 4 C OracleRetailStore pos 3rdparty lib ibm surepos750 5 C OracleRetailStore 360common lib Note 3rd Party folders specified during installation should also be added here
64. allow users to share accounts Users that have access to more than one customer record should use complex passwords 3 Complex passwords should have a minimum length of 7 characters contain both numeric and alphabetic characters be changed at least every 90 days and not repeat for at least 4 cycles 4 Unused accounts should be disabled Accounts should be temporarily disabled for at least 15 minutes after six invalid authentication attempts Backend System Administration and Configuration 1 5 Password Policy 5 If sensitive data is transmitted over a wireless network the network must be adequately secure usually through use of WPA 802 11i or VPN 6 Never store sensitive data on machines connected to the internet Always limit access using a DMZ and or firewall 7 Forremote support be sure to use secure access methods such as two factor authentication SSH SFIT and so forth Use the security settings provided by third party remote access products 8 When transmitting sensitive data always use network encryption such as SSL Following these recommendations does not necessarily ensure a secure implementation of the Oracle Retail products Oracle recommends a periodic security audit by a third party Please review the PCI standards for additional information Password Policy One of the most efficient ways to manage user access to a system is through the use of a password policy The policy can be defined in the datab
65. and UtilityManagerlfc classes can be extended and the new class is specified through the Conduit Script For general purpose behavior that can be called from a Site Lane or even from a Signal use utility methods to capture the common reusable behavior rather than extending a common Site Large bodies of reusable behavior can be implemented as Managers and Technicians This pattern is especially useful if the user might off load the processing to a separate CPU 7 A Oracle Retail Point of Service Operations Guide Tour Framework Roads Aisles Signals It is sometimes useful to define multiple Roads from an origin Site to the same destination if they capture different Road traversal conditions Do not trap and change the name of a letter just to reduce the number of Roads in a Service This is a poor use of system resources and also hides useful information from the reader of the Tour Script Do not rename letters except as noted in Renaming Letters page 12 8 For example the Return Transaction Service has two Roads with the same origin LookupItem and the same destination EnterReturnItemInformation but the letters that invoke these two Roads are different The use of Road actions is dependent on a number of factors use of TourCam developer conventions for an application number of classes generated and maintainability Use Road actions for outcome specific behavior If you need to store some data in Cargo on the sen
66. are defined by the Oracle Retail Platform engine but can be referenced within a tour script For example a road defined by a tour script can have a system site as its destination Each system site must have a unique name in the tour script file The following code from tender xml shows the definition of two system sites The Final system site stops a bus and returns it to the parent bus and LastIndexed resumes the normal bus operation after an exception Example 9 9 tender xml Definition of System Sites REGION MAP definition of sites lanes and stations SYSTEMSITE name Final action RETURN SYSTEMSITE name LastIndexed action BACKUP gt lt MAP gt lt REGION gt Letters Letters are messages that get sent from the application code or the user interface to the tour engine Letters indicate that some event has occurred Typically letters are sent by the external interfaces such as the graphical user interface database or device to indicate completion of a task Lanes are defined as roads and aisles When the system receives a letter it checks all lanes defined within the current site or station to see if the letter matches the letter for a lane If no matching lane is found the letter is ignored Letters do not have a Java class associated with them Standard letter names are used in the application such as Success Failure Undo and Cancel The following code sample shows tender xml code that def
67. before the Dispatcher calls startUp on the Manager Every Manager should have the following Name Tour code typically locates a Manager using its name Often this name is the same as the name of the class and may be defined as a constant within the Manager This is what the getName method returns a Class This is the name of the class minus its package Package This is the Java package where the class resides Managers may have an additional property file defined that specifies additional information such as the definition of transaction mappings If a separate configuration script is defined the startup method must read and interpret the configuration script The following sample from config NconduitNCollapsedConduitFF xml shows this Example 11 1 CollapsedConduitFF xml Data Manager Configuration MANAGER name DataManager class DataManager package com extendyourstore foundation manager data PROPERTY propname configScript propvalue classpath config manager PosDataManager xml MANAGER Technician Class Technicians implement functions needed by Back Office to communicate with external or internal resources such as the UI or the store database Technicians must implement the Technicianlfc which requires the following methods Table 11 4 lists Technicianlfc methods 11 4 Oracle Retail Point of Service Operations Guide New Manager Technician Table 11 4 Technicianlfc Methods
68. building blocks that can be combined with other components to form an application They typically provide the screen components and data for the workpanel area of the screen Specs Specifications define the components of a screen Display specifications define the width height and title of a window Template specifications divide displays into areas Bean specifications define classes and configurators and additional screen elements for a component Default screen specifications map beans to the commonly used areas and define listeners to the beans Overlay screen specifications define additional mappings of beans and listeners to default screens Specification Loader Loaders find external specifications and interpret them The loader instantiates screen specifications such as overlays templates and displays and places the objects into a spec catalog Catalog A Catalog provides the bean specifications by name The UI Technician requests the catalog from the loader to simplify configurations Configurator The UI framework interfaces with beans through bean configurator classes which control interactions with beans A configurator is instantiated for each bean specification They apply properties from the specifications to the bean configure a bean when initialized reset the text on a bean when the locale changes set the bean component data from a model update a model from the bean component data and set the filename of the res
69. calculate VAT for send transactions B 5 calculate VAT for shipping charges B 4 add update send packages to in a sale return transaction B 4 enhance internal tax engine B 4 enhance overlay lane action class SendMethodSelectedRoad B 4 enhance shipping method table and domain interface class B 4 negate VAT for shipping charges for a post void transaction B 4 calculate VAT for unknown items invalid or blank taxgroups B 3 enhancing internal tax engine B 2 enhancing PLU item look up B 2 inclusive tax flag at tax group rulelevel B 1 inclusive tax rate calculator B 1 VAT tax rule seed data B 2 Index 4
70. call uiFactory configureUIComponent this UI_PREFIX in the initialize method to set the look and feel Receipts Receipts are composed of two levels A base receipt that manages data and behavior for all receipts a Specific receipt types such as Layaway and Return The receipt class names are specified in the tour code and there is no factory for creating receipts Therefore modifications to the tour code that accesses the receipts are required 8 10 Oracle Retail Point of Service Operations Guide Domain Package If the base receipt and specific receipt classes are both going to be extended typical inheritance is not sufficient since Java does not support multiple inheritance For example the MBSLayawayReceipt java class cannot extend both MBSPrintableDocument java and MBSLayawayReceipt java The recommended approach is to extend both classes and have MBSLayawayReceipt java extend LayawayReceipt java MBSLayawayReceipt java then includes an instance of MBSPrintableDocument java and methods can be called on the extended class Follow these steps to customize receipts 1 If modifications are required to the base receipt create a class in the customer source tree named MBSPrintableDocumentUtility java This class is a utility class since the receipt classes delegate common functionality to it 2 For each receipt type that needs to be customized do one of the following a To modify an existing receipt type create a Java
71. change in all cases 8 8 Oracle Retail Point of Service Operations Guide POS Package Other The classes can be used for different screens within the application without changing to Java code by modifying parameter values and calling methods on the bean Use the generalized beans whenever possible and avoid beans specialized for only one screen However bean and bean model classes in the product code that are specific to an individual screen such as CheckEntryBean java and CheckEntryBeanModel java may be customized Follow these steps to modify a bean model 1 Create a new bean model class Create a new class in the customer source tree and add the customer abbreviation to the filename 2 Copy tour files that need to reference the new bean model into the customer source tree Modify them to create and manipulate data for the new bean model Follow these steps to modify the bean 1 Create a new bean class Create a new class in the customer source tree and add the customer abbreviation to the filename 2 Modify the UI config scripts that reference the bean class in the customer source tree to refer to the new bean class filename and package Example 8 11 MBStenderuicfg xml Tender UI Configuration with Customized Bean Reference lt UICFG gt lt BEAN specName TenderOptionsButtonSpec configuratorPackage com extendyourstore pos ui configuratorClassName POSBeanConfigurator beanPackage com mbs pos ui beans b
72. class in the customer source tree that extends the receipt class in the product code Add the customer abbreviation to the beginning of the filename a To create a new receipt type create a Java class in the customer source tree that extends MBSPrintableDocument java 3 For extended classes include an instance of the MBSPrintableDocumentUtility java class Call methods on the utility class when a customized method is required 4 Modify tours in the customer source tree as necessary to call new for the customized receipt types 5 Modify parameters for the receipt header and footer as necessary Reports Point of Service has a set of reports that print on the slip printer These reports are in a proprietary format and do not use a reporting engine The report class names are specified in the tour code and there is no factory for creating reports Therefore modifications to tours that access the reports are required To modify existing Point of Service reports the report Java files can be extended Follow these steps 1 For each report do one of the following To modify an existing report create a Java class in the customer source tree that extends the reports class in the product code found in posMrunkNsrbNcom NextendyourstoreNpos reports locreate a new report create a Java class in the customer source tree that extends the abstract RegisterReport class in the product code Use the customer abbreviation in the
73. configuratorClassName POSBeanConfigurator cachingScheme 0NE gt lt BEAN gt Table 10 6 lists property names and values that can be defined in overlay specifications when specifying attributes of a PromptAndResponseBean Table 10 6 PromptAndResponseBean Property Names and Values Item Description Example enterData Indicates whether data can be entered in the response true area promptTextTag The label tag that corresponds to the text bundle GiftCardPrompt responseField The type of field expected in the response area see com extendyourstore pos Field Type section for available types ui beans AlphaNumericTe xtField maxLength Maximum length of response area input 15 minLength Minimum length of response area input 2 zeroAllowed Indicates whether a zero value is allowed in the true response area negativeAllowed Indicates whether a negative value is allowed in the false response area grabFocus Indicates whether focus should be grabbed when the true screen is first displayed These properties can be defined in UI scripts The following code sample defines an overlay specification that assigns the PromptAndResponsePanelSpec defined above to the PromptAndResponsePanel This example from src com extendyourstore pos NservicesM tender Ntenderuicfg xml defines the COUPON_AMOUNT overlay screen for the Tender service The property that retrieves text from a text bundle is highlighted UI Framework 10 5 Bean
74. dataset flat files of the tables associated with the dataset and metadata information for example the Manifest file Here is the structure of the dataset compressed file DataSet Flat file DataSet Flat file DataSet Flat file META INFMMANIFEST MF DataSet Compressed File Example Contents of a Currency Dataset compressed file CURRENCY BATCHID ZIP META INF MANIFEST MF CO_ACS_GP_RS TXT CO_GP_WRK TXT PA RS TXT Manifest File Structure The Manifest file compressed in the DataSet compressed files contains dataset metadata information in the following format A 8 Oracle Retail Point of Service Operations Guide Extensibility DataSetName DataSetName DataSetID lt lt DataSetID gt gt ApplicationVersion Oracle Retail Point of Service Version StoreID lt lt StoreID gt gt BatchID lt lt DataSetBatchID gt gt Add all the Tables Names as shown in the format below DataFile TableName Table File Name TableSequence Table Names separated by comma in the order of tables to be imported to Derby Manifest File Example The following is the Manifest file example for Currency Dataset DataSetName CURRENCY DataSetID 5 ApplicationVersion pos StoreID 04241 BatchID 20070606084600 DataFile CO CNY CO CNY TXT DataFile CO RT EXC CO RT EXC TXT DataFile CO CNY DNM CO CNY DNM TXT TableSequence CO CNY CO RT EXC CO CNY DNM DataSet
75. e be Ree it ee og Pte i P arre nii rt cant 10 13 Button Ly psy os anta eiae mites E tr e EE enhn 10 13 Field Types and Descriptions ivonne 10 14 Manager Technician Type Examples sees eee nennen 11 2 Manager Names and Descriptions sse 11 2 Managerlte Methods io tee tee a e a E e a ee eR HL t HEROS 11 4 Techinicianilte Methods uere ten eere ie ee ei eese reae eee ee Pe ree eee eere ge eee rout 11 5 Maletlfc Metodo ci ttr cote r tro at Ee esee aee Ge i gre t dete o de coa 11 6 Important ParameterManagerlfc Methods sse eee een 11 11 Important POSUIManagerlfc Methods sss 11 12 Important JournalManagerlfc Methods sse eee 11 13 CodeListMap Object Classes and Interfaces ooconononcoconnnononnnnrnrnencncnnnrnnnonarnnnnnnnararnrnnnararanonna 12 5 12 2 12 3 LIIILLLLLTTGOo Dana k A s O A A NS 00 YJ OOAGO0ODN 0 an A a Ad nr D 22 D 23 D 24 D 25 D 26 D 27 D 28 F 1 Currency Object Classes and Interfaces 12 7 Transaction Object Classes and Interfaces ooconcococononcnnnnnnonenernrnnnecnnnnnnnnnarornnnnnraranneninarananonoa 12 8 Database Tables Used in Credit Card Tender Option sss 13 8 Spring Framework Configuration Options sse nennen A 2 Point of Service Dataset Table accedet aiii A 7 Rule 1 Tax Authority Id8888600 sse eene nennen nennen B 12 Rule 2 Tax Autho
76. ee E e eee t 7 8 TIME MAMAS ii terere E E eee eee eio e a tete eerte 7 8 Required Modules in Dependency Order sss 8 2 Metaphor Components eene RT te At nem te hend 9 2 Component Identification Strategies sssssssssssssesseeenenenerrene eene 9 2 System called Methods eere i eret medie deed ide Lee resiste estera 9 11 Road Tag Element Attributes sse eene een nnne nnne nens 9 13 Forward TourGam Settings eee ae e tede eee pterea ves 9 14 Backup Tour Cam Settings eene tette rene tie nte dede dena e eres 9 15 Tender Package Components sese eene nennen nnns 9 17 UL Framework Features ne iniit Hte aceti deret teer ote ert 10 1 UI Framework Components esee eene nnne nenne ranas 10 2 Display Dy Pes x 10 2 Template yes ERI 10 3 Default Screen Types s n nte ende aite it tere a ERR hes hte eb E one sea ctt neto 10 3 PromptAndResponseBean Property Names and Values 2 7 10 5 PromptAndResponseModel Important Methods sse 10 6 DataInputBean Property Names and Values esee eee 10 7 DataInputBeanModel Important Methods sss 10 8 GlobalNavigationButtonBean Property Names and Values 10 10 NavigationButtonBeanModel Important Methods sss 10 11 DialogBeanModel Important Methods eene eene 10 12 Dialog Iyp 6s noe pe eet
77. extendyourstore domain arts AdvancedPricingDataTransaction code omitted here data transaction REGISTER STATUS TRANSACTION com MBS domain data transactions RegisterStatusTransaction data transaction REGISTRY DATA TRANSACTION com extendyourstore domain arts RegistryDataTransaction data transaction STORE LOOKUP DATA TRANSACTION com MBS domain data transactions StoreLookupDataTransaction MBSdata transaction DATA MAINTENANCE TRANSACTION com MBS domain data transactions DataMaintenanceTransaction MBSdata transaction PLU RETURN TRANSACTION com MBS domain data transactions ReturnPluTransaction 8 14 Oracle Retail Point of Service Operations Guide 9 Tour Framework The Tour framework is a component of the Oracle Retail Platform layer of the Point of Service architecture The Tour framework implements a state engine that controls the workflow of the application Tour scripts are a part of this framework they define the states and transitions that provide instructions for the state engine that controls the workflow Java classes are also part of this framework they implement the behavior that is accessed by the tour engine based on instructions in the tour scripts The Tour Guide application assists with this development effort by generating the tour scripts rapidly and creating stubs of the necessary Java classes Tour Components The tour metaphor helps the user visualize how the Oracle Retail Platform engin
78. flow change to back up through the lookup Site back to the data entry Site If the validation and database lookup are coded in Aisles they may be good candidates for reuse in several Sites as well as in multiple Services Reusing the Site is also possible especially if the TourCam s ability to back up to the last indexed Site is used But there may be more considerations involving flow when trying to reuse a Site Renaming Letters Use the following guidelines when deciding whether to rename letters a Do rename Letters when the application developer does not have power over the Letter that is mailed and there is more than one event associated with a single Letter For example a single Letter is sent from a button on the UI such as dialog box OK but the content of the retrieved data associated with the UI signals a different event notification such as error message notification a Do rename Letters when a common exit Letter from a nested Service is needed 7 6 Oracle Retail Point of Service Operations Guide Log Entry Format Don t rename Letters to reduce the number of Roads in a Service Shuttles If you are creating a sub tour i e a tour called from other tours via a Station from scratch use only the following final letters Success Failure Cancel a Undo If you need to provide a reason for a Failure or need to return data to the calling service on a Success use the Return Shuttle to update the calli
79. following new API to create the correct tax rate calculator inclusive versus exclusive public TaxRateCalculatorIfc getTaxRateCalculatorInstance boolean inclusiveTax For details on this API see Domain Object Factory Service Enhancing Internal Tax Engine Various tax classes are used by the internal tax engine to hold tax amounts during tax calculation process These classes must be enhanced to hold inclusive and exclusive add on tax separately For details see Enhancing Domain Tax Interfaces classes and Enhancing Transaction amp Line Item Tax Interfaces classes For the internal tax engine class com extendyourstore domain tax InternalTaxEngine it must be enhanced in the post tax calculation phase to roll up inclusive and exclusive tax to line items and transaction totals The following member functions will be modified for this purpose public void postTaxCalculation TaxLineItemInformationIfc item public void postTaxCalculation TransactionTotalsIfc totals Our internal tax engine today does not support tax on shipping charge For details on the enhancement to support tax on shipping charges see Calculate VAT For Shipping Charges VAT Tax Rule Seed Data To provide out of box VAT calculation support tax rule seed data will be populated into tax tables using the tax import utility The seed data is created based on UK VAT A complete xml definition of the tax rule seed data is included in the appendix As we c
80. gt gt lt lt interface gt gt CodeListMaplfc CodeListlfc CodeEntrylfc from utility from utility from utility CodeListMap CodeList CodeEntry from utility from utility from utility To use the CodeListMap the Utility Manager provides two methods CodeListMaplfc getCodeListMap a void setCodeListMap CodeListMaplfc Tour code that requires a code entry would retrieve it as in the following code from src com extendyourstore pos services common ItemInfoEnteredAisle java Example 12 7 ItemInfoEnteredAisle java CodeListlfc in Tour Code CodeListIfc list utility getCodeListMap get CodeConstantsIfc CODE LIST UNIT OF MEASURE CodeEntryIfc uomCodeEntry list findListEntry uomString String uomCode uomCodeEntry getCodeString All currency representation and behavior is abstracted so any currency can be implemented Currency is a Domain Object that handles the behaviors and attributes of money used as a medium of exchange It is important to use Currency objects and methods to compare and manipulate numbers instead of primitive types Currency is implemented by the following classes They can be found in srcNcom vextendyourstoreN domain currency 12 6 Oracle Retail Point of Service Operations Guide Domain Object Reference Class or Interface Table 12 2 lists Currency Object Classes and Interfaces Table 12 2 Currency Object Classes and Interfaces Description Imp
81. iere tus 13 1 Understanding Data Managers and Technicians sese eee e 13 1 How Data Transactions Work hien eet e Ee fi te i Re RE 13 3 Creating or Updating Database Tables sssssssssssseeeee eee nnne nennen 13 5 Example of Saving Data Storing Tender Information sese 13 8 Research Table Requirements and Standards esses 13 8 Saving Data from Site Codeine nib RERO bir n he e eor rei ee 13 8 Locate Data Operation ries imi ede Eco E ERIT e Ed RR n Te rere reete es 13 9 Modify Data Operation ec ertet eer Ur ai eto uere deett aed 13 14 Test Code er enti ERE cen e eR ee OG EP edo 13 16 Very Dat ii onte p eres Aid 13 16 Appendix Intra Store Data Distribution Infrastructure Spring Configuration eene nrbe A i ori ore oe deren a ibi A 1 Application Configuration sss nnne nenne nennen nnne a nennen A 6 Int gration Considerations iste itane meet dit A 7 DataSet Compressed File Structure 17 sese enne e nennen A 8 DataSet Compressed File Example trt tree tente tei tene dee ic A 8 Manifest Fil Structure oi eel ee cea en ete e i e ient A 8 Manifest Bile Example iret rer rere e ree e D Eee Er even A 9 DataSet Flat File Str ct te 5 tit PEEL des A 9 DataSet Flat File Example ii et ee ec e t de A e Rees A 9 Ext msi bal ity eee eet i e ed estie ei ee re de A it A 9 Adding New Table To Existing DataSet eene A 10 Adding More Tables To Exis
82. if a value is entered and Count Float at Reconcile Detail Half Dollars Entered currency denomination amount Only recorded if a value is entered and Count Float at Reconcile Detail 1 Coins Entered currency denomination amount Only recorded if a value is entered and Count Float at Reconcile Detail 1 Bills Entered currency denomination amount Only recorded if a value is entered and Count Float at Reconcile Detail 2 Bills Entered currency denomination amount Only recorded if a value is entered and Count Float at Reconcile Detail 5 Bills Entered currency denomination amount Only recorded if a value is entered and Count Float at Reconcile Detail 10 Bills Entered currency denomination amount Only recorded if a value is entered and Count Float at Reconcile Detail D 26 Oracle Retail Back Office Operations Guide Till Audit Log Events Table D 26 Count Float at Reconcile Event Components Event Components Notes 20 Bills Entered currency denomination amount Only recorded if a value is entered and Count Float at Reconcile Detail 50 Bills Entered currency denomination amount Only recorded if a value is entered and Count Float at Reconcile Detail 100 Bills Entered currency denomination amount Only recorded if a value is entered and Count Float at Reconcile Detail Till Reconcile This is a Back Office and Point of Service event This event is writte
83. in more detail POSUIManager is the UI Manager for the Back Office application One is started for each tour that is created Table 11 7 lists important POSUIManagerlfc methods implemented in src com extendyourstore pos ui POSUIManager java Table 11 7 Important POSUIManagerlfc Methods Method Description void showScreen String Displays the specified screen using the specified model screenId UIModellfc beanModel UlModellfc Gets the model from the specified screen getModel String screenId String getInput Gets the contents of the most recent Response area as a string void setModel String Sets the model for the specified screen screenId UIModellfc beanModel These methods are used in tour code to display a screen as in the following code from src com extendyourstore pos services GetCheckInfoSite java 11 12 Oracle Retail Point of Service Operations Guide Manager Technician Reference Example 11 14 GetChecklnfoSite java Tour Code Using POSUIManagerlfc POSUIManagerIfc ui POSUIManagerIfc bus getManager UIManagerIfc TYPE CheckEntryBeanModel model new CheckEntryBeanModel model setCountryIndex countryIndex Set additional attributes ui showScreen POSUIManagerIfc CHECK ENTRY model Journal Manager Technician Method The Journal Manager provides location abstraction for journal facilities by implementing the JournalManagerlfc interface By communicating with a JournalT
84. indicating whether a code is scanned boolean isResponseEditable Returns the flag indicating whether the response area is editable void setGrabFocus boolean Sets the flag indicating whether focus should stay on the response field The following sample from src com extendyourstore pos services tender GetPurchaseOrderAmountSite java shows creation of a PromptAndResponseModel prefilling of data in the model and display of the model on which the PromptAndResponseModel is set Example 10 5 GetPurchaseOrderAmountSite java Creating and Displaying PromptAndResponseModel PromptAndResponseModel responseModel new PromptAndResponseModel Locale locale LocaleMap getLocale LocaleConstantsIfc USER INTERFACE responseModel setResponseText balance toFormattedString locale POSBaseBeanModel baseModel new POSBaseBeanModel baseModel setPromptAndResponseModel responseModel ui showScreen POSUIManagerlfc PURCHASE ORDER AMOUNT baseModel 10 6 Oracle Retail Point of Service Operations Guide Beans For internationalization Point of Service can use multiple locales at any given time at a register There is one default locale one UI locale based on employee specific locale and one customer display and customer receipt locale based on customer specific locale The screen constant PURCHASE ORDER AMOUNT is mapped to an overlay screen name found in the UI script for the package The screen constants are defined in src com
85. licensed by Wavelink Corporation Wavelink of Kirkland Washington to Oracle and imbedded in Oracle Retail Store Inventory Management v the software component known as Crystal Enterprise Professional and or Crystal Reports Professional licensed by Business Objects Software Limited Business Objects and imbedded in Oracle Retail Store Inventory Management vi the software component known as Access Via licensed by Access Via of Seattle Washington and imbedded in Oracle Retail Signs and Oracle Retail Labels and Tags vii the software component known as Adobe Flex licensed by Adobe Systems Incorporated of San Jose California and imbedded in Oracle Retail Promotion Planning amp Optimization application viii the software component known as Style Report developed and licensed by InetSoft Technology Corp of Piscataway New Jersey to Oracle and imbedded in the Oracle Retail Value Chain Collaboration application ix the software component known as i net Crystal Clear developed and licensed by I NET Software Inc of Berlin Germany to Oracle and imbedded in the Oracle Retail Central Office and Oracle Retail Back Office applications x the software component known as WebLogic developed and licensed by BEA Systems Inc of San Jose California to Oracle and imbedded in the Oracle Retail Value Chain Collaboration application xi the software component known as DataBeacon developed and licensed by Cognos In
86. managerpropvalue Y APPLICATION Example 11 10 ClientConduit xml Code to Configure Parameter Technician TECHNICIAN name ParameterTechnician class ParameterTechnician package com extendyourstore foundation manager parameter export Y gt PROPERTY propname paramScript propvalue classpath config manager PosParameterTechnician xml TECHNICIAN The Parameter Manager classes contain methods to retrieve parameter values The Customization chapter describes details about where and how parameters are defined A list of parameters can be found in the Parameter Names and Values Addendum Table 11 6 lists the important ParameterManagerlfc methods implemented in src comextendyourstoreMfoundationNmanagerNparameterN ParameterManager java 11 10 Oracle Retail Point of Service Operations Guide Manager Technician Reference Table 11 6 Important ParameterManagerlfc Methods Method Description Serializable Returns the values of the specified parameter getParameterValues String paramName String Returns as an array of Strings the values of the specified parameter getStringValues String parameterName String Returns as a String the value of the specified parameter getStringValue String parameterName Integer Returns as an Integer the value of the specified parameter getIntegerValue String parameterName Double Returns as a Double the value of the specified parameter getDouble
87. method interface to return an instance of the TenderPurchaseOrder object Example 12 3 DomainObjectFactorylfc java Method For Instantiating TenderPurchaseOrder public TenderPurchaseOrderIfc getTenderPurchaseOrderInstance 4 Toreturn a new instance of the Domain object implement the method src com extendyourstore domain factory DomainObjectFactory java called getObjectNamelnstance The following code sample shows the method definition to return an instance of the TenderPurchaseOrder object Example 12 4 DomainObjectFactory java Method For Instantiating TenderPurchaseOrder public TenderPurchaseOrderIfc getTenderPurchaseOrderInstance return new TenderPurchaseOrder Domain Object in Tour Code Once a Retail Domain class is identified for use the Java code needs to be written to instantiate the object and call the object s methods This code is typically located in site road and aisle classes of application tours There are two very important things to keep in mind when using Domain objects in Tour code Retail Domain objects cannot be instantiated directly They must be generated by the factory a All interaction with Domain objects take place through the object s interface even interaction between objects Retail Domain 12 3 Domain Object Reference The steps to use the object involve the following 1 Get an instance of the DomainObjectFactory and request the instance of the object from
88. method or class from an existing release is deprecated mark it as deprecated noting the release in which it was deprecated and what methods or classes should be used in place of the deprecated items these records facilitate later code cleanup a Header The file header should include the tag for revision and log history Example 6 1 Header Sample eR eR RR k RR KR RR RR ko k KR k d k k d Ck k ko ok RK k KK RK Copyright c 1998 2003 Oracle Retail Inc All Rights Reserved Log ok RR KR Ck ko Ck Ck Ck Ck Ck Ck ko Ck ok Ck ko k RK KR KR k k k k k k k X XJ package com 360commerce samples Import only what is used and organize from lowest layer to highest 6 2 Oracle Retail Point of Service Operations Guide Basics Javadoc import com ibm math BigDecimal import com 360commerce common utility Util pi PRATS RAS ROSA A AAA ARA AAA SOS This class is a sample class Its purpose is to illustrate proper formatting version Revision a pp esnin e ie a SSeS SS San aS see aaa Se ea a See es SS See See a se a public class Sample extends AbstractSample implements SampleIfc revision number supplied by configuration management tool public static String revisionNumber Revision This is a sample data member Use protected access since someone may need to extend your code Initializing the data is encouraged protected String sampleData Constructs Sampl
89. of Day Parameter Groups Store Operations Access Till Pay in Till Pay out Till Pickup Loan Till Reconcile Redeem Void Web Store Add Temp Employee Cancel Order Clock In Out Customer Discount Money Order Special Order Item Inquiry Price Adjustment Print VAT Receipt Reset Employee Password Security Implementation Warnings and Advice Oracle Retail is committed to providing our customers software that when combined with overall system security is capable of meeting or exceeding industry standards for securing sensitive data By maintaining solutions based on standards Oracle Retail provides the flexibility for retailers to choose the level and implementation of security without being tied to any specific solution Each retailer should carefully review the standards that apply to them with special emphasis on the Payment Card Industry PCI best practices The Oracle Retail applications represent one portion of the entire system that must be secured therefore it is important to evaluate the entire system including operating system network and physical access The following are required by Visa 1 Don t use database or operating systems administrative accounts for application accounts Administrative accounts and any account that has access to sensitive data should require complex passwords as described below Always disable default accounts before use in production 2 Assigna unique account to each user Never
90. only due to technical reasons e g unable to get next sequence number for transaction transaction creation exception EJB call exception or if the financial totals are not found in the database D 22 Oracle Retail Back Office Operations Guide Till Audit Log Events Table D 22 Till Open Event Components Event Components Notes Event Name Till Open Event Status X Success a Failure Event Originator Class Name and Method Name ClassName methodName System Date System date of the event Business Date Business date of the event System Time Time of the event Store ID Store number the event transpired at User ID User ID performing the event Register ID Complete Register ID value is recorded Till ID Complete Till ID value is recorded Operator ID Operator ID is user assigned to the till not the logged in user id Float Amount Entered amount when Count Float at Open Summary Total amount all denominations entered when Count Float at Open Detail Equal to the Float Amount when Count Float at Open No Pennies Entered currency denomination amount and Count Float at Open Detail Only recorded if a value is entered Nickels Entered currency denomination amount and Count Float at Open Detail Only recorded if a value is entered Dimes Entered currency denomination amount and Count Float at Open Detail
91. resourceBundleFilename tenderText specName TENDER_OPTIONS gt lt ASSIGNMENT areaName GlobalNavigationPanel beanSpecName GlobalNavigationPanelSpec gt lt BEANPROPERTY propName manageNextButton propValue false gt lt BEANPROPERTY propName buttonStates 10 10 Oracle Retail Point of Service Operations Guide Beans propValue Help true Clear false Cancel false Undo true Next false ASSIGNMENT lt OVERLAYSCREEN gt Tour Code In the Tour code bean models are created to hold the data on the bean components Table 10 11 lists some of the important methods in the NavigationButtonBeanModel class Table 10 11 NavigationButtonBeanModel Important Methods Method Description ButtonSpec getNewButtons Returns an array of new buttons void setButtonEnabled String Sets the state of the specified action name of the button the name of the boolean letter the button mails void setButtonLabel String String Sets the label of the button using the specified action name of the button the name of the letter the button mails DialogBean The following sample from src com extendyourstore pos services tender PricingOptionsSite java shows creation of a NavigationButtonBeanModel prefilling of data in the model and display of the model on which the NavigationButtonBeanModel is set Example 10 15 PricingOptionsSite java Creating and Displaying NavigationButtonBeanModel
92. scheme called rmi longread with a read time out of 120 seconds and a connect time out of one second since the values are in milliseconds 1 14 Oracle Retail Point of Service Operations Guide Configuring Third party Tender Authorization 2 Add the following property to the appropriate technician definition in the conduit script PROPERTY propname commScheme propvalue rmi_longread gt This sets the communication time outs for all managers that connect to this technician A manager who is sending a valet to this technician times out if the valet fails to complete within 120 seconds It only attempts to connect to the technician for 1 second before giving up Configuring Third party Tender Authorization Initially Point of Service system simulates tender authorization You can connect Point of Service to a third party tender authorization service to verify tenders Setting up this connection requires two configuration steps Enabling the Financial Network Technician a Setting the Merchant Number Enabling the Financial Network Technician In your conduit script locate a technician tag with the name FinancialNetworkTechnician and replace it with the tag shown in the following example TECHNICIAN name FinancialNetworkTechnician class ISDTechnician package com extendyourstore domain manager tenderauth isd export Y gt lt PROPERTY propname hostName propvalue lt enter a URL here gt gt lt PROPER
93. script Rename the scripts using the customer abbreviation ClientConduit xml becomes MBSClientConduit xml 2 Edit each XML file to include only the managers and technicians that should be loaded on the given tier 3 Modify the class and package names for any managers technicians and configuration scripts that have been customized MBSClientConduit xml Customized with New Data Manager MANAGER name DataManager class MBSDataManager package com mbs foundation manager data gt lt PROPERTY propname configScript propvalue classpath config manager PosDataManager xml gt lt MANAGER gt 4 Modify your development environment to pass in the new conduit XML file as a parameter to the TierLoader 5 Edit the bat and sh files to pass the correct conduit XML files to the Java environment PLAF Point of Service implements a pluggable look and feel PLAF so that customers may modify the look of the application including screen colors and images To modify the PLAE follow these steps 1 Create a new properties file that is a copy of one of the following files Place the file in the com mbs pos config directory in the customer source tree tigerplaf properties yellow and purple text based LAF imagePlaf properties blue and gold image based LAF 2 Update the conduit scripts in the customer source tree to specify the package and filename for the new LAF file in the UI Technician tag 3 Have new UI beans
94. specifies the types of connections to be Configuration Script pooled the set of operations available to the application and the mapping of an application data action to a specific data operation Transaction Queue The Transaction Queue holds data transactions and offers asynchronous data persistence and offline processing for Point of Service When the database is offline the data is held in the queue and posted to the database when it comes back online When the application is online the Data Manager gets the information from the Transaction Queue to send to the database 2 8 Oracle Retail Point of Service Operations Guide Design Patterns Tour The Tour framework establishes the workflow for the application It models application behavior as states events and transitions The Oracle Retail Platform engine is modeled on finite state machine behavior A finite state machine has a limited number of possible states A state machine stores the status of something at a given time and based on input changes the status or causes an action or output to occur The Tour framework provides a formal method for defining these nested state machines as a traceable way to handle flow through an application Design Patterns MVC Pattern Design patterns describe solutions to problems that occur repeatedly in object oriented software development A pattern is a repeatable documented method that can be applied to a particular problem Th
95. sss 13 9 13 7 UtilityManager java Save Data Transaction 13 12 18 8 TransactionWriteDataTransaction java Save Transaction sss 13 12 13 9 DefaultDataTechnician xml Define Data Transaction Class ssssssss 13 12 18 10 TransactionWriteDataTransaction Data Action sssssssssseeeeneeeetee 13 13 13 11 SaveTenderLineltemsAction Set Data Operation Name sssssssees 13 13 13 12 DefaultDataTechnician xml Define Data Operation Class sssssssssss 13 14 13 13 JdbcSaveTenderLineltems Saving Tender Line Item ssssssssssss 13 14 13 14 JdbcSaveTenderLineltems java SQL Factory Methods esses 13 15 A 1 Adding Table Assiociation To Employee Dataset sss A 10 A 2 Adding New DataSet esee teer enti deed i e Pie ese eene A 13 A 3 Adding Table association to New DataSet A 14 A 4 DataSetProd cer Code iecore cta A 14 A 5 DataSetConsumet Code iore emet Leti eo Pee fao Re iet A 15 C 1 Add Krona as Base to Currency Table CO CNY sesseseseeseeeneeeeeeetns C 3 C 2 Add Krona Denominations to Denomination Table CO CNY DNM C 3 C 3 Add Alternate Currency Exchange Rates to Krona sse C 4 C 4 Add Store Safe Tenders for Krona entente ennt C 5 C 5 Parameters to support Krona as the base and USD as the alternate currency C 5 C 6 New commonText Resource Bundle K
96. system stores each one as a tender line item For example the customer may pay for a 100 purchase with a 50 gift card payment a 20 store credit payment and a 30 credit card payment There are three forms of payment and three tender line items each potentially requiring different types of data The following subsections describe how to store the credit card tender data Research Table Requirements and Standards To plan your database code refer to functional requirements documents to determine what data must be stored For example the Credit Functional Requirements specify that the credit card number and expiration date be stored Next review the ARTS database standards for tables and columns Determine whether you need to create a new table If you need to create a table defined by ARTS but not currently used in the Store database follow the ARTS standard For instructions on creating a new table see Creating or Updating Database Tables For the credit card tender transaction there are two tables that need to be addressed the tender line item table and the credit debit card transaction table Table 13 1 lists database tables used in a credit card tender option Table 13 1 Database Tables Used in Credit Card Tender Option ARTS Table Name Description tr Itm tnd Tender line item tr Itm crdb crd tn Credit debit card transactions Saving Data from Site Code To save data to the database from a site 1 Create and popula
97. technical reasons for example unable to get next sequence number for transaction transaction creation exception EJB call exception or if the financial totals are not found in the database Table D 25 Till Close Event Component Event Components Notes Event Name Till Close Event Status Success a Failure Event Originator Class Name and Method Name ClassName methodName System Date System date of the event Business Date Business date of the event System Time Time of the event Store ID Store number the event transpired at User ID User ID performing the event Register Number The register number the event transpired at Till ID The Till ID the event transpired at Operator ID Operator ID is user assigned to the till not the logged in user id Count Float at Reconcile This is a Back Office and Point of Service event This event is written to the audit log if the Settings For Audit Logging system setting INFO and the Count Float at Reconcile system setting INFO Event data collection starts when the system checks the Count Float at Reconcile parameter Appendix Audit Logging D 25 Till Audit Log Events a Event data collection ends when the count float amount has been entered or accepted The format of this event is dependent on the Count Float at Reconcile parameter setting Event failure can happen only due to technical reasons e
98. tender file SITE name cashSelected useaction com extendyourstore pos services tender cashSelectedSite gt lt SITEACTION class cashSelectedSite replacewith com mbs pos services tender MBScashSelectedSite gt lt tour gt Lane Road or Aisle As with siteactions extending laneactions in the traditional object oriented sense is not recommended as letters from the original and extended classes could conflict Replace laneactions instead of extending them using the following steps 1 Create a new laneaction class in the customer source tree such as MBSOpenCashDrawerAisle java 2 If you are overlaying a siteaction class but not modifying the tour script then all letters that were mailed from the product version of the laneaction class should also be mailed from the new version Do not mail new letters that are not handled by the product code unless the tour script and related Java classes are also modified 3 Editthe appropriate Tour Map for the locale using the replacewith property in the lt LANEACTION gt tag to define the new package and filename for the laneaction Example 8 5 tourmap CA xml Replacing a laneaction tour name tender file classpath com mbs pos services tender file SITE name RefundDueUI useaction com mbs pos services tender refundDueUISite gt gt lt LANEACTION class OpenCashDrawerAisle replacewith com mbs pos services tender MBSOpenCashDrawerAisle gt lt
99. tender amount if Count Till at Reconcile Summary Only recorded if this tender was received and this tender is included in the Tenders To Count at Till Reconcile and if Blind Close No Total of all entered currencies Count Till at Reconcile Detail and the currency was received Appendix Audit Logging D 27 Till Audit Log Events Table D 27 Till Reconcile Event Components Event Components Notes Pennies Entered currency denomination amount and Count Till at Reconcile Detail Only recorded if a value is entered Nickels Entered currency denomination amount Only recorded if a value is entered and Count Till at Reconcile Detail Dimes Entered currency denomination amount Only recorded if a value is entered and Count Till at Reconcile Detail Quarters Entered currency denomination amount Only recorded if a value is entered and Count Till at Reconcile Detail Half Dollars Entered currency denomination amount and Count Till at Reconcile Detail Only recorded if a value is entered 1 Coins Entered currency denomination amount and Count Till at Reconcile Detail Only recorded if a value is entered 1 Bills Entered currency denomination amount and Count Till at Reconcile Detail Only recorded if a value is entered 2 Bills Entered currency denomination amount and Count Till at Reconcile Detail Only recorded if a value is entered
100. the existing object For example if a new Domain object is necessary for the Tender service the AbstractTenderLineltem class can be extended This class implements TenderLineltemlIfc which extends the generic EYSDomainlfc interface If no similar Domain object exists in the application create a new Domain object The usual coding standards apply reference the Development Standards document 1 Create a new interface extending EYSDomainlfc All Retail Domain objects extend EYSDomainlfc but existing Services have an interface available for Domain objects related to that Service For example TenderLineltemlfc which extends EYSDomainlfc is the interface implemented by each Retail Domain object interface in the Tender service The following code sample shows the header of TenderPurchaseOrderlfc found in src com extendyourstore domain tender TenderPurchaseOrderlfc java Example 12 1 TenderPurchaseOrderlfc java Class Header public interface TenderPurchaseOrderIfc extends TenderLineItemIfc public static final String revisionNumber SRevision 1 0 S begin TenderPurchaseOrderIfc 2 Create a new Java class that implements the interface created in the previous step The class of a brand new object that does not fit an existing pattern should extend AbstractRoutable which defines a luggage tag for EYS domain classes otherwise the class should extend the existing class that represents a similar type of object The fo
101. the new signal Follow these steps 1 Create a new signal class in the customer source tree For example create a replacement for ISAuthRequiredSignal java in the Tender service by creating a class file com mbs pos services tender MBSIsAuthRequiredSignal java 2 Customize the appropriate tour script Example 8 7 MBStender xml Tender tour script with customized signal lt SERVICECODE gt non signal declarations omitted SIGNAL class IsReturnTransactionSignal SIGNAL class IsSaleTransactionSignal SIGNAL class IsNotVoidTransactionSignal SIGNAL class IsAuthNotRequiredSignal SIGNAL class MBSIsAuthRequiredSignal package com mbs pos services tender gt lt SIGNAL class IsRemoveTenderSignal gt lt SIGNAL class IsNoRemoveTenderSignal gt SIGNAL class IsValidDriverLicenseSignal gt SIGNAL class IsInvalidDriverLicenseSignal gt more declarations omitted lt SERVICECODE gt code omitted lt ROAD name AuthorizationRequested letter Next destination AuthorizationStation tape ADVANCE record OFF index 0FF gt LIGHT signal MBSIsAuthRequiredSignal gt Cargo Since cargos do not mail letters they may be extended or replaced Cargo classes are typically part of a hierarchy of classes Follow these steps 8 6 Oracle Retail Point of Service Operations Guide POS Package Modify the cargo class by doing one of the following a To extend
102. the number of the European Store Credit Japanese Gift Certificate Total n Entered tender amount if Count Till at Reconcile Summary Only recorded if this tender was received and this tender is included in the Tenders To Count at Till Reconcile and if Blind Close No Total of all entered Japanese Gift Certificate when Count Till at Reconcile Detail and the tender was received lt ARG gt Japanese Gift Certificate m Japanese Gift Certificate amount entered when Count Till at Reconcile Detail There is an audit log entry for each Japanese Gift Certificate entered lt ARG gt the number of the Japanese Gift Certificate Japanese Store Credit Total Entered tender amount if Count Till at Reconcile Summary Only recorded if this tender was received and this tender is included in the Tenders To Count at Till Reconcile and if Blind Close No a Total of all entered Japanese Store Credit when Count Till at Reconcile Detail and the tender was received lt ARG gt Japanese Store Credit Japanese Store Credit amount entered when Count Till at Reconcile Detail a There is an audit log entry for each Japanese Store Credit entered a lt ARG gt the number of the Japanese Store Credit Blind Close True a False Transaction Number Transaction number assigned to till reconcile D 32 Oracle Retail Back Office Operations Guide Parameter Log Events Parameter Log Events Modify Application Par
103. to other tours Each of these stations define one or more shuttle classes which are part of the Tender package The workflows are defined in other packages but can be called from the Tender tour For example AuthFailedRoad is defined in the Tender tour because it handles the exit letter from the Authorization tour However Authorization xml the workflow for the Authorization tour is located in src com extendyourstore pos services te nder authorization The Tender package is unique in that the workflow is generally similar for all the tender type options available from the main site For example if the user chooses to pay by check or credit card the workflow is similar When the user cancels the form of payment the Oracle Retail Platform engine is directed to the ReverseAuthorizedTenders site When the user decides to undo the operation the engine is directed back to the GetTender site The workflow for the credit card tender option is shown in the following figure Tour Framework 9 17 Tender Tour Reference Figure 9 1 Workflow Example Tender with Credit Card Option reditSelect Credit ValidCreditInfoEntered Valid GetCreditinfo GetTender InvalidCreditInfoEntered Invalid CardinfoEntered UndoCreditSelected Undo ReverseAuthorizedTenders CancelCreditSelected Cancel CompleteTender BalancePaid Next Final Point 9 18 Oracle Retail Point of Service Operations Guide 1
104. uses the word tour to refer to a tour The word service and phrase service region are used in this section because they are elements in the XML code The service region contains all functionality related to running the application when no exceptions are encountered The following code sample from src com vextendyourstoreN pos services tender Ntender xml shows the definition of a service and service region in a tour script Example 9 1 tender xml Definition of Service and Service Region SERVICE name Tender package com extendyourstore pos services tender tourcam 0N gt lt SERVICECODE gt definition of letters siteaction classes and laneaction classes lt SERVICECODE gt lt MAP gt lt REGION region SERVICE startsite GetTender gt definition of sites stations and lanes lt REGION gt lt MAP gt lt SERVICE gt As shown in the code sample there are two main sections of a tour script The SERVICECODE element defines the Java classes in the tour and the letters that may be sent in the tour code or by the user The MAP element links the classes and letters to the sites and lanes In the following sections code samples are shown from both sections of the tour script The bus object is passed as a parameter to all tour methods called by the tour engine Methods can be called on the bus to get access to the cargo managers and other state information The following code sample from src com extendy
105. 0 UI Framework This chapter describes the User Interface UI Framework that is part of the Oracle Retail Platform architecture The UI Framework encompasses all classes and interfaces included in Oracle Retail Platform to support rapid development of UI screens It enables the building of custom screens using existing components Overview For ease of development the UI Framework hides many of the implementation details of Java UI classes and containment hierarchies by moving some of the UI specification from Java code into XML This eases screen manipulation and layout changes affecting the look and feel of the entire screen subsets of screens and portions of a screen Table 10 1 provides a general description of features of the UI Framework Table 10 1 Ul Framework Features Feature Description Common Design All UI implementations share code and extend or implement base UI classes that are provided as part of Oracle Retail Platform The UI Framework provides basic functionality that does not need to be duplicated within each application Reuse The UI Framework allows bean classes to be independent thereby supporting their reuse A UI Technician can be used with multiple applications and UI Framework components can be used across multiple features in an application Externally Configurable The UI Framework enables you to configure screens outside the code to accommodate Screens applications that chan
106. 2 newInstance 6 7 catch Exception e 8 throw new MyApplicationException e 9 However the onus is still on the user to call getCause to see what the real cause was This makes most sense in an RMI type environment where you need to tunnel an exception back to the calling methods The better way than throwing a wrapped exception is to simply declare that your method throws the exception and let the caller figure it out Example 6 8 Declaring an Exception public void buildClasses String firstName String secondName throws InstantiationException Class k1 Class forName firstClass Class k2 Class forName secondClass Object o1 k1 newInstance Object o2 k2 newInstance However there may be times when you want to deal with some cleanup code and then rethrow an exception Example 6 9 Clean Up First then Rethrow Exception try someOperation catch Exception e someCleanUp throw e Catching Specific Exceptions There are various exceptions for a reason so you can precisely identify what happened by the type of exception thrown If you just catch Exception rather than say ClassCastException you hide information from the user On the other hand methods should not generally try to catch every type of exception The rule of thumb is the related to the fail fast recover rule catch as many different exceptions as you are going to handle 6 14 Oracle Retail Point of Servi
107. 54 11 TIMESTAMP 1999 09 05 12 53 06 536 TIMESTAMP 1999 09 05 12 53 06 536 3 Make updates to foreign keys in CreateForeignKeys sql 4 If you are creating a new table add a string constant to the src com _ 360commerce domain arts ARTSDatabaseIfc java file Use a string constant with a meaningful name to store the official ARTS name of the database table Example 13 3 shows two examples of meaningful String constants found in ARTSDatabaselfc java Example 13 3 String Constant in ARTSDatabaselfc java public static final String TABLE TENDER LINE ITEM tr ltm tnd public static final String TABLE CREDIT DEBIT CARD TENDER LINE ITEM tr_ltm_ crdb crd tn 5 Update the flat file configuration XML files if needed If you are creating a new table consult functional specifications to determine whether the table needs to be represented in the flat files For existing tables you can inspect the file pos config manager FFTableDefs xml to determine whether the table is represented in the flat files 6 Check foreign key constraints For performance reasons the database build scripts do not turn on foreign key constraints until late If you make inserts which break foreign key constraints you will not be notified To check this test all inserts with foreign key constraints in place by editing the appropriate database build script In the following example the locations of the CreateK sql and InsertD sql
108. 6 INSERT INTO CO CNY DNM ID CNY ICD SE 50 ID CNY Kronas 50 00 DNM NM DNM VL DNM 6 CD DNM DPLY PRI VALUES 7 7 INSERT INTO CO CNY DNM ID CNY ICD SE 100Kronas ID CNY 100 00 DNM NM DNM VL DNM de CD_DNM_DPLY_PRI VALUES 7 8 SE_1000Kronas 1000 00 Exchange Rate Table CO_RT_EXC Add exchange rate records for alternate currencies into the CO_RT_EXC table based on the new base currency Delete all exchange rate records based on any previous base currency For example 8 Example C 3 Add Alternate Currency Exchange Rates to Krona Delete all the existing records Delete from CO_RT_EXC INSERT INTO CO_RT_EXC LL_CNY_EXC DC_RT_EXC_EF DC_RT_EXC_EP ID_CNY_ICD MO_RT_TO_BUY MO_RT_TO MO_FE_SV_EXC VALUES 0 00 TO DATE 1990 01 01 YYYY MM DD TO DATE 2099 12 31 YYYY MM DD 1 6 3337 6 3362 0 00 INSERT INTO CO RT EXC LL CNY EXC DC RT EXC EF DC RT EXC EP ID CNY ICD MO RT TO BUY MO RT TO MO FE SV EXC VALUES 0 00 TO DATE 1990 01 01 YYYY MM DD TO DATE 2099 12 31 YYYY MM DD 2 6 2849 6 2898 0 00 INSERT INTO CO RT EXC LL CNY EXC DC RT EXC EF DC RT EXC EP ID CNY ICD MO RT TO BUY MO RT TO MO FE SV EXC VALUES 0 00 TO DATE 1990 01 01 YYYY MM DD TO DATE 2099 12 31 YYYY MM DD 3 0 5799 0 5816 0 00 INSERT INTO CO RT EXC LL CNY EXC
109. 7 New Manager Technician j e a E This method processes the input argument via its technician param input a String to illustrate argument passing return a transformed String A iS public String doSomeClientWork String input String result null ValetIfc valet new MyNewValet input try result String sendValetWithRetry valet j catch Exception e usually ValetException or CommException logger error LogMessageConstants SCOPE SYSTEM MyNewManager doSomeClientWork could not sendValetWithRetry Exception 0 e logger debug LogMessageConstants SCOPE_SYSTEM MyNewManager doSomeClientWork returns 0 result return result Valet The following code defines a valet to send input to MyNewTechnician Example 11 7 Sample Valet Class package com extendyourstore foundation manager mynew import com extendyourstore foundation tour manager ValetIfc import java io Serializable public class MyNewValet implements ValetIfc An input used by the Technician protected String input null gf A A reu de e o a SS AS E The constructor stores the input for later use by the Technician param input the input to be stored FRESAS SS RS SS SS o SS public MyNewValet String input this input input per This method causes the MyNewTechnician to doSomething with the input and returns the results 11 8 Oracle Retail Point of Service Operati
110. A eee phe e eee cente data ere nr denn te d ne e dee deae 7 7 Log Entry Description ii e d ed dtd dL ave dd Dd ie eem 7 7 Fixed Length Header iei hee nete tie 7 7 Additional Logging Mior perrera ieres e iei ee i EE EEEE E R tenente tenentes 7 8 Example Log Britry nee er et tele tute bid b ete ere aE 7 9 8 Extension Guidelines ConventOons ui tto decir terere EL EE RAT RR Mactan deo Pe eR due P LU AE doe eie EEEE EEEE KERE 8 1 SER ER I KT 8 1 Filename Conventions 2 n aie dle tdci ries 8 2 Modules sk eee the eS Re e tede tea eiae ater 8 2 Directory Paths cse cuite e eimi aie eio ire da e aic dera rris 8 2 POS Pack age oo ener ente tee ee het dee lr et e e hen 8 3 TOUT ati eor tei eie eeiam gcc eee Rede et A Pe e atten qe ee Ie a ee etn Re BP ER Sede edie Pee oe ee Saab de qus 8 3 Tour Map diet eb net de iem dtt etti ie ia fio 8 3 TOUT A d eben oed ete dab ee poi bot Rete ved Eee piv yal aves 8 4 A hie A Ete pon npe o e eee ieee s oes cd e et dn 8 4 Lane Road or Aisle eR SERA ete E et Oel tede 8 5 SBh ttle ate ete etie e ch be eet edt 8 5 Sac Mm 8 6 ripe p M 8 6 UT Framework inae eret dete t ee cede eet wate e e hte epo dd 8 7 Default UT Config oet eee o ete tenete bic ae rod dete 8 7 ULSCript ii toa bate tam ded end mo nint lisos o ete icti 8 8 Bean Model and Bea aa nt aite i a ia 8 8 Gd Frc MIT 8 9 MI AA eet Een eia 8 9 Conduit Scripts iii tenere ede e SI eei emia dete ee dente
111. AR 35 DEFAULT 1001 0 0 NOT NULL Unique Id which is authorityId groupId taxType TS CRT RCRD TIMESTAMP creation time stamp TS MDF RCRD TIMESTAMP modification time stamp The primary keys are ID STR RT ID WS DC DY BSN AI TRN CNT SND LAB ID ATHY TX ID GP TX TY TX Appendix Value added Tax B 31 Database Design Changes Tables views B 32 Oracle Retail Central Office Operations Guide C Appendix Changing and Configuring a New Base Currency Changing Currency In order to switch to another base and alternate currency perform the following steps 1 Set the base currency flag in the primary currency of the currency table For example if EUR is the base currency update co cny set FL CNY BASE 1 where DE CNY EUR Remove the base currency flag from any other currencies in that table For example update co cny set FL CNY BASE 0 where DE CNY lt gt EUR Enforce ordering so that the primary currency is first and the alternate currency is second for the AI CNY PRI column in the currency table Other rows should be ordered but the specific order isn t important For example if EUR is base currency and GBP is the alternate update co cny set AI CNY PRI 0 where DE CNY EUR update co cny set AI CNY PRI 1 where DE CNY GBP update co cny set AI CNY PRI 2 where DE CNY USD update co cny set AI CNY PRI 3 where DE CNY CAD update co cny set AI CNY PRI 4 where DE CNY MXN update co cny set AI CNY
112. Add Role E fn ORACLE Help Cancel Undo 2 Enter the new role name and choose Enter Next The Set Access screen appears Initially access for all functions is set to No Backend System Administration and Configuration 1 3 Defining Security with Roles Figure 1 3 Set Access Screen Oracle Retail Point of Service Select a function to toggle access then press Yes No Press Done when E complete Yes No Function Access Bark L egusiL vantel uraer vantel ITarisattur GIULK ITI VUL LIUSE register viuse ni YUSTE AUWFINU VUSLUITIET Veele YUSTE D ISUUUFIL Laly Uperauuris LIscuurt rule AU VISCU rule cru EIeLITUTIIL Juura NU EII NU Ermpluyee Auur iru Nu rrnpiuyee rire maintenance NU enu ul vay NU 129 Guest User Guest User 8 6 07 1 26 PM Set Access Fl gv Esc Help Cancel Undo 3 Select the functions that need to be enabled or disabled for the role and choose F2 Yes No to toggle to between Yes and No 4 Continue selecting all functions that need to be changed When finished choose F3 Done to save the settings 5 Choose Esc Undo or F12 Cancel to return to the Security Options screen Secured Features The following table lists all of the functions within Point of Service for which security access points exist When a user attempts to use a function protected by one of these security access points the system checks whether the user s role allows that function Table 1 1 i
113. CRDB CRD TN ID ISSR TND MD IS Tender Media Issuer ID COMMENT ON COLUMN TR LTM CRDB CRD TN TY TND IS TenderTypeCode COMMENT ON COLUMN TR LTM CRDB CRD TN TY CRD IS Card Type additional comment lines omitted 2 Create or edit the insert files also in the db sql source directory for inserting initial data into the new database table This step is used only to insert logging on testing and so on db sq1 1 InsertTableTenderLinel data into the database table for purposes of initially Example 13 2 contains three inserts from the tem sql file Example 13 2 InsertTableTenderLineltem sql INSERT INTO TR LTM TND ID STR RT ID WS AI TRN AI LN TS CRT RCRD TS MDF RCRD VALUES 04241 149 1000 TIMESTAMP 1999 09 05 12 53 06 536 2 12 INSERT INTO TR LTM TND ID STR RT ID WS AI TRN AI LN ITM DC DY BSN TY TND MO ITM LN TND 1999 09 23 CASH 54 11 53 06 536 TIMESTAMP 1999 09 05 TS CRT RCRD TS MDF RCRD VALUES 04241 149 1000 2 TIMESTAMP 1999 09 05 12 12 53 06 536 INSERT INTO TR LTM TND 13 6 Oracle Retail Point of Service Operations Guide ITM DC DY BSN TY TND MO ITM LN TND 1999 09 30 CASH 4 32 53 06 536 TIMESTAMP 1999 09 05 Creating or Updating Database Tables ID STR RT ID WS AI TRN AI LN ITM DC DY BSN TY TND MO ITM LN TND TS CRT RCRD TS MDF RCRD VALUES 04241 129 1 2 1999 09 05 CASH
114. CREDIT CARD EXPIRATION DATE getExpirationDate lineItem Test Code To test the new code 1 Run Point of Service 2 Select the path to the screen 3 Enter the data 4 Complete the retail transaction Verify Data To verify that the correct data exists in the database table use a database access program to view the table that should contain the new information Verify that the data in the database table matches the data entered The following example shows a sample SOL statement you can use to retrieve the data select from tr ltm crdb crd tn 13 16 Oracle Retail Point of Service Operations Guide A Appendix Intra Store Data Distribution Infrastructure Oracle Retail Point of Service client needs Employee Item Advanced pricing Tax and Currency datasets to support offline functionality Intra Store Data Distribution Infrastructure IDDI automates the following dataset file generation at the Oracle Retail Point of Service server a dataset file transfer from Oracle Retail Point of Service Server to Oracle Retail Point of Service Client importing dataset files to Oracle Retail Point of Service client database Spring Configuration The system has been designed to support a pluggable model The following are all designed to be configurable at deployment time DataSetProducerJob a ClientDataSetController a DataSetService a ClientDataSetService DataSetProducers EmployeeDataSetPro
115. DEFAULT 0 MO TX INC DECIMAL 13 2 DEFAULT 0 B 30 Oracle Retail Central Office Operations Guide Database Design Changes Tables views Shipping Record Tax Table SHP RDS SLS RTN TX This new table will be created to store detailed shipping charges tax information at the tax group rule level of each shipping record ID STR RT VARCHAR 5 NOT NULL store id ID WS VARCHAR 3 NOT NULL register id DC DY BSN VARCHAR 10 NOT NULL business date AI TRN INTEGER NOT NULL transaction sequence number CNT SND LAB SMALLINT DEFAULT 0 NOT NULL send label count ID ATHY TX INTEGER DEFAULT 0 NOT NULL tax authority id ID GP TX INTEGER DEFAULT 0 NOT NULL tax group id TY TX INTEGER DEFAULT 0 NOT NULL tax type FLG TX HDY CHAR 1 DEFAULT 0 NOT NULL tax holiday flag TX MOD INTEGER DEFAULT 0 NOT NULL tax mode MO TXBL RTN SLS DECIMAL 16 5 DEFAULT 0 NOT NULL taxable amount FL TX INC CHAR 1 DEFAULT 0 inclusive tax flag MO TX RTN SLS DECIMAL 16 5 DEFAULT 0 NOT NULL tax amount MO_TX_RTN_SLS_TOT DECIMAL 16 5 DEFAULT 0 NOT NULL total add on tax amount at shipping record level MO_TX_INC_RTN_SLS_TOT DECIMAL 16 5 DEFAULT 0 NOT NULL total inclusive tax amount at shipping record level NM_RU_TX VARCHAR 40 DEFAULT LOCAL TAX tax rule name PE TX DECIMAL 8 5 DEFAULT 8 25 NOT NULL tax percentage ID UNO VARCH
116. DLER class SQLExceptionHandler package com extendyourstore domain manager data See the DataManager xml file This file contains the following element at the end of the file QUEUE name TransactionQueue encryptBuffer true class DataTransactionFileQueue package com extendyourstore foundation manager data EXCEPTIONHANDLER class Transact ionQueueSQLExceptionHandler package com extendyourstore domain manager data gt lt QUEUE gt The exception handling classes are implemented as plug points Creating or Updating Database Tables Use this procedure when creating a new database table or updating an existing one Refer to the ARTS standards when designing tables Note When you add or change a table you need to rebuild the database for your local copy of Point of Service before you can test your changes The Point of Service system includes scripts for building the database the main script dbbuild bat runs multiple subordinate scripts to create all the necessary tables and populate them with initial data The script automatically includes all files in the sql directory so the build scripts do not have to be modified in order to build your files However you may have to edit a build script in order to test foreign key constraints see step 6 1 Edit the appropriate database script or write a new one Database scripts can be found in the source directory commerceservices trunk db sql In a
117. INFORMATION priority value INFO appender ref ref AUDIT gt category category name com 360commerce commerceservices PASSWORD gt priority value INFO appender ref ref AUDIT gt category category name com 360commerce commerceservices EMPLOYEE PASSWORD priority value INFO appender ref ref AUDIT gt category category name com 360commerce commerceservices PASSWORD gt priority value INFO appender ref ref AUDIT gt category category name com 360commerce commerceservices priority value INFO appender ref ref AUDIT category category name com 360commerce commerceservices priority value INFO appender ref ref AUDIT gt category category name com 360commerce commerceservices priority value INFO appender ref ref AUDIT gt category category name com 360commerce commerceservices priority value INFO appender ref ref AUDIT gt category category name com 360commerce commerceservices audit audit audit audit audit audit audit audit audit audit audit audit audit audit event event event event event event event event event event event event event event Appendix TILL RETRIEVE COUNT FLOAT AT ADD EMPLOYEE
118. In addition to the exclusive add on tax this table must be enhanced to store inclusive tax Five decimal columns are added to store the inclusive net tax refund tax returns tax item sales tax and transaction sales tax at the till level CP INC TX TOT DECIMAL 13 2 DEFAULT 0 MO RFD INC TX TOT DECIMAL 13 2 DEFAULT 0 MO RTN INC TX TOT DECIMAL 13 2 DEFAULT 0 CP SLS ITM INC TX DECIMAL 13 2 DEFAULT 0 CP TRN SLS INC TX DECIMAL 13 2 DEFAULT 0 To support tax for shipping charges two decimal columns must be added to store inclusive and exclusive shipping charges tax totals MO SHP CHR TX TOT DECIMAL 13 2 DEFAULT 0 MO SHP CHR INC TX TOT DECIMAL 13 2 DEFAULT 0 Appendix Value added Tax B 29 Database Design Changes Tables views Register History Table LE HST WS In addition to the exclusive add on tax this table must be enhanced to store inclusive tax Five decimal columns are added to store the inclusive net tax refund tax returns tax item sales tax and transaction sales tax at the register level CP INC TX TOT DECIMAL 13 2 DEFAULT 0 MO RFD INC TX TOT DECIMAL 13 2 DEFAULT 0 MO RTN INC TX TOT DECIMAL 13 2 DEFAULT 0 CP SLS ITM INC TX DECIMAL 13 2 DEFAULT O0 CP TRN SLS INC TX DECIMAL 13 2 DEFAULT 0 To support tax for shipping charges two decimal columns must be added to store inclusive and exclusive shipping charges tax totals MO SHP CHR TX TOT DECIMAL 13 2 DEFAULT 0 MO SHP CHR INC TX TOT DECIMA
119. L 13 2 DEFAULT 0 Store History Table LE HST STR In addition to the exclusive add on tax this table must be enhanced to store inclusive tax Five decimal columns are added to store the inclusive net tax refund tax returns tax item sales tax and transaction sales tax at the store level CP INC TX TOT DECIMAL 13 2 DEFAULT 0 MO RFD INC TX TOT DECIMAL 13 2 DEFAULT 0 MO RTN INC TX TOT DECIMAL 13 2 DEFAULT 0 CP SLS ITM INC TX DECIMAL 13 2 DEFAULT 0 CP TRN SLS INC TX DECIMAL 13 2 DEFAULT 0 To support tax for shipping charges two decimal columns must be added to store inclusive and exclusive shipping charges tax totals MO SHP CHR TX TOT DECIMAL 13 2 DEFAULT 0 MO SHP CHR INC TX TOT DECIMAL 13 2 DEFAULT 0 Tax History Table HST TX For each tax history row A Boolean column will be added to indicate if the tax amount is already included in the item price Its two possible values are 0 or 1 with 0 being the default FL TX INC CHAR 1 DEFAULT 0 Shipping Methods Table CO SHP MTH Since shipping charges are subject to VAT a tax group id and taxable flag columns will be added to each row in the shipping method table LU EXM TX VARCHAR 20 ID GP TX INTEGER DEFAULT 0 Shipping Record Table SHP RDS SLS RTN Since shipping charges are subject to VAT tax columns are added to the table to record tax group id inclusive and exclusive add on tax amounts ID GP TX INTEGER DEFAULT 0 MO TX DECIMAL 13 2
120. LASS gt lt TECHNICIAN gt UI Script A Ul script changes if the overlays or unique bean specifications of one or more screens in a tour need to be modified Follow these steps 1 Create a new UI script in the customer source tree For example copy the tenderuicfg xml file from the product source tree to the customer source tree and rename it MBStenderuicfg xml 2 Modify the MBSdefaultuicfg xml file in the customer source tree to refer to the new filename and package for the UI script Example 8 10 MBSdefaultuicfg xml Customized Default UI Configuration File other include statements omitted INCLUDE filename classpath com 360commerce pos services sale saleuicfg xml INCLUDE filename classpath com mbs pos services tender MBStenderuicfg xml INCLUDE filename classpath com _ 360commerce pos services tender capturecustomerinfo capturecustomerinfouicfg xml gt lt INCLUDE filename classpath com extendyourstore pos services inquiry inquiryoptionsuicfg xml other include statements omitted Bean Model and Bean The Point of Service product code provides generalized beans that are designed to be reused as is such as GlobalNavigationButtonBean java for the global navigation button bar and DataInputBean java for the work area of form layout screens These classes are not intended to be extended for a specific implementation though they may be extended if the general behavior or data must
121. OFF index 0N gt lt COMMENT gt lt COMMENT gt lt ROAD gt REGION lt MAP gt Aisles Aisles provide a means for moving within a site and executing code Aisles are used when a change is required but there is no reason to leave the current site or station Each aisle contains a name a letter and a laneaction Aisles always require a Java class because they must have behavior since they do not lead to a different site or station like roads Following is the tender xml code that shows the definition of an aisle The definition is added to the SERVICECODE XML element The second code sample from the same tour script maps an aisle to the site and letter which is contained in the MAP section Example 9 14 tender xml Definition of Aisle Class lt LANEACTION class CardInfoEnteredAisle gt Example 9 15 tender xml Mapping of Aisle to Site SITE name GetCreditInfo siteaction GetCreditInfoSite gt lt AISLE name CardInfoEntered letter Next laneaction CardInfoEnteredAisle gt lt AISLE gt other lanes defined lt SITE gt With the concept of Tourmap an aisle s laneaction can be overridden with another class This allows you to override the class name for a customer implementation yet still keep the same workflow for the customer as in the product The following tourmap definition specifies the class to override and the new class to use in place of the original class Note that replacewith is a full
122. Oracle Retail Point of Service Operations Guide Release 13 0 May 2008 ORACLE Oracle Retail Point of Service Operations Guide Release 13 0 Copyright O 2007 2008 Oracle All rights reserved Primary Author Graham Fredrickson The Programs which include both the software and documentation contain proprietary information they are provided under a license agreement containing restrictions on use and disclosure and are also protected by copyright patent and other intellectual and industrial property laws Reverse engineering disassembly or decompilation of the Programs except to the extent required to obtain interoperability with other independently created software or as specified by law is prohibited The information contained in this document is subject to change without notice If you find any problems in the documentation please report them to us in writing This document is not warranted to be error free Except as may be expressly permitted in your license agreement for these Programs no part of these Programs may be reproduced or transmitted in any form or by any means electronic or mechanical for any purpose If the Programs are delivered to the United States Government or anyone licensing or using the Programs on behalf of the United States Government the following notice is applicable U S GOVERNMENT RIGHTS Programs software databases and related documentation and technical data delivered to U S Government custo
123. Oracle Retail Point of Service Operations Guide Beans The following sample from Tour code shows how to retrieve data from the DataInputBeanModel In this example from src com extendyourstore pos services admin parametermanager StoreParamGrou pAisle java after the model is created and displayed by the code from the previous code sample the model is retrieved from the UI Manager and data is retrieved from the model Example 10 10 StoreParamGroupAisle java Retrieving Data from DatalnputBeanModel DataInputBeanModel model DataInputBeanModel ui getModel POSUIManagerIfc PARAM SELECT GROUP ParameterCargo cargo ParameterCargo bus getCargo String val String model getSelectionValue choiceList cargo setParameterGroup val NavigationButtonBean The NavigationButtonBean represents a collection of push buttons and associated key stroke equivalents This bean is implemented by src com extendyourstore pos Nui beans NavigationButtonBean java and its corresponding model NavigationButtonBeanModel java The global navigation area and the local navigation area both use the NavigationButtonBean Bean Properties and Text Bundle The LocalNavigationPanel and GlobalNavigationPanel bean specifications both use the NavigationButtonBean Bean properties are described only for the GlobalNavigationPanelSpec because the LocalNavigationPanelSpec typically sets its properties in the bean specification and not the overlay specifica
124. Point of Service installation see C OracleRetailStore 360common db sql Start a new file or edit the appropriate existing file in the db sql source directory file to store SOL commands for creating the new table Example 13 1 shows the SQL commands for creating the table that stores the credit card data Store Database 13 5 Creating or Updating Database Tables Example 13 1 CreateTableCreditDebitCardTenderLineltem sql DROP TABLE TR LTM CRDB CRD TN CREATE TABLE TR LTM CRDB CRD TN ID STR RT char 5 NOT NULL ID WS char 3 NOT NULL DC DY BSN char 10 NOT NULL AI TRN integer NOT NULL AI LN ITM smallint NOT NULL TY TND varchar 20 ID ISSR TND MD varchar 20 TY CRD VARCHAR 40 additional column lines omitted here i ALTER TABLE TR LTM CRDB CRD TN AD D PRIMARY KEY ID STR RT ID WS DC DY BSN AI TRN AI LN ITM COMMENT ON TABLE TR LTM CRDB CRD TN IS Credit Debit Card Tender Line Item COMMENT ON COLUMN TR LTM CRDB CRD TN ID STR RT IS Retail Store ID COMMENT ON COLUMN TR LTM CRDB CRD TN ID WS IS Workstation ID COMMENT ON COLUMN TR LTM CRDB CRD TN DC DY BSN IS Business Day Date COMMENT ON COLUMN TR LTM CRDB CRD TN AI TRN IS Transaction Sequence Number COMMENT ON COLUMN TR LTM CRDB CRD TN AI LN ITM IS Retail Transaction Line Item Sequence Number COMMENT ON COLUMN TR LTM
125. RMATION Yes No CONTINUE CANCEL Continue Cancel ERROR Enter Button sends OK letter Screen displays red in the title bar RETRY Retry RETRY CANCEL Retry Cancel RETRY CONTINUE Retry Continue SIGNATURE Places a signature panel to capture the customer s signature When setting a letter to a button refer to the following table that lists the available button types also defined in DialogScreenslfc java These constants are used as arguments to DialogBean methods that modify button behavior Table 10 14 lists the available button types also defined in DialogScreenslfc java Table 10 14 Button Types Button ButtonID Enter OK BUTTON OK Yes BUTTON YES No BUTTON NO Continue BUTTON CONTINUE Retry BUTTON RETRY Cancel BUTTON CANCEL Field Types This section defines field types available to all beans The following field types may be used by all the beans but DataInputBean is the only bean that understands the FIELD element In other words DataInputBean is the only bean that defines fields in bean specifications These field types correspond to create methods in UlFactory java such as createCurrencyField and createDisplayField The application framework uses reflection to create the fields Therefore the field names in the following table can be set as the field Type attribute in an XML bean specification using the DatalnputBean class The corresponding parameter list is a list of strings tha
126. RONM W eu ppp eee ee 10 10 10 11 10 12 10 13 10 14 10 15 11 1 11 2 11 3 11 4 11 5 11 6 11 7 11 8 12 1 Security Access Points eene ete te eee Ier Eee ine tte ire ep rk e ttis de etes 1 4 Sample Bundle Names mesemes e a ipee ait RR sates iut e bte reb fece cada 1 16 Oracle Retail Architecture Components sss tenente 2 2 Point of Service Architecture Layers sessseeeee eee eee eee nennen 2 3 Manager Technician Framework Components sss 2 5 Ul Framework Compo epts mamede rtt e ete eda bb tete ae Reden sioe cbe cua 2 6 Business Object Framework Components sse eene 2 7 Data Persistence Framework Components sse eee eee nnns 2 8 Parameter Directories Files and Descriptions esses eee eee 4 1 Validator peste tirer f iade ek ei RUD 4 3 Point of Service Installation Options nnns 5 2 BULA Paths EA ec te A rore AERE eT ATA AA 5 3 LaunchiProperties ertt erit Ere Ie tee ente y b ee bete t at ets 5 3 Common Java Bugs e tee mee Ps ep eee Ie a eei d re Hie ER 6 2 Naming Cony nitions i eaten as er diete trea tr bird et band 6 4 DB2 SOE Code Problems 35 ee ete ete eri Re A 6 5 Oracle SOL Code Problems ii reiten eere edt mee ne 6 6 Common AntiPatterns oe ebat diee it datada nd i ento haa haee e ned 6 7 Tour Naming Conventions sse nen enn nen nennen nnne nene 7 2 Log Message Level ete Dee t tetti eee e
127. Success Failure Event Originator Class Name and Method Name ClassName methodName System Date System date of the event System Time Time of the event Store ID Store number the event transpired at User ID User ID performing the event Register Number The register number the event transpired at Till ID The Till ID the event transpired at Card type The card type presented at time of tender Card number The card number presented at the time of tender Only display last 4 digits of card number Example xxxx xxxx xxxx 1111 Amount The amount the card is being charged at the time of tender Entry method The method used to enter the card Operator input on keyboard is manual and a manual auto scan or swipe on the device or keyboard is auto MAG stripe if swiped An indicator if swiped on the MSR Authorization The status of authorization is pending until a response is returned Status Pending Till Audit Log Events Till Open This is a Back Office and Point of Service event This event is written to the audit log if the Settings For Audit Logging system setting INFO and the Till Open system setting INFO Event data collection starts when the operator selects to open a till Event data collection ends when the system assigns a transaction number The format of this event is dependent on the Count Float at Open parameter setting Event failure can happen
128. TER name MaximumCashChange type CURRENCY final N hidden N gt lt VALIDATOR class FloatRangeValidator package com extendyourstore foundation manager parameter gt lt PROPERTY propname minimum propvalue 0 00 gt PROPERTY propname maximum propvalue 99999 99 gt lt VALIDATOR gt lt VALUE value 25 00 gt lt PARAMETER gt The FINAL attribute indicates whether the property definition is final meaning it cannot be overridden by lower level parameter file settings The VALUE element is the current setting of the parameter If multiple values are set that means the value of the parameter is a list of values The three types of VALIDATOR classes are listed in the following table Table 4 2 lists the three types of VALIDATOR classes Table 4 2 Validator Types Validator Description EnumeratedListValidator Determines whether a value supplied is one of an allowable set of values FloatRangeValidator Ensures that the value lies within the specified minimum and maximum float range IntegerRangeValidator Ensures that the value of a parameter lies within the specified minimum and maximum integer range Devices Point of Service devices are configured with the posdevices xml file device specific property files and other JavaPOS configuration files The device vendor typically provides a JavaPOS configuration file to support the JavaPOS standards If necessary you can create your own configuration
129. TS CRT RCRD TS MDF RCRD ID CNY ICD VALUES 1 CHCK SE CURRENT TIMESTAMP CURRENT TIMESTAMP 7 INSERT INTO LE TND STR S ID RPSTY TND TY TND TY SB TND LU CNY ISSG CY TS CRT RCRD TS MDF RCRD ID CNY ICD VALUES 1 TRAV SE CURRENT TIMESTAMP CURRENT TIMESTAMP 7 74 ij MoneyOrderSafeTender INSERT INTO LE TND STR SF ID RPSTY TND TY TND TY SB TND LU CNY ISSG CY TS CRT RCRD TS MDF RCRD ID CNY ICD VALUES 1 MNYO SE CURRENT TIMESTAMP CURRENT TIMESTAMP 7 Parameter Configuration The following tender parameters must be enhanced to include the new base currency a StoreCreditsAccepted ChecksAccepted CashAccepted a GiftCertificatesAccepted lravelersChecksAccepted The reconciliation parameter TendersToCountAtTillReconcile parameter must include all the tenders to count for both base and alternate currencies during till reconcilation For example Example C 5 Parameters to support Krona as the base and USD as the alternate currency xml version 1 0 encoding UTF 8 lt DOCTYPE SOURCE PUBLIC SOURCE classpath com extendyourstore foundation tour dtd paramsourcescript dtd SOURCE name register gt GROUP hidden N name Tender gt PARAMETER final N hidden N name StoreCreditsAccepted type LIST gt lt VALIDATOR class EnumeratedListValidator package com extendyourstore foundati
130. TY propname hostPort propvalue lt enter a port number here gt proptype INTEGER gt lt PROPERTY propname reversalFile propvalue testRev ser gt lt PROPERTY propname logFile propvalue isd log gt lt TECHNICIAN gt Setting the Merchant Number Set the Merchant Number parameter to the appropriate value for the authorization service you are using Merchant Number is an XML parameter in the Tender Authorization group For information on changing the parameter see the Oracle Retail Strategic Store Solutions Configuration Guide Backend System Administration and Configuration 1 15 System Settings System Settings System settings are values set in the Oracle Retail database Changes to these settings must be made in the database by a database administrator or an application developer System settings can have significant effects on Point of Service system do not make changes unless you are confident that you understand the effects For a description of all available system settings refer to the Oracle Retail Strategic Store Solutions Configuration Guide Adding or Changing Language Bundles Point of Service supports additional languages when the appropriate strings are provided bundled in a jar file The procedures in this section describe how to create new bundles and make them available to the application Naming Convention for Language Bundles Use the following syntax to name language bundles
131. Value String parameterName The following code sample from src com extendyourstore pos services browser BrowserControlSite java illustrates the use of the Parameter Manager to retrieve parameter values Example 11 11 BrowserControlSite java Tour Code Using ParameterManagerlfc ParameterManagerlfc pm ParameterManagerI fc bus getManager ParameterManagerIfc TYPE Serializable homeUrl pm getParameterValues BrowserHomeUrl String cookieString pm getStringValue CookiesEnabled UI Manager Technician The UI Manager Technician is used to abstract the UI implementation User events captured by the screen are sent to the UI Manager The UI Manager communicates with a UI Technician which updates the screen for a client running the UI The UI Technician provides access to the application UI Subsystem There is one UITechnician per application The model is an object that is used to transport information between the screen and the UI Manager via the UI Technician Models and screens have a one to one relationship The UI Manager allows you to set the model for a screen and retrieve a model for a screen it knows which screen to show and which model is associated with the screen The model has data members that map to the entry fields on the given screen It can also contain data that dictates screen behavior such as the field that has the starting focus or the state of a specific field The following code samples
132. a from the Session The DeviceSession class is referenced in the device connections for the relevant screen specifications For example the following code is an excerpt from src com extendyourstore pos services tender tenderuicfg xml Example 4 6 Example of Device Connection lt DEVICECONNECTION deviceSessionName ScannerSession targetBeanSpecName PromptAndResponsePanel Spec listenerPackage java beans listenerInterfaceName PropertyChangeListener adapterPackage com extendyourstore foundation manager gui adapterClassName InputDataAdapter adapterParameter setScannerData activateMode MODE_SINGLESCAN gt 6 Access the device manager and input from the Session in the application code Using the bean model data from the Session can be accessed with methods in the device s ActionGrouplfc Other devices such as the printer are accessed through a device manager as in the following code from src com extendyourstore pos services tender CompleteTenderSit e java Customization 4 5 Help Files Example 4 7 ActionGroup in Tour code POSDeviceActions pda new POSDeviceActions SessionBusIfc bus pda clearText pda displayTextAt 1 0 displayLine2 Simulate the Device Help Files Itis often practical to simulate devices for development purposes until the hardware is available or the software is testable Switching to a simulated device is easily accomplished by editing config pos posdevices xml In fact when you ins
133. a pee nes D 10 Point of Service Transaction Events esses eene nnne nentes nennen tentent nnns D 11 Transaction Tendered with Credit Card sse teen eren D 11 Transaction Tendered with Debit Card cccccecsscsscsscessesscesceeccesceescesceseccseeseecsecsscesseesesseesseeees D 12 Employee Audit Log Events ene ue e a I eiii ire olaaa dread raton il dae fet barn D 13 Modify Employee Information 5 tenere tre monnit pee ta erri erdt D 13 Modify Temporary Employee Information sees eee eene D 14 Add Employee eroe e ie idus ie Eee d neve been D 14 Add Temporary Employee sse eene nennen ia niaire D 15 Login Logout Lockout Audit Log Events 1 eee eee nennen D 16 IBS LOPIN E H e D 16 User Lock Out eiie ee e ee vete a ede e aatem D 16 Us t EOgOUt c stetit gesti edi eb ci po meas ll rt ir at UR e HER e pla D 17 Password Audit Log Events oem aee pc an im ae PL or aa b ta deti D 17 xiii Change PassWord In Aot Gee een Miete CAM E D 17 Reset Employee Password eet tei eti erre eee ede e d n eee t ce eerte D 18 Reset Temporary Employee Password sess eee eene D 18 Role Audit Log Events cocida D 19 AAA s a ie etit e Hiit e e D 19 Add Role eee HF Su PRO E de ee aee c o e v e Ie e ERR ER aks D 20 Point of Service Transaction Events eese teen retten tnnt netten nne D 20 Transact
134. al Entered tender amount if Count Till at Reconcile Summary Only recorded if this tender was received and this tender is included in the Tenders To Count at Till Reconcile and if Blind Close No Total of all entered Store Credit when Count Till at Reconcile Detail and the tender was received lt ARG gt Store Credit Store Credit amount entered when Count Till at Reconcile Detail There is an audit log entry for each Store Credit entered lt ARG gt the number of the Store Credit Mall Certificate Total Entered tender amount if Count Till at Reconcile Summary Only recorded if this tender was received and this tender is included in the Tenders To Count at Till Reconcile and if Blind Close No Total of all entered Mall Certificate when Count Till at Reconcile Detail and the tender was received Appendix Audit Logging D 29 Till Audit Log Events Table D 27 Till Reconcile Event Components Event Components Notes lt ARG gt Mall Certificate Mall Certificate amount entered when Count Till at Reconcile Detail a There is an audit log entry for each Mall Certificate entered a lt ARG gt the number of the Mall Certificate Purchase Order Total Entered tender amount if Count Till at Reconcile Summary Only recorded if this tender was received and this tender is included in the Tenders To Count at Till Reconcile and if Blind Close No Total of all entered Purchase Order when Coun
135. alculate VAT For Returns Transactions For a returns transaction with receipt its VAT will not be recalculated Instead reverse item tax rules are created to negate the original sales transaction s VAT This is consistent with our current approach of handling sales tax for returns with receipt The following member function in sale return line item class com extendyourstore domain lineitem SaleReturnLineltem is responsible for creating and returning an array of reverse item tax rules for returns transactions The tax rules are created based on the tax information saved in the original transaction s sales return tax line items protected ReverseItemTaxRuleIfc getRetrievedReturnTaxRules This function must be enhanced to populate a reverse item tax rule s inclusive tax flag from the sales return tax line item of the original transaction For a returns transaction without receipt the transaction VAT will be recalculated The function goes through the same logic to calculate VAT as a sales transaction Therefore no additional work is required in this case Calculate VAT For Reverse Transactions Other Than Returns For a reverse transaction other than returns such as a Post Void transaction its VAT will not be recalculated as well Reverse item tax rules are created to negate the original transaction s VAT This is consistent with our current approach of handling sales tax for reverse transactions The following member function in sale
136. allows the Clear button to erase the text in the selected field in the work area when the Clear button on the GlobalNavigationPanelSpec is clicked Example 10 20 tender xml ClearActionListener XML tag CONNECTION listenerInterfaceName ClearActionListener listenerPackage com extendyourstore pos ui behavior sourceBeanSpecName GlobalNavigationPanelSpec targetBeanSpecName CreditCardSpec gt DocumentListener DocumentListener is an interface defined in Swing The following code shows how this listener is used in an overlay specification Adding the DocumentListener allows the Clear button on the GlobalNavigationPanelSpec to be disabled until input is entered in the selected field on the work area Example 10 21 tender xml DocumentListener XML tag CONNECTION listenerInterfaceName DocumentListener listenerPackage javax swing event sourceBeanSpecName CreditCardSpec targetBeanSpecName GlobalNavigationPanelSpec gt ValidateActionListener ValidateActionListener is an interface that extends ActionListener in Swing to make it unique for its use in Point of Service The following code shows how this listener is defined in an overlay specification Adding the ValidateActionListener allows the CreditCardSpec to recognize when the Next button on the GlobalNavigationPanelSpec is clicked resulting in the validation of the required fields on the work area If the required fields are empty an error dialog appears stating that the
137. ameter This is a Back Office and Point of Service and Central Office event This event is written to the audit log if the Settings For Audit Logging system setting INFO and the Modify Application Parameter system setting INFO Event data collection starts when the operator selects a parameter to modify Event data collection ends when the operator selects to save Table D 28 Modify Application Parameter Event Components Event Components Notes Event Name Modify Application Parameter Event Status X Success a Failure Event Originator Class Name and Method Name ClassName methodName System Date System date of the event System Time Time of the event Store ID Store number the event transpired at Only applicable for Back Office User ID User ID performing the event Parameter Group Parameter Group Parameter Name Name of the Parameter Appendix Audit Logging D 33 Parameter Log Events D 34 Oracle Retail Back Office Operations Guide E Appendix Oracle Retail Point of Service to an Inventory Management Application Oracle Retail Point of Service can request inventory information for a single store or for a group of stores The operator can request inventory numbers of an item in the home store stores within the related buddy stores buddy store functionality enables the retailer to set up a group of stores within a transfer zone in an i
138. amount for Count Operating Fund at Start of Day Summary Total of entered cash amount for Count Operating Fund at Start of Day Detail Equal to the Operating Fund Expected Amount when Count Operating Fund at Start of Day No Pennies Entered currency denomination amount Only recorded if a value is entered and Count Operating Fund at Start of Day Detail Nickels Entered currency denomination amount Only recorded if a value is entered and Count Operating Fund at Start of Day Detail Dimes Entered currency denomination amount Only recorded if a value is entered and Count Operating Fund at Start of Day Detail Quarters Entered currency denomination amount Only recorded if a value is entered and Count Operating Fund at Start of Day Detail Half Dollars Entered currency denomination amount Only recorded if a value is entered and Count Operating Fund at Start of Day Detail 1 Coins Entered currency denomination amount Only recorded if a value is entered and Count Operating Fund at Start of Day Detail 2 Coins Entered currency denomination amount Only recorded if a value is entered Count Operating Fund at Start of Day Detail and Canadian currency is the base currency 1 Bills Entered currency denomination amount Only recorded if a value is entered and Count Operating Fund at Start of Day Detail 2 Bills Entered currency denomination amount Only recorded if a value is entered and
139. an see from the xml definition the out of box VAT rule will take the following attribute values Rounding digits 4 Inclusive tax flag TRUE This is a new flag introduced for this project The tax import utility is enhanced to handle this extra boolean flag Compound sequence number 0 for no compound tax Taxon gross amount flag false for calculating tax based on price after discount Calculation method code Lineltem for calculating tax by line item not by transaction Tax rate rule usage code PercentageOrAmount for simple tax no tax table lookup or threshold tax Rate tax type Percentage for calculating tax based on a tax rate B 2 Oracle Retail Central Office Operations Guide VAT calculation Calculate VAT For Unknown Items Invalid Or Blank Tax Groups For an unknown item the tax group ID of its Point of Service department will be used to calculate VAT This is consistent with our current approach for sales tax For a blank tax group tax group ID of 0 will be used to calculate VAT This is consistent with our current approach for sales tax For an invalid tax group use the following mechanism to determine tax If item s tax group is valid use it else if item s department tax group is valid use it else if a default tax rule tax group id 1 amp tax authority id 1 is configured use it with the tax rate parameter else use the tax rate parameter with hard coded tax rule name C
140. ap files Multiple tourmap files can be specified via the config tourmap files properties tourmap files is a comma delimited list of tourmap files As each file is loaded the application checks the country property of the tourmap file The order of files is significant because later files override any values specified in previous files A file that overrides a similarly named file is called an overlay Each tourmap file begins with a root element tourmap which has an optional country attribute The tourmap elements contains multiple tour elements each one of which describes a tour s logical name its physical file and any overlays to apply For instance a simple tourmap might look like the following Example 9 3 Sample Tourmap xml version 1 0 encoding UTF 8 tourmap country CA xmlns xsi http www w3 0rg 2001 XMLSchema instance xsi noNamespaceSchemaLocation com extendyourstore foundation tour dtd tourmap xsd gt lt tour name testService gt file classpath com extendyourstore foundation tour engine tourmap testservice x ml file SITE name siteWithoutAction useaction com extendyourstore foundation tour engine actions overlay OverlaySiteA ction gt lt SITEACTION class SampleSiteAction replacewith com extendyourstore foundation tour engine actions overlay OverlaySit eAction gt 9 4 Oracle Retail Point of Service Operations Guide Tour Components Cargo Sites tour
141. application logic to be completely isolated from the user interface components XML The XML Manager locates a specified XML file parses the file and returns an XML parse tree New Manager Technician When creating a new Manager and Technician pair you must create a Manager and Technician class a Valet class and interfaces for each class Managers are the application client to a Technician service Technicians do the work and the valet tells the Technicians what work to do Managers can be considered proxies for the services provided by the Technicians Technicians can serve as the interfaces to resources Managers communicate with Technicians indirectly using valets Valets can be thought of as commands to be executed remotely by the Technician Samples for the new classes that need to be created are organized together in the next section Requesting services from the Managers only requires familiarity with the interface provided by Managers However building a new Manager Technician pair requires implementing the interfaces for both the new Manager and Technician as well as creating a Valet class Manager Class A Manager merely provides an API to tour code It behaves like any other method except that the work it performs may be completed remotely The input to a Manager is usually passed on to the valet that in turn passes it on to the Technician which actually performs the work The Manager class provides methods for s
142. as received lt ARG gt Credit Credit amount entered when Count Till at Reconcile Detail Thereisan audit log entry for each credit entered a lt ARG gt the number of the Credit Debit Total Entered tender amount if Count Till at Reconcile Summary Only recorded if this tender was received and this tender is included in the Tenders To Count at Till Reconcile and if Blind Close No Total of all entered Debit when Count Till at Reconcile Detail and the tender was received D 28 Oracle Retail Back Office Operations Guide Till Audit Log Events Table D 27 Till Reconcile Event Components Event Components Notes lt ARG gt Debit Debit amount entered when Count Till at Reconcile Detail There is an audit log entry for each Debit entered lt ARG gt the number of the Debit Gift Card Total Entered tender amount if Count Till at Reconcile Summary Only recorded if this tender was received and this tender is included in the Tenders To Count at Till Reconcile and if Blind Close No Total of all entered Gift Card when Count Till at Reconcile Detail and the tender was received lt ARG gt Gift Card Gift Card amount entered when Count Till at Reconcile Detail There is an audit log entry for each Gift Card entered lt ARG gt the number of the Gift Card Gift Certificate Total Entered tender amount if Count Till at Reconcile Summary Only recor
143. ase One policy is defined and applied to all users for Oracle Retail Point of Service The Password Policy consists of the following set of out of the box criteria For this release customizing the password policy criteria is permitted through enabling status code system settings and updating password policy system settings to the desired setting To make sure users and their passwords are properly protected follow these guidelines The guidelines are based on the Payment Card Industry Data Security Standard PCI DSS Verify the identity of the user before resetting any passwords a Set first time passwords to a unique value for each user and require the password to be changed immediately after the first use Immediately revoke access for any terminated users Remove inactive user accounts at least every 90 days Enable accounts used by vendors for remote maintenance only during the time period when access is needed Communicate password procedures and policies to all users who have access to cardholder data Do not use group shared or generic accounts and passwords Require user passwords to be changed at least every 90 days Require a minimum password length of at least seven characters Require that passwords contain both numeric and alphabetic characters Do not accept a new password that is the same as any of the last four passwords used by a user Limit the number of repeated access attem
144. at you read all patch documentation before you begin installation procedures Patch documentation can contain critical information related to the base release based on new information and code changes that have been made since the base release Oracle Retail Documentation on the Oracle Technology Network In addition to being packaged with each product release on the base or patch level all Oracle Retail documentation is available on the following Web site https www oracle com technology documentation oracle retail html Documentation should be available on this Web site within a month after a product release Note that documentation is always available with the packaged code on the release date Conventions xxiv The following text conventions are used in this document Convention Meaning boldface Boldface type indicates graphical user interface elements associated with an action or terms defined in text or the glossary italic Italic type indicates book titles emphasis or placeholder variables for which you supply particular values monospace Monospace type indicates commands within a paragraph URLs code in examples text that appears on the screen or text that you enter 1 Backend System Administration and Configuration This chapter covers options for configuring Point of Service normally carried out by an administrator before the system goes into general use It covers the following topics
145. at the process of entering data validating and re entering until the data is correct with little system overhead The Aisle behavior can be triggered over and over without calling the arrive method on the Site a Road back to the Site calls the arrive method Aisles are also useful for looping through a list of items when each item may require error handling This is done by placing the loop index in the Cargo You cannot use a signal alone they must be used in groups of two or more If there is more than one Lane that responds to the same letter each Lane must implement a Signal The logic in the Signals must be mutually exclusive there should be only one valid Road that can be traversed at any time otherwise unexpected and difficult to debug behavior could occur Point of Service Development Standards 7 5 Tour Framework When there are more than two Signals each of the Signals should evaluate in such a way that only one Signal is green at any given time But the presence of more than two Signals should raise a red flag Track down the source of the following issues determine if the UI or other letter generator needs to be sending more unique letters Why are there so many Signals a What are they checking Is the same letter being sent for many different conditions Use a Signal only to decide which road to take when you could go to two different places such as Sites with the same Letter based on Cargo informatio
146. atabase eei A dia oda 5 2 Greate a Sandbox sudo A a a aioz 5 2 Configure the IDE vomitar 5 2 Update Java Security and Policy Files sss eene nennen 5 3 Configure the Version Control System sees eene 5 4 R n Point of Service o deat HE RI REIR SRRI Rc URS ERE die 5 4 6 General Development Standards htt s PR T 6 1 Java Dos and Don ts e iei tte te ei pipe enin e rere Heute te o Pee e ene M RE eet deat 6 1 Avoiding Common Java BUBS cccocococicinononocnnnoraninanonnnonanononononanonononononanononononononononon ener ennn 6 2 Formaatin g orie A Eb cede 6 2 DA o os do dc le Bo e o e Sani el 6 3 Naming CONVENTOS ci iii ose d es doit cere i E dec 6 3 SOL Guidelines e oh e dE Ree Ed E be i en Eat ER E Hs 6 4 Bp REDE 6 5 Oracle uoo RH etit etae ettet nitum tai 6 6 Unit lestinig dui aei rr inerte en HE ree dte DR He EHE PI ERE ERR hee DER 6 6 Architecture and Design Guidelines 7 sse eee eene 6 6 ADUANA ce estet A bee ene etre d 6 6 Designing for Extension oe mete beetle eo re deret d e t a r ica 6 8 Common FramewWoLrks erede e ie ete tent cere PA Eee seers 6 9 Jor ar C eie 6 9 Guarding Gode ain maesti bent iae dite erre io he ERE 6 9 When tO Log iecit intestine taa 6 10 Writing Log Messages oet erede ae bb re HE s eile 6 10 Exception MeSSages oie e A Do POI a TOU T REA IESU et tele Ad EE 6 10 Heartbeat or Life Cycle Messages coococeno
147. ate Canadian Gift Certificate amount entered when Count Till at Reconcile Detail There is an audit log entry for each Canadian Gift Certificate entered lt ARG gt the number of the Canadian Gift Certificate Canadian Store Credit Total Entered tender amount if Count Till at Reconcile Summary Only recorded if this tender was received and this tender is included in the Tenders To Count at Till Reconcile and if Blind Close No Total of all entered Canadian Store Credit when Count Till at Reconcile Detail and the tender was received lt ARG gt Canadian Store Credit Canadian Store Credit amount entered when Count Till at Reconcile Detail There is an audit log entry for each Canadian Store Credit entered lt ARG gt the number of the Canadian Store Credit Mexican Gift Certificate Total Entered tender amount if Count Till at Reconcile Summary Only recorded if this tender was received and this tender is included in the Tenders To Count at Till Reconcile and if Blind Close No Total of all entered Mexican Gift Certificate when Count Till at Reconcile Detail and the tender was received lt ARG gt Mexican Gift Certificate Mexican Gift Certificate amount entered when Count Till at Reconcile Detail There is an audit log entry for each Mexican Gift Certificate entered lt ARG gt the number of the Mexican Gift Certificate Mexican Store Credit Total Entered tender amount if Coun
148. ated parameters The groups are used when modifying parameters within the UI The user selects the group first then has the option to modify the related parameters that belong to that group Examples of groups are Browser Customer Discount and Employee Adding a parameter requires adding it to the proper group The following excerpt from application xml shows the Tender group and a parameter definition inside the group The hidden attribute indicates whether or not the group is displayed in the UI Example 4 2 Definition of Tender Group GROUP name Tender hidden N PARAMETER name MaximumCashChange PARAMETER GROUP 4 2 Oracle Retail Point of Service Operations Guide Devices Parameter Properties Each parameter file contains parameter definitions organized by group The following shows an example of two parameter definitions from config parameters application application xml Example 4 3 Parameter Definitions From application xml PARAMETER name CashAccepted type LIST default USD final N hidden N gt lt VALIDATOR class EnumeratedListValidator package com extendyourstore foundation manager parameter gt lt Use ISO 3 letter currency code gt PROPERTY propname member propvalue None PROPERTY propname member propvalue USD PROPERTY propname member propvalue CAD VALIDATOR lt VALUE value USD gt lt VALUE value CAD gt lt PARAME
149. attern Reference to Requests object Object A SingletonFactory Creates Object A 2 12 Oracle Retail Point of Service Operations Guide 3 Extracting Source Code Much of this guide deals with the structure and function of Oracle Retail Point of Service code and how you can modify and extend it to serve the needs of your organization It is assumed that you have been given access to the Point of Service source code present on Oracle s ARU site The source code is downloadable in a single zip file See the Oracle Retail Point of Service Installation Guide for the name of the source code zip file This zip file contains the following File Name Comments cmnotes txt Configuration Management notes Describe how to set up and build the source ORPOS release number source zip The Point of Service source ORSSS release number data model zip Data Model database schema documentation README html Using pkzip WinZip or similar utilities you can extract ORPOS release number onto your local hard disk Choose the option to preserve the directory structure when you extract Then all the source files will be placed under some directory like the following Path to disk root ORPOS release number source From this point on this directory is referred to as POS SRC ROOT The following is the first level directory structure under POS SRC ROOT Director
150. ber Range 8888640 8888640 8888649 8888650 8888650 8888659 8888660 8888660 8888669 8888670 8888670 8888679 8888680 8888680 8888689 8888690 8888690 8888699 Blank tax group 8888610 8888619 Invalid tax group 8888620 8888624 Non taxable 8888630 8888639 Shipping Method Seed Data One shipping method must be created for each tax group Tax Group ID Shipping Method ID 8888640 8888605 8888650 8888606 8888660 8888607 8888670 8888608 8888680 8888609 8888690 8888610 Appendix Value added Tax B 13 New Or Changed Classes services Tax Group ID Shipping Method ID Blank tax group 8888611 Invalid tax group 8888612 Non taxable 8888613 Sales Return Transaction Seed Data A few sales return transactions with inclusive tax information must be created At least one of them must include shipping records and shipping charge tax information This is to facilitate CO transaction tracker development before CTR is enabled New Or Changed Classes services Only classes modules which are either new or contain modifications to existing classes modules are described below In the case where the described class module exists only changes to this class module will be documented Adding Tax Inclusive Flag To Tax Group Rule At tax group rule level a Boolean flag will be added to indicate if the tax amount is already included in the item price For DB schema enhancement see Tax Group Rule Ta
151. bject The Commerce Services layer of the architecture contains the Business Object framework that implements the instantiation of business objects The Business Object framework is used to create new business objects for use by Point of Service The business objects contain data and logic that determine the path or option used by an application 2 6 Oracle Retail Point of Service Operations Guide Frameworks Figure 2 5 Business Object Framework Configures Properties Interface Domain Object Factory Request Return business interface logic Request factory Return interface Interface Application Business Object Table 2 5 describes the components in the Business Object framework Table 2 5 Business Object Framework Components Component Description DomainGateway The DomainGateway class provides a common access point for all business object classes It also configures dates times decimals percentages currency and numbers Domain Object Factory The Domain Object Factory returns instances of business object classes The application requests a Factory from the DomainGateway Business Object Data Persistence Business objects define the attributes for application data New instances are created using the Domain Object Factory A specific Manager Technician pair is the Data Manager and Data Technician used for data persistence The Data Persistence framework illustrates how da
152. ble F 1 E Mail Message Status Values Value E Mail Message Status 0 public static final int MESSAGE STATUS NEW 1 public static final int MESSAGE STATUS REPLIED 2 public static final int MESSAGE STATUS OUTBOX 3 public static final int MESSAGE STATUS SENT 4 public static final int MESSAGE STATUS READ For more information about Automated E Mail Messages and Service Alert see the Oracle Retail Point of Service Users Guide Appendix Automated E Mail Messages F 1 F 2 Oracle Retail Central Office Operations Guide A adding or changing language bundles 1 16 configuring the system to use a new language bundle 1 16 creating a new language bundle 1 16 naming convention for language bundles 1 16 application configuration A 6 architecture and design guidelines 6 6 AntiPatterns 6 6 designing for extension 6 8 ARTS compliance 13 1 audit log change password D 17 daily operations D 7 end of day D 8 enter business date D 7 register close D 10 register open D 10 start of day D 7 employee D 13 add employee D 14 add temporary employee D 15 modify employee information D 13 modify temporary employee information D 14 login logout lockout D 16 user lock out D 16 userlogin D 16 userlogout D 17 parameter D 33 modify application parameter D 33 password D 17 reset employee password D 18 reset temporary employee password D 18 role D 19 add role D 20 editrole D 19 till D 22 c
153. ble RU TX GP Business Objects Two new member functions will be added to get set the tax inclusive flag public boolean getTaxInclusiveFlag By default it must return false public void setTaxInclusiveFlag boolean flag The following is a list of tax group rule interfaces objects that will include the above two new methods a Domain interface com extendyourstore domain tax RunTimeTaxRulelfc a Domain object com extendyourstore domain tax AbstractTaxRule a Domain object com extendyourstore domain arts FFTaxVO a CommerceService object com _ 360commerce commerceservices tax TaxGroupRuleDTO Persistence Services The following is a list of persistence classes that must be modified to load save the tax inclusive flag from to table RU TX GF a Member function NewTaxRulelfc retrieveItemTaxRules JdbcDataConnection dataConnection int taxGroupID String geoCode in domain JDBC class com extendyourstore domain arts JdbcPLUOperation a Member function NewTaxRulelfc retrieveltemTaxRules ArrayList fflaxVOs in domain JDBC class com extendyourstore domain arts JdbcReadNewTaxRules a Member function buildFlatFile in domain JDBC class com extendyourstore domain arts dbcNew TaxRuleBuildFFOperation a Entity bean com 360commerce commerceservices tax ejb TaxGroupRuleBean B 14 Oracle Retail Central Office Operations Guide New Or Changed Classes services Tax group rule DAO object com 360commerce commerceservices tax
154. ble only on the local tier Valet The valet is the object that receives the instructions from the Manager and delivers them to the Technician The valet handles data transfer across machines with RMI or JMS Technician The Technician is responsible for communicating with the external resource When a Technician receives a valet it can handle it immediately or queue it for later action The Technician can be remote from the Manager or on the local tier User Interface The UI framework includes all the classes and interfaces in Oracle Retail Platform to support the rapid development of UI screens In the application code the developer creates a model that is handled by the UI Manager in the application code The UI Manager communicates with the UI Technician which accesses the UI Subsystem The following figure illustrates components of the UI framework Figure 2 4 Ul Framework UI Subsystem Configurator Catalog Catalog Resource Files Specification Loader UI Manager API JavaPOS s1ojdepy S19u9 JS 1 Technical Architecture 2 5 Frameworks Table 2 4 describes the components of the UI framework Table 2 4 UI Framework Components Component Description Resource Files Resource files are text bundles that provide the labels for a screen They are implemented as properties files Text bundles are used for localizing the application Bean Beans are reusable Java program
155. blic GroupRuleTaxDTO getInclusiveTaxSummaryInformation public void setInclusiveTaxSummaryInformation GroupRuleTaxDTO taxInformation The array will be populated in transaction manager bean when a transaction is retrieved see Enhancing Transaction Manager Bean Database Design Changes Tables views Tax Group Rule Table RU TX GP For each tax group rule A Boolean flag will be added to indicate if the tax amount is already included in the item price The following column is added to table RU TX GP for this purpose Its two possible values are 0 or 1 with 0 being the default FL TX INC CHAR 1 DEFAULT 0 InclusiveTaxFlag Retail Transaction Table TR RTL In addition to the exclusive add on tax this table must be enhanced to store inclusive tax A decimal column is added to store the inclusive tax amount at the transaction level MO TAX INC TOT DECIMAL 13 2 DEFAULT 0 TransactionInclusiveTaxTotal Tax Line Item Table TR LTM TX In addition to the exclusive add on tax this table must be enhanced to store inclusive tax A decimal column is added to store the inclusive tax amount at the transaction level MO TX INC DECIMAL 13 2 DEFAULT 0 InclusiveTaxAmount B 28 Oracle Retail Central Office Operations Guide Database Design Changes Tables views Sales Return Line Item Table TR LTM SLS RTN In addition to the exclusive add on tax this table must be enhanced to store inclusive tax A dec
156. c Transaction This class represents a record of CustomerInfoIfc getCustomerInfo business activity that involves a String getTillID financial and or merchandise unit void setCashier EmployeeTf c exchange or the granting of access to conduct business at a specific device at a specific point in time for a specific employee 12 8 Oracle Retail Point of Service Operations Guide Domain Object Reference Table 12 3 Transaction Object Classes and Interfaces Class or Interface Description Important Methods This is the interface for all transactions that involve the tendering of money TenderableTransactionlfc void addTender TenderLineItemIfc TenderLineItemIfc getTenderLineItems void setTransactionTotals TransactionTotal SIfc This is the interface for all sale return transactions SaleReturnTransactionlfc void addTender TenderLineItemI fc Customerlfc getCustomer TransactionTotalsIfc getTenderTransactionTotals This is the interface for all retail transactions Retail Transactionlfc Employeelfc getSalesAssociate AbstractTransactionLineItemIfc getLineItems String getOrderID The following code sample from src com extendyourstore domain arts JdbcSaveTenderLineltems java shows how SaleReturnTransaction is used in Tour code Example 12 9 JdbcSaveTenderLineltems java SaleReturnTransactionlfc in Tour Code public void saveTenderLineItems JdbcDataConnec
157. ce Operations Guide Common Frameworks Favor a Switch over Code Duplication The syntax of try and catch makes code reuse difficult especially if you try to catch at a granular level If you want to execute some code specific to a certain exception and some code in common you re left with either duplicating the code in two catch blocks or using a switch like procedure The switch like procedure shown below is preferred because it avoids code duplication Example 6 10 Using a Switch to Execute Code Specific to an Exception try some code here that throws Exceptions catch Exception e if e instanceof LegalException callPolice LegalException e else if e instanceof ReactorException shutdownReactor j logException e mailException e haltPlant e This example is preferred in these relatively rare cases to using multiple catch blocks Example 6 11 Using Multiple Catch Blocks Causes Duplicate Code try some code here that throws Exceptions catch LegalException e callPolice e logException e mailException e haltPlant e catch ReactorException e shutdownReactor logException e mailException e haltPlant e Exceptions tend to be the backwater of the code requiring a maintenance developer even yourself to remember to update the duplicate sections of separate catch blocks is a recipe for future errors General Development Standards 6 15
158. ce Trigger DataSet Consumer to the SchedulerFactoryBean bean configuration bean id service clientSchedulerFactory class org springframework scheduling quartz SchedulerFactoryBean gt lt property name triggers gt lt list gt ref local service TriggerFrequentConsumer ref ref local service_TriggerInfrequentConsumer gt lt ref gt ref local service Trigger DataSet Consumer list lt property gt bean Adding New Dataset Type The following example walks through the process of adding a new DataSet to the existing IDDI Insert the new DataSet information in into the databaset table CO DT ST IDDI using SQL Insert the tables associated with the DataSet added to CO DT ST TB IDDI using SOL 1 Run the following queries to insert new DataSet information and table association to DataSet Example A 2 Adding New DataSet insert into CO DT ST IDDI ID DT ST ID STR RT NM DT ST values maxid41 StoreID DataSetName TableName CO DT ST IDDI Column Description ID DT ST DataSet ID ID STR RT Store ID NM DT ST DataSet Name eg insert into CO DT ST IDDI ID DT ST ID STR RT NM DT ST values 6 04241 NEW Appendix Intra Store Data Distribution Infrastructure A 13 Extensibility Example A 3 Adding Table association to New DataSet insert into CO DT ST TB IDDI ID DT ST ID STR RT NM TB NM FL AI LD SEQ values
159. ch contribute to the Transaction ID You cannot directly configure the length of the transaction ID itself Backend System Administration and Configuration 1 11 Configuring RMI Timeout Intervals a System generated unique Layaway numbers Special Order numbers and Web Order numbers are not affected by changes to the transaction ID rules Amaximum of 20 digits of transaction ID can be printed on receipts using Point of Service current barcode format a Ifthe value of a store register or sequence number has fewer than the specified number of digits Point of Service uses leading zeroes to pad the number to the required number of digits a four digit sequence number whose value is 22 shows up within the transaction ID as 0022 Datescan be used in transaction IDs to help ensure unique IDs If they are used they are expressed as an 8 digit number this is set by the TransactionIDBarcodeDateFormat property in the domain properties file The only valid values for this property are no value and yyyyMMaa The date format does not vary from one locale to another You can set the transaction sequence start number in the database When you enter a transaction ID manually the trailing date is optional Changing Transaction ID Lengths To change ID lengths edit the values in the Transaction ID section of the VOracleRetailStoreldomain1configldomain properties file in your source code control system See Unders
160. cifications for new tables and columns If you are creating something not currently specified by ARTS strive to follow the ARTS naming conventions and guidelines a Document and describe every object providing both descriptions and default values so that we can maintain an up to date data model Consult your data architect when designing new tables and columns 6 4 Oracle Retail Point of Service Operations Guide Basics Whenever possible avoid vendor specific extensions and strive for SOL 92 compliance with your SQL While Sybase specific extensions are common in the code base do not introduce currently unused extensions because they must be ported to the DataFilters and JdbcHelpers for other databases a All SOL commands should be uppercase because the DataFilters currently only handle uppercase If database specific code is used in the source move it into the JdbcHelpers All JDBC operations classes must be thread safe Do the following to avoid errors a Pay close attention when cutting and pasting SOL Always place a carriage return at the end of the file Test your SQL before committing The subsections that follow describe guidelines for specific database environments DB2 Table 6 3 shows examples of potential problems in DB2 SQL code Table 6 3 DB2 SQL Code Problems Problem Problem Code Corrected Code Don t use quoted integers or CREATE TABLE BLAH CREATE TABLE BLAH u
161. cle Retail Store Data Manager interface Retail Domain is packaged as domain jar and domainconfig jar which are installed with the Point of Service application The Data Managers and Technicians along with the related Data Transactions and Data Operations classes that they require are also packaged within the Retail Domain jars All Retail Domain classes extend EYSDomainlfc This interface ensures the following interfaces are implemented Serializable This communicates Java s ability to flatten an object to a data stream and conversely reconstruct the object from a data stream when using RMI Cloneable This communicates that it is legal to make a field for field copy of instances of this class The EYSDomainlfc interface also requires that the following methods be implemented Retail Domain 12 1 New Domain Object equals This method accepts an object as a parameter If the object passed has data attributes equal to this object the method returns true otherwise it returns false clone This method creates a new instance of the class of this object and initializes all its fields with exactly the contents of the corresponding fields of this object toString This method returns a String version of the object contents for debugging and logging purposes New Domain Object When an existing Retail Domain object contains attributes and methods that are a subset of those required a new Retail Domain object can extend
162. compressValets optional Specifies whether the valets should be compressed during network transmission The default is N Manager Technician Framework 11 5 New Manager Technician Valet Class Method Some Technicians may require complex configuration In cases like this it may be preferable to define an XML configuration script specific to the Technician rather than to rely on the generic property mechanism Therefore Technicians may have an additional property defined that specifies additional information such as log formats or parameter validators If a separate configuration script is defined the startup method must read and interpret the configuration script The following sample from config conduit CollapsedConduitFF xml shows an additional script defined in the configuration of the Tax Technician Example 11 2 CollapsedConduitFF xml Tax Technician Configuration TECHNICIAN name TaxTechnician class TaxTechnician package com extendyourstore domain manager tax export Y PROPERTY propname taxSpecScript propvalue classpath config tax TaxTechnicianRates xml gt lt TECHNICIAN gt The valet is the intermediary between the Manager and Technician Valets act as commands and transport information back and forth between the Manager and Technician Valets must implement ValetIfc which contains a single method Table 11 5 lists the ValetIfc method Table 11 5 Valetlfc Method Descrip
163. corporated of Ottawa Ontario Canada to Oracle and imbedded in the Oracle Retail Value Chain Collaboration application Contents A A REST EET I xxiii Audietice Ra eR ed e en esce cede e ee eae xxiii Related Doctmients i acetate eai eite les ee eee xxiii Customet SuppoEt eee te eee ener n hop td en e bp eig ere ne ge eere Po etes xxiii Review Patch Documentation seeni aia iia a a aa E a aai ae it xxiv Oracle Retail Documentation on the Oracle Technology Network sss xxiv Conventions e HERE vate n eiii to ie vede een laa pra Xxiv 1 Backend System Administration and Configuration Defining Security with Roles ccoo ii til 1 1 Modifying a Role nite eed ee teen e brin e d e d real rete 1 2 Adding a Role beat dtes etian ee A He ut Reged 1 2 Secured Heatiltes Tecate cialis petet eae etes bee iE ERE n ie eae ee einen eaaet 1 4 Security Implementation Warnings and Advice sess eee 1 5 Password Policy eene eee ee ele en RU pet tete pe tpe t regie epe ei dus 1 6 Password Reset nne iii Beton n en Oo denen ota Greene 1 7 Viewing or Modifying the Password in the Database ssssssssssssseeeee 1 8 Password Policy and Password Change sss eene 1 8 Reason Codes ueteri ope ERA at p uet BER testet eb Ele bae ULL ce 1 9 Configuring Transaction ID Lengths esee eee eee ene nennen nnnnnnnnnnn 1 11 Understanding Transaction IDs s
164. ction With Tourmap ooneconcncooonononnnncnrnnenncannnnnerarnrannnnnnanarannos 9 6 9 9 tender xml Definition of Systemi Sitesine isien eene 9 6 9 10 tender xml Definition of Letter ooocococinononucconnnonncconnconnnnnnncnnnnonancnnnrcnnonnnn cnn non nn ona nc etre steer 9 6 9 11 tender xml Definition of Road Class sess nennen ette 9 7 9 12 tourmap xml Example of Overriding Site Laneaction sese 9 7 9 13 Example of Common Road eee bee cet 9 7 9 14 tender xml Definition of Aisle Class essere enne ener 9 8 9 15 tender xml Mapping of Aisle to Site ocnococininnnnnononnoninnonncnonananannnonononanancnononon anar e ens 9 8 9 16 tourmap xml Example of Overriding Aisle Laneaction sess 9 8 9 17 tender xml Definition of Shuttle Class essent nhe enne nnne 9 9 Xix XX 9 18 9 19 9 20 9 21 9 22 9 23 9 24 9 25 9 26 10 1 10 2 10 3 10 4 10 5 10 6 10 7 10 8 10 9 10 10 10 11 10 12 10 13 10 14 10 15 10 16 10 17 10 18 10 19 10 20 10 21 10 22 10 23 10 24 10 25 10 26 10 27 10 28 10 29 10 30 11 1 11 2 11 3 11 4 11 5 11 6 11 7 11 8 11 9 11 10 11 11 11 12 11 13 11 14 tender xml Mapping of Station to Service and Shuttle Classes sss 9 9 tourmap xml Example of Mapping Servicename esses eee 9 9 tourmap xml Example of Overriding Shuttle Name
165. ctionality and a larger than necessary number of defects An example of this is when code does not match Functional Requirements including details like maximum length of fields and dialog message text Read the Functional Requirement before you code If there is disagreement with content raise an issue with the Product Manager Before you consider code for the requirement finished all issues must be resolved and the code must match the requirements Stovepipe Multiple systems within an enterprise are designed independently The lack of commonality prevents reuse and inhibits interoperability between systems For example a change to till reconcile in Back Office may not consider the impact on Point of Service Another example is a making change to a field in the Oracle Retail database for a Back Office feature without handling Point of Service effects Coordinate technologies across applications at several levels Define basic standards in infrastructures for the suite of products Only mission specific functions should be created independently of the other applications within the suite Designing for Extension This section defines how to code product features so that they may be easily extended It is important that developers on customer projects whose code may be rolled back into the base product follow these standards as well as the guidelines in Chapter 8 Extension Guidelines Note Before extending
166. culator is added to be the parent class Business Objects Both TaxRateCalculator and InclusiveTaxRateCalculator classes will implement the following API public CurrencyIfc calculateTaxAmount CurrencyIfc amount All other API specified by Interface TaxRateCalculatorlfc will be implemented in AbstractTaxRateCalculator class Domain Object Factory Service The following two API will be added to domain object factory interface com extendyourstore domain factory DomainObjectFactorylfc The API will be implemented in com extendyourstore domain factory DomainObjectFactory class to return an exclusive tax or inclusive tax rate calculator based on the boolean flag passed in Appendix Value added Tax B 15 New Or Changed Classes services public TaxRateCalculatorIfc getTaxRateCalculatorInstance boolean inclusiveTax public TaxRateCalculatorIfc getTaxRateCalculatorInstance Locale locale boolean inclusiveTax Enhancing Domain Tax Interfaces classes Tax Information Interface Class An instance of a domain tax information interface class is used to hold tax amount for a sales return tax line item Each instance is meant to represent a row in sales return tax line item table TR LTM SLS RTN TX It must be enhanced to include an inclusive tax flag The following two new member functions will be added to interface com extendyourstore domain tax TaxInformationlfc and class com extendyourstore domain tax TaxInformation public b
167. d This is a Point of Service event This event is written to the audit log if the Settings For Audit Logging system setting INFO and the Till Suspend system setting INFO Event data collection starts when the operator selects to suspend a till Event data collection ends when the system assigns a transaction number Event failure can happen only due to technical reasons e g unable to get next sequence number for transaction transaction creation exception EJB call exception or if the financial totals are not found in the database Table D 23 Till Suspend Event Component Event Components Notes Event Name Till Suspend Event Status Success a Failure Event Originator Class Name and Method Name ClassName methodName System Date System date of the event Business Date Business date of the event System Time Time of the event Store ID Store number the event transpired at User ID User ID performing the event Register Number The register number the event transpired at Till ID The Till ID the event transpired at Operator ID Operator ID is user assigned to the till not the logged in user ID Till Resume This is a Point of Service event This event is written to the audit log if the Settings For Audit Logging system setting INFO and the Till Resume system setting INFO Event data collection starts when the operator selects to retrieve a suspended t
168. d UK Store Credit when Count Till at Reconcile Detail and the tender was received lt ARG gt UK Store Credit n UK Store Credit amount entered when Count Till at Reconcile Detail There is an audit log entry for each UK Store Credit entered lt ARG gt the number of the UK Store Credit European Gift Certificate Total Entered tender amount if Count Till at Reconcile Summary Only recorded if this tender was received and this tender is included in the Tenders To Count at Till Reconcile and if Blind Close No Total of all entered European Gift Certificate when Count Till at Reconcile Detail and the tender was received lt ARG gt European Gift Certificate m European Gift Certificate amount entered when Count Till at Reconcile Detail There is an audit log entry for each European Gift Certificate entered lt ARG gt the number of the European Gift Certificate European Store Credit Total n Entered tender amount if Count Till at Reconcile Summary Only recorded if this tender was received and this tender is included in the Tenders To Count at Till Reconcile and if Blind Close No Total of all entered European Gift Certificate when Count Till at Reconcile Detail and the tender was received lt ARG gt European Store Credit n European Store Credit amount entered when Count Till at Reconcile Detail There is an audit log entry for each European Store Credit entered lt ARG gt
169. dao TaxGroupRuleDAO Import Services The tax group rule import handler com _ 360commerce commerceservices tax importdata TaxGroupRuleHandler must be updated to import the new tax inclusive flag Internal Tax Engine Classes The following function will be added to com extendyourstore domain tax InternalTaxEngine to collect all the taxable line items including the sales return line items and the send package line items protected TaxLineItemInformationIfc collectTaxableLineItems TaxLineItemInformationIfc lineitems TransactionTotalsIfc totals The calculateTax function in the internal tax engine class com extendyourstore domain tax InternalTaxEngine is responsible of calculating tax for all the taxable line items It will be modified to call the above collectTaxableLineltems to collect all the taxable line items public void calculateTax TaxLineItemInformationIfc lineItems TransactionTotalsIfc totals TransactionTaxIfc transactionTax lineItems collectTaxableLineItems lineItems totals TaxRuleItemContainerlIfc taxRuleItemContainer collectTaxRulesAddItems lineItems transactionTax Tax Rate Calculators In addition to the exsiting com extendyourstore domain tax TaxRateCalculator class a new com extendyourstore domain tax InclusiveTaxRateCalculator class will be added to perform rate based tax calculation for price inclusive tax A new abstract base class com extendyourstore domain tax AbstractTaxRateCal
170. ded if this tender was received and this tender is included in the Tenders To Count at Till Reconcile and if Blind Close No Total of all entered Gift Certificate when Count Till at Reconcile Detail and the tender was received lt ARG gt Gift Certificate Gift Certificate amount entered when Count Till at Reconcile Detail There is an audit log entry for each Gift Certificate entered Travelers Check Total Entered tender amount if Count Till at Reconcile Summary Only recorded if this tender was received and this tender is included in the Tenders To Count at Till Reconcile and if Blind Close No Total of all entered Travelers Check when Count Till at Reconcile Detail and the tender was received lt ARG gt Travelers Check Travelers Check amount entered when Count Till at Reconcile Detail There is an audit log entry for each Travelers Check entered a lt ARG gt the number of the Travelers Check Coupon Total Entered tender amount if Count Till at Reconcile Summary Only recorded if this tender was received and this tender is included in the Tenders To Count at Till Reconcile and if Blind Close No a Total of all entered Coupon when Count Till at Reconcile Detail and the tender was received lt ARG gt Coupon Coupon amount entered when Count Till at Reconcile Detail There is an audit log entry for each Coupon entered n lt ARG gt the number of the Coupon Store Credit Tot
171. dentifies Point of Service security access points Table 1 1 Security Access Points Access Point Access Point Access Point Access Point Accept Invalid DL Format Administration Override of Soft Back Office Declined Check Bank Deposit Call Referral Accept for Cancel Special Order Cancel Transaction check credit or gift card Close Register Close Till Reprint Gift Receipt Customer Add Find Customer Delete Daily Operations Reprint Receipt Discount Rule Add Modify Discount rule End Electronic Journal E mail Employee Add Find 1 4 Oracle Retail Point of Service Operations Guide Defining Security with Roles Table 1 1 Access Point Security Access Points Access Point Access Point Access Point Employee Time Maintenance End of Day Training Mode Item Maintenance Enter Exit Item Transaction Discounts Item Transaction Gift Item Transaction Item Transaction Tax Registry Sales Associate Modifications Job Queue Kit Maintenance Layaway Delete Modify Layaway Fees Modify Markdowns No Sale Open Register Open Till Orders Override Declined Check Override Declined Override Restocking Fee Credit Override Tender Limits Parameters Add Modify Customer Discount Point of Service Price Change Price Override Price Promotion Queue Management Reason Codes Reentry On Off Transaction Details Register Reports Reset Hard Totals Return Role Add Find Schedule Jobs Service Alert Start
172. derFinancialTotals The following existing member function in sales return transaction class com extendyourstore domain transaction SaleReturn Transaction will be enhanced to populate its financial totals inclusive tax amounts protected FinancialTotalsIfc getSaleReturnFinancialTotals The following existing member functions in post voided transaction class com extendyourstore domain transaction Void Transaction will be enhanced to populate its financial totals inclusive tax amounts protected void getLayawayFinancialTotals FinancialTotalsIfc financialTotals LayawayTransactionIfc layawayTransaction protected void getOrderFinancialTotals FinancialTotalsIfc financialTotals OrderTransactionIfc orderTransaction protected void getSaleReturnFinancialTotals FinancialTotalsIfc financialTotals The following is a list of domain persistence classes that need to be enhanced to load or save the additional inclusive tax information of the history tables com extendyourstore domain arts dbcReadDepartment com extendyourstore domain arts dbcSaveDepartment com extendyourstore domain arts dbcReadTill com extendyourstore domain arts dbcSaveTill com extendyourstore domain arts JdbcReadRegister com extendyourstore domain arts JdbcReadStoreRegisters com extendyourstore domain arts JdbcSaveRegister com extendyourstore domain arts dbcReadStoreTotals Appendix Value added Tax B 7 Tracking VAT Financial Totals
173. ding of a specific letter do the Cargo storage in the traverse method of the Road that is associated with that letter If the data must be stored in Cargo before leaving a Site put the logic in the Site s depart method Code in a Site or Aisle s depart method should not check to see what letter was sent before taking an action use a Road in that case Aisles are used to implement behavior that occurs within a Site When there is interaction with an external source e g user database use a Site When you are doing business validation which may keep you in the same screen use an Aisle While it makes sense to create Roads without corresponding Road actions Aisles are useless without an Aisle action The important thing about an Aisle is that it is not part of a transition from one Site to another so the only code that gets executed in an Aisle is the traverse method The arrive and depart methods are never executed on a Site when an Aisle is processed The Aisle can initiate an action that causes a transition to another Site but it cannot transition itself Aisle actions can be used to validate data compute values provide looping behavior and do database lookups Aisle actions are useful for capturing repeatable behavior that can occur while the bus is still in a Site For example suppose you define a Site that gathers data from the user The data validation is implemented as an Aisle Because it is an Aisle the user can repe
174. ds to get set line item tax for tax columns in table TR_LTM_SLS_RTN see Sales Return Line Item Table TR_LTM_SLS_RTN public BigDecimal getTax This one is missing from the class public void setTax BigDecimal tax This one is missing from the class public BigDecimal getInclusiveTax add this one for the new column public void setInclusiveTax BigDecimal inclusiveTax add this one for the new column It will also be enhanced to take an array of sale return line item tax DTO objects The following methods will be added public SaleReturnLineItemTaxDTO getTaxInformation public void setTaxInformation SaleReturnLineItemTaxDTO dtos Shipping Record Tax DTO The shipping record tax DTO class com 360commerce commerceservices transaction shipping SaleReturnShippingRecord TaxD TO will be created to hold information for a row in shipping record tax table SHP_ RDS SLS RTN TX see Shipping Record Tax Table SHP RDS SLS RTN TX It will contain get set methods for each column in the row It extends the transaction group rule tax dto class com 360commerce commerceservices transaction tax GroupRuleTaxDTO In addition to the methods inherited from its base class it will have the following additional methods public int getSendLabelCount public void setSendLabelCount int count public BigDecimal getSendTaxAmount public void setSendTaxAmount BigDecimla amount public BigDecimal getSendInclusiveTaxAmount
175. ducer CurrencyDataSetProducer TaxDataSetProducer temDataSetProducer AdvancedPricingDataSetProducer DataSetConsumers EmployeeDataSetConsumer CurrencyDataSetConsumer ItemDataSetConsumer AdvancedPricingDataSetConsumer TaxDataSetConsumer DerbyDataFormatter Appendix Intra Store Data Distribution Infrastructure A 1 Spring Configuration This configuration is accomplished through the use of the Spring Framework as a configuration framework Table A 1 includes the set of Spring bean IDs used for each of the pluggable components Table A 1 Spring Framework Configuration Options Spring bean ID Purpose Provided implementation Configurable Options service DataSetService Configuration for DataSetService Contains the list of all com extendyourstore foundation iddi DataSetServi ce None To add a new DataSet type add one more service config the DataSetKeys DataSetType KEY service Configuration for com extendyourstore None ClientDataSetService ClientDataSetService foundation iddi ClientDataSet To add a new DataSet type Contains the list of all Service add one more service_config_ the DataSetKeys lt lt DataSetType gt _KEY datalmportFilePath service_ config DataImportFilePath service _ ProducerJobthatruns org springframework To add a new DataSet type FrequentProducerJob frequently scheduling quartz JobDetailB add one more service config ea
176. e Store Database 13 11 Example of Saving Data Storing Tender Information Example 13 7 UtilityManager java Save Data Transaction TransactionWriteDataTransaction dbTrans new TransactionWriteDataTransaction tranName dbTrans saveTransaction trans totals till register Example 13 8 TransactionWriteDataTransaction java Save Transaction public void saveTransaction TransactionIfc transaction FinancialTotalsIfc totals Tal TIfC till RegisterIfc register throws DataException int transactionType transaction getTransactionType switch transactionType begin add actions based on type case TransactionIfc TYPE SALE case TransactionIfc TYPE RETURN addSaveSaleReturnTransactionActions SaleReturnTransactionlIfc transaction totals till register break 2 Thecom extendyourstore domain arts DefaultDataTechnician xml file is the configuration file for the Data Technician and is used to configure the links between the application and the JDBC class that performs the work All Data Transaction classes must be defined in this file including TransactionWriteDataTransaction Example 13 9 DefaultDataTechnician xml Define Data Transaction Class DATATECHNICIAN package com extendyourstore domain arts gt TRANSACTION name TransactionWriteDataTransaction command jdbccommand gt 3 The TransactionWriteData Transaction class instantiates the DataAction object and sets the data operation name to Sa
177. e interacts with application code In the following description of the metaphor the words in italics are part of a simple tour script language that Oracle Retail Platform uses to represent the application elements Tour Metaphor For a moment imagine that you are a traveler about to embark on a journey You have the itinerary of a business traveler changeable at any time your luggage and transportation In addition you have a video camera TourCam to record your tour so you can remember it later You leave on your journey with a specific goal to achieve Your itinerary shows a list of tours that you can choose from to help you accomplish your task Each tour provides a tour bus with a cargo compartment and a driver Each driver has a map that shows the various service regions that you can visit These regions are made up of sites like cities and transfer stations bus stations airports etc The maps show a finite number of lanes which are either roads joining one site to another or aisles within one site To notify the driver to start the bus and drive you must send a letter to the driver The driver reads the name on the letter and looks for a lane that matches the letter When a matching letter is found the driver looks for a traffic signal on the road If there is no signal the driver can traverse the road If there is a signal the driver can traverse the road only if the signal is green If the signal is red the driver attempt
178. e otherwise it adds the tax amount to the exclusive tax total public void addTaxInformation TaxInformationIfc taxInformation The existing member function getTaxAmount will return exclusive tax total only B 16 Oracle Retail Central Office Operations Guide New Or Changed Classes services Enhancing Transaction amp Line Item Tax Interfaces classes Transaction Totals Interface Class The transaction total interface class must be enhanced to hold inclusive total tax amount The following new access member functions will be added to transaction totals interface com extendyourstore domain transaction Transaction TotalsIfc and class com extendyourstore domain transaction TransactionTotals public CurrencyIfc getInclusiveTaxTotal public void setInclusiveTaxTotal Currencylfc total To support VAT for shipping charges this interface class must also be enhanced to hold a vector of send package line items see Send Package Line Item Interface class for its class definition in stead of a vector of shipping methods and a different vector of the send customers A send package line item combines a shipping method and a send customer into one data structure and adds the additional support for shipping charges tax calculation The following methods will be removed public void addSendPackageInfo ShippingMethodIfc shippingMethodUsed CustomerIfc shippingToCustomer public Vector getShippingMethodAllSends public Vector g
179. e Choose the Tier Type from the following options Stand alone Choose this option to run the Point of Service client and server functions in one JVM N Tier Client and N Tier Store Server Choose both of these options to run client and server components on the same machine in separate JVMs Database Information Specify the database type and its location The default is Oracle 10g and DB2 v8 2 JRE Location 3rd Party Jars Build the Database The tables should be populated with the item employee coupon and other retail data that the store needs If a database is being built from scratch it needs to be populated with data The following command can be executed to build the tables and insert a minimal data set C gt OracleRetailStore pos bin dbbuild bat To run the dbbuild bat it is necessary to pass an input parameter dbbuild bat data level data level can be base data seed data test data demo data base data contains just enough to get the build running seed data should contain enough to build and run unit functional tests test data will contain the rest of the data that you expect from previous builds Create a Sandbox If you plan to retrieve all the source code with the version control system create a local sandbox with only one directory such as the following C mySandbox Otherwise create a local working directory with src config and locales en_US subdirectories This allows the application code to find
180. e Exception letter is processed using application specific actions and traffic lights However if the exception region does not exist the mechanic stops the bus and informs the parent bus of the problem Depending on the application definition recovery from exceptions can result in a rollback resumption or a restart of the bus Role of Java Classes All the code samples in this chapter have been from tour scripts Tour scripts exist in the form of one XML file per tour The tour script refers to Java classes that implement specific behavior such as the siteaction and laneaction attributes A tour has the following Java classes a One for the cargo a One for each site a One for each aisle One for each road that implements behavior One for each shuttle One for each signal The Tour Guide application can generate Java stubs for these classes but the code in the methods for the sites roads aisles and cargo classes needs to be written Table 9 3 lists methods that the tour engine looks for when it arrives at a specified place in the tour Table 9 3 System called Methods Class Method s Site arrive depart Road if behavior traverse Aisle traverse Shuttle load unload Signal roadClear Cargo lt none gt Tour Framework 9 11 Tour Cam Tour Cam Attributes TourCam allows you to navigate backward through your application in a controlled manner while requiring minimal
181. e current TourCam tape by removing all frames that were recorded since a previously visited site When the passenger wants to back up they instruct the bus driver to traverse a road whose destination is the Backup system site The backup road can inform the bus driver to rewind or splice the TourCam tape while retracing its path along the last recorded road Similarly the passenger can instruct the bus driver to traverse a road to a specific previously visited site That road effectively backs up the bus when it instructs the bus driver to rewind or splice the TourCam tape When the passenger wants to end the trip they instruct the bus driver to travel down a road whose destination is the Return system site The final road may advance or discard the TourCam tape A passenger may return to the tour if they back into the parent transfer station If the TourCam tape is advanced a return visit retraces the path through the map in reverse order If the TourCam tape is discarded all return visits start at the start site as if the passenger were visiting the tour for the first time The TourCam processing model places all undo actions on roads and treats sites and stations as black boxes The tour attribute that turns TourCam on or off is tourcam The following code from tender xml shows the location in the tour script where the tourcam is set The default value is OFF Example 9 23 tender xml Definition of tourcam SERVICE name Tender pac
182. e in a tour without permitting backup or undoing cargo after returning to the base site For example the application starts from a menu and permits the user to back up until a series of steps are complete but not afterward In this case the final road from the last site returns to the menu The need to use this combination might indicate a design flaw in the tour The developer should question whether the series of sites that branch from the menu should be a separate tour If the answer is no this combination is the solution destination NamedIndex namedIndex LOGIN This combination backs up the application to the origin of the road with the specified named index This is used to back up to a specific index even if it was set in a parent tour Letter Processing In the absence of TourCam processing of letters is straightforward If the letter triggers a lane the bus simply traverses the lane With TourCam enabled the processing of letters must consider the actions required to retrace the path of the bus If the letter triggers an aisle the bus traverses the aisle There is no backup over an aisle If the letter triggers a road tape advance or tape discard indicate a forward direction and tape rewind or tape splice indicate a backward direction The destination of the road element is used to indicate the backup destination when tape rewind or tape splice It can be one of the following values LastIndexed NamedIndex o
183. e in tour script com extendyourstore pos services send displaysendmethod displaysendmethod xml Its site class com extendyourstore pos services send displaysendmethod GetTaxRulesSite retrieves the send tax rules based on the postal code of the shipping address We will overlay this site class with the following one for VAT com extendyourstore pos services send displaysendmethod GetVatRulesSite This new site class will retrieve local tax rules for the send transaction Transaction Persistence for VAT Persist Inclusive Tax For a retail transaction inclusive tax information must be saved at transaction and line item level a For schema enhancement of a retail transaction see Retail Transaction Table TR_ RTL a For schema enhancement of a transaction tax line item see Tax Line Item Table TR LTM TX For schema enhancement of a sales return line item see Sales Return Line Item Table TR LTM SLS RTN a For schema enhancements of a sales return tax line item see Sales Return Tax Line Item Table TR LTM SLS RTN TX The following is a list of domain persistence classes that need to be enhanced to load or save the additional inclusive tax information of a retail transaction com extendyourstore domain arts dbcRead Transaction com extendyourstore domain arts JdbcReadTransactionHistory com extendyourstore domain arts JdbcSaveRetailTransaction a com extendyourstore domain arts JdbcSaveRetailTransactionLineltems
184. e object Include the name of the parameter and its type in the javadoc param initialData String used to initialize the Sample public Sample String initialData sampleData initialData Declare variables outside the loop int length sampleData length BigDecimal numberList new BigDecimal length Precede code blocks with blank line and pertinent comment for int i 0 i length i Sample wrapping line numberList i someInheritedMethodWithALongName Util I BIG DECIMAL ONE sampleData length i j j j Make code comments conform to Javadoc standards Include a comment for every code block Document every method s parameters and return codes and include a brief statement as to the method s purpose Naming Conventions Names should not use abbreviations except when they are widely accepted within the domain such as the customer abbreviation which is used extensively to distinguish customized code from product code General Development Standards 6 3 Basics Table 6 2 lists some additional naming conventions Table 6 2 Naming Conventions Element Description Example Package Names Package names are entirely lower case and should conform to the documented packaging standards com extendyourstor e packagename com mbs packagname Class Names Mixed case starting with a capital letter Exception classes end in Exception interface classes end in
185. e screens are used by overlay specifications that define more specific screen components For example almost all screens in the Point of Service application display a status area region The text displayed in the status region changes but the StatusPanelSpec bean is the same from screen to screen so a default screen would assign this bean to the StatusPanel area defined by a template Table 10 5 lists the areas of the template to which beans are assigned and the display and template used by each of the six types of default screens Table 10 5 Default Screen Types Name Typical Use Display Template BrowserDefaultSpec Back Office screens EYSPOSDisplaySpec BrowserTemplateSpec within Point of Service application DefaultHelpSpec Point of Service help HelpDialogDisplaySpec HelpBrowserTemplateSpec screens DefaultValidatingSpec Point of Service screens with required fields that display an information panel below the work area EYSPOSDisplaySpec ValidatingTemplateSpec EYSPOSDefaultSpec Point of Service screens without required fields EYSPOSDisplaySpec EYSPOSTemplateSpec ResponseEntryScreenSpec Point of Service screens with information captured in the response area at the top of the screen EYSPOSDisplaySpec EYSPOSTemplateSpec Each screen in Point of Service has an overlay screen defined in a UI script in the package to which it belongs or in a package higher in the hierarchy For example the A
186. e tree to specify the correct package and filename for the new tour script The logical tour name must stay the same Example 8 3 tourmap_CA xml Replacing one tour script lt tour name tender gt file classpath com mbs pos services tender tender xml file tour 3 Copy and modify sites roads aisles shuttles and signals Site Extending siteactions in the traditional object oriented sense is not recommended letters mailed in the original arrive method would conflict with the arrive method in the extended class Since siteactions represent relatively small units of code they should be replaced instead of extended Follow these steps 1 Create a new siteaction class in the customer source tree such as MBScashSelectedSite java 2 If you are overlaying a siteaction class but not modifying the tour script then all letters that were mailed from the product version of the siteaction class should also be mailed from the new version Do not mail new letters that are not handled by the product code unless the tour script and related Java classes are also modified 3 Editthe appropriate Tour Map for the locale using the replacewith property in the lt SITEACTION gt tag to define the new package and filename for the siteaction class 8 4 Oracle Retail Point of Service Operations Guide POS Package Example 8 4 tourmap CA xml Replacing a siteaction tour name tender gt file classpath com mbs pos services
187. e user VAT tax will still need to be considered part of customer localization as VAT can vary from country to country might need to be configured differently and many customers might want to modify receipt formats reports and so forth VAT calculation Inclusive Tax Flag At Tax Group Rule Level At tax group rule level a boolean inclusive tax flag is added to indicate if the tax amount is already included in the item price For details on this enhancement see Adding Tax Inclusive Flag To Tax Group Rule for class service API changes and Tax Group Rule Table RU TX GP for DB schema enhancement Inclusive Tax Rate Calculator A new inclusive tax rate calculator class is added to support VAT calculation For details on this new calculator see Tax Rate Calculators for class level APIs Appendix Value added Tax B 1 VAT calculation Enhancing PLU Item Look Up A tax calculator is instantiated during PLU item look up for a sales transaction When it comes to instantiate a rate calculator the logic in member function NewTaxRulelfc retrieveltemTaxRules ArrayList ffTaxVOs in JDBC class com extendyourstore domain arts JdbcReadNewTaxRules must be enhanced to create either an inclusive tax rate calculator or an exclusive tax rate calculator based on the inclusive tax flag at the tax group rule level Instead of calling the existing domain factory API TaxRateCalculatorlfc getTaxRateCalculatorInstance it is changed to invoke the
188. e workflow for the customer as in the product The following tourmap definition specifies the class to override and the new class to use in place of the original class Note that replacewith is a fully qualified classname with both package and classname specified unlike the class attribute Example 9 12 tourmap xml Example of Overriding Site Laneaction LANEACTION class ValidCreditInfoEnteredRoad replacewith com extendyourstore actions SomeOtherLaneAction Common Roads The COMMON element is defined in the REGION element of the tour script The COMMON element can contain roads that are available to all sites and stations in a tour Common roads have the same attributes as roads defined within a site but they are defined outside of a site so they can be accessed by all sites If a common road and a tour road are both activated by the same letter the site road is taken The following is an example that differentiates common roads from tour roads Example 9 13 Example of Common Road MAP REGION region SERVICE startsite Example gt COMMON ROAD name QuitSelected letter exit destination NamedIndex tape REWIND Tour Framework 9 7 Tour Components COMMENT lt COMMENT gt lt ROAD gt lt COMMON gt SITE name RequestExample siteaction RequestExampleSite gt ROAD name ExampleSelected letter next laneaction ExampleSelectedRoad destination ShowExample tape ADVANCE record
189. eContext xml is under install dir pos config context Application Configuration A 6 Oracle Retail The Timeout interval to start data consumption is configured in the Application xml file The IDDITimeoutInterval parameter value is set to 15 minutes by default and is configurable The IDDIOfflineSupport parameter has been renamed to IDDIOfflineSupportRequired and the values are reversed Basically this parameter allows the end user to decide if the client should come up without offline data If IDDIOfflineSupportRequired is Y then the client does not start if no offline data is available offline data is required for the client to start If IDDIOfflineSupportRequired is N then the client starts without offline data offline data is not required for the client to start The batch size of the records to write data to flat file is set in domain properties with the property IDDIBatchSize Point of Service Operations Guide Integration Considerations Integration Considerations IDDI integrates with both the Oracle Retail Point of Service server and the Oracle Retail Point of Service Client application IDDI integration with Oracle Retail Point of Service server produces dataset files on a scheduled basis IDDI integration with Oracle Retail Point of Service client downloads the dataset files from Oracle Retail Point of Service server on a scheduled basis and the client can then comsume those files IDDI server and client integrat
190. eCreditAccepted Reconciliation Group TendersToCountAtTillReconcile For EUR as base and GBP as alternate the values for the TendersToCountAtTillReconcile parameter should be Cash Check ECheck Credit Debit TravelCheck GiftCert Coupon GiftCard StoreCredit MallCert PurchaseOrder MoneyOrder GBPCash GBPIravelCheck GBPCheck GBPGiftCert GBPStoreCredit Configuring a New Base Currency Throughout this section Krona is used as the example new base currency that is being configured The Krona currency code is SEK and the issuing country code is SE C 2 Oracle Retail Back Office Operations Guide Configuring a New Base Currency Currency SQL Configuration Currency Table CO CNY A new record describing the new currency information such as its currency code issuing country code and so forth must be inserted into this table In the base currency flag column FL CNY BASE the new currency must be set to 1 indicating that it is the base The flag for other currencies must be set to 0 indicating that they are alternate currencies Note Point of Service supports base plus one alternate currency The priority column AI CNY PRI must be set to 0 for the new base currency It must be set to 1 for the supported alternate currency For other alternate currencies they must be ordered and greater than 1 but the specific order isn t important Exa
191. e_config_ AdvancedPricingConsume definition for domain iddi AdvancedPricin PRC_ r Advanced Pricing gDataSetConsumer KEY dataImportFilePath serv DataSetConsumer ice config DatalmportFilePath importH elper service_ OfflineDBHelper service ItemConsumer DataSet Key com extendyourstore dataSetKey service config definition for Item domain iddi temDataSetCon ITM DataSetConsumer sumer KEY dataImportFilePath serv ice config DatalmportFilePath importH elper service_ OfflineDBHelper service _ Consumer Job that org springframework schedul dataSets FrequentConsumerJob runs frequently ing quartz JobDetailBean To add a new DataSet type Configured to run dd 5 f every 15mins by add one more service config default DataSetTIype KEY service _ Consumer Job org springframework schedul dataSets InfrequentConsumerJob configured to run ing quartz JobDetailBean To add a new DataSet type once a day by default add one more service_config_ lt lt DataSetType gt _KEY service_ Cron Job Trigger class org springframework service_ TriggerFrequentConsumer that runs service_ scheduling quartz CronTrigge FrequentConsumerJobcronEx FrequentConsumer rBean pression Value configuration service_ Cron Job Trigger class org springframework schedul service_ TriggerInfrequentConsum that runs service_ ing quartz CronlriggerBean InfrequentConsumerJobcronE er InfrequentConsumer xpression Value configuration A 4 Oracle Retail Point o
192. eanClassName MBSNavigationButtonBean gt lt BUTTON actionName Cash enabled true keyName F2 labelTag Cash gt other buttons omitted lt BEAN gt other UI objects omitted lt UICFG gt This section covers customization of components other than the tour and the UI framework including internationalization and localization changes as well as conduit scripts PLAF receipts and reports Internationalization The process of internationalization includes modifications to the code so that a single code base can support multiple languages The base product supports US English If additional languages need to be supported additional internationalization steps need to be completed by the customer For additional internationalization support of Oracle Retail Point of Service please contact Oracle Retail Services Extension Guidelines 8 9 POS Package Conduit Scripts The conduit scripts provided with Oracle Retail applications define a typical tier configuration and are usually replaced with customer conduit scripts for a given implementation Conduit scripts include an XML file and a bat and sh file to execute the XML both bat and sh versions of the batch file are provided to support Windows and Linux Follow these steps to set up customer conduit scripts 1 Copy the conduit scripts client server and collapsed to the customer source tree Copy the XML and bat and sh files for each type of conduit
193. echnician if defined 3 JournalTechnician if defined Table 11 8 lists important JournalManagerlfc methods implemented in src com extendyourstore foundation manager journal JournalManager java Table 11 8 Important JournalManagerlfc Methods Description void journal String user Adds a new entry to the journal String transaction String text Manager Technician Framework 11 13 Manager Technician Reference Table 11 8 Important JournalManagerlfc Methods Method Description void Sets whether journal entries are sent to the console setConsolePrintable String printable void index String Adds a new entry to the index to provide search capabilities to the transaction transaction String key void setRegisterID String Sets a register ID associated with the journal entry registerID These methods are used in tour code to configure the E journal This code is from src com extendyourstore pos services GetCheckInfoSite java Example 11 17 GetCheckinfoSite java Tour Code Using JournalManagerlfc JournalManagerIfc journal ZournalManagerIfc Gateway getDispatcher getManager JournalManagerIfc TYPE journal journal trans getCashier getLoginID trans getTransactionID purchaseOrder toJournalString 11 14 Oracle Retail Point of Service Operations Guide 12 Retail Domain This chapter contains an overview of the Oracle Retail business objects including steps to create
194. echnicianlfc the Journal Manager removes your need to know the location of resources The Journal Technician is responsible for providing journal facilities to other tiers The Journal Manager must be started on each tier that uses it There must be a LocalJournalTechnician running on the local tier or an exported JournalTechnician running on a remote tier or both Transactions should be written to E journal only when completed The following code samples from config NconduitNCollapsedConduitFExml specify the Journal Manager and Technician properties Note that this Manager is a Session Manager it is defined outside of the APPLICATION element in which the UI Manager and Parameter Manager were defined This allows the Journal Manager to be accessed outside of the bus meaning it is more accessible and flexible Example 11 15 CollapsedConduitFF xml Code to Configure Journal Manager MANAGER name JournalManager class JournalManager package com extendyourstore foundation manager journal export N gt MANAGER Example 11 16 CollapsedConduitFF xml Code to Configure Journal Technician TECHNICIAN name LocalJournalTechnician class JournalTechnician package com extendyourstore foundation manager journal export Y gt lt TECHNICIAN gt The Journal Manager must be started on each tier that uses it The Journal Manager sends journal entries in the following order 1 Console if consolePrintable is set 2 LocalJournalT
195. ed by the same letter The lane that has a signal that evaluates to true is the one that is traversed Each signal has an associated Java class Signal classes evaluate the contents of the cargo and do not modify data The following code sample lists the tender xml code that relates to the definition of two roads with Light signals defined The definition is added to the SERVICECODE XML element whereas the road description is added to the MAP XML element The negate tag negates the Boolean value returned by the specified signal class Example 9 21 tender xml Definition of Traffic Signal SIGNAL class IsAuthRequiredSignal gt Example 9 22 tender xml Signal Processing With Negate Tag STATION name AuthorizationStation ROAD name AuthorizationRequested letter Next destination AuthorizationStation tape ADVANCE record OFF index 0FF gt LIGHT signal IsAuthRequiredSignal gt lt ROAD gt lt ROAD name BalancePaid letter Next destination CompleteTender tape ADVANCE record 0FF index 0FF gt LIGHT signal IsAuthRequiredSignal negate Y gt lt ROAD gt additional lane definitions lt STATION gt Exception Region Continuing the tour metaphor the bus could break down at any time If the bus driver detects that the bus has broken down the bus driver takes the bus to the nearest Garage system site Once the bus is in the garage the mechanic assumes control of and diagnoses the breakd
196. een nnne nnne nennen 1 11 Changing Transaction ID Lengths esee ee eee een n nene nnne nnnenen 1 12 Configuring the Purchase Date Field for Returns and Voids sss 1 12 Configuring RMI Timeout Intervals sese eene n nen e nennen 1 12 Setting the RMI Timeout Interval for the JVM Under Linux sese 1 13 Modifying the TCP Connection Timeout on Linux eese eene 1 13 Setting the RMI Timeout Interval for All Manager and Technician Calls 1 13 Setting Application Timeout Values on Linux sees eee 1 14 Setting the RMI Timeout Interval for a Specific Technician s sss 1 14 Configuring Third party Tender Authorization sssssssssssee eee nnn 1 15 Enabling the Financial Network Technician eese eene 1 15 Setting the Merchant Number sese eene nnne nnn nennen nennen 1 15 System Setlings o iets assests a BO deae ame qui e ded ig maa ned tec a p PE 1 16 Adding or Changing Language Bundles 1 sess eee eene 1 16 vi Naming Convention for Language Bundles sess eee eene 1 16 Creating a New Language Bundle sese 1 16 Configuring the System to Use a New Language Bundle sse 1 16 Configuring Logging oto aan 1 17 Technical Architecture Point of Service Architecture
197. en B 30 Shipping Record Table SHP RDS SLS RTN sees nennen e ener B 30 Shipping Record Tax Table SHP RDS SLS RTN TX sese eene B 31 C Appendix Changing and Configuring a New Base Currency Changing Curtefticy eee ree Ime pr ei ate stipe poor QUEUE ee reete Otto e RE C 1 Configuring a New Base Currency sees eee eene eene nennen nnne C 2 Currency SOL Configuration cecinit iia C 3 Currency Table COEN iae haee ve b RE prn iit ine ant C 3 Currency Denomination Table CO CNY DNM een ene nnns C 3 Exchange Rate Table CO RT BXC ssssssseeeeeeeenenen nennen nennen nnne C 4 Store Safe Tender Table LE TND STR SF eee eene nennen inneren nnne nnns C 5 Parameter Configuration rete np RR REEF ER Edere cavers C 5 Resource Bundle Configuration 1c tee cte reine it ter bore te Pb cete Pedes C 9 D Appendix Audit Logging Configuring the Audit Log iii aote natae dede acie di ce be ced getreten D 2 Daily Operations Audit Log Events ociicinicinnnnnoninconnncnncncononnnnononcono ran cn nano no ran en nnne nnne D 7 Enter Business Date cocinada ade Ete ei ERR EE MEO ep Eee da ke de des Leda e dre ede e deett D 7 Start of Day cotilla eet ee gt hte cotta ee static beet chats outta bae tere un set eese bt eia D 7 Fil OFM Aye ca de cte E eut eati Lu ene uL Gre I Sie nee D 8 Register Operi intere I e ORA SE RC B e a tA arit ive dires D 10 Register Close n e bI Ree Re e oe Ido tee de a dee c
198. ending valets to the Technician The sendValet method makes a single attempt to send a valet to the Manager s Technician The sendValetWithRetry method attempts to send the valet to the Manager s Technician and if there is an error reset the connection to the Technician and then try again Managers must implement the Managerlfc which requires the methods in the following table Manager Technician Framework 11 3 New Manager Technician Table 11 3 lists Managerlfc methods Table 11 3 Managerlfc Methods Method Description MailboxAddress Gets address of Manager getAddress Boolean getExport Returns if this Manager is exportable String getName Gets name of Manager void setExport Boolean Sets whether the Manager is exportable void setName String Sets name of Manager void shutdown Shuts this Manager down void startUp Starts this Manager Often a subclass of Manager can use these methods exactly as written Unlike the Technicians Managers seldom require special startup and shutdown methods because most Managers have no special resources associated with them Manager Configuration You can provide runtime configuration settings for each Manager using a conduit script The Dispatcher that loads Back Office configures the Managers by reading properties from the conduit script and calling the corresponding set method using the Java reflection utility All properties are set by the Dispatcher
199. epending on the choice of IDE database and version control system configuration of the development environment involves some common steps This document addresses components that various development environments have in common The following software resources must be installed and configured before the Point of Service development environment can be set up Ensure that the following are in place Version control system The Point of Service source code must be available from a source control system OracleRetailStore database The OracleRetailStore database should be installed Eclipse version 3 0 or another IDE If installing Eclipse downloads and instructions are available from http www eclipse org downloads JDK 1 5 Downloads and instructions are available at http java sun com downloads Setting up the development environment requires installing the Point of Service application populating the database creating a sandbox configuring the IDE and configuring the version control system Install Point of Service Install Point of Service using the installation script While running the Point of Service installation script accept the default options even when nothing is selected except for the options discussed in the following table Table 5 1 lists some Point of Service installation options Development Environment 5 1 Setup Table 5 1 Point of Service Installation Options Option Instruction Tier Typ
200. erriere ina D 20 Transaction Tendered with Credit Card Event Components sss D 21 Transaction Tendered with Debit Card Event Components sess D 22 Till Open Event Componentt c ccccccscsessescsceneresescscsnesesescecesescsnsnenesesescesessssesanensseseeneseseseanenes D 23 Till Suspend Event Component tenente nene D 24 Till Resume Event Component seen nnn nnne nnne nnne ii D 24 Till Close Event Component ssssssseeeseeeeeeenenenet entente nter E nennen D 25 Count Float at Reconcile Event Components mmccococononononnnnnnnncncnnnennnocannnnncnrarnnnrnoraranannnnnraos D 26 Till Reconcile Event Components retenti niet been eerte des D 27 Modify Application Parameter Event Components sss D 33 E Mail Message Status Values sse eee nennen ertet F 1 xvii xviii List of Examples 1 1 Changing Transaction ID Length sse nene 1 12 4 1 Default Parameter Settings jsi ee ret ted ipu tete reete Pet he ugtee suse 4 2 4 2 Definition of Tender Gro p i t etie ei te cde eei Ute dee rego 4 2 4 3 Parameter Definitions From application xMl sse nnn 4 3 4 4 ActionGroup Configurations sses se eee eene nnne nne nennen nennen 4 4 4 5 Session Configuration ere ertet e bee de rite ee t Eee D geraten nee 4 5 4 6 Example of Device Connection seen eene nnne nennen nennen 4 5 4 7 ActionGroup in
201. ers gt lt list gt ref local service TriggerFrequentProducer ref local service TriggerInfrequentProducer ref local service_Trigger lt lt DataSet gt gt Producer gt list property bean Configure Dataset Consumer Do the following to configure DataSet Consumer 1 Add JobDetailBean bean configuration service DataSet ConsumerJob bean id service_ lt lt DataSet gt gt ConsumerJob class org springframework scheduling quartz JobDetailBean property name jobClass gt value com extendyourstore foundation iddi ClientDataSetController value property property name jobDataAsMap gt map entry key dataSets gt list ref local service config DataSetKey gt gt gt list entry map property bean Note service config DataSetKey should have been configured with the DataSetKey A 12 Oracle Retail Point of Service Operations Guide Extensibility 2 Add CronTriggerBean bean configuration service Trigger DataSet Consumer bean id service Trigger DataSet Consumer class org springframework scheduling quartz CronTriggerBean property name jobDetail gt ref local service_ lt lt DataSet gt gt ConsumerJob gt property property name cronExpression value 0 0 15 30 45 0 gt bean The DataSet is configured to run once every 15 minutes 3 Addservi
202. ervice config NEW KEY class java lang String gt constructor arg type java lang String value NEW gt bean 4 Define service DataSetKey Producer with class lt DataSetKey gt Producer and service DataSetKey Consumer with class DataSetKey Consumer in ServiceContext xml bean id service_NewProducer class com extendyourstore domain iddi NewDataSetProducer lazy init true singleton true property name dataSetKey ref service config NEW KEY property name dataExportFilePath ref service config DataExportFilePath gt lt property name dataExportZipFilePath ref service_config_ DataExportZipFilePath gt lt bean gt lt bean id service_NewConsumer class com extendyourstore domain iddi NewDataSetConsumer lazy init true singleton true gt lt property name dataSetKey ref service_config_NEW_KEY gt property name dataImportFilePath ref service_config_ DataImportFilePath gt lt bean gt 5 Add to service_ lt lt DataSetKey gt gt Producer and service lt lt DataSetKey gt gt Consumer to service_DataSetService and servic ClientDataSetService respectively in ServiceContext xml lt bean id service_DataSetService class com extendyourstore foundation iddi DataSetService lt property name producers gt lt map gt lt entry key ref service_config_EMP_KEY val EmployeeProducer entry key ref service co
203. es This function gets the tax mode It should delegate the task by calling getTaxMode function on item tax public int getTaxMode a This function sets the tax mode It should delegate the task by calling setTaxMode function on item tax public void setTaxMode int value This function must always return false Shipping charges are not treated as kit header public boolean isKitHeader a This function sets the tax scope transaction or item It should delegate the task by calling setTaxScope function on item tax public void setTaxScope int scope This function returns the tax scope transaction or item It should delegate the task by calling getTaxScope function on item tax public int getTaxScope This function returns a flag indicating if this send package line item came from an already tendered transaction retrieved from the database public boolean isFromTransaction This function set the from transaction flag indicating if this send package line item came from an already tendered transaction retrieved from the database public void setFromTransaction boolean val This function returns the financial totals of a send package line item public FinancialTotalsIfc getFinancialTotals boolean isNotVoid B 22 Oracle Retail Central Office Operations Guide New Or Changed Classes services If isNotVoid flag is false the financial data will be negated It will add the following information to
204. esign exists During development a similar pattern should be followed in which existing proven solutions are implemented before new solutions Copy and paste Programming classes When code needs to be reused it is sometimes copied and pasted instead of using a better method For example when a whole class is copied to a new class when the new class could have extended the original class Another example is when a method is being overridden and the code from the super class is copied and pasted instead of calling the method in the super class Use object oriented techniques when available instead of copying code General Development Standards 6 7 Architecture and Design Guidelines Table 6 5 Common AntiPatterns Pattern Description Solution Copy and paste Programming A new element such as a Site If you copy an existing element to create a XML class or an Overlay XML tag can new element manually verify each piece of be started by copying and the element to ensure that it is correct for pasting a similar existing element Bugs are created when one or more pieces are not updated for the new element For example a new screen might have the screen name or prompt text for the old screen the new element Project Mismanagement A lack of common Common Understanding understanding between managers Business Analysts Quality Assurance and developers can lead to missed functionality incorrect fun
205. esults are placed It should delegate the task by calling getTaxInformationContainer function on item tax public TaxInformationContainerIfc getTaxInformationContainer This function gets the exclusive add on tax amount for the shipping charges It should delegate the task by calling getltemTaxAmount function on item tax public CurrencyIfc getItemTaxAmount Appendix Value added Tax B 21 New Or Changed Classes services This function sets the exclusive add on tax amount for the shipping charges It should delegate the task by calling setltemTaxAmount function on item tax public void setItemTaxAmount CurrencyIfc value This function gets the inclusive tax amount for the shipping charges It should delegate the task by calling getItemInclusiveTaxAmount function on item tax public CurrencyIfc getItemInclusiveTaxAmount a This function sets the inclusive tax amount for the shipping charges It should delegate the task by calling setItemInclusiveTaxAmount function on item tax public void setItemInclusiveTaxAmount CurrencyIfc value a This function returns the identifier that uniquely identifies this item It should delegate the task by calling getLineltemTaxIdentifier on item tax public int getLineItemTaxIdentifier This function returns default tax rules when none can be found in the database It should delegate the task by calling getDefaultTaxRules on item tax public NewTaxRuleIfc getDefaultTaxRul
206. etInclusiveTaxAmount The seven new fields are a FELD STORE INCLUSIVE TAX TOTAL AMOUNT FIELD STORE REFUND INCLUSIVE TAX TOTAL AMOUNT a FIELD STORE RETURN INCLUSIVE TAX TOTAL AMOUNT FIELD STORE ITEM SALES INCLUSIVE TAX AMOUNT FIELD STORE TRANSACTION SALES INCLUSIVE TAX AMOUNT FIELD STORE SHIPPING CHARGE TAX AMOUNT FELD STORE SHIPPING CHARGE INCLUSIVE TAX AMOUNT XmIToSqlDeliveryTax Class New Class needs to be created to insert values from the POSLog to the ShippingRecord Tax Table JdbcSavelXRetailRetailTransaction Class SaveTransactionDetail method of this class needs to be enhanced to make a call to a new method saveShippingRecordTax dataConnection transaction This method will make a call to the XmlToSqlDeliveryTax to insert records into the SHP RDS SLS RTN TX table 360POSLogLibrary xsd Schema changes must be done to include all the new fields for the various element types defined in the 360POSLogLibrary xsd file Appendix Value added Tax B 25 New Or Changed Classes services Commerce Service Transaction DTO Classes Retail Transaction DTO The existing retail transaction DTO class com _ 360commerce commerceservices transaction RetailTransactionDTO will be modified to have the following additional get set methods for the newly added column to table TR RTL see Retail Transaction Table TR RTL public BigDecimal getInclusiveTaxTotal public void setInclusiveTaxTotal BigDecimal total
207. etShippingToCustomerAllSends The following methods will be added public void addSendPackage SendPackageLineItemIfc sendPackage public Vector getSendPackages It returns a vector of send package line items Item Tax Interface Class An instance of an item tax interface class holds a transaction line item s tax data Two enhancements will be made to the interface class First of all it must be enhanced to hold inclusive item tax amount The following member functions will be added to the item tax interface com extendyourstore domain lineitem ItemTaxlfc and class com extendyourstore domain lineitem ItemTax public CurrencyIfc getItemInclusiveTaxAmount public void setItemInclusiveTaxAmount CurrencyIfc amount The implementation of the following member functions in the item tax class must be enhanced to support the new inclusive item tax amount public ItemTax the constructor public void clearTaxAmounts public void setCloneAttributes ItemTax newClass public String toString public void translateFromElement XMLConverterIfc converter Secondly the following existing member function must be enhanced to create a default tax rule based on an inclusive tax flag InclusiveTaxEnabled in domain properties public NewTaxRuleIfc getDefaultTaxRules Appendix Value added Tax B 17 New Or Changed Classes services If the default inclusive tax flag is true a tax by line item rule is created with its
208. eter group Example 10 29 parameterText en US properties Text Bundle Common GiftCardDaysToExpiration Days To Giftcard Expiration The value of the parameter is defined in config parameter application Napplication xml by the code sample below Each parameters belongs to a group a collection of related parameters Example 10 30 application xml Definition of Parameter PARAMETER name GiftCardDaysToExpiration type INTEGER final N hidden N lt VALIDATOR class IntegerRangeValidator package com extendyourstore foundation manager parameter gt lt PROPERTY propname minimum propvalue 1 gt lt PROPERTY propname maximum propvalue 9999 gt lt VALIDATOR gt lt VALUE value 365 gt lt PARAMETER gt UI Framework 10 17 Text Bundles 10 18 Oracle Retail Point of Service Operations Guide 11 Manager Technician Framework This chapter describes the Manager Technician pair relationship and how it is used to provide business and system services to the application It also describes how to build a Manager and Technician and provides sample implementation and sample code Oracle Retail Platform provides the technology for distributing business and system processes across the enterprise through plug in modules called Managers and Technicians Manager and Technician classes come in pairs A Manager is responsible for communicating with its paired Technician on the same or different tiers The Tech
209. eterText In overlay specifications the parameterText bundle is specified to define the text for particular screens For example the following code from src com extendyourstore pos services admin parametermanager parameteruicfg xml defines text for the PARAM_SELECT_PARAMETER overlay screen On this screen the names of the parameters found in the parameterText properties file are displayed Example 10 27 parameteruicfg xml Overlay Specification Using parameterText lt OVERLAY SCREEN defaultScreenSpecName EYSPOSDefaultSpec resourceBundleFilename parameterText SpecName PARAM SELECT PARAMETER In the utility package the ParameterManager is used to retrieve parameter values The following code from src com extendyourstore pos utility GiftCardUtility java shows how a parameter is retrieved from the ParameterManager The handle to the ParameterManager pm is passed into the method but originally retrieved by the code ParameterManagerlfc pm ParameterManagerlfc bus getManager ParameterManagerlfc TYPE Example 10 28 GiftCardUtility ava Tour Code to Retrieve Parameter public static final String DAYS TO EXPIRATION PARAMETER GiftCardDaysToExpiration daysToExpiration pm getIntegerValue DAYS TO EXPIRATION PARAMETER In the parameterText_ lt locale gt properties file the corresponding text is defined This text is displayed on the Parameter List screen when viewing Security options and choosing the Tender param
210. ettings For more information on PABP see the Oracle Retail Strategic Store Solutions Security Implementation Guide The guide is available on Metalink Metalink Note 567438 1 Parameters are used to control flow set minimums and maximums for data and allow flexibility without recompiling code A user can modify parameter values from the UI without changing code Parameter values can be modified by Point of Service and the changes can be distributed by other Oracle Retail applications For example the maximum cash refund allowed and the credit card types accepted are parameters that can be defined by Point of Service To configure parameters you need to understand the parameter hierarchy define the group that the parameter belongs to and define the parameter and its properties Parameter Hierarchy Parameters are defined in XML files that are organized in a hierarchy Different XML files represent different levels in a retail setting at which parameters may be defined Understanding the parameter hierarchy helps you define parameters at the appropriate level Table 4 1 lists the parameter directories XML filenames and file descriptions Table 4 1 Parameter Directories Files and Descriptions Directory Parameter Related XML File Description application application xml Default parameter information provided by the base product corporate corporate xml Company information Customization 4 1 Parameters Table
211. eturnLineltem class needs to be enhanced to include the above three elements in the addShippingDetails SaleReturnLinelItemlfc srli method a SHP RDS SLS RTN TX ID ATHY TX ELEMENT TAX AUTHORITY IDGP TX ELEMENT TAX GROUP ID 360 TY TX ELEMENT TAX TYPE 360 FLG TX HDY ELEMENT TAX HOLIDAY 360 TX MOD ELEMENT TAX MODE 360 MO IXBL RTN SLS ELEMENT TAXABLE AMOUNT Appendix Value added Tax B 11 Seed Data Population FL TX INC ATTRIBUTE TAX INCLUDED IN TAXABLE AMOUNT FLAG MO TX RIN SLS ELEMENT AMOUNT MO TX RIN SLS TOT ELEMENT TOTAL TAX 360 MO TX INC RTN SLS TOT ELEMENT TOTAL INCLUSIVE TAX 360 NM RU TX ELEMENT TAX RULE ID 360 PE TX ELEMENT TAX PERCENTAGE RATE a lill Workstation Store History Fields MO RFD INC TX TOT ELEMENT AMOUNT INCLUSIVE TAX ITEM SALES 360 MO RIN INC TX TOT ELEMENT AMOUNT INCLUSIVE TAX ITEM RETURNS 360 CP SLS ITM INC TX ELEMENT AMOUNT INCLUSIVE TAX TRANSACTION SALES 360 CP TRN SLS INC TX ELEMENT AMOUNT INCLUSIVE TAX TRANSACTION SALES 360 MO SHP CHR TX TOT ELEMENT AMOUNT TAX SHIPPING CHARGES 360 MO SHP CHR INC TX TOT ELEMENT AMOUNT INCLUSIVE TAX SHIPPING CHARGES 360 Tax History Fields FL_TX_INC ELEMENT_INCLUSIVE_TAX_FLAG_360 Seed Data Population We will reuse the existing stores 04241 and 01291 The following seed data will be populated to facilitate VAT dev testing
212. ework see eee eee nennen 2 4 ULBEratmework mee A AAA ti 2 5 Business Object Framework sese eene nennen nnne nennen 2 7 Data Persistence Framework ccccccssccssecessecsscecsecescessecescecsecesaecessecasecaaceesesascecseceeeesseeeseees 2 8 MVC Pattetr zu eo a OE ea eon Peds 2 9 Factory etica e 2 10 Command Patterns egestate od uires tee tette tee e eros 2 11 Singleton Pattern oooononcncnoooonnnonnnnnnenennecacnnnnnnnnrnnnrnncananancnnnnnronnnnnnnnnnnn nr A elspa Taak aras SEE Ee TERSA Sen 2 12 Workflow Example Tender with Credit Card Option sss 9 18 Manager Technician and Valet sess eee eene 11 1 CodeListMap Class Diagrams sse nennen nennen nnne nennen 12 6 Currency Class Diagrtatm s acia e ect eden ie ee ee o ee e petes 12 7 Data Managers and Data Technicians cocococononincnnonenenennrnnnnecnnnnnnnnarorannnnnnn rn rnrnrnoraranancnrnrans 13 2 Updating the Database Simplified Runtime Vie We 13 4 Tender Tour to Point of Service Tour Workflow essen nenne 13 10 Diagram Saving a Transaction sse eee nee enne 13 11 Audit Log in Point of Service ee entree irent te te ete eti ici D 2 High Level Model for Oracle Retail Point of Service to an Inventory Management Application Integration E 2 XV List of Tables xvi Logd dg AA OS es a ac VN10B4A0N 0N0 1N 0040N mnN
213. extend and use them The Retail Domain is the set of classes that represent the business objects used by Point of Service which are contained in the Commerce Services layer of the architecture Typical domain classes are Customer Transaction and Tender The Retail Domain is a set of business logic components that implement retail oriented business functionality in Point of Service The Retail Domain is the part of the Commerce Services layer of the Oracle Retail architecture that is retail specific The Retail Domain provides a common vocabulary that enables the expression of retail functionality as processes that can be executed by the Oracle Retail Platform engine The Retail Domain is a set of retail oriented objects that have a set of attributes They do not implement work flow or a user interface The Tour scripts executed by Oracle Retail Platform provide the work flow and the UI subsystem provides the user interface The Retail Domain objects simply define the attributes and logic for application data A significant advantage of Retail Domain objects is that they can be easily used as is or can be extended to include attributes and logic that are specific to a retailer s business requirements The Domain objects could be used as a basis for many different types of retail applications The objects serve as containers for the transient data used by the applications Domain objects do not persist themselves but they are persisted via the Ora
214. extendyourstore pos ui POSUIManagerlfc java The following sample from PurchaseOrderNumberEnteredRoad java in the same directory shows how to retrieve data from the PromptAndResponseModel in a previous screen To arrive at this code a purchase order number is entered and the user presses Next This line of code gets the purchase order number from the previous screen Example 10 6 PurchaseOrderNumberEnteredRoad java Retrieving Data From PromptAndResponseModel POSUIManagerIfc ui POSUIManagerIfc bus getManager UIManagerIfc TYPE String poNumber ui getInput DatalnputBean The DataInputBean is a standard bean that displays a form layout containing data input components and labels This bean is implemented by src com vextendyourstoreN posNui beans DataInputBean java and its corresponding model DataInputBeanModel java Field components are commonly defined with the FIELD element when defining a bean with the DataInputBean as shown in the code sample Bean Properties and Text Bundle The DatalnputBean has two properties that can be defined in UI scripts which override the settings in the field specifications Table 10 8 lists DataInputBean property names and values Table 10 8 DatalnputBean Property Names and Values Item Description Example labelTags Sets the property bundle tags for the NameLabel AddressLabel StateLabel component labels labelTexts Sets the text on the component labels Name Address State T
215. eys eerte iter t Peeters teda actas C 9 D 1 Audit Log Configuration Changes in the log4j xml File sse D 4 xxi xxii Preface Oracle Retail Operations Guides contain the requirements and procedures that are necessary for the retailer to configure Point of Service and extend code for a Point of Service implementation Audience The audience for this document is developers who develop code for Oracle Retail Point of Service Knowledge of the following techniques is required Java Programming Language a Object Oriented Design Methodology OOD Extensible Markup Language XML Related Documents For more information see the following documents in the Oracle Retail Point of Service Release 13 0 documentation set a Oracle Retail Point of Service Release Notes a Oracle Retail Point of Service Installation Guide a Oracle Retail Point of Service User Guide a Oracle Retail Strategic Store Solutions Security Implementation Guide Customer Support https metalink oracle com When contacting Customer Support please provide the following Product version and program module name Functional and technical description of the problem include business impact Detailed step by step instructions to re create a Exact error message received a Screen shots of each step you take xxiii Review Patch Documentation For a base release 0 release such as 13 0 Oracle Retail strongly recommends th
216. f Service Operations Guide Spring Configuration Table A 1 Spring Framework Configuration Options Spring bean ID Purpose Provided implementation Configurable Options service Registers the services org springframework schedul service clientSchedulerFactory service ing quartz SchedulerFactoryB TriggerFrequentConsumerser TriggerFrequentCons ean vice umerservice TriggerInfrequentConsumer TriggerInfrequentCon sumer with the Quartz SchedulerFactoryBean service config Configuration for java lang String value DataExportFilePath Data Export File Path This is the relative path Application takes the application running path and appends the path given in this configuration service config Configuration for java lang String value DataExportZipFilePath Data Export Zip File Path This is the relative path Application takes the application running path and appends the path given in this configuration Note The service config DataExportFilePath should not contain DataSetKey names eg EMPLOYEE ITEM CURRENCY ADVANCED _ PRICING TAX service config Configuration for java lang String value DatalmportFilePath Data Import File Path where the dataset files will be downloaded from Oracle Retail Point of Service Server and cached service_config_ Folder configuration java lang String value OfflineSchemaSQLFilePat where the Offline h database schema SOL File service_config_ Folder config
217. file to meet your device requirements Customization 4 3 Devices Interaction of the Point of Service application with devices is managed by the Device Manager and Device Technician Set Up the Device To configure a device to work with Point of Service first consult the user manual for that device for specific setup requirements Set up the device drivers and configuration file so the device is available to applications Test the Device Use the POStest application available internally or at http www javapos com to determine if a device adheres to existing JavaPOS standards POStest is a GUI based utility for exercising Point of Service devices using JavaPOS Currently it supports the following devices POSPrinter MICR MSR Scanner Cash Drawer Line Display Signature Capture and PIN Pad Perform the following steps to use POStest See http www javapos com for more details 1 Configure the classpath for JavaPOS This means that the classpath should include the location of POStest jpos jar jcl jar and the JavaPOS services for the devices 2 To build POStest compile the classes in location of POStest gt upos com jpos POStest 3 Torun POStest enter the following at a command line java com jpos POStest POStest Sometimes the hardware vendor provides test utilities that come with the JavaPOS implementation You should test with these tools as well Create a Session and ActionGroup In Point of Service code dev
218. filename 2 Create modify or override data and methods as necessary to modify the report 3 Modify the tour code that creates the report object to call new for the new report class Domain Package This section addresses customization of files in the domain package The domain package can be found in the OracleRetailStore domain directory in your source control system Extension Guidelines 8 11 Domain Package Retail Domain The Retail Domain provides a retail specific implementation of business objects These objects are easily extended to meet customer s requirements DomainObjectFactory If any Retail Domain Objects RDOs are added or extended the DomainObject Factory must be extended This needs to be done only one time for the application The extended class must include getXinstance methods for all new and extended RDOs where X is the name of the RDO Follow these steps 1 Create a new Java class that extends DomainObjectFactory java It should be named with the customer abbreviation in the filename MBSDomainObjectFactory java and be located in the customer source tree 2 Copy the domain properties file to the domain config directory of the customer source tree Modify the setting for the DomainObjectFactory to refer to the new package and class name created in the previous step DomainObjectFactory com acmebrick domain factory MBSDomainObjectFactory 3 Add getXInstance methods as necessary for new Reta
219. following JDBC class will be enhanced to read the taxable flag and tax group ID from the table and populate the tax rules into domain object instance of interface com extendyourstore domain financial ShippingMethodlfc com extendyourstore domain arts JdbcReadShippingMethod Add update Send Packages To in A Sale Return Transaction To support VAT for shipping charges a new send package line item interface and class will be added The class implements the tax line item interface and therefore provides all the necessary information the internal tax engine needs to calculation tax on shipping charges For details on the send package line item interface class see Send Package Line Item Interface class New methods addSendPackagelnfo and updateSendPackagelnfo are added in sales return transaction interface and class to support adding and updating of send shipping packages See Enhancing Sale Return Transaction Interface class for more details on the functions added The following UI site and road will be updated to call the above new methods to add or update send packages com extendyourstore pos services send displaysendmethod AssignTransactionLevelInfo Site com extendyourstore pos services send displaysendmethod SendMethodSelectedRoad Enhance Internal Tax Engine The internal tax engine will be enhanced to calculate tax for shipping charges See Internal Tax Engine Classes for details Negate VAT For Shipping Charges For A Post Void
220. found in the Database is the only failure condition possible Table D 8 Modify Employee Information Event Components Event Components Notes Event Name Modify Employee Information Event Status Success a Failure Event Originator Class Name and Method Name ClassName methodName System Date System date of the event System Time Time of the event Store ID Store number the event transpired at User ID User ID performing the event Register Number For Point of Service the register number the event transpired at Employee ID Employee ID of the modified employee Appendix Audit Logging D 13 Employee Audit Log Events Modify Temporary Employee Information This is a Back Office and Point of Service event This event is written to the audit log if the Settings For Audit Logging system setting INFO and the Modify Temporary Employee Information system setting INFO Event data collection starts when the operator edits a temporary employees information Event data collection ends when the operator selects Save Ifthe operator selects Save but has not modified any temporary employee information the event name is Modify Employee Information Employee getting modified is not found in the Database is the only failure condition possible Table D 9 Modify Temporary Employee Information Event Components Event Components Notes Event Name Modify Temp
221. from configNconduitNClientConduit xml specify the UI Manager and Technician properties Like the Parameter Manager the UI Manager can only be accessed via a tour bus Example 11 12 ClientConduit xml Code to Configure UI Manager APPLICATION name APPLICATION class TierTechnician package com extendyourstore foundation manager tier startservice classpath com extendyourstore pos services main main xml gt Manager Technician Framework 11 11 Manager Technician Reference PROPERTY propname managerData propvalue name UIManager managerpropname className managerpropvalue com extendyou rstore pos ui POSUIManager configuration of other Managers APPLICATION Example 11 13 ClientConduit xml Code to Configure UI Technician TECHNICIAN name UITechnician class UITechnician package com extendyourstore foundation manager gui export Y gt lt CLASS name UISubsystem package com extendyourstore pos ui class POSJFCUISubsystem gt lt CLASSPROPERTY propname configFilename propvalue classpath com extendyourstore pos config defaults defaultuicfg xml proptype STRING TECHNICIAN The Ul is configured in XML scripts Each tour has its own uicfg file in which screen specifications are defined The screen constants that bind to screen specification names are defined in src com extendyourstore pos ui POSUIManagerlfc java The UI Framework chapter discusses screen configuration
222. g INFO and the Register Close system setting INFO D 10 Oracle Retail Back Office Operations Guide Point of Service Transaction Events Event data collection starts when the operator selects to close a register Event data collection ends when the system assigns a transaction number Event failure can happen only due to technical reasons e g unable to get next sequence number for transaction transaction creation exception EJB call exception or if the financial totals are not found in the database Table D 5 Register Close Event Components Event Components Notes Event Name Register Close Event Status X Success a Failure Event Originator Class Name and Method Name ClassName methodName System Date System date of the event Business Date Business date of the event System Time Time of the event Store ID Store number the event transpired at User ID User ID performing the event Register Number For Point of Service the register number the event transpired at Transaction Number Transaction number assigned by the system to the closed register Point of Service Transaction Events Transaction Tendered with Credit Card This is a Point of Service event This event is written to the audit log if the Settings For Audit Logging system setting INFO and the Transaction Tendered with Credit Card system setting INFO Event data collection starts when
223. g unable to get next sequence number for transaction transaction creation exception EJB call exception or if the financial totals are not found in the database Table D 26 Count Float at Reconcile Event Components Event Components Notes Event Name Count Float at Reconcile Event Status Success a Failure Event Originator Class Name and Method Name ClassName methodName System Date System date of the event Business Date Business date of the event System Time Time of the event Store ID Store number the event transpired at User ID User ID performing the event Register ID Complete Register ID value is recorded Till ID Complete Till ID value is recorded Operator ID Operator ID is user assigned to the till not the logged in user ID Float Amount Entered amount when Count Float at Reconcile Summary Total amount all denominations entered when Count Float at Reconcile Detail Equal to the Float Amount when Count Float at Reconcile No Pennies Entered currency denomination amount Only recorded if a value is entered and Count Float at Reconcile Detail Nickels Entered currency denomination amount Only recorded if a value is entered and Count Float at Reconcile Detail Dimes Entered currency denomination amount Only recorded if a value is entered and Count Float at Reconcile Detail Quarters Entered currency denomination amount Only recorded
224. g of a letter like a return code put it at the end of your arrive or traverse method Sending letters in the middle of the arrive method may cause duplicate letters with unpredictable results or no letters with no results Do not try to store state information in instance variables Pass in state information through arguments Do not put a lot of functionality in arrive traverse methods Decompose them into logical methods that each have one job For methods not called from outside the package protect the methods Managers and Technicians There is a high degree of reuse of Managers and Technicians across the applications For example the DataTransactions and DataActions are reusable By design it is the DataOperations that change with different database implementations The UIManager and UITechnician expect a lot of reuse of beans adapters and specification objects In fact the UISubsystem looks in the UIScript for most of the configuration information that effects changes in screen layout bean interactions and even bean composition Utility methods can be useful for capturing behavior that is used by many Services but does not lend itself to Site or Aisle behavior Put Utility methods in a UtilityManager so they can be easily extended The Point of Service application contains an example of this called the POSUtility Manager Service developers can access these methods through the POSUtilityManagerlfc The UtilityManager
225. ge frequently The external screen configurations can be updated to use new Oracle Retail Platform or application specific components as they are developed Support for The UI Framework provides hooks for implementing internationalization including Internationalization language and locale independence Extensibility and Additional formats for specifications can be defined without affecting the internal UI Flexibility Framework classes Portability is achieved through the use of the Java language and flexible layout managers The UI Framework is the set of classes and interfaces that define the elements and behavior of a window based UI Subsystem It defines a structure for defining user interfaces Table 10 2 briefly describes the components of the framework This chapter discusses these components in more detail UI Framework 10 1 Screens Table 10 2 UI Framework Components Name Description Display A display is the root container for the UI application window Displays are any subclass of java awt Container that implement EYSRootPaneContainer Screen A screen is a user level snapshot of a UI window as it relates to an application The screen is composed of displays template areas assignment beans and listeners Each of these parts can be individually configured and reassembled to compose the screen Template A template divides the display into areas that contain the layout information used to p
226. gister Number The register number the event transpired at D 12 Oracle Retail Back Office Operations Guide Employee Audit Log Events Table D 7 Transaction Tendered with Debit Card Event Components Event Components Notes Till ID The Till ID the event transpired at Debit type The card type presented at time of tender Card number The card number presented at the time of tender Only display last 4 digits of card number For example XXXX XXXX xxxx 1111 Amount The amount the card is being charged at the time of tender Entry method manual auto The method used to enter the card Operator input on keyboard is manual and a scan or swipe on the device or keyboard is auto MAG stripe if swiped An indicator if swiped on the MSR Authorization Status Pending The status of authorization is pending until a response is returned Employee Audit Log Events Modify Employee Information This is a Back Office and Point of Service event This event is written to the audit log if the Settings For Audit Logging system setting INFO and the Modify Employee Information system setting INFO Event data collection starts when the operator edits an employees information Event data collection ends when the operator selects Save If the operator selects Save but has not modified any employee information the event name is Modify Employee Information Employee getting modified is not
227. gure the layers of the application User Interface This layer provides client presentation and device interaction Tour Engine This mechanism handles the workflow in the application The tour engine is the controller for Point of Service Application Services This layer provides application specific business processes A tour is an application service for Point of Service Foundation Services This layer provides stateless application independent technical services Combined with the Retail Domain objects it forms the Commerce Services layer Technicians provide location transparent services in Point of Service Retail Domain Objects Pure retail specific business objects that contain application data Oracle Retail Platform Container This is an execution platform and application environment The Tier Loader is the Oracle Retail Platform container for Point of Service Integration This layer provides an integration framework for building standard and custom interfaces using standard integration protocols Technical Architecture 2 3 Frameworks Frameworks The Oracle Retail architecture uses a combination of technologies that make it flexible and extensible and allow it to communicate with other hardware and software systems The frameworks that drive the application are implemented by the Java programming language distributed objects and XML scripting Described below the User Interface
228. h service config DataExportZipFilePath fileWr iter service FileWriter service ItemProducer DataSet Key com extendyourstore dataSetKey service config definition for Item domain iddi ItemDataSetProd ITM_KEY dataExportFilePath DataSetProducer ucer service config DataExportFilePath dataExpo rtZipFilePath service config DataExportZipFilePath fileWr iter service FileWriter Appendix Intra Store Data Distribution Infrastructure A 3 Spring Configuration Table A 1 Spring Framework Configuration Options Spring bean ID Purpose Provided implementation Configurable Options service DataSet Key com extendyourstore dataSetKey service config CurrencyConsumer definition for domain iddi CurrencyDataSet CUR Currency Consumer KEY dataImportFilePath serv DataSetConsumer ice config DatalmportFilePath importH elper service_ OfflineDBHelper service_TaxConsumer DataSet Key com extendyourstore dataSetKey service_config_ definition for Tax domain iddi TaxDataSetCons TAX_ DataSetConsumer umer KEY dataImportFilePath serv ice config DatalmportFilePath importH elper service_ OfflineDBHelper service _ DataSet Key com extendyourstore dataSetKey service_config_ EmployeeConsumer definition for domain iddi EmployeeDataSe EMP_ Employee tConsumer KEY dataImportFilePath serv DataSetConsumer ice config DatalmportFilePath importH elper service_ OfflineDBHelper service _ DataSet Key com extendyourstore dataSetKey servic
229. he tax information interface class see Tax Information Interface Class in the following member function of the sales return line item class com extendyourstore domain lineitem SaleReturnLineltem protected TaxTotalsIfc instantiateTaxTotalsIfc TaxInformationIfc taxInfo This function must be enhanced to populate the tax information s inclusive tax flag to the financial tax totals Financial Totals Interface Class Add Support for Inclusive Tax The financial totals interface com extendyourstore domain financial FinancialTotalsIfc and class com extendyourstore domain financial FinancialTotals will be enhanced to hold inclusive tax The following member functions will be added to access collect inclusive tax amount for items sold public CurrencyIfc getAmountInclusiveTaxItemSales public void setAmountInclusiveTaxItemSales CurrencyIfc value public void addAmountInclusiveTaxItemSales CurrencyIfc value The following member functions will be added to access collect inclusive tax amount for items returned public CurrencyIfc getAmountInclusiveTaxItemReturns public void setAmountInclusiveTaxItemReturns CurrencyIfc value public void addAmountInclusiveTaxItemReturns CurrencyIfc value The following member functions will be added to access collect inclusive tax amount on sales transactions public CurrencyIfc getAmountInclusiveTaxTransactionSales public void setAmountInclusiveTaxTransactionSales CurrencyIfc value p
230. he application can recognize that the XML it is receiving is malformed but it may still not be able to do anything about it 6 12 Oracle Retail Point of Service Operations Guide Common Frameworks Avoid java lang Exception Avoid throwing the generic Exception choose a more specific but standard exception Avoid Custom Exceptions Custom exceptions are rarely needed The specific type of exception thrown is rarely important don t create a custom exception if there is a problem with the formatting of a string ApplicationFormatttingException instead of reusing IllegalArgumentException The best case for writing a custom exception is if you can provide additional information to the caller which is useful for recovering from the exception or fixing the problem For example the JPOSExceptions can report problems with the physical device An XML exception could have line number information embedded in it allowing the user to easily detect where the problem is Or you could subclass NullPointer with a little debugging magic to tell the user what method of variable is null Catching Exceptions The following sections provide guidelines on catching exceptions Keep the Try Block Short The following example from a networking testing application shows a loop that was expected to require approximately 30 seconds to execute since it calls sleep 3000 ten times Example 6 5 Network Test for int i 0 i lt 10 i try Sy
231. he label tag is used for internationalization purposes so the application can look for the correct text bundle in each language The label tag overrides the value of the labelText field The following code from manageruicfg xml shows a field specification defined in a DataInputBean bean specification Example 10 7 manageruicfg xml Bean Specification Using DatalnputBean BEAN specName RegisterStatusPanelSpec configuratorPackage com extendyourstore pos ui configuratorClassName POSBeanConfigurator beanPackage com extendyourstore pos ui beans beanClassName DataInputBean gt UI Framework 10 7 Beans FIELD fieldName storeID fieldType displayField labelText Store ID labelTag StoreIDLabel paramList storeNumberField lt BEAN gt The strings that should be displayed as labels on the screen are defined in a resource bundle In the resource bundle for the Manager service which for the en_US locale is defined in locales en_US config ui bundles managerText_en_US properties the following line of code defines the StoreIDLabel Example 10 8 managerText en US properties DatalnputBean Text Bundle Example RegisterStatusPanelSpec StoreIDLabel Store ID Fields do not have to be defined in the UI script They can be defined in the beans and models instead In the overlay screen specification two bean properties that can be set are OptionalValidatingFields and RequiredValidatingFields If the fields are optional a
232. hin a OracleRetailStore directory in the source code control system You extend tours mainly by editing proprietary XML scripts developed by Oracle Retail This section describes how to customize tours beginning with replacing the Tour Map and continuing with customization of individual tours or parts of tours Tour Map The product code references tours at transfer stations by logical names so that you can change a single tour without having to update references to that tour in various tour scripts Tour maps tell the system the specific tour files to use for each logical name The tour map also enables overlays of tour classes If a tour script does not need to be customized but some of the Java classes do the tour map can specify individual classes to customize Note that any class files must still use their own unique names such as MBScashSelectedAisle java for a new Aisle used in place of CashSelectedAisle java Typically the base product Tour Map file tourmap xml does not change Instead you create a custom Tour Map for your project and an additional one for each supported locale beyond your default locale Each of these Tour Map files contains only the differences it adds to the base Tour Map Follow these steps to add new Tour Map files 1 Create one custom Tour Map file for each supported country in the pos config directory of the customer source tree Initially these Tour Map files may be empty as you customize
233. his is an interface describing all elements attributes of a POSLog xml file as constants to be used from other POSLog java classes B 24 Oracle Retail Central Office Operations Guide New Or Changed Classes services Retail Transaction Delivery 360 Ifc Interface Class The implementation of the following member functions in the Retail TransactionDelivery360Ifc and class must be enhanced to support the new shipping elements public Element createElementDetails New getter setter methods must be added in the interface class for all the new elements of shipping information Public RetailTransactionTaxIfc getShippingTax Public void setShippingTax RetailTransactionTaxIfc Schema Types Factory Ifc Interface Class A new member function must be added in the SchemaTypesFactorylfc to return an instance of the ShippingTax360 class Retail Transaction Line Item Ifc Interface Class New member functions must be added to RetailTransactionLineltem interface class to support the additional elements for the POSLog xml content For the Import POSLog the following changes need to be made XmlToSqITaxHistoryInsert Class The field flag tax inclusive needs to inserted to the HST TX Table This will retrieved from the POSLog xml file XmIToSqlFinancialTotalsCommon Class The six new till store workstation history fields need to be added Also logic for calculating the cp_inc_tx_tot column in the history table needs to be added i e getN
234. his is currently the only embedded Manager Table 11 1 lists each of the three Manager Technician categories along with examples Table 11 1 Manager Technician Type Examples Manager Technician Type Examples Global Data Journal Log Resource Tax Timer Tier Trace XML Session Device Parameter Session UI Web DomainInterface TenderAuth Embedded Thread Session Managers are started up by the tour bus when a tour is invoked and can only be accessed by the bus in the tour code Global Managers on the other hand can be used at any time and are not specific to any tour Each type of Manager has a specific responsibility Table 11 2 lists the functions of some of the Managers Table 11 2 Manager Names and Descriptions Manager Name Description Data The Data Manager is the system wide resource through which the application can obtain access to persistent resources The Data Manager tracks all data stores for the system and is the mechanism by which application threads obtain logical connections to those resources for persistence operations Device The Device Manager defines the Java interfaces that are available to an application or class for accessing hardware devices like printers and scanners Journal The Journal Manager is the interface that is used to write audit trail information such as start transaction end transaction and other interesting register events 11 2 Oracle Retail Poi
235. hnician configuration script DefaultDataTechnician xml lists all available transactions It also defines an operation class for each data action Each data action is then processed by the appropriate data operation class Store Database 13 3 How Data Transactions Work Figure 13 2 Updating the Database Simplified Runtime View Application Site Code Get a dominant object do 3 Get from Domain Object Factory Get values from input screen Set domain object with values DataTXN dt gt Get from Data Transaction Factory dt saveData do y DataTXN Object XXX saveData Object setDataCommand NA return XXX Conduits DefaultDataTechnician xml All Data TXNs Data TXN All Data Commands saveData NAME JDBCSaveData Data Connection JDBC Pool connections JDBCDriver gt Sybase 13 4 Oracle Retail Point of Service Operations Guide Data Storage JDBCSaveData JDBC Action 1 execute SetObject SQL statements DB2 1 JDBC Driver po on D JDBC Driver 7 Creating or Updating Database Tables Note The DataTechician can be configured to write an error file for each failure that is not a connection error The DataManager can be configured to delete the head of the queue when the failure is not a connection error See the DefaultDataTechnician xml file This file contains the following element at the end of the file lt EXCEPTIONHAN
236. hnician that communicates with the local database and one that communicates with flat files Note Most managers create valets when they need talk to technicians Data Manager works a little differently the Data Transaction class calls the Data Manager and passes itself as a valet The valet finds the data operation class then the valet knows which technician it is associated with and calls its execute method The Data Technician configuration script is an XML file that specifies the properties of the Data Technician The Transaction Queue collects data transactions and guarantees delivery Flat Files are local register files that are used when the register is offline The Local Database is the store database 13 2 Oracle Retail Point of Service Operations Guide How Data Transactions Work How Data Transactions Work This section gives an overview of how Oracle Retail Platform Data Manager and Data Technician components work together to store data in the database Note The notation TXN refers to a data transaction which can be any guaranteed transmission of data not necessarily a sales transaction in the retail sense Oracle Retail Platform is responsible for configuring the system so that the Data Manager Data Technician configuration scripts and conduit scripts work together to provide the mechanism to update store and retrieve data from a database 1 The client conduit script defines the
237. hrough the process of adding more tables to the existing DataSet in IDDI 1 Insert the tables to be associated with the existing DataSet by adding records to CO DT ST TB IDDI using SQL Run the following queries to insert the table association to DataSet Example A 1 Adding Table Assiociation To Employee Dataset insert into CO DT ST TB IDDI ID DT ST ID STR RT NM TB NM FL AI LD SEQ values Employee DataSet ID gt gt Store ID gt gt lt lt Tablel gt gt lt lt Tablel txt gt gt 1 TableName CO DT ST TB IDDI Column Description ID DT ST DataSet ID ID STR RT Store ID NM TB Table Name NM FL File Name of the Flat file to be generated AI LD SEQ Table Order in which the data to be exported and imported eg Get the Employee DataSet ID from CO DT ST IDDI table insert into CO DT ST TB IDDI ID DT ST ID STR RT NM TB NM FL AI LD SEQ values 1 04241 TABLE1 TABLE1 TXT 1 insert into CO DT ST TB IDDI ID DT ST ID STR RT NM TB NM FL AI LD SEQ values 1 04241 TABLE2 TABLE2 TXT 2 2 Add CREATE TABLE scripts in CreateSchema sq l CREATE TABLE offlinedb TABLE1 COLUMN1 TYPE Constraint COLUMN2 lt lt TYPE gt gt lt lt Constraint gt gt CREATE TABLE offlinedb TABLE2 COLUMN1 lt lt TYPE gt gt lt lt Constraint gt gt COLUMN2 lt lt TYPE gt gt lt lt Constraint gt gt Adding a New DataSet Do
238. icating whether focus should stay on the response field The following sample from src com extendyourstore pos services tender LookupStoreCreditSit e java shows creation of a DialogBeanModel prefilling of data in the model and display of the model on which the DialogBeanModel is set Example 10 19 LookupStoreCreditSite java Creating and Displaying DialogBeanModel DialogBeanModel dialogModel new DialogBeanModel DialogModel setResourceID InvalidCashAmount dialogModel setArgs new String cashAmt dialogModel setType DialogScreensIfc ACKNOWLEDGEMENT dialogModel setButtonLetter BUTTON OK Failure ui showScreen POSUIManagerlIfc DIALOG TEMPLATE dialogModel The screen constant DIALOG TEMPLATE is mapped to an overlay screen name found in the UI script for the package The screen constants are defined in src com vextendyourstoreN pos ui POSUIManagerlfc java 10 12 Oracle Retail Point of Service Operations Guide Beans When setting the dialog type refer to the following table For each dialog type the buttons on the dialog are specified In most cases the letter sent by the button has the same name as the button except for the two types noted Table 10 13 lists the available dialog types as defined by constants in src com extendyourstore pos ui DialogScreenslfc java Table 10 13 Dialog Types Dialog Type Button s Details ACKNOWLEDGEMENT Enter Button sends OK letter CONFI
239. ices require a Session and an ActionGroup If you need to interact with a new JavaPOS device you must create a new Session and ActionGroup Sessions capture input for the application In UI scripts device connections are defined that allow the application code to receive input from a device by connecting the Session with the screen specification The Session listens to JavaPOS controls on the device ActionGroups provide the commands that can be used to control the device ActionGroups are instantiated by Tour code When a method on an ActionGroup is called in Tour code the DeviceTechnician talks to JavaPOS controls on the device To create or modify a Session and ActionGroup perform the following steps 1 Configure the Session and ActionGroup in config pos posdevices xml To do this enter the name of the Session and ActionGroup in posdevices xml You must specify the name of the object its class and its package In addition you can set some attributes available in the corresponding class in posdevices xml This file creates a hash table of ActionGroups and Sessions which are part of the DeviceTechnician Below is a definition of an ActionGroup and Session from posdevices xml Example 4 4 ActionGroup Configuration ACTIONGROUP name LineDisplayActionGroupIfc class LineDisplayActionGroup package com extendyourstore pos device gt 4 4 Oracle Retail Point of Service Operations Guide Devices Example 4 5 Session Configu
240. il Domain Objects Retail Domain Object RDO Follow these steps to create or extend an RDO 1 Complete one of the following steps a To create a new RDO create a Java class in the customer source tree in the appropriate subdirectory of domain src com mbs domain Extend an appropriate superclass from the product code At a minimum the new class must extend EYSDomainlfc java To modify an existing RDO create a Java class in the customer source tree that extends an RDO in the product code Include the customer abbreviation in the filename for example you might name your class file MBSCustomer java 2 Add data attributes and methods required by the customer specific functionality 3 Create setCloneAttributes equals and toString methods to address the new data attributes and then reference the corresponding superclass method 4 Complete one of the following steps a For a new RDO add a new getXInstance method to MBSDomainObjectFactory java for the new RDO Foranextended RDO override the existing getXInstance method in MBSDomainObjectFactory java to return an object of the new class type 5 Access the new RDO data and methods from tours located in the customer source tree If product tours need to access the new RDO data and methods the tours must be modified 6 Ifthe RDO data is represented on a screen modify the UI script bean and bean model classes to reflect the change 7 Ifthe RDO is saved t
241. ill Event data collection ends when the system assigns a transaction number Event failure can happen only due to technical reasons e g unable to get next sequence number for transaction transaction creation exception EJB call exception or if the financial totals are not found in the database Table D 24 Till Resume Event Component Event Components Notes Event Name Till Resume Event Status Success Failure Event Originator Class Name and Method Name ClassName methodName System Date System date of the event D 24 Oracle Retail Back Office Operations Guide Till Audit Log Events Table D 24 Till Resume Event Component Event Components Notes Business Date Business date of the event System Time Time of the event Store ID Store number the event transpired at User ID User ID performing the event Register Number The register number the event transpired at Till ID The Till ID the event transpired at Operator ID Operator ID is user assigned to the till not the logged in user ID Till Close This is a Point of Service event This event is written to the audit log if the Settings For Audit Logging system setting INFO and the Till Close system setting INFO Event data collection starts when the operator selects to close a till Event data collection ends when the system assigns a transaction number Event failure can happen only due to
242. imal column is added to store the inclusive tax amount at the line item level MO TAX INC LN ITM RTN DECIMAL 13 2 DEFAULT 0 SaleReturnLineItemInclusiveTaxAmount Sales Return Tax Line Item Table TR LTM SLS RTN TX Each row of this table stores the tax information at the tax group rule level of a line item Two enhancements will be made to this table First of all a Boolean inclusive tax flag will be added to indicate if the stored tax mount is inclusive or exclusive of the item price Second a decimal column will be added to store the inclusive tax amount at the line item level FL TX INC CHAR 1 DEFAULT 0 InclusiveTaxFlag MO TX INC RTN SLS TOT DECIMAL 16 5 DEFAULT 0 NOT NULL InclusiveTaxAmountTotal Order Item Table OR_LTM In addition to the exclusive add on tax this table must be enhanced to store inclusive tax A decimal column is added to store the inclusive tax amount at the order item level MO TAX INC LN ITM RTN DECIMAL 13 2 DEFAULT 0 OrderLineItemInclusiveTaxAmount Point of Service Department History Table LE HST PS DPT In addition to the exclusive add on tax this table must be enhanced to store inclusive tax Three decimal columns are added to store the inclusive net tax sales tax and returns tax at Point of Service department level CP INC TX TOT DECIMAL 13 2 DEFAULT 0 CP SLS ITM INC TX DECIMAL 13 2 DEFAULT 0 CP RTN INC TX TOT DECIMAL 13 2 DEFAULT 0 Till History Table LE HST TL
243. ime by manipulating Log4J configurations For instance you can use code guards to simply switch graphics contexts in your custom swing component Example 6 3 Switching Graphics Contexts via a Logging Level Test protected void paintComponent Graphics g if log isDebugEnabled g new DebugGraphics g this g drawString foo 0 0 When to Log There are three main cases for logging Exceptions Should be logged at an error or fatal level Heartbeat Life cycle For monitoring the application helps to make unseen events clear Use the info level for these events Debug Code is usually littered with these when you are first trying to get a class to run If you use System out you have to go back later and remove them to keep With Log4J you can simply raise the log level Furthermore if problems pop up in the field you can lower the logging level and access them Writing Log Messages When Log4 is being used any log message might be seen by a user so the messages should be written with users in mind Cute cryptic or rude messages are inappropriate The following sections provide additional guidelines for specific types of log messages Exception Messages A log message should have enough information to give the user a good shot at understanding and fixing the problem Poor logging messages say something opaque like load failed Take this piece of code try File file new File fileNa
244. ime of tender Entry method manual auto The method used to enter the card Operator input on keyboard is manual and a scan or swipe on the device or keyboard is auto MAG stripe if swiped An indicator if swiped on the MSR Authorization Status Pending The status of authorization is pending until a response is returned Transaction Tendered with Debit Card This is a Point of Service event This event is written to the audit log if the Settings For Audit Logging system setting INFO and the Transaction Tendered with Debit Card system setting INFO Event data collection starts when the operator selects Credit Debit from the Tender Options menu BIN File Lookup parameter is set to Yes The operator has chosen Debit from the Tender Options menu BIN File Lookup parameter is set to No a Event data collection ends when a debit card tender has been added to the transaction with the authorization status pending a Failure Condition is logged only in case of technical failures such as Database is down Table D 7 Transaction Tendered with Debit Card Event Components Event Components Notes Event Name Sale Transaction Tendered with Debit Card Event Status SUCCESS a FAILURE Event Originator Class Name and Method Name ClassName methodName System Date System date of the event System Time Time of the event Store ID Store number the event transpired at User ID User ID performing the event Re
245. in the tour script via the backupshuttle attribute of the station element Example 9 26 Sample Backupshuttle Definition STATION servicename foo xml launchshuttle MyLaunchShuttle backupshuttle MyBackupShuttle V Tender Tour Reference The files in the Tender package can be found in src com extendyourstore pos services tender Table 9 7 describes resources in the Tender package that are common to all tours 9 16 Oracle Retail Point of Service Operations Guide Tender Tour Reference Table 9 7 Tender Package Components Resource Filename Description Tour script tender xml This file defines the components sites letters roads etc of the Tender tour and the map of the Tender tour Tour screens tenderuicfg xml This configuration file contains bean specifications and overlay screen specifications for the Tender tour Starting site GetTenderSite java Tender types are displayed from this site If the selected tender requires input it is entered via another site which then returns control to this site When the balance due is paid control is returned to the calling service Cargo TenderCargo java This class represents the cargo for the Tender tour Stations Names stations do not have classes AuthorizationStation PINPadStation AddCustomer AddBusinessCustomer FindCustomer SecurityOverrideStation LinkCustomerStation These stations provide access
246. include the new jar in the classpath ahead of pos jar Configuring Logging Point of Service logging uses the Log4J tool Configure Log4J by editing OracleRetailStore lt Client or Server gt pos config log4j xml See the Apache documentation for Log4J at http 10ogging apache org 10g4j for more information a how to can be found at http wiki apache org logging log4j Log4jXmlFormat Backend System Administration and Configuration 1 17 Configuring Logging 1 18 Oracle Retail Point of Service Operations Guide 2 Technical Architecture This chapter contains information about the Oracle Retail Point of Service architecture It begins with a general overview of the Oracle Retail architecture Then it describes the layers of the Point of Service architecture its frameworks and design patterns Retailers have an increasing demand for enterprise information and customer service capabilities at a variety of points of service including the Internet kiosks and handheld devices The retail environment requires that new and existing applications can be changed quickly in order to support rapidly changing business requirements Oracle Retail Platform and Commerce Services enable application developers to quickly build modifiable scalable and flexible applications to collect and deliver enterprise information to all points of service The following image shows a high level view of the Oracle Retail architecture and components
247. inclusive tax flag set to true and is associated with an inclusive tax rate calculator see Inclusive Tax Rate Calculator for details on the inclusive tax rate calculator Otherwise a tax by line item rule is create with its inclusive tax flag set to false and is associated with an exclusive tax rate calculator The following new domain factory api will be used to create the correct tax rate calculator public TaxRateCalculatorIfc getTaxRateCalculatorInstance boolean inclusiveTax For details on this API see Domain Object Factory Service Item Price Interface Class An instance of an item price interface class holds a transaction line item s price data including tax data It contains an instance of the item tax interface It must be enhanced to get set inclusive item tax amount The following member functions will be added the item price interface com extendyourstore domain lineitem ItemPricelfc and class com extendyourstore domain lineitem ItemPrice The implementation of these functions must be delegated to the item tax object contained public CurrencyIfc getItemInclusiveTaxAmount public void setItemInclusiveTaxAmount CurrencyIfc amount This must call the recalculateItemTotal to recalculate the item totals The implementation of the following member function in the item price class must be enhanced to support the new inclusive item tax amount public void recalculateltemTotal Tax Line Item Information Inte
248. ines letters The definition is added to the SERVICECODE XML element Example 9 10 tender xml Definition of Letter lt LETTER name Credit gt 9 6 Oracle Retail Point of Service Operations Guide Tour Components Roads Roads provide a way for the bus to move between sites and stations Each road has a name destination and letter that activates the road A road may have a laneaction class depending on whether the road has behavior only roads that have behavior require a class Roads are defined within site definitions because they handle letters received at the site Following is tender xml code that shows the definition of a road The definition is added to the SERVICECODE XML element After the first code sample is another sample that maps the road to a site and letter which is contained in the MAP section of the tour script Example 9 11 tender xml Definition of Road Class LANEACTION class ValidCreditInfoEnteredRoad gt tender xml Mapping of Road to Site SITE name GetCreditInfo siteaction GetCreditInfoSite gt ROAD name ValidCreditInfoEntered letter Valid laneaction ValidCreditInfoEnteredRoad destination GetTender tape ADVANCE record OFF index 0FF gt lt ROAD gt other lanes defined lt SITE gt With the concept of Tourmap a road s laneaction can be overridden with another class This allows you to override the class name for a customer implementation yet still keep the sam
249. ing source code 3 1 F frameworks 2 4 business object 2 6 data persistence 2 7 manager technician 2 4 tour 2 9 user interface 2 5 G general development standards 6 1 basics 6 1 avoiding common Java bugs 6 2 formatting 6 2 Java dos and don ts 6 1 Javadoc 6 3 naming conventions 6 3 SOL guidelines 6 4 DB2 6 5 Oracle 6 6 unit testing 6 6 H help files 4 6 modifying help files 4 6 how data transactions work 13 3 integration considerations A 7 integration overview Oracle Retail Point of Service to Oracle Retail Store Inventory Management E 1 intra store data distribution infrastructure A 1 L log entry format 7 7 additionallogging info 7 8 example log entry 7 9 fixed length header 7 7 log entry description 7 7 manager technician framework 11 1 new manager technician 11 3 manager class 11 3 manager technician reference 11 10 journal manager technician 11 13 parameter manager technician 11 10 Ul manager technician 11 11 manifest file structure A 8 example A 9 N new or changed classes services B 14 adding tax inclusive flag to tax group rule B 14 commerce service transaction DTO classes B 26 enhancing domain tax interfaces classes B 16 enhancing financial totals interfaces classes B 18 enhancing POSLog interface class B 24 enhancing sale return transaction interface class B 23 enhancing transaction amp line item tax interfaces classes B 17 in
250. ingBuffer buf new StringBuffer buf append Could not find object testObj in list n buf append List contains for int i 0 i lt list size i if x 0 buf append j buf append list get i fail buf toString Heartbeat or Life Cycle Messages The log message here should succinctly display what portion of the life cycle is occurring login request loading etc and what apparatus is doing it is it a particular EJB are there multiple servers running etc These message should be fairly terse since you expect them to be running all the time General Development Standards 6 11 Common Frameworks Debug Messages Debug statements are going to be your first insight into a problem with the running code so having enough of the right kind is important These statements are usually either of an intra method life cycle variety log debug Loading file File file new File fileName log debug loaded Parsing Document doc builder parse file log debug Creating objects for q unt das or of the variable inspection variety log debug File name is fileName log debug root is null root null log debug object is at index list indexOf obj Exception Handling The key guidelines for exception handling are Handle the exceptions that you can File Not Found etc Fail fast if you can t handle an exception Log every except
251. ion Set Data Operation Name protected static final String OPERATION NAME SaveTenderLineItems 4 The DefaultDataTechnician uses the data command to list several data operation names The data operation name SaveTenderLineltems points to the name of the JDBC class which is JdbcSaveTenderLineltems Store Database 13 13 Example of Saving Data Storing Tender Information Example 13 12 DefaultDataTechnician xml Define Data Operation Class DATATECHNICIAN package com extendyourstore domain arts gt TRANSACTION name TransactionWriteDataTransaction command jdbccommand gt COMMAND name jdbccommand class DataCommand package com extendyourstore foundation manager data COMMENT This command contains all operations supported on a JDBC database connection lt COMMENT gt POOLREF pool jdbcpool OPERATION class JdbcSaveTenderLineItems package com extendyourstore domain arts name SaveTenderLineItems COMMENT This operation saves all tender line items associated with the transaction lt COMMENT gt lt OPERATION gt lt DATATECHNICIAN gt 5 The JdbcSaveTenderLineltems class is used to write the credit card data to the database table See the next section Modify Data Operation Use this procedure to modify the data operation class to access the database 1 Addasave method to the data operation class The com extendyourstore domain arts JdbcSaveTenderLineItems java
252. ion Tendered with Credit Card esses eene nnne D 20 Transaction Tendered with Debit Card essent nnne D 21 Till Audit Log Events eee ee een eet teet Pe e e e ene teen eee D 22 PENES IM P O NE D 22 Till Suspend riter trn eee e eee eene ee e e E ee RE dt eee gd D 24 TIRES Ute IT D 24 Till Close tre oS e ee ea ete Ere HR eR a RH dg D 25 Count Float at Reconcile t e e vete HER En Eine D 25 Till Reconcile 5 3 nn ax ec rn n Eo deo E RE OR dea RH RE s Ren D 27 Parameter Log Events ore ORE SIR DR e anth ded d eri de it Ro D 33 Modify Application Parameter sssseessseeeeee eee eee enne ener enne nnen D 33 E Appendix Oracle Retail Point of Service to an Inventory Management Application F Appendix Automated E Mail Messages Index xiv List of Figures Lg I l 00ND OF WBNHODWAKRWN reper ee ee ae aes ae ae Set Access Screen ins nonien llt neis 1 2 Add Role Screen Ai Te te dere etes Ed desee tree OE Te teuer eoe eres eese AE 1 3 Set Access Screens i es etait niei mt tutis 1 4 Reason Code Group Screen sss eene nennen nennen rana nino 1 9 R ason ode LEist Screen eere err ata ERN 1 10 Edit Reason Code Screen cccccsccssscessscessecsssecsecessecssecessecseeeesscesscessecessecsaeecsaeeeasessecesseceaeecsees 1 11 Oracle Retail Architect ire aii et tps i 2 1 Point of Service Architecture Layers niisiis ipihit eene nnne 2 3 Manager Technician Fram
253. ion is pluggable and configurable Oracle Retail Point of Service client should be online when it is run the first time to download the data from Oracle Retail Point of Service server If there is no offline data available Oracle Retail Point of Service client doesn t function in offline mode The client side database schema must be in synch with server side database schema Table A 2 has been used in Derby Database at the Oracle Retail Point of Service client The database schema for the following tables must mach the Oracle Retail Point of Service server database schema Table A 2 Point of Service Dataset Table Dataset Name Dataset Tables Items AS ITM ID IDN PS AS ITM I8 PA MF AS POG AS ITM ASCTN POG AS ITM STK AS ITM RTL STR CO UOM ID DPT PS CO ASC RLTD ITM CO CLN ITM Employees PA EM CO GP WRK CO ACS GP RS PA RS Appendix Intra Store Data Distribution Infrastructure A 7 DataSet Compressed File Structure Table A 2 Point of Service Dataset Table ID Dataset Name Dataset Tables 3 Advanced Pricing RU_PRDV CO_PRDV_ITM RU_PRDVC_MXMH TR_ITM_MXMH_PRDV CO_EL_PRDV_ITM CO EL PRDV ITM SC CO EL PRDV DPT CO EL CTAF PRDV CO EL MRST PRDV CO EL TM PRDV 4 Tax RU TX GP RU TX RT PA ATHY TX PA TY TX GEO TX JUR CD GEO CO GP TX ITM PA STR RTL CO TX JUR ATHY LNK 5 Currency CO CNY CO RT EXC CO CNY DNM DataSet Compressed File Structure The dataset compressed file contains all the
254. ion with Log4J even when first writing the class unless you are rethrowing the exception Include enough information in the log message to give the user or developer a fighting chance at knowing what went wrong Nestthe original exception if you rethrow one Types of Exceptions The EJB specification divides exceptions into the following categories JVM Exceptions You cannot recover from these when one is thrown it s because the JVM has entered a kernel panic state that the application cannot be expected to recover from A common example is an Out of Memory error System Exceptions Similar to JVM exceptions these are generally though not always non recoverable exceptions In the commons logging parlance these are unexpected exceptions The canonical example here is NullPointerException The idea is that if a value is null often you don t know what you should do If you can simply report back to your calling method that you got a null value do that If you cannot gracefully recover say from an IndexOutOfBoundsException treat as a system exception and fail fast Application Exceptions These are the expected exceptions usually defined by specific application domains It is useful to think of these in terms of recoverability A FileNotFoundException is sometimes easy to rectify by simply asking the user for another file name But something that s application specific like JOOMException may still not be recoverable T
255. ior contains flow dependent behavior then it is best implemented as a Site and the Site action can be reused within a Service or across Services Large bodies of reusable behavior can be implemented as Managers and Technicians This pattern is especially useful if the user might offload the processing to a separate CPU Point of Service Development Standards 7 1 Tour Framework General Tour Guidelines Element Code that uses bus resources must reside in a Site action Lane action Signal or Shuttle Never mail a letter from a Road This causes unpredictable results Never define local data in a Site Aisle Road or Signal Local data is not guaranteed when processing across multiple tiers Sites and Lanes must be stateless This is the purpose of Cargo Traffic Signals should not modify Cargo Signals should only be used to evaluate a condition as true or false Anything else is a side effect reducing the maintainability of the system Never implement just one Signal Always implement Signals when there is more than one Road that responds to the same letter or when there is an Aisle and a Road that respond to the same letter See Signals on page 11 5 Send letters at the end of methods If the choice of which letter to send depends on conditions which occur during the method store the method name and mail it at the end of the method Do not mail letters from depart and undo in Sites backup and traverse in Roads
256. ipment and recipe are not included while tables for tender types and reporting have been added The ARTSDatabaselfc java file defines the mapping of ARTS names to constants in application code Understanding Data Managers and Technicians The following diagram shows how Data Managers and Data Technicians handle communication with the database in the Point of Service application Store Database 13 1 Understanding Data Managers and Technicians Figure 13 1 Data Managers and Data Technicians Data Technician Configuration Script E Data Technician A Data Technician Local Database Data Manager Configuration Script Data Manager Application Transaction Queue The Point of Service system uses the following components to write to the database The Data Manager s primary responsibilities are to provide an API to the application code and to contact the Data Technician and pass it data store requests Typically there are multiple Data Manager instances one per register The Data Manager Configuration Script is an XML file that specifies the properties of the Data Manager The Data Technician handles the database connection Configure the Data Technician with an XML script The Data Transaction class is the valet from the manager to the technician The Data Transaction class has the add find and update methods to the database Typically there is one Data Tec
257. is section describes four patterns used in the architecture of Point of Service MVC Factory Command and Singleton The MVC Pattern divides the functionality of an application into three layers model view and controller Different functionality is separated to manage the design of the application A model represents business objects and the rules of how they are accessed and updated The model informs views when data changes and contains methods for the views to determine its current state A view displays the contents of a model to the user It is responsible for how the data is presented Views also forward user actions to the controller A controller directs the actions within the application The controller is responsible for interpreting user input and triggering the appropriate model actions The following diagram illustrates the MVC Pattern Figure 2 7 MVC Pattern Technical Architecture 2 9 Design Patterns Factory Pattern Another design pattern used in Point of Service code is the Factory pattern The intent of the Factory pattern is to provide an interface for creating families of related or dependent objects without specifying their concrete classes The application requests an object from the factory and the factory keeps track of which object is used Since the application does not know which concrete classes are used those classes can be changed at the factory level without impacting the rest of the application The foll
258. kage com extendyourstore pos services tender tourcam 0N gt 9 12 Oracle Retail Point of Service Operations Guide Tour Cam The rest of the TourCam attributes are set on the road element in the MAP section of the tour script The following code from tender xml shows a road definition with these attributes set Example 9 24 tender xml Definition of Road With TourCam Attributes SITE name GetGiftCertificateInfo siteaction GetGiftCertificateInfoSite gt ROAD name GiftCertificateInfoEntered letter Next laneaction GiftCertificateInfoEnteredRoad destination GetTender tape ADVANCE record OFF index 0FF gt definitions of lanes SITE Table 9 4 lists TourCam attributes and their values Table 9 4 Road Tag Element Attributes Tag Description Values Default tape Indicates what tour ADVANCE Adds a ADVANCE action to take when frame representing this traversing the road road to the tourcam tape DISCARD Discards the entire tour cam tape REWIND Back up to the site specified by the destination while calling the backup method on all roads SPLICE Back up to the site specified by the destination without calling the backup method on any roads record Indicates that a snapshot ON Record a ON of the cargo should be snapshot recorded and saved on OFF Do not record a the tourcam tape snapshot Tour Framework 9 13 Tour Cam Table 9 4 Road Tag Eleme
259. lCount The existing readTransactionShippings will be enhanced to read all the shipping information from the db and create send packages for the transaction It will invoke the above new function to read tax information of a send package It must also set each send package s from transaction flag to true The following new functions will be added to class com extendyourstore domain arts JdbcSaveRetailTransaction to save a send package to the shipping record table SHP RDS SLS RTN and its tax table SHP RDS SLS RTN TX protected void saveTransactionShippingInformation JdbcDataConnection dataConnection TenderableTransactionIfc transaction SendPackageLineItemIfc sendPackage protected void saveTransactionShippingTaxInformation JdbcDataConnection dataConnection TenderableTransactionIfc transaction SendPackageLineItemIfc sendPackage TaxInformationlfc taxInformation The existing function saveTransactionShippings will be enhanced to save all shipping information in the transaction s send packages into db It will invoke the above new functions to do so Tracking VAT Financial Totals For schema enhancement of Point of Service department history table see Point of Service Department History Table LE HST PS DPT For schema enhancement of till history table see Till History Table LE HST TL For schema enhancement of register history table see Register History Table LE_ HST WS For schema enhancement of store histor
260. lace the information on the display Templates can be interchanged to define screen layouts within an application Each screen specifies the template that is associated with the screen Area An area is a layout placeholder for UI components that operate together to perform a function Each area contains a layout constraint that dictates how the area is placed on the display Bean A bean is a user interface component or group of components that operate together to provide some useful functionality For example a bean could be an input form or group of navigation buttons Connection A connection captures relationships between beans or between devices and beans When a bean or device generates an event another bean responds with a change in behavior or visual display Listener A listener provides a mechanism for reacting to user interface events Screens Generally for each package in an application one UI script in the form of an XML file is created to define the screens for the given package However because many screens share basic components certain components are defined in a default UI script These basic screen components including displays templates and default screens are defined in src com extendyourstore pos config defaults defaultuicfg xml Overlay screens are then defined in the UI script for the given package This section describes the components that are used to build Point of Service scree
261. ler testable units Although unit testing may be difficult for tour scripts apply it for Java components within Point of Service code Ifyou add a new item to the codebase make sure your unit tests prove that the new item can be extended a n unit tests directly create the data preconditions necessary for the test in a setup method and remove them afterwards in a teardown method JUnit expects to use these standard methods in running tests Architecture and Design Guidelines This section provides guidelines for making design decisions which are intended to promote a robust architecture AntiPatterns An AntiPattern is a common solution to a problem which results in negative consequences The name contrasts with the concept of a pattern a successful solution to a common problem Table 6 5 identifies AntiPatterns which introduce bugs and reduce the quality of code 6 6 Oracle Retail Point of Service Operations Guide Architecture and Design Guidelines Table 6 5 Common AntiPatterns Pattern Description Solution Reinvent the Wheel Sometimes code is developed in an unnecessarily unique way that leads to errors prolonged debugging time and more difficult maintenance The analysis process for new features provides awareness of existing solutions for similar functionality so that you can determine the best solution There must be a compelling reason to choose a new design when a proven d
262. llowing code sample shows the header for the TenderPurchaseOrder Domain object from src com extendyourstore domain tender NTenderPurchaseOrder java Example 12 2 TenderPurchaseOrder java Class Header public class TenderPurchaseOrder extends AbstractTenderLineItem implements TenderPurchaseOrderIfc public static final String revisionNumber SRevision T0 Su begin TenderPurchaseOrder j 12 2 Oracle Retail Point of Service Operations Guide Domain Object in Tour Code In the implementation of the class make sure to do the following Define attributes for the class Check the superclass to see if an attribute has already been defined For example the AbstractTenderLineltem class defines the amountTender attribute so amountTender should not be redefined in a new Tender Domain object If the new domain object has numerous constants you might consider defining ObjectNameConstantslfc java Define get and set methods for the attributes as necessary Implement methods required by EYSDomainlfc equals clone toString and getRevisionNumber Reference the superclass as appropriate toString should indicate the class name and revision number 3 Toreturn a new instance of the Domain object add a method to src com extendyourstore domain factory DomainObjectFactorylfc java called getObjectNamelnstance Domain objects should always be instantiated by the factory The following code sample shows the
263. lows non zero decimal name maxLength numbers only numericField Allows integers only no special name maxLength minLength characters or letters nonZeroNumericField Allows non zero integers only name maxLength minLength textField Allows letters numbers special name characters and punctuation validatingTextField Line of text that can be validated name by length requirements Connections Connections configure the handling of an event in the UI Framework They are used to define inter bean dependencies and behavior and to tie the bean event responses back to the business logic When one bean generates an event another bean can be notified of the event Connections have a source bean a Listener Type for the target and a target bean Connections attach a source bean to a target bean which receives event notifications from the source bean The Listener Type specifies which type of events can be received The XML in the following sections are found in com extendyourstore pos services tender Ntenderuicfg xml Other listeners used in Point of Service include ConfirmCancelAction HelpAction and CloseDialogAction 10 14 Oracle Retail Point of Service Operations Guide Connections ClearActionListener ClearActionListener is an interface that extends ActionListener in Swing to make it unique for its use in Point of Service The following code shows how this listener is used in an overlay specification Adding the ClearActionListener
264. m 360commerce commerceservices audit event TILL RECONCILE priority value INFO appender ref ref AUDIT gt category category name com 360commerce commerceservices audit event TILL OPEN priority value INFO appender ref ref AUDIT gt category category name com 360commerce commerceservices audit event TILL CLOSE priority value INFO appender ref ref AUDIT gt category category name com 360commerce commerceservices audit event TILL SUSPEND priority value INFO appender ref ref AUDIT gt category D 4 Oracle Retail Back Office Operations Guide Configuring the Audit Log category name com 360commerce commerceservices priority value INFO appender ref ref AUDIT gt category category name com 360commerce commerceservices RECONCILE priority value INFO appender ref ref AUDIT gt category category name com 360commerce commerceservices priority value INFO appender ref ref AUDIT gt category category name com 360commerce commerceservices INFORMATION gt priority value INFO appender ref ref AUDIT gt category category name com 360commerce commerceservices EMPLOYEE gt priority value INFO gt appender ref ref AUDIT gt category category name com 360commerce commerceservices TEMPORARY EMPLOYEE
265. mber propvalue EURGiftCert PERTY propname member propvalue EURStoreCredit PERTY propname member propvalue JPYGiftCert PERTY propname member propvalue JPYStoreCredit LIDATOR gt UE value Cash gt UE value Check gt Appendix Changing and Configuring a New Base Currency C 7 Configuring a New Base Currency lt VALUE val lt VALUE val lt VALUE val lt VALUE val lt VALUE val lt VALUE val lt VALUE val lt VALUE val lt VALUE val lt VALUE val lt VALUE val lt VALUE val lt VALUE val lt VALUE val lt VALUE val lt VALUE val lt VALUE val lt VALUE val lt VALUE val lt VALUE val lt VALUE val lue ECheck gt ue Credit gt ue Debit gt ue TravelCheck gt ue GiftCert gt ue Coupon gt ue GiftCard ue StoreCredit gt ue MallCert gt ue PurchaseOrder ue MoneyOrder lue USDCash gt ue USDTravelCheck gt ue USDCheck gt ue USDGiftCert gt ue USDStoreCredit gt ue CADCash gt ue CADTravelCheck ue CADCheck lue CADGiftCert gt ue CADStoreCredit gt lt VALUE value MXNGiftCert gt lt VALUE value MXNStoreCredit gt lt VALUE value GBPGiftCert gt lt VALUE value GBPStoreCredit gt lt VALUE value EURGiftCert gt lt VALUE value EURStoreCredit gt lt VALUE value JPYGiftCert gt lt VALUE value JPYStoreCredit gt PARAMETER
266. me Document doc builder parse file NodeList nl doc getElementsByTagName molecule for int i 0 i nl getLength i Node node nl item i something here 6 10 Oracle Retail Point of Service Operations Guide Common Frameworks catch see below and these two ways of logging exceptions catch Exception e log debug Could not load XML catch IOException e log error Problem reading file fileName e catch DOMException e log error Error parsing XML in file fileName e catch SAXException e log error Error parsing XML in file fileName e In the first case you ll get an error that just tells you something went wrong In the second case you re given slightly more context around the error in that you know if you can t find it load it or parse it and you re given that key piece of data the file name The log lets you augment the message in the exception itself Ideally with the messages the stack trace and type of exception you ll have enough to be able to reproduce the problem at debug time Given that the message can be reasonably verbose For instance the fail method in JUnit really just throws an exception and whatever message you pass to it is in effect logging It s useful to construct messages that contain a great deal of information about what you are looking for Example 6 4 JUnit if list contains testObj Str
267. mers are commercial computer software or commercial technical data pursuant to the applicable Federal Acquisition Regulation and agency specific supplemental regulations As such use duplication disclosure modification and adaptation of the Programs including documentation and technical data shall be subject to the licensing restrictions set forth in the applicable Oracle license agreement and to the extent applicable the additional rights set forth in FAR 52 227 19 Commercial Computer Software Restricted Rights June 1987 Oracle USA Inc 500 Oracle Parkway Redwood City CA 94065 The Programs are not intended for use in any nuclear aviation mass transit medical or other inherently dangerous applications It shall be the licensee s responsibility to take all appropriate fail safe backup redundancy and other measures to ensure the safe use of such applications if the Programs are used for such purposes and we disclaim liability for any damages caused by such use of the Programs Oracle JD Edwards PeopleSoft and Siebel are registered trademarks of Oracle Corporation and or its affiliates Other names may be trademarks of their respective owners The Programs may provide links to Web sites and access to content products and services from third parties Oracle is not responsible for the availability of or any content provided on third party Web sites You bear all risks associated with the use of such content If you choose
268. mon coding issues and standards Java Dos and Don ts The following dos and don ts are guidelines for what to avoid when writing Java code DO use polymorphism DO have only one return statement per function or method make it the last statement DO use constants instead of literal values when possible DO import only the classes necessary instead of using wildcards DO define constants at the top of the class instead of inside a method DO keep methods small so that they can be viewed on a single screen without scrolling DON T have an empty catch block This destroys an exception from further down the line that might include information necessary for debugging DON T concatenate strings Oracle Retail products tend to be string intensive and string concatenation is an expensive operation Use StringBuilder instead DON T use function calls inside looping conditionals for example while i name len This calls the function with each iteration of the loop and can affect performance DON T use a static array of strings General Development Standards 6 1 Basics a DON T use public attributes DON T use a switch to make a call based on the object type Avoiding Common Java Bugs The following fatal Java bugs are not found at compile time and are not easily found at runtime These bugs can be avoided by following the recommendations in the following table Table 6 1 lists some fatal Java bugs and their preven
269. mple CustomerOptionsButtonSpec AddBusiness Add Business GlobalNavigationPanel The GlobalNavigationButtonBean extends the NavigationButtonBean The following code sample shows the GlobalNavigationPanel bean specification defined in src com vextendyourstore pos Nconfig defaults Ndefaultuicfg xml The bean class is a subclass of NavigationButtonBean Example 10 13 defaultuicfg xml Bean Specification Using GlobalNavigationButtonBean BEAN specName GlobalNavigationPanelSpec configuratorPackage com extendyourstore pos ui configuratorClassName POSBeanConfigurator beanPackage com extendyourstore pos ui beans beanClassName GlobalNavigationButtonBean cachingScheme 0NE gt lt BEAN gt Table 10 10 lists property names and valuesthat can be defined in UI scripts when specifying attributes of a GlobalNavigationButtonBean Table 10 10 GlobalNavigationButtonBean Property Names and Values Item Description Example manageNextButton Indicates whether the bean should manage the true enable property of the Next button buttonStates Sets the buttons with the action names listed Help true Clear false Ca to the specified state ncel false Undo true Nex t false These properties can be defined in overlay specifications as in the following code sample from tenderuicfg xml Example 10 14 tenderuicfg xml GlobalNavigationButtonBean Property Definitions lt OVERLAYSCREEN gt defaultScreenSpecName EYSPOSDefaultSpec
270. mple C 1 Add Krona as Base to Currency Table CO CNY INSERT INTO CO CNY ID CNY ICD LU CNY ISSG CY CD CNY ISO DE CNY DE CNY ISSG NAT FL CNY BASE QU CNY SCLE AI CNY PRI VALUES 7 SE SEK SEK Sweden 1 2 0 PDATE CO_CNY SET FL CNY BASE 0 HERE CD CNY ISO SEK e PDATE CO CNY SET AI CNY PRI AI CNY PRI 1 WHERE CD CNY ISO lt gt SEK Currency Denomination Table CO CNY DNM Denominations for the new base currency must be added to the CO CNY DNM table For example Example C 2 Add Krona Denominations to Denomination Table CO CNY DNM INSERT INTO CO CNY DNM ID CNY ICD ID CNY DNM NM DNM VL DNM CD DNM DPLY PRI VALUES 7 1 SE 500res 0 50 1 INSERT INTO CO CNY DNM ID CNY ICD ID CNY DNM NM DNM VL DNM CD DNM DPLY PRI VALUES 7 2 SE lKronas 1 00 2 INSERT INTO CO CNY DNM ID CNY ICD ID CNY DNM NM DNM VL DNM CD DNM DPLY PRI VALUES 7 3 SE_5Kronas 5 00 3 INSERT INTO CO CNY DNM ID CNY ICD ID CNY DNM NM DNM VL DNM CD DNM DPLY PRI VALUES 7 4 SE 10Kronas 10 00 4 INSERT INTO CO CNY DNM ID CNY ICD ID CNY DNM NM DNM VL DNM CD DNM DPLY PRI VALUES 7 5 SE 20Kronas 20 00 5 Appendix Changing and Configuring a New Base Currency C 3 Configuring a New Base Currency INSERT INTO CO CNY DNM ID CNY ICD ID CNY DNM NM DNM VL DNM CD DNM DPLY PRI VALUES 7
271. n It should not be used to update cargo The road you take after making a decision at the Signal should do the updating Choosing Among Sites Aisles and Signals There are many times when an Aisle can do the same work as a Site Sometimes a Signal can contain behavior that could be implemented in an Aisle Sometimes a separate Service does the work that was once a Site if the Site needs to be reused or becomes too complicated Consult the guidelines for your application development team in order to be consistent with the rest of your team If you have the following customer requirement a Display a UI screen that gathers search criteria to be used in a database lookup for example customer lookup After the user enters the data validate the data Once the data has been validated do the database lookup you have the following design choices Implement as separate Sites and take advantage of TourCam to back up when the data is invalid or database lookup results are not correct Implement as one Site with Aisles that do the validation and lookup The database lookup may result in a success or failure letter whether it is coded as a Site or an Aisle When using an Aisle for database lookup the failure letter triggers another Aisle that could display an error message but allow the user to re enter the data and retry the lookup This can occur without exiting the original Site When using a Site the failure condition can trigger a
272. n Class a TR_LTM_TX MO IX INC B 10 Oracle Retail Central Office Operations Guide Enhancing POSLog com extendyourstore domain ixretail transaction v21 LogRetail Transaction class needs to be enhanced to include the above element in the makeTaxLineltems SaleReturnTransactionlfc retailTrans method a IR LTM SLS RTN MO VAT INC LN ITM RTN com extendyourstore domain ixretail lineitem v21 LogSaleReturnLineltem class needs to be enhanced to include the above element in the createElement SaleReturnLineItemlIfc srli Transactionlfc transaction Document doc Element el boolean voidFlag int sequenceNumber method a IR LTM SLS RTN TX MO IX INC RTN SLS TOT ELEMENT TOTAL INCLUSIVE TAX 360 FL TX INC ATTRIBUTE TAX INCLUDED IN TAXABLE AMOUNT FLAG com extendyourstore domain ixretail lineitem v21 LogSaleReturnLineltem class needs to be enhanced to include the previous two elements in the createRetail Transaction TaxElements SaleReturnLineltemifc srli Retail TransactionItemlfc el JdbcReadTransaction selectSaleReturnLineItemTaxInformation JdbcDataConnection dataConnection SaleReturnTransactionlfc transaction int lineltemSequenceNumber method needs to be modified to add two new columns a OR_LTM MO TAX INC LN ITM RTN a SHP RDS SLS RTN ID GP TX ELEMENT TAX GROUP ID 360 MO TX ELEMENT AMOUNT MO TX INC ELEMENT TAX INCLUSIVE com extendyourstore domain ixretail lineitem v21 LogSaleR
273. n Transaction Seed Data sse eene eere trennen tenen nnne B 14 New Or Changed Classes services esses eene nennen nnne nennen B 14 xi Adding Tax Inclusive Flag To Tax Group Rule esee eee B 14 BUSINESS ODIECES ener dee ene inte e i esentutl ie e Bie e A B 14 P rsistenice NR tees ees B 14 Import Services coo moa eoe de e ed m e iate dts B 15 Internal Tax Engine Classes iii nica mime etos eet ee bein inte B 15 Tax Rate Galc ulatotrs ur ete eee re tee Pe ee re ec Re SUS ORE de meets B 15 Buisin ss Objects ects tertiae dia Ain a E EUR ito iba B 15 Domain Object Factory Service eee eee nennen nnns B 15 Enhancing Domain Tax Interfaces classes sse eee een B 16 Tax Information Interface Class eese eee a aidi a ai nnns etna eun B 16 Tax Information Container Interface Class eese eene entere B 16 Enhancing Transaction amp Line Item Tax Interfaces classes sss B 17 Transaction Totals Interface ClasSS coocccnnonccconcnnnnoncccnonananannnocanannnonnnccnnn cnc ono nano n nennen trennen B 17 Item Tax Interface7 Class inne e tib tbe i etiem de e Eee ea B 17 Iteni Price Interface Class iet He EE ea bee RE vii B 18 Tax Line Item Information Interface esses eene nennen eren nennen B 18 Sale Return Line Item Clas e ce en ete de dee B 18 Enhancing Financial Totals Interfaces classes
274. n of the architecture allows the application to support numerous types of infrastructure Point of Service Architecture 2 2 Oracle Retail Oracle Retail Platform contains reusable highly customizable components for building and integrating retail applications with user interfaces devices databases legacy systems and third party applications Oracle Retail Platform also contains integration points for communicating with external resources The following diagram shows how the Tour engine controls the Point of Service system This diagram is a more detailed view of the components that form the Commerce Services and Oracle Retail Platform tiers in the previous diagram Point of Service Operations Guide Point of Service Architecture Figure 2 2 Point of Service Architecture Layers User hterface Application Services Beginning with configuration of the UI and Managers Technicians events at the user interface are handled by the tour engine which interacts with tour code Application Services and Managers Technicians foundation services as necessary capturing and modifying the data stored in Retail Domain objects Any communication with an integration point is handled by the Oracle Retail Platform container Table 2 2 describes the layers of the Point of Service architecture Table 2 2 Point of Service Architecture Layers Component Description Configuration Application and system XML scripts confi
275. n to the audit log if the Settings For Audit Logging system setting INFO and the Till Reconcile system setting INFO Event data collection starts when the system checks the Count Till at Reconcile parameter If the Count Till at Reconcile No event data collection ends when the system assigns a transaction number If the Count Till at Reconcile Detail or Summary event data ends when the system displays the Reconcile Till Count Report The format of this event is dependent on the Count Till at Reconcile parameter setting and Blind Close parameter setting Event failure can happen only due to technical reasons e g unable to get next sequence number for transaction transaction creation exception EJB call exception or if the financial totals are not found in the database Table D 27 Till Reconcile Event Components Event Components Notes Event Name Till Reconcile Event Status X Success a Failure Event Originator Class Name and Method Name ClassName methodName System Date System date of the event System Time Time of the event Business Date Business date of the event Store ID Store number the event transpired at User ID User ID performing the event Register ID Complete Register ID value is recorded Till ID Complete Till ID value is recorded Operator ID Operator ID is user assigned to the till not the logged in user ID Cash Total a Entered
276. name and package for the Data Manager and Data Manager configuration script POSDataManager xml The server conduit script defines the name and package for the Data Technician and Data Technician configuration script DefaultDataTechnician xml At runtime the tour code requests a data transaction object from the Data Transaction Factory The Data Transaction Factory verifies that the transaction is defined in POSDataManager xml and the transaction object is returned to the tour code The tour code calls a method on the transaction object that creates a vector of data actions A data action corresponds to a set of SOL commands that are executed as a unit Data actions are reused by different transactions The method in the transaction object gets a handle to the Data Manager and calls execute sending itself as a parameter This instructs the Data Manager to send the Transaction object a valet across the network to the Data Technician Note Most Manager Technician pairs work differently The standard pattern is for the tour code to get a handle to the Manager then call a method on the manager that will create the valet object and send it to the technician For the Data Manager Technician pair the transaction object the valet class gets the handle to the Data Manager The tour code is only responsible for getting a transaction object from the factory and calling the appropriate method On the server side the Data Tec
277. nd the user enters information in them then they are validated If the user does not enter any information the fields are not validated On the other hand required fields are always validated Tour Code Bean models are created to hold the data managed by the bean This protects the bean from being changed A bean can only be accessed by a model in the Tour code Table 10 9 lists some of the important methods in the DatalnputBeanModel class Table 10 9 DatalnputBeanModel Important Methods Method Description String getValueAsString String Returns the value of the specified field as a string int getValueAsInt String Returns the value of the specified field as an integer void setSelectionValue String Object en the value of the specified field in a vector to the specified value void setSelectionChoices String Vector Sets the value of the specified field to the specified vector of choices void clearAllValues Clears the values of all the fields The following sample from src com extendyourstore pos services admin parametermanager SelectParamStor eSite java shows creation of a DatalnputBeanModel and prefilling of data in the model Example 10 9 SelectParamStoreSite java Creating and Displaying DatalnputBeanModel DatalInputBeanModel beanModel new DataInputBeanModel beanModel setSelectionChoices choiceList vChoices beanModel setSelectionValue choiceList String vChoices firstElement 10 8
278. nen 8 5 8 6 tourmap_CA xml Replacing or Extending a shuttle sse 8 6 8 7 MBStender xml Tender tour script with customized signal 8 6 8 8 tourmap CA xml Replacing a Cargo sse eee eene nnne 8 7 8 9 ClientConduit xml Conduit script modified to use custom UI configuration file 8 8 8 10 MBSdefaultuicfg xml Customized Default UI Configuration File 8 8 8 11 MBStenderuicfg xml Tender UI Configuration with Customized Bean Reference 8 9 8 12 MBSDefaultDataTechnician xml Customizing a Data Operation sss 8 13 8 13 CollapsedConduitFF xml Customizing the Data Technician sss 8 13 8 14 MBSDataTransactionKeys java Adding Strings sss 8 14 8 15 domain properties Sample Modified and New Data Transactions 8 14 9 1 tender xml Definition of Service and Service Region sss 9 3 9 2 GetCheckInfoSite java Retrieving Cargo from Bus sese 9 3 9 3 Sample To rmap iii iride e ri Pe Ae ee Dru ED t dee ec 9 4 9 4 tender xml Definition Of Cargos reserse iaa a e nennen nennen 9 5 9 5 tourmap xml Example of Overriding Cargo Class esses eee 9 5 9 6 tender xml Definition of Site Class esses eene ethernet enne netten tenen 9 5 9 7 tender xml Mapping of Site to SiteAction sse eee eene nennen 9 5 9 8 tourmap xml Overriding Sitea
279. nfig ITM KEY val ItemProducer entry key ref service config PRC KEY val AdvancedPricingProducer entry key ref service config TAX KEY val TaxProducer gt lt entry key ref service_config_CUR_KEY val CurrencyProducer entry key ref service config NEW KEY val NewProducer map property bean bean id service ClientDataSetService A 16 Oracle Retail Point of Service Operations Guide singleton true gt ue re ue re ue re ue re ue re ue re f service_ f service_ f service_ f service_ f service_ f service_ Extensibility class com extendyourstore foundation iddi ClientDataSetService singleton true gt lt property name consumers gt lt map gt lt entry key ref service_config_EMP_KEY value ref service_ EmployeeConsumer entry key ref service config CUR KEY value ref service CurrencyConsumer entry key ref service config TAX KEY value ref service TaxConsumer entry key ref service config ITM KEY value ref service ItemConsumer entry key ref service config PRC KEY value ref service AdvancedPricingConsumer entry key ref service config NEW KEY value ref service NewConsumer map property property name dataImportFilePath ref service config DataImportFilePath gt lt bean gt Add DataSet key to service_Frequent ProducerJob service_ Infrequent Produce
280. ng elements are commented to prevent duplicate logging priority value INFO appender ref ref AUDIT gt gt lt category gt lt category name log4j additivity com _ 360commerce commerceservices audit event false gt lt priority value INFO gt lt appender ref ref AUDIT gt lt category gt category name com 360commerce commerceservices audit event ENTER BUSINESS DATE gt priority value INFO appender ref ref AUDIT gt category category name com 360commerce commerceservices audit event START OF DAY priority value INFO appender ref ref AUDIT gt category category name com 360commerce commerceservices audit event END OF DAY priority value INFO appender ref ref AUDIT gt category category name com 360commerce commerceservices audit event BANK DEPOSIT priority value INFO appender ref ref AUDIT gt category category name com 360commerce commerceservices audit event BANK DEPOSIT REPORT EXPORTED priority value INFO appender ref ref AUDIT gt category category name com 360commerce commerceservices audit event REGISTER OPEN priority value INFO appender ref ref AUDIT gt category category name com 360commerce commerceservices audit event REGISTER CLOSE priority value INFO appender ref ref AUDIT gt category category name co
281. ng service s cargo Do not use letters to reflect sub tour results Shuttle Type Launch Shuttle Return Shuttle Description Used to send parameter data to a Used to return data to the parent service sub service Methods load can only see the parent load can only see the sub service s Cargo Service s Cargo d unload can only see the parent service s unload can only see the Cargo sub service s Cargo Within the Tour Framework Shuttles are used to transfer data in and out of Services Shuttles are good candidates for reuse given a common Cargo interface Cargo All Cargo classes should implement the Cargolfc interface Log Entry Format This section describes the format and layout of log entries for the Point of Service application Log Entry Description Log entries adhere to the following format LLLLL yyyyy mm dd hh mm ss ttt bbbbbbb classname classname methodname lt filename gt lt linenumber gt lt Log entry content gt Fixed Length Header The entry begins with a fixed length record header 38 bytes that adheres to the following layout LLLLL yyyyy mm dd hh mm ss ttt bbbbbbb 12345678901234567890123456789012345678 LLLLL is the log message level and consists of one of the substrings in the following table Point of Service Development Standards 7 7 Log Entry Format Table 7 2 provides log message levels and their descriptions Table 7 2 Log Message Level Log Me
282. nician is responsible for performing the work on its tier By design Managers know how to communicate with Technicians through a pass through remote interface called a valet The valet is the component that handles data transfer The valet can travel across networks It receives the instructions from the Manager and delivers them to the Technician A valet follows the Command design pattern described in the Architecture chapter Figure 11 1 Manager Technician and Valet Application Tier Resource Tier Application Manager RMUJMS seis esource Database There is a M N relationship between instances of Managers and Technicians Multiple Managers may communicate with a Technician or one Manager may communicate with multiple Technicians While most Managers have a corresponding Technician there are cases such as the Utility Manager where no corresponding Technician exists There are three Manager Technician categories These types have different usages and are started differently The three types are Manager Technician Framework 11 1 Global These Managers and Technicians are shared by all tours They provide global services to applications Session These Managers and Technicians perform services for a single tour They are started by each tour and exist for the length of the tour Embedded Thread Manager is embedded inside the Oracle Retail Platform engine It is essential to the operation of the engine T
283. nitiates this event resides in the Point of Service Credit Functional Requirement Document Event data collection starts when the operator selects Credit Debit from Tender Options menu Bin File Look up set to yes and has entered the card number or The operator has chosen Credit from the Tender Options menu Bin File Look up set to no and has entered the card number Event data collection ends when a credit card tender has been added to the transaction with the authorization status pending Failure Condition will be logged only in case of technical failures such as Database is down D 20 Oracle Retail Back Office Operations Guide Point of Service Transaction Events Table D 20 Transaction Tendered with Credit Card Event Components Event Components Notes Event Name Transaction Tendered with Credit Card Event Status Success Failure Event Originator Class Name and Method Name ClassName methodName System Date System date of the event System Time Time of the event Store ID Store number the event transpired at User ID User ID performing the event Register Number The register number the event transpired at Till ID The Till ID the event transpired at Card type The card type presented at time of tender Card number a The card number presented at the time of tender Only display last 4 digits of card number Example xxxx xxxx xxxx 1111 Amou
284. nononoonononenrncnnncocnnnnnnnanocananonnannrannnnnnnnannnnrnararanannn raras 6 11 Debug Messages A aerea 6 12 Exception Handling cto omita prin an ibi 6 12 Types oEEXCeptiOnDs c eee tee a ode a iia 6 12 Avoid java lang Exceptioniien ete ii ais 6 13 Avoid Custom Exceptions nnne enr ee D ee Pee Aetius 6 13 Catching Exceptions 2 ect cet e e a tia Pe PER ERE sabi Auk ded beg 6 13 Keep the Try Block Shott utes eni tiere ten e eer Ee ERR hd 6 13 Avoid Throwing New Exceptions sse eee nene nennen 6 14 Catching Specific Exceptions cviccriocniiia eee entere ente ie ihe drea ee tede tae 6 14 Favor a Switch over Code Duplication sese eee 6 15 7 Point of Service Development Standards Screen Design and User Interface Guidelines sess eee een 7 1 Tour Frame WO A See ee ee 7 1 Tour Architectural Guidelines esses nennen neret tn serene nennen 7 1 General Tour Guidelines Haeret tite titi iei 7 2 Foundation ee pee epi ete em re eh d beer 7 3 Tours and Services uses eoe deoa eiae ien ioi egets 7 3 MA a e de fh 7 4 Managers and Technicians Tugen aseen aee ea eaa eea eE eia Serna AEAEE rea eae teo RAEE REARS 7 4 RO aS sees eee Eee un eedem een etn e E e R de 7 5 DS pe O RA 7 5 A O A E RN 7 5 Choosing Among Sites Aisles and Signals sss 7 6 Iseniamme L ttetrs 5 n e iee ea i tue ipee ges em BER RR EE ee EAR E 7 6 vii CATO Gee re NN 7 7 P
285. not affect the PABP settings For more information on PABP see the Oracle Retail Strategic Store Solutions Security Implementation Guide The guide is available on Metalink Metalink Note 567438 1 This section describes conventions used throughout this chapter Terms The following definitions are used throughout the chapter Product source tree A directory tree that contains the Oracle Retail product code The contents of this tree do not change with the exception of product patches In production code these files are accessed as external jar files Customer source tree A directory tree separate from the product code that contains customer specific files Some of these files are new files for customer specific features others are extensions or replacements of files from the product source tree The customer tree should not contain packages from the product tree Customer abbreviation A short name that represents the customer For example a company named My Bike Store might use MBS as their customer abbreviation The MBS example is used throughout this chapter replace MBS with the customer abbreviation for your own project when writing code The customer abbreviation is added to filenames to clarify that the file is part of the customized code and is used as part of the package name in the customer source tree Extension Guidelines 8 1 Conventions Filename Conventions Modules Filenames in the cust
286. nquoted char and varchar values these cause DB2 to produce errors FIELD1 INTEGER FIELD1 INTEGER FIELD2 CHAR 4 FIELD2 CHAR 4 i i INSERT INTO BLAH FIELD1 INSERT INTO BLAH FIELD1 FIELD2 FIELD2 VALUES 5 1020 VALUES 5 1020 Don t try to declare a field default CREATE TABLE BLAH CREATE TABLE BLAH as NULL FIELD1 INTEGER NULL FIELD1 INTEGER FIELD2 CHAR 4 NOT NULL FIELD2 CHAR 4 NOT NULL i ye General Development Standards 6 5 Architecture and Design Guidelines Oracle Table 6 4 provides some examples of common syntax problems which cause Oracle to produce errors Table 6 4 Oracle SQL Code Problems Problem Problem Code Corrected Code Blank line in code block CREATE TABLE BLAH CREATE TABLE BLAH causes error FIELD1 INTEGER FIELD1 INTEGER FIELD2 VARCHAR 20 FIELD2 VARCHAR 20 pr When using NOT NULL CREATE TABLE BLAH CREATE TABLE BLAH with a default value NOT NULL must follow the FIELD1 INTEGER NOT NULL DEFAULT FIELDI INTEGER DEFAULT 0 NOT NULL DEFAULT statement 0 FIELD2 VARCHAR 20 FIELD2 VARCHAR 20 p Ina CREATE or INSERT CREATE TABLE BLAH CREATE TABLE BLAH do not place a comma after the last item FIELD1 INTEGER FIELD1 INTEGER FIELD2 VARCHAR 20 FIELD2 VARCHAR 20 e Unit Testing For details on how to implement unit testing see separate guidelines on the topic Some general notes apply Break large methods into smal
287. ns except for beans which are described in the next section Displays define window properties They are basic containers with dimensions and a title defined In Point of Service only two types of windows can be displayed at the same time the main application window and a window displaying the Help browser Table 10 3 describes the two types of displays Table 10 3 Display Types Name Description EYSPOSDisplaySpec A 600x800 container for all application screens HelpDialogDisplaySpec A 600x800 container for Point of Service Help screens Templates divide displays into geographical areas The GridBagLayout is used to define the attributes of each area Table 10 4 describes the typical use of each template 10 2 Oracle Retail Point of Service Operations Guide Screens Table 10 4 Template Types Name Typical Use BrowserTemplateSpec Back Office screens within Point of Service application EYSPOSTemplateSpec Point of Service screens without required fields HelpBrowserTemplateSpec Point of Service help screens ValidatingTemplateSpec Point of Service screens with required fields that display an information panel below the work area Default screens are partially defined screens that represent elements common to multiple screens Default screens are based on one display and one template Default screens map beans to the commonly used areas of the template and define listeners for the bean Thes
288. nservice_DataSetService lt lt DataSetType gt _KEY Configured to run once every 15 minutes by default service_ Producer Job org springframework To add a new DataSet type InfrequentProducerJob configured to run scheduling quartz JobDetailB add one more service_config_ once a day by default eanservice DataSetService DataSetType KEY service Cron Job Trigger class org springframework service FrequentProducerJob TriggerFrequentProducer that runs service scheduling quartz CronTrigge Cron Expression Value FrequentProducerJob rBean configuration Cron Expression value can be modified to configure the job frequency Cron Expression format value 0 0 153045 Value parameters from left to right separated by spaceSecondsMinutes HoursDaysWeeksYear S To configure more than one value to any of the value parameter configure values separated by commas ndicates any value service _ TriggerInfrequentProducer Trigger class that runs service InfrequentProducerJo b configuration org springframework scheduling quartz CronTrigge rBean service_ InfrequentProducerJobCron Expression Value A 2 Oracle Retail Point of Service Operations Guide Spring Configuration Table A 1 Spring Framework Configuration Options Spring bean ID Purpose Provided implementation Configurable Options service _ ProducerSchedulerFactory Registers the services service _ TriggerF
289. nspired at User ID User ID performing the event Register Number For Point of Service the register number the event transpired at Till ID Till ID the event transpired at Start of Day Event Components This is a Back Office and Point of Service event This event is written to the audit log if the Settings For Audit Logging system setting INFO and the Start of Day system setting INFO Event data collection starts when the operator selects to execute Start of Day functionality Event data collection ends when the system displays that the store is opened The format of this event is dependent on the Count Operating Fund at Start of Day parameter setting Failure can happen only when there is some technical error Table D 2 Start of Day Event Components Notes Event Name Start of Day Event Status X Success a Failure Event Originator Class Name and Method Name ClassName methodName System Date System date of the event Appendix Audit Logging D 7 Daily Operations Audit Log Events Table D 2 Start of Day Event Components Event Components Notes Business Date Business date of the event System Time Time of the event Store ID Store number the event transpired at User ID User ID performing the event Register Number For Point of Service the register number the event transpired at Operating Fund Amount a Entered cash
290. nstantslfc java the following code sets a string constant for the receiptText bundle Example 10 24 BundleConstantslfc java String Constant for receiptText public static String RECEIPT_BUNDLE_NAME receiptText In Tour Code methods to print the receipt exist which call methods on the Utility Manager to get specified text The following code is from the printDocument method in src com extendyourstore pos receipt GiftCardInquirySlip java Example 10 25 GiftCardlnquirySlip java Tour Code to Print Receipt UtilityManager utility UtilityManager Gateway getDispatcher getManager UtilityManagerIfc TYPE Properties slipProps utility getBundleProperties BundleConstantsIfc RECEIPT BUNDLE NAME UtilityManagerIfc RECEIPT BUNDLES LocaleMap getLocale LocaleConstantsIfc RECEIPT String title slipProps getProperty GiftCardTitle Gift Card Inquiry toString String giftCardNumber slipProps getProperty GiftCardAccount Gift Card toString define additional properties printLineCentered title printLine printLine blockLine new StringBuffer giftCardNumber new StringBuffer cardNumber In the receiptText_ lt locale gt properties file the corresponding text is defined Example 10 26 receiptText en US properties Text Bundle Receipt GiftCardTitle BALANCE INQUIRY Receipt GiftCardAccount Account 10 16 Oracle Retail Point of Service Operations Guide Text Bundles param
291. nt Attributes Tag Description Values Default index Indicates that an index ON Place an indexon ON should be placed on the the tape tourcam tape when this road is traversed OFF Do not place an index on the tape namedIndex Indicates that a named Any string value is None index should be placed allowed on the tourcam tape when this road is traversed destination Used when the tape hasa lt SITENAME gt The None value of REWIND or name of a site to back SPLICE to indicate where up to The site must be the tourcam should back in the current tour the bus up to LastIndexed The backup should end at the site that is the origin of the first road found with an unnamed index NamedIndex The backup should end at the at the site that is the origin of the first road found with the named index specified by the named Index Each of the following combinations describes a combination of settings and how it is useful in different situations The following tables describe the forward and backward TourCam settings Table 9 5 describes the forward TourCam settings Table 9 5 Forward TourCam Settings Settings Behavior ADVANCE This combination permits you to return to the site without specifying it as a index ON destination and storing the state of the cargo Use this combination if you are entering HUE data and making decisions The UI provides a method for backing up to the previous record ON step
292. nt The amount the card is being charged at the time of tender Entry method The method used to enter the card Operator input on keyboard is manual and a manual auto scan or swipe on the device or keyboard is auto MAG stripe if swiped An indicator if swiped on the MSR Authorization Status Pending The status of authorization is pending until a response is returned Transaction Tendered with Debit Card This is a Point of Service event This event is written to the audit log if the Settings For Audit Logging system setting INFO and the Transaction Tendered with Debit Card system setting INFO The use case that initiates this event resides in the Point of Service Debit Functional Requirement Document Event data collection starts when the operator selects Credit Debit from the Tender Options menu BIN File Lookup parameter is set to Yes or The operator has chosen Debit from the Tender Options menu BIN File Lookup parameter is set to No Event data collection ends when a debit card tender has been added to the transaction with the authorization status pending Failure Condition will be logged only in case of technical failures such as Database is down Appendix Audit Logging D 21 Till Audit Log Events Table D 21 Transaction Tendered with Debit Card Event Components Event Components Notes Event Name Transaction Tendered with Debit Card Event Status
293. nt of Service Operations Guide New Manager Technician Table 11 2 Manager Names and Descriptions Manager Name Description Log The Log Manager is the interface that places diagnostic output in a common location on one tier for an application regardless of where the actual tours run Parameter The Parameter Manager is the interface that provides access to parameters used for customization and runtime configuration of applications Thread The Thread Manager is a subsystem that provides system threads as a pooled resource to the system Tier The Tier Manager interface starts a tour session and mails letters to existing tour sessions The Tier Manager enables the engine to start a tour on any tier specified in a transfer station regardless of where that tier runs In addition the Tier Manager enables a bus to mail a letter to any other existing Bus in the system on any tier Timer The Timer Manager provides timer resources to applications that require them It does not have a Technician because all timers are local on the tier where they are used User Interface The UI Manager is a mechanism for accessing and manipulating user interface components The user interface subsystem within a state machine application must also maintain a parallel state of screens so the appropriate screens can be matched with the application state at all times The user interface subsystem within a distributed environment must enable
294. nventory management application to which the retailer often transfers items stores within the related transfer zones a set of locations where transfers are allowed or for a specific store Item inquiry can search on one item at a time You can perform an item inquiry during a transaction as well as outside a transaction The reply from the inventory management application contains item location and inventory information The inventory management application enables store personnel to quickly and easily perform an array of in store operations using a high speed internet connection and portable handheld wireless devices to receive merchandise manage physical inventories conduct stock counts order stock or transfer stock The default topology for the inventory management application is centralized multi store Note Communication to the inventory management application over HTTPS is not supported Communication is unidirectional The inventory management application sends inventory information only Oracle Retail Point of Service does not send transaction information to the inventory management application The following figure depicts the interaction of the Oracle Point of Service Client and Server with the inventory management application Appendix Oracle Retail Point of Service to an Inventory Management Application E 1 Figure E 1 High Level Model for Oracle Retail Point of Service to an Inventory Management Ap
295. o the database modify the data operation to save the new data attributes 8 12 Oracle Retail Point of Service Operations Guide Domain Package Database This section details how to extend database behavior through changes to the data operations The architecture of the Data Technician simplifies this somewhat because changes to data operations can be implemented without changes to the Point of Service application code Data Manager and Technician Scripts The Data Manager and Data Technician Scripts DefaultDataManager xml and DefaultDataTechnician xml are routinely customized when transactions data actions and data operations are customized See the next section for details Data Actions and Operations When a new or modified RDO contains data that need to be saved to the database a data operation class must be created or extended A Data Action must be modified if a unit of database work is changed 1 Create class files Create new class files for each new or modified item in the customer source tree If an item extends a product class add the customer abbreviation to the filename 2 Ifa customized version of POSDataManager xml does not already exist copy it to the customer source tree and give it a new name such as MBSPOSDataManager xml 3 For customized transactions with new filenames modify the transaction name 4 Ifa customized version of DefaultDataTechnician xml does not already exist copy it to the cust
296. od will be enhanced to hold the additional taxable flag tax group id and tax rules For schema enhancement of the ship method see Shipping Methods Table CO SHP MTH The following get set member functions are added to the interface and class public boolean getTaxable public void setTaxable boolean taxable public int getTaxGroupID public void setTaxGroupID int taxGroupID public NewTaxRuleIfc getTaxRules public void setTaxRules NewTaxRulelfc rules Send Package Line Item Interface class A new send package line item interface and class will be added to support tax calculation for shipping charges The send package line item interface com extendyourstore domain lineitem SendPackageLineltemlfc extends from the tax line item interface com extendyourstore domain lineitem TaxLineItemInformationlfc By extending the tax line item interface it defines all the information the internal tax engine needs to perform tax calculation on shipping charges The following is a complete description of the interface It contains an instance of a shipping method a send customer and an item tax The shipping method instance ShippingMethodlfc contains all the details of a shipping method such as method id carrier and shipping charges etc The item tax instance contains all the tax information of shipping charges import com extendyourstore domain financial ShippingMethodIfc import com extendyourstore domain customer CustomerIfc
297. ode CurrencyIfc balanceDue totals getBalanceDue CurrencyIfc amount DomainGateway getBaseCurrencyInstance poAmount if amount compareTo balanceDue CurrencyIfc EQUALS display invalid PO Amount message j A Transaction is a record of business activity that involves a financial and or merchandise unit exchange or the granting of access to conduct business with an external device There are various types of Transactions found in src com extendyourstore domain transaction such as Layaway Transaction StoreOpenCloseTransaction and BankDepositTransaction SaleReturnTransaction is a commonly used Domain Object that extends AbstractTenderableTransaction The classes involved in the implementation of a SaleReturn Transaction and its behaviors are described in the following table Table 123 lists classes involved in the implementation of a SaleReturnTransaction and its behaviors Table 12 3 Transaction Object Classes and Interfaces Class or Interface Description Important Methods SaleReturnTransaction This class is a sale or return void addTender TenderLineItemIfc transaction CustomerIfc getCustomer TransactionTotalsIfc getTenderTransactionTotals AbstractTenderableTransaction This class contains the behavior void associated with a transaction that addLineItem SaleReturnLineItemIfc involves the tendering of money void linkCustomer CustomerIfc void addLineItem AbstractTransactionLineIt emIf
298. oint of Service the register number the event transpired at Reset Employee Password This is a Back Office and Point of Service event This event is written to the audit log if the Settings For Audit Logging system setting INFO and the Reset Employee Password system setting INFO Event data collection starts when the operator selects to reset an employees password Event data collection ends when the operator selects Yes Failure Condition will be logged only in case of technical failures such as Database is down Table D 16 Reset Employee Password Event Components Event Components Notes Event Name Reset Employee Password Event Status Success a Failure Event Originator Class Name and Method Name ClassName methodName System Date System date of the event System Time Time of the event Store ID Store number the event transpired at User ID User ID performing the event Register Number For Point of Service the register number the event transpired at Employee ID Employee ID whose password was reset Reset Temporary Employee Password This is a Back Office and Point of Service event This event is written to the audit log if the Settings For Audit Logging system setting INFO and the Reset Temporary Employee Password system setting INFO Event data collection starts when the operator selects to reset an employees password D 18 Oracle Retail Back Office Operations Guide
299. om the api The enhancement is for sale return transactions only public TransactionDetailViewDTO retrieveTransactionDetails String keyString String dateString This function will collect all the group rule level tax information from each sales return line item and shipping record by calling getTaxInformation api on SaleReturnLineltemDTO and SaleReturnShippingRecordDTO see Commerce Service Transaction DTO Classes and summarize the taxable amount and tax amount for each unique tax group rule A tax group rule is uniquely identified by tax authority ID tax group ID and tax type combined It will then create an array of class com 360commerce commerceservices transaction tax GroupRuleTaxDTO see Commerce Service Transaction DTO Classes containing tax summary information of each tax group rule for inclusive tax and populate them to the TransactionDetailViewDTO object by calling its API setInclusiveTaxSummaryInformation Enhancing POSLog For a retail transaction all new elements created in the Database Schema such as VAT information Shipping Tax information must also be included in the POSLog Listed below are the new elements that need to be sent as part of the generated POSLog xml content a IR RIL MO IX INC TOT com extendyourstore domain ixretail transaction v21 LogRetail Transaction class needs to be enhanced to include the above element in the addBaseElements Transactionlfc transaction method See Log Retail Transactio
300. omer source tree and give it a new name such as MBSDefaultDataTechnician xml 5 Edit the customized MBSDefaultDataTechnician xml file updating package and class names for data actions and data operations that have been modified Example 8 12 MBSDefaultDataTechnician xml Customizing a Data Operation OPERATION class JdbcSaveTenderLineItems package com mbs domain arts name MBSSaveTenderLineItems gt lt COMMENT gt This operation saves all tender line items associated with the transaction lt COMMENT gt OPERATION 6 Modify the conduit scripts to reference the new package and or filename of the technician script Example 8 13 CollapsedConduitFF xml Customizing the Data Technician TECHNICIAN name LocalDT class DataTechnician package com mbs foundation manager data export Y gt lt PROPERTY propname dataScript propvalue classpath config manager MBSDefautlDataTechnician xml gt lt TECHNICIAN gt Extension Guidelines 8 13 Domain Package Data Transactions Data transactions are the valet classes that carry requests from the client to the server A data transaction factory implements the factory pattern for data transaction classes The application code asks the factory for a transaction object and the factory determines which Java class is used to create the object To create or extend a data transaction class follow these steps 1 Create new or modified data transactions Create
301. omer source tree usually include the customer abbreviation Name files according to the following rules a Ifa class in the customer source tree extends or replaces a class in the product source tree use the customer abbreviation followed by the original filename as the new filename for example SaleReceipt java becomes MBSSaleReceipt java New Java classes should also begin with the customer abbreviation Scriptor properties file names that are hard coded in Foundation classes must use the same filename in the customer source tree as was used in the product source tree for example posfoundation properties The Point of Service system is divided into a number of different modules and each module corresponds to a project in an integrated development environment IDE When setting up a development environment for modifying code building Point of Service and testing changes you must configure your system to make MBSpos dependent on all the other modules To set up your development environment 1 Check out each of the required customer modules as shown in the following table 2 Reference each of the standard modules as external jar files 3 Add the required modules to your CLASSPATH environment variable in the order shown in the following table with all of the customer modules preceding the set of standard modules Table 8 1 identifies required customer and standard modules in their respective dependency orders Table 8 1
302. on manager parameter gt lt PROPERTY propname member propvalue None gt Appendix Changing and Configuring a New Base Currency C 5 Configuring a New Base Currency PROPERTY propname member propvalue SEK gt PROPERTY propname member propvalue USD gt PROPERTY propname member propvalue CAD gt PROPERTY propname member propvalue MXN gt PROPERTY propname member propvalue EUR gt PROPERTY propname member propvalue JPY gt PROPERTY propname member propvalue GBP gt lt VALIDATOR gt lt VALUE value SEK gt lt VALUE value USD gt lt VALUE value CAD gt lt VALUE value MXN gt lt VALUE value EUR gt lt VALUE value JPY gt lt VALUE value GBP gt lt PARAMETER gt lt PARAMETER final N hidden N name ChecksAccepted type LIST gt lt VALIDATOR class EnumeratedListValidator package com extendyourstore foundation manager parameter PROPERTY propname member propvalue None PROPERTY propname member propvalue SEKCHK gt PROPERTY propname member propvalue USDCHK PROPERTY propname member propvalue CADCHK gt PROPERTY propname member propvalue EURCHK gt PROPERTY propname member propvalue GBPCHK gt lt VALIDATOR gt lt VALUE value SEKCHK lt VALUE value USDCHK gt lt PARAMETER gt PARAMETER final N hidden N name CashAccepted type LIST gt VALIDATOR class Enume
303. one of the other procedures in this section Setting the RMI Timeout Interval for All Manager and Technician Calls or Setting the RMI Timeout Interval for a Specific Technician Setting the RMI Timeout Interval for the JVM Under Linux Oracle Retail has found it useful to change the RMI timeout interval for the JVM under Linux To do this change the command that launches the JVM adding the JVM flag Dsun rmi transport connectionTimeout lt X gt where X represents the time out period in milliseconds This tells the JVM to time out socket connections used by RMI after X milliseconds of inactivity Linux quickly notifies the JVM when a socket connection cannot be established Linux is slow however to notify the JVM when an open socket connection has been broken By setting the connection time out low you can cause the sockets to disconnect quickly after each RMI call thereby requiring a connect for each subsequent RMI call Modifying the TCP Connection Timeout on Linux Sometimes Linux keeps the tcp connection active even after Point of Service determines that the socket has timed out There are three OS level settings that work together to determine how long to keep the tcp connection open which affects the Observed system performance To modify these level settings at a Linux command line enter sysctl w net ipv4 tcp keepalive time value sysctl w net ipv4 tcp keepalive intvl value Sysctl w net ipv4 tcp keepalive
304. ons Guide New Manager Technician param techIn the technician that will do the work return the results of MyNewTechnician doSomething public Serializable execute Object techIn throws Exception if techIn instanceof MyNewTechnician throw new Exception MyNewTechnician must passed into execute MyNewTechnician tech MyNewTechnician techIn String result tech doSomething input return result Technician The following code provides an example of a minimal Technician class A new Technician interface also needs to be created for this class Example 11 8 Sample Technician Class package com extendyourstore foundation manager mynew import com extendyourstore foundation manager log LogMessageConstants import com extendyourstore foundation tour manager Technician import com extendyourstore foundation tour manager ValetIfc public class MyNewTechnician extends Technician implements MyNewTechnicianIfc A value obtained from the config script protected String techField null public void setTechField String value techField value public void setConfigScript String value Complicated configuration could go here j ESAS A ee ee O E ge EA ee a UE This method processes the input argument via its Technician param input a String to illustrate argument passing return a transformed String e ra Manager Technician Framework 11 9 Manager Technician Reference
305. oolean getInclusiveTaxFlag by default it is false public void setInclusiveTaxFlag boolean flag The following member function in abstract tax rule class com extendyourstore domain tax AbstractTaxRule is invoked by internal tax engine to create an instance of a tax information class It populates the instance with attribute values from the tax rule It must be enhanced to populate the tax rule s inclusive tax flag to the tax information instance public TaxInformationIfc createTaxInformation int mode Tax Information Container Interface Class An instance of a domain tax information container interface class is used to hold tax information generated during tax calculation process It contains multiple instances of the tax information class Its member function getTaxAmount returns total tax amount of all the tax information instances added to the container Since we are introducing inclusive tax it must be enhanced to return inclusive and exclusive add on total tax amount respectively The following new member functions will be added to interface com extendyourstore domain tax TaxInformationContainerlfc and class com extendyourstore domain tax TaxInformationContainer to return inclusive tax total amount public CurrencyIfc getInclusiveTaxAmount The following existing member function will be enhanced to add the given tax information instance s tax amount to inclusive tax total if the instance s inclusive tax flag is tru
306. orary Employee Information Event Status X Success a Failure Event Originator Class Name and Method Name ClassName methodName System Date System date of the event System Time Time of the event Store ID Store number the event transpired at User ID User ID performing the event Register Number For Point of Service the register number the event transpired at Employee ID Employee ID of the modified temporary employee Add Employee This is a Back Office and Point of Service event This event is written to the audit log if the Settings For Audit Logging system setting INFO and the Add Employee system setting INFO Event data collection starts when the operator selects to add an employee Event data collection ends when the operator selects Save Failure Event is when the login ID provided is already in use Table D 10 Add Employee Event Components Event Components Notes Event Name Add Employee Event Status X Success a Failure Event Originator Class Name and Method Name ClassName methodName System Date System date of the event System Time Time of the event Store ID Store number the event transpired at D 14 Oracle Retail Back Office Operations Guide Employee Audit Log Events Table D 10 Add Employee Event Components Event Components Notes User ID User ID performing the event Register
307. ortant Methods Currencylfc This interface defines a common CurrencyIfc add CurrencyIfc interface for currency objects Currencylfc negate String getCountryCode AbstractCurrency This abstract class contains the BigDecimal getBaseConversionRate behaviors and attributes common to void setNationality String all currency String getNationality CurrencyDecimal This class contains the behaviors Currencylfc add CurrencyIfc and attributes common to all Currencylfc negate decimal based currency String getCountryCode All Currency types extend AbstractCurrency and implement Currencylfc For example if creating a class to support Canadian currency the class should extend CurrencyDecimal and implement Currencylfc Figure 12 2 Currency Class Diagram lt lt inte rface gt gt Currencylfc from c urrency AbstractCurrency from currency CurrencyDecimal from currency CurrencyUSD from currency CurrencyUSD CurrencyUSD CurrencyUSD Clone setCloneAttributes getDenominationNames getDenominationValues getDenominationValue getCountryCode getScale getRevisionNumber main Retail Domain 12 7 Domain Object Reference Transaction The following code is an example of the Currency object used in src com extendryourstore pos services tender PurchaseOrderAmountEnteredAisl e java Example 12 8 PurchaseOrderAmountEnteredAisle java Currencylfc in Tour C
308. ou want the application flow only to go forward from this site For example after a user tenders a credit card for a sale the user cannot backup to enter delete or modify items This setting does not permit you to backup or restore cargo to a previously recorded site Table 9 6 describes the backup TourCam settings Table 9 6 Backup Tour Cam Settings Settings Behavior destination BACKUP tape REWIND This combination returns the application to the previously marked site and makes the snapshot available for undo This is the preferred method of performing a full backup with restore destination site tape REWIND This combination backs up the application until it reaches the specified site It is only used if the site to which you want to backup does not directly precede the current site or you know that you always want to backup to the specified site These settings could produce unpredictable results if new sites are later inserted in the map between the current site and the target backup site destination LastIndexed tape SPLICE This combination returns the application to the previously marked site without restoring the cargo These settings are used in scenarios when the cargo is inconsequential destination site tape SPLICE This combination backs up the application to the specified site without restoring the cargo It is used when the cargo is inconsequential or when you want to loop back to a base sit
309. ount float at reconcile D 25 till open D 22 till reconcile D 27 audit logging D 1 automated e mail messages F 1 Index backend system administration and configuration 1 1 C changing currency C 1 common frameworks 6 9 exception handling 6 12 logging 6 9 configuring logging 1 17 configuring RMI timeout intervals 1 12 setting the RMI timeout interval for a specific technician 1 14 setting the RMI timeout interval for all manager and technician calls 1 13 setting the RMI timeout interval for the JVM under Linux 1 13 configuring third party tender authorization 1 15 enabling the financial network technician 1 15 setting the merchant number 1 15 configuring transaction IDlengths 1 11 changing transaction ID lengths 1 12 understanding transaction IDs 1 11 creating or updating database tables 13 5 customization 4 1 D database design changes tables views B 28 order item table OR LTM B 29 Point of Service department history table LE HST PS DPT B 29 register history table LE HST WS B 30 retail transaction table TR RTL B 28 sales return line item table TR LTM SLS RIN B 29 sales return tax line item table TR LTM SLS RTN TX B 29 shipping methods table CO SHP MTH B 30 shipping record table SHP RDS SLS RTN B 30 shipping record tax table SHP RDS SLS RTN TX B 31 store history table LE HST STR B 30 tax group rule table RU TX GP B 28 Index 1 tax history table HST TX B
310. ource bundle Model The business logic communicates with beans through screen models Each bean configurator contains a screen model and the configurator must determine if any action is to be taken on the model Classes exist for each model C I Manager The UI Manager provides the API for application code to access and manipulate user interface components The UI Manager uses different methods to call the UI Technician UI Technician The UI Technician controls the main application window or display The UI Technician receives calls from Point of Service tours locates the appropriate screen and handles the setup of the screens through the UI Subsystem ci ISubsystem The UI Subsystem provides UI components for displaying and editing Point of Service screens The UI subsystem enables application logic to be completely isolated from the UI components This component is specific to the technology used such as Swing or JSP Adapters Adapters are used to provide a specialized response to bean events Adapters can handle the events or the event can cause the adapter to manipulate a target bean Adapters implement listener interfaces to handle events on the UI Adapters come from the Swing API of controls and support JavaPOS compliant devices Listeners Listeners provide a mechanism for reacting to user interface events Listeners come from the Swing API of controls and support JavaPOS compliant devices Business O
311. ourstore pos services tender GetCheckInfoSite java shows a reference to the bus Example 9 2 GetCheckinfoSite java Retrieving Cargo from Bus TenderCargo cargo TenderCargo bus getCargo Tour Framework 9 3 Tour Components Tourmap One problem of tour scripts is that they can be difficult to customize for a particular retailer s installation The new tourmap feature allows customizations to be made more easily on existing tour scripts Tour components and tour scripts can be referenced by logical names in the tour script and mapped to physical names in a tourmap file making it easier to use the product tour and just change the pieces that need to be changed for a customer implementation In addition with tourmaps components and scripts can be overridden based on a country so files specific to a locale are implemented when appropriate The tourmap does not allow you to modify the structure of the tour specifically the following Does not allow you to add or remove sites Does not allow you to add or remove roads and aisles Does not allow you to specify a tour spanning multiple files for example tour inheritance Of particular note is the last bullet the tourmap does not allow you to assemble fragments of xml into one cohesive tour script After the application is loaded there is only be one tour script that maps to any logical name The functionality of tourmapping is implemented via one or more tourm
312. owing diagram illustrates this pattern Figure 2 8 Factory Pattern Client Code Client Code requests Factory returns Object Type returns Info creates creates Object A Object A Command Pattern Sometimes it is necessary to issue requests to objects without knowing anything about the operation being requested or the receiver of the request The Command pattern encapsulates a request as an object The design abstracts the receiver of the Command from the invoker The command is issued by the invoker and executed on the receiver The following diagram illustrates the Command pattern It is used in the design of the Manager Technician framework 2 10 Oracle Retail Point of Service Operations Guide Design Patterns Figure 2 9 Command Pattern Command Creates Executes Receiver Sends command reference Singleton Pattern The Singleton pattern ensures a class only has one instance and provides a single global point of access It allows extensibility through subclassing Singletons allow retailers to access the subclass without changing application code If a system only needs one instance of a class across the system and that instance needs to be accessible in many different parts of a system making that class a Singleton controls both instantiation and access The following patterns illustrates the Singleton pattern Technical Architecture 2 11 Design Patterns Figure 2 10 Singleton P
313. owing is an example of how to disable the criteria UPDATE CO CRTR PLCY PW SET SC PLCY CRTR 0 WHERE ID CRTR 1 AND ID PLCY 1 Note that 0 is used for disabling the criteria You can disable as many criterias as you want Password Policy and Password Change Do the following to change your password 1 Click Administration 2 Click Change Password 3 Provide the following a Your user ID a Your current password 4 Entera new password 5 Enter the new password again 6 You will see a confirmation screen 7 Click Enter Do the following to add a user 1 Click Administration 2 Login 3 Click Security 4 Click Employee 5 Click Add 6 Click Standard or Temp 7 Enter the following a First name a Last name Employee ID 8 Select a role for example Administrator 9 Select a status for example Active 10 Select a Preferred Language for example English United States 1 8 Oracle Retail Point of Service Operations Guide Reason Codes 11 Click Enter 12 A screen with the new user s temporary password is shown Note This temporary password is provided on this screen only Record this temporary password The password is not recorded or logged and is not provided by email Administrators must provide this temporary password to the user Reason Codes Reason codes are items offered to the end user as choices in lists for example the set of possible reasons for a price override The
314. own If the mechanic is able to restore the cargo to a valid state the mechanic informs the bus driver by traversing to the Resume system site The bus driver subsequently resumes driving by resetting the bus at the site where the breakdown occurred Ifthe mechanic is not successful in repairing the bus the mechanic stops the bus and mails the parent tour a letter informing it of the breakdown a If there is no mechanic within the tour the bus driver stops the bus and mails the parent tour a letter informing it of the breakdown The bus completes its tour when it arrives at the final site 9 10 Oracle Retail Point of Service Operations Guide Role of Java Classes The exception region includes the functionality for handling exceptions It can contain sites roads and stations just like the service region There are two ways to exit the exception region at the Return system site or the Resume system site Return shuts down the application and Resume starts the application at the last visited site or station in the service region The mechanic operates within the exception region of the tour Any exception that occurs within the tour region where the bus driver operates is converted to an Exception letter and is passed to the mechanic When the exception is being processed the mechanic assumes control of the bus and processes all incoming letters If the application developer has created an exception region for the mechanic th
315. pdate the Spring ServiceContext xml file to point the various infrastructure bean IDs to any alternate implementation classes you want to provide Bean ID service AuditLogger Class com 360commerce commerceservices audit AuditLoggerService Because the Audit Log is using Log4J as the underlying logging mechanism you can also control the logging layout location and content by updating the 1094 xml file a All log events will be logged at the INFO level so to disable logging entirely change the log level to WARN or above for the event package path Additionally each logging event is represented in the 10g4j xm1 file through the event s package path so to filter a specific event just update that event s level to WARN or above D 2 Oracle Retail Back Office Operations Guide Configuring the Audit Log a As with all Log4J deployments updating the layout of the log events or their location is a matter of setting the layout in the configuration file and updating the appender to point to a different file name Another option is to use an entirely different appender to write to a database or even a JMS queue The following is an example of settings that might be used in a log4j xml file Appendix Audit Logging D 3 Configuring the Audit Log Example D 1 Audit Log Configuration Changes in the log4j xml File lt AUDIT Logging gt category name com 360commerce commerceservices audit event lt The followi
316. plication Integration Oracle Retail Point of Service Client InventoryLookupSite PSIInventoryManager ItemLookupSite StoreDetailSite Inventory Management Oracle Retail Point of Service Application Server DataTechnician InventoryWS PSIInventoryTechnician Inventory Management Stores Application Database Database For more information about the integration of Oracle Retail Point of Service with an inventory management application see Oracle Retail Strategic Store Solutions Implementation Guide Oracle Retail Strategic Store Solutions Integration E 2 Oracle Retail Back Office Operations Guide F Appendix Automated E Mail Messages Service Alert automatically creates e mail messages for customers when certain conditions are met Each transaction has a status associated with it As each step in the order process is completed the status is automatically updated to reflect these changes Whenever the order status changes to Filled Partial Completed or Cancelled an automatic e mail message is created The order information is inserted into an e mail file and sent to the server The created e mail messages are stored in the database Point of Service does not send the e mail messages to customers The retailer is responsible for sending the e mail messages The stored messages can be found in the table DO EMSG The following table lists the status values for each e mail message as found in the column ST EMSG Ta
317. pment Unlike System out Log4 calls are naturally written to a file and can be suppressed when desired Log exceptions where you catch them unless you are going to rethrow them This is preserves the context of the exceptions and helps reduce duplicate exception reporting Logging uses few CPU cycles so use debugging statements freely Use the correct logging level FATAL crashing exceptions ERROR nonfatal unhandled exceptions there should be few of these INFO ife cycle heartbeat information DEBUG information for debugging purposes The following sections provide additional information on guarding code when to log and how to write log messages Guarding Code Testing shows that logging takes up very little of a system s CPU resources However if a single call to your formatter is abnormally expensive stack traces database access network IO large data manipulations etc you can use Boolean methods provided in the Logger class for each level to determine whether you have that level or better currently enabled Jakarta calls this a code guard General Development Standards 6 9 Common Frameworks Example 6 2 Wrapping Code in a Code Guard if log isDebugEnabled log debug MassiveSlowStringGenerator message An interesting use of code guards however is to enable debug only code instead of using a DEBUG flag Using Log4J to maintain this functionality lets you adjust it at runt
318. probes value where value is an interval you specify Setting the RMI Timeout Interval for All Manager and Technician Calls You can change the RMI timeout interval values for connections and reads in the OracleRetailStore lt Client or Server gt pos bin comm properties file The value for the following properties apply to all manager and technician calls unless overridden by a communication scheme for a specific call comm socket connectTimeout Specifies how long to wait for a socket connection to succeed The value is in milliseconds comm socket readTimeout Specifies how long to wait before a read times out The value is in milliseconds This property causes the read to time out even if the socket is alive and well and transmitting data Note These values control the application timeout when trying to establish a socket connection or read from a socket Backend System Administration and Configuration 1 13 Configuring RMI Timeout Intervals Setting Application Timeout Values on Linux Do the following when configuring the application timeout values for Point of Service on Linux 1 Set the socket timeout values in the comm properties file comm socket readTimeout 25000 comm socket connectTimeout 25000 Set the RMI property values in the startup script for example in ClientConduit sh SJAVA MEM OPTIONS Dsun rmi transport tcp responseTimeout 5000 Other possible values include the follo
319. programming to accomplish the navigation It provides the ability to back up from a tour or process by tracking the state of the cargo and the location of the tours TourCam is turned on or off at the tour level If there is no reason to back up TourCam should not be turned on The ability to backup or restore data to a previous state is accomplished using TourCam TourCam is used to record the bus path through the map as well as the associated cargo changes TourCam is described using the TourCam metaphor The words in italics in the following paragraphs are the TourCam specific terms A bus driver records the progress along the bus route using TourCam The bus driver records snapshots of the passenger cargo immediately before traversing a road Each snapshot is mounted in a frame within the current tape The frame is stamped with the current road Using this method the bus driver can retrace steps through the map If the frame is indexed the driver stops at that index when retracing his steps The bus driver may adjust the TourCam tape while the bus traverses a road between sites a The bus driver can advance the current TourCam tape and add the next road and snapshot of the cargo as a frame in the tape a The bus driver can discard the current TourCam tape and replace it with a blank tape a The bus driver can rewind the current tape to restore the cargo to be consistent with a previously visited site a The bus driver can splice th
320. pts by locking out the user ID after not more than six attempts a Set the lockout duration to thirty minutes or until an administrator enables the user ID 1 6 Oracle Retail Point of Service Operations Guide Password Policy Once the desired password policy has been defined it is applied to all authorized users of the Oracle Retail Point of Service Oracle Retail Mobile Point of Service Oracle Retail Back Office Oracle Retail Labels and Tags and Oracle Retail Central Office application once per database Note Default settings for Password Policy are PCI DSS compliant Changes to these default settings can invalidate this compliance For more information about Password Policy see Appendix Best Practices for Passwords in the Oracle Retail Point of Service Installation Guide Password Reset Users locked out of the system must request the assistance of an administrator to have his her password reset The administrator resets the password by selecting the reset password option in Oracle Retail Central Office Oracle Retail Back Office or Oracle Retail Point Of Service when applicable When a user password is reset the system generates a temporary random password The reset password status is immediately set to expired prompting the user to change the temporary password at the next successful login Each time a password is changed the previous password is stored according to the Passwords must not match any of
321. r lt sitename gt Tour Framework 9 15 Tender Tour Reference Cargo Restoration One of the primary strengths of TourCam is the ability to restore the bus cargo to a previous state TourCamlfc provides a mechanism for the bus driver to make and subsequently restore a copy of the cargo when specified by road attributes Classes that implement TourCamlfc must implement the makeSnapshot and restoreSnapshot methods An example of this is src com extendyourstore pos Nservices inquiry giftreceipt GiftReceiptCargo java Example 9 25 GiftReceipiCargo java TourCamlfc Implementation public class GiftReceiptCargo implements CargoIfc TourCamIfc body of GiftReceiptCargo class public SnapshotIfc makeSnapshot return new TourCamSnapshot this public void restoreSnapshot SnapshotIfc snapshot throws ObjectRestoreException GiftReceiptCargo savedCargo GiftReceiptCargo snapshot restoreObject this setPriceCode savedCargo getPriceCode this setPrice savedCargo getPrice j Snapshotlfc provides a mechanism to create a copy of the cargo The class that implements Snapshotlfc is responsible for storing information about the cargo and restoring it later by calling restoreObject A shuttle allows the optional transfer of cargo from the calling tour to the nested tour during backups If defined this shuttle is used during rewind and splice backup procedures The classname for the shuttle is specified
322. r Code to Retrieve Parameter 10 17 parameterText en US properties Text Bundle s esses 10 17 application xml Definition of Parameter sse eee enn 10 17 CollapsedConduitFF xml Data Manager Configuration 11 4 CollapsedConduitFF xml Tax Technician Configuration sse 11 6 ParameterManager java Valet Passed By Manager sss 11 6 Sample Manager and Technician Configuration ocococonenenonnnnonennnnnronencannnnrnnnnrarannnnnnnnnranos 11 7 Sample Manager in Tour Code sess eee e eene nnen 11 7 Sample Mana get Class rete erint eet per etie d at 11 7 Sample Valet Class csi eben terere e ie bte de Peer de Hie thes 11 8 Sample Technician Classis sce energie tutis dtt te re tee indicas 11 9 ClientConduit xml Code to Configure Parameter Manager sess 11 10 ClientConduit xml Code to Configure Parameter Technician sss 11 10 BrowserControlSite java Tour Code Using ParameterManagerlfc 11 11 ClientConduit xml Code to Configure UI Manager sse 11 11 ClientConduit xml Code to Configure UI Technician sss 11 12 GetCheckInfoSite java Tour Code Using POSUIManagerlfc sss 11 13 11 15 CollapsedConduitFF xml Code to Configure Journal Manager ss 11 13 11 16 CollapsedConduitFF xml Code to Configure Journal Technician
323. rJob and service_FrequentConsumerJob service_ InfrequentConsumerJob in ServiceContext xml bean id service FrequentProducerJob class org springframework scheduling quartz JobDetailBean property name jobClass gt value com extendyourstore foundation iddi DataSetProducerJob value property property name jobDataAsMap gt map entry key producer value ref service_DataSetService gt lt entry key dataSets gt lt list gt lt ref local service_config_EMP_KEY gt lt ref local service_config_PRC_KEY gt ref local service_config_TAX_KEY gt lt ref local service_config_NEW_KEY gt lt list gt lt entry gt lt map gt lt property gt bean bean id service FrequentConsumerJob class org springframework scheduling quartz JobDetailBean property name jobClass gt lt value gt com extendyourstore foundation iddi ClientDataSetController lt value gt lt property gt property name jobDataAsMap gt map entry key dataSets gt list ref local service config EMP KEY ref local service config PRC KEY ref local service config TAX KEY Appendix Intra Store Data Distribution Infrastructure A 17 Extensibility ref local service config NEW KEY lt list gt lt entry gt lt map gt lt property gt bean Add CREATE TABLE scripts and insert scripts to newly added DataSet in CreateSchema sq l CREATE
324. ransaction class public void addSendPackageInfo ShippingMethodIfc shippingMethodUsed CustomerIfc shippingToCustomer ItemTax itemTax itemProxy initializeItemTax getTransactionTax getDefaultRate shippingMethodUsed getTaxable SendPackageLineItemIfclineItem newSendPackageLineItem shippingMethodUsed shippingToCustomer itemTax Enhancing POSLog Interface class Log Retail Transaction Class The implementation of the following member functions in the LogRetailTransaction class must be enhanced to support the new inclusive item tax amount protected void addBaseElements TransactionIfc transaction getItemInclusiveTaxAmount void makeTaxLineItems SaleReturnTransactionIfc retailTrans Log Sale Return Line Item Class The implementation of the following member functions in the LogSaleReturnLineltem class must be enhanced to support the new getInclusiveTaxFlag and the getItemInclusiveTaxAmount public Element createElement SaleReturnLineItemIfc srli TransactionIfc transaction Document doc Element el boolean voidFlag int sequenceNumber protected createRetailTransactionTaxElements SaleReturnLineItemIfc srli RetailTransactionItemIfc el The implementation of the following member functions in the LogSaleReturnLineltem class must be enhanced to support the new shipping details RetailTransactionDelivery360Ifc addShippingDetails SaleReturnLineItemIfc srli IXRetail Constants V21 Ifc Class T
325. ratedListValidator ackage com extendyourstore foundation manager parameter gt PRO PRO PRO PRO PRO PRO VA VAL VAL lt PA A A A A A A CIO A PRO PRO PRO PRO PRO PRO PRO PRO VA A A A AA A A AWA A PERTY PERTY PERTY PERTY PERTY PERTY PERTY PERTY PERTY PERTY PERTY PERTY PERTY PERTY propname member propname member propname member propname member propname member propname member LIDATOR gt UE value SEK gt UE value USD gt RAMETER gt PARAMETER final N hidden N name GiftCertificatesAccepted type LIST gt VALIDATOR class EnumeratedListValidator ackage com extendyourstore foundation manager parameter gt propname member propname member propname member propname member propname member propname member propname member propname member LIDATOR gt propvalue None gt propvalue SEK propvalue USD propvalue CAD gt propvalue GBP gt propvalue EUR gt propvalue None gt propvalue SEK gt propvalue USD gt propvalue CAD gt propvalue MXN gt propvalue EUR gt propvalue JPY gt propvalue GBP gt lt VALUE lt VALUE lt VALUE lt VALUE lt VALUE lt VALUE value SEK gt value USD gt value CAD gt value MXN gt value EUR gt value JPY gt C 6 Oracle Retail Back Office Operations Guide Configuring a New Base Currency
326. ration SESSION name ScannerSession devicename defaultScanner class ScannerSession package com extendyourstore foundation manager device defaultmode MODE RELEASED gt 2 Define a Session class to get input that extends InputDeviceSession or DeviceSession Each type of device has a Session class defined in src com extendyourstore foundation manager device A device session like CashDrawerSession would extend DeviceSession whereas an input device session like a ScannerSession would extend InputDeviceSession Sessions are not instantiated in Tour code but are accessed by UI scripts in device connections 3 Define an ActionGrouplfc interface that extends DeviceActionGrouplfc This class should also be located in src com extendyourstore pos device The following line of code shows the header of the CashDrawerActionGrouplfc class public interface CashDrawerActionGroupIfc extends DeviceActionGroupIfc 4 Create the ActionGroup class This class should be located in src com extendyourstore pos device and its purpose is to define specific device operations available to Point of Service The following line of code shows the header of the CashDrawerActionGroup class public interface CashDrawerActionGroup extends CashDrawerActionGroupIfc 5 If one does not already exist create a device connection in the UI Subsystem file Device connections in the UI Subsystem files allow the application to receive input dat
327. rations Guide Domain Object Reference Table 12 1 lists files are involved in the formation of CodeLists All are found in src com vextendyourstoreNdomain utility Table 12 1 CodeListMap Object Classes and Interfaces Class or Interface Description Important Methods CodeEntry This class handles the functions void setText String associated with an entry in a list of codes void setCode int void setEnabled boolean String getCodeString CodeList This class is used for handling lists of CodeEntryIfc getEntries codes which map to strings such as void setEntries CodeEntryIfc reason codes void addEntry CodeEntryIfc CodeEntryIfc findListEntry String CodeListMap This class is used for the collection of CodeListlfc getLists code lists used in applications CodeListlfc getCodeListInstance String CodeListIfc add CodeListIfc CodeConstantslfc This class defines constants used for the This class does not contain methods implementation of CodeList and CodeEntry It includes the constants for the lists currently defined such as TimekeepingManagerEditReasonCodes and TillPayOutReasonCodes Retail Domain 12 5 Domain Object Reference Currency The following class diagram illustrates the relationship between these classes Figure 12 1 CodeListMap Class Diagrams EYSDomainlfc CodeConstantslfc from utility from utility lt lt interface gt gt lt lt interface
328. requentProducerserv ice TriggerInfrequentProducer with the Quartz SchedulerFactoryBean org springframework scheduling quartz SchedulerF actoryBeanservice TriggerFrequentProducerserv ice TriggerInfrequentProducer service CurrencyProducer DataSet Key definition for com extendyourstore domain iddi CurrencyDataSetProduce dataSetKey service config CUR Currency r KEY dataExportFilePath DataSetProducer service config DataExportFilePath dataExpo rtZipFilePath service config DataExportZipFilePath fileWr iter service FileWriter service TaxProducer DataSet Key com extendyourstore dataSetKey service config definition for Tax domain iddi TaxDataSetProd TAX DataSetProducer ucer KEY dataExportFilePath service config DataExportFilePath dataExpo rtZipFilePath service config DataExportZipFilePath fileWr iter service FileWriter service DataSet Key com extendyourstore dataSetKey service config EmployeeProducer definition for domain iddi EmployeeDataSe EMP_ Employee Producer tProducer KEY dataExportFilePath service config DataExportFilePath dataExpo rtZipFilePath service config DataExportZipFilePath fileWr iter service FileWriter service DataSet Key com extendyourstore dataSetKey service config AdvancedPricingProducer definition for domain iddi PricingDataSetPr PRC_ Advanced Pricing oducer KEY dataExportFilePath DataSetProducer service config DataExportFilePath dataExpo rtZipFilePat
329. required field s must have data Example 10 22 tender xml ValidateActionListener XML tag CONNECTION listenerInterfaceName ValidateActionListener listenerPackage com extendyourstore pos ui behavior sourceBeanSpecName GlobalNavigationPanelSpec targetBeanSpecName CreditCardSpec gt The fields that are required must be specified for this listener in the overlay specification for the target bean as in the following XML from tenderuicfg xml UI Framework 10 15 Text Bundles Example 10 23 tenderuicfg xml ValidateActionListener Required Fields ASSIGNMENT areaName WorkPanel beanSpecName CreditCardSpec gt lt BEANPROPERTY propName RequiredValidatingFields propValue CreditCardField ExpirationDateField gt lt ASSIGNMENT gt Text Bundles receiptText Currently over forty text bundles exist for the Point of Service application Many of these bundles are service specific A properties file with the same name exists for every language located in locales V locale name NconfigNuiNbundles with the locale name appended to the filename For example the Customer service would have its text defined in the customerText en US properties file in English A similarly named properties file would exist for each locale Because they are discussed earlier in the chapter service specific bundles and the dialogText bundle are not described in this section From src com extendyourstore pos config bundles BundleCo
330. return line item class com extendyourstore domain lineitem SaleReturnLineltem is responsible of creating and returning an array of reverse item tax rules for reverse transactions other than returns The tax rules are created based on the tax information saved in the original transaction s sales return tax line items protected ReverseItemTaxRuleIfc getReverseTaxRules This function must be enhanced to populate a reverse item tax rule s inclusive tax flag from the sales return tax line item of the original transaction For a post void transaction the following function in class com extendyourstore domain transaction Void Transaction must be enhanced to negate the inclusive tax total of the original transaction protected void setVoidTransactionTotals TransactionTotalsIfc origTotals Appendix Value added Tax B 3 VAT calculation The same function must be enhanced to negate shipping charge tax as well see Calculate VAT For Shipping Charges for details Calculate VAT For Shipping Charges Enhance Shipping Method Table And Domain Interface class Each shipping method will take a boolean taxable flag and a tax group ID These two combined define how VAT is calculated for the shipping charges For details on the db schema enhancements on shipping method table CO SHP MTH see Shipping Methods Table CO SHP MTH For details on enhancements on the domain shipping method interface class see Shipping Method Interface class The
331. rface This is an interface describing all the information the internal tax engine needs to perform the tax calculation of a transaction line item The following API must be added to the interface com extendyourstore domain lineitem TaxLineItemInformationlfc to set the item inclusive tax amount public void setItemInclusiveTaxAmount CurrencyIfc value Sale Return Line Item Class This class com extendyourstore domain lineitem SaleReturnLineltem implements the tax line item information interface It must implement the new api public CurrencyIfc getItemInclusiveTaxAmount public void setItemInclusiveTaxAmount CurrencyIfc value It should delegate the task to the contained item price object Enhancing Financial Totals Interfaces classes Financial Tax Totals Interface Class An instance of a domain financial tax totals interface class is used to hold tax totals of sales return tax line items of the same tax group rule It must be enhanced to include an inclusive tax flag The following new member functions will be added to interface com extendyourstore domain financial TaxTotalsIfc and class com extendyourstore domain financial TaxTotals B 18 Oracle Retail Central Office Operations Guide New Or Changed Classes services public boolean getInclusiveTaxFlag by default it is false public void setInclusiveTaxFlag boolean flag An instance of the financial tax totals interface class is created from an instance of t
332. rity Id8888601 sse eene nennen nennen B 13 Enter Business Date Event Components sss entente tenentes D 7 Start of Day Event Components enciende e eR fete e Foe reins D 7 End of Day Event Compotients incest niente ite eiie edite e D 9 Register Open Event Components sissien aag Ap e Denpi e D 10 Register Close Event Components sse A E E D 11 Transaction Tendered with Credit Card Event Components sess D 11 Transaction Tendered with Debit Card Event Components sss D 12 Modify Employee Information Event Components sss D 13 Modify Temporary Employee Information Event Components sss D 14 Add Employee Event Components sese eee eene nnns D 14 Add Temporary Employee Event Components sss D 15 User Login Event ComponentS ocenenonooocononcncnnnnncnnncnnananncncnnnnannnncn nana ana caca cana rara entente ranas D 16 User Lock Out Event Components sss sieri E Rei R EA nenne D 16 User Logout Event Components sse nenne entente tete ntn teen D 17 Change Password Event Components sse eene D 18 Reset Employee Password Event Components sss D 18 Reset Temporary Employee Password Event Components sss D 19 Edit Role Event Components sesei enera hie eeo iEn E EEA nennen tenente nnne nenne D 19 Add Role Event Components bee muere t een d
333. rmation Figure 13 4 Diagram Saving a Transaction SaveRetailTransactionAisle Scope Point of Service UtilityManagerlfc Scope Point of Service TransactionWriteDataTransaction Scope Domain Application Configuration Script DefaultDataTechnician xml Scope Point of Service UtilityManagerlfc utility Utility saveTransaction Data Transaction TransactionWriteDataTransaction 2 Data Command SaveRetailTransaction 3 JdbcSaveRetailTransaction SaveRetailTransactionLineltems EH dbcSaveRetailTransactionLineltems SaveTenderLineltems 2 JdbcSaveTenderLineltems saveTransaction new Transaction WriteDataTransaction SaveStoreCredit dbTrans saveTransaction Data Storage 5 4 JdbcSaveTenderLineltems DataAction gt SaveRetailTransaction DataAction gt SaveRetailTransactionLineljeyus DataAction 2 SaveTenderLineltems DataAction gt SaveStoreCredit Execute this JDBC Driver The following descriptions explain the labels in the figure When creating the credit card tender option only the site and road classes for the Tender Tour and the JdbcSaveTenderLineltems class were changed 1 SaveRetailTransactionAisle uses the Utility Manager to call the saveTransaction method as shown in Example 13 6 The utility saveTransaction method uses the data transaction class TransactionWriteData Transaction to save the retail transaction The following code samples show details for the previous figur
334. rst the tender line item must be saved to the tender table using the insertlenderLineltem method This code already existed for the other tender options Second the credit data must be saved to the new database table using SQL factory methods Example 13 14 JdbcSaveTenderLineltems java SQL Factory Methods public class JdbcSaveTenderLineItems extends JdbcSaveRetailTransactionLineItems implements ARTSDatabaselfc public void insertCreditDebitCardTenderLineItem JdbcDataConnection dataConnection TenderableTransactionIfc transaction int lineItemSequenceNumber TenderChargeIfc lineItem throws DataException Update the Tender Line Item table first insertTenderLineItem dataConnection transaction lineItemSequenceNumber lineItem SQLInsertStatement sql new SQLInsertStatement Table sql setTable TABLE_CREDIT_DEBIT_CARD_TENDER_LINE_ITEM Fields sql addColumn FIELD RETAIL STORE ID getStoreID transaction sql addColumn FIELD WORKSTATION ID getWorkstationID transaction sql addColumn FIELD BUSINESS DAY DATE getBusinessDayString transaction sql addColumn FIELD TENDER AUTHORIZATION DEBIT CREDIT CARD ACCOUNT NUMBER getCardNumber lineItem sql addColumn FIELD TENDER AUTHORIZATION CARD NUMBER SWIPED OR KEYED CODE Store Database 13 15 Example of Saving Data Storing Tender Information getEntryMethod lineItem sql addColumn FIELD TENDER AUTHORIZATION DEBIT
335. rstore cargo SomeCargo Sites correspond to nodes in a finite state machine and cities in the tour metaphor Sites are usually used as stopping places within the workflow Arrival at a site usually triggers access to an external interface such as a graphical user interface a database or a device Sites always have a corresponding siteaction class The tender xml code sample below contains the site information from the two main parts of a tour script the XML elements SERVICECODE and MAP respectively Example 9 6 tender xml Definition of Site Class lt SITEACTION class GetTenderSite gt Example 9 7 tender xml Mapping of Site to SiteAction SITE name GetTender siteaction GetTenderSite gt definition of lanes SITE Tour Framework 9 5 Tour Components With the concept of Tourmap a site s siteaction can be overridden with another class This allows you to override the class name for a customer implementation yet still keep the same workflow for the customer as in the product The following tourmap definition specifies the class to override and the new class to use in place of the original class Note that replacewith is a fully qualified classname with both package and classname specified unlike the class attribute Example 9 8 tourmap xml Overriding Siteaction With Tourmap SITEACTION class GetTenderSite replacewith com extendyourstore actions SomeOtherSiteAction gt System Sites System sites
336. s Example 10 3 tenderuicfg xml PromptAndResponseBean Property Definition lt OVERLAYSCREEN gt defaultScreenSpecName ResponseEntryScreenSpec resourceBundleFilename tenderText SpecName COUPON AMOUNT ASSIGNMENT areaName PromptAndResponsePanel beanSpecName PromptAndResponsePanelSpec gt lt BEANPROPERTY propName promptTextTag propValue CouponAmount Prompt gt lt BEANPROPERTY propName responseField propValue com extendyourstore pos ui beans CurrencyTextField gt lt BEANPROPERTY propName maxLength propValue 9 gt lt ASSIGNMENT gt lt OVERLAYSCREEN gt The string that should be displayed as the prompt text is defined in a resource bundle In the resource bundle for the Tender service which for the en_US locale is defined in locales en_US config ui bundles tenderText_en_US properties the following includes a line that defines the CouponAmountPrompt Example 10 4 tenderText en US properties PromptAndResponseBean Text Bundle Example PromptAndResponsePanelSpec CouponAmountPrompt Enter coupon amount and press Next Tour Code In the Tour code bean models are created to hold the data on the bean components Table 10 7 lists some of the important methods in the PromptAndResponseModel class Table 10 7 PromptAndResponseModel Important Methods Method Description boolean isSwiped Returns the flag indicating whether a card is swiped void setsScanned boolean Sets the flag
337. s 8 10 PEGA sess A A O 8 10 RECIPES it ede tee e LT een tet re AAA A RIA 8 10 VRE POLES E 8 11 Domain Package ue ei di N E 8 11 Retail DOMat hl erii eb ones at tele bet e ii tet ebbe e e e e te eee 8 12 DomainObjectPactoty eco eei iege ibas 8 12 Retail Domain Object RDO J ere a te etia e vedete dia 8 12 Database eire pee eMe hen eee E 8 13 Data Manager and Technician Scripts sees eee nennen 8 13 Data Actions and Operations eene nnne nennen nennen 8 13 Data Tran actions aie etii meet te rettet rere ae ed de T e i n 8 14 9 Tour Framework Tour Components iiss isa ES AAA A AAA eti quin ATA 9 1 Tour Metaphora aeeeme dotada 9 1 Service and Service REO iii ii da 9 3 DU A A A Gi el eA 9 3 viii Ei 1 e AA A a E AAA AA A A AA 9 5 MAS A ed be RAN Re ON teal 9 5 yO UN ed d casn E oce imei 9 6 Letter cuidas beo iat Nase le lo e ut e ida baee 9 6 Roads ete EE Re HERR Pe nti eor ire e cert tied es e iba th and 9 7 Common Roads cia eiit etii elit ais 9 7 Adsles t Re edite s eter tette ee f e e 9 8 Stations and Shu ttl s ie eee Heer qat po tede pe n ee epe dc 9 9 ATTE P 9 10 Exception Reg Oros caca Bed ego tani a ld 9 10 Role of Java Classes eerte epe re RR eee eet e pe ee Ee es 9 11 Tout Cam oe ore eere a emerat a Lee ea bien 9 12 Attributes seas ena ttn eee Een Ge tee eni eiit EN eil es ER ien 9 12 Le
338. s to traverse the next alternative road that matches the letter If the driver cannot find any passable road he or she returns to the garage When you arrive at a site or traverse a lane you may perform an action to achieve your goal like take a picture of the countryside Tour Framework 9 1 Tour Components Upon arriving at a transfer station you immediately transfer to another service and you load a portion of your cargo onto a shuttle and board the shuttle The shuttle takes you and your cargo to the bus that runs in the map of the other tour Upon arrival at the new bus you unload the shuttle and load the new bus Then the new driver starts the bus and your journey begins in the new tour When the transfer tour itinerary is complete you load whatever cargo you want to keep onto a shuttle and return to the original tour bus At that time you unload the shuttle and continue your tour These tour script components map to terms in the metaphor The tour metaphor provides labels and descriptions of these components that improve understanding of the system as a whole Table 9 1 includes a metaphor description and a technical description for the basic metaphor components Table 9 1 Metaphor Components Name Metaphor Description Technical Description Service A group of related cities for An implementation of workflow and example A Mediterranean Tour behavior for a set of functionality
339. s ui beans The beans described in this section are commonly used in screen definitions Each description provides bean properties that can be defined in assignments of beans to areas By the Java reflection utility properties defined in XML files invoke set or create methods in the bean class that accept a single string parameter or multiple string parameters The following section covers the PromptAndResponseBean DatalnputBean NavigationButtonBean and DialogBean PromptAndResponseBean The PromptAndResponseBean configures and displays the text in the top areas of a Point of Service screen called the prompt region and the response region This bean is implemented by src com extendyourstore pos ui beans PromptAndResponseBean java and its corresponding model PromptAndResponseModel java Bean Properties and Text Bundle PromptAndResponsePanelSpec is the name of a bean specification that defines the implementation of the PromptAndResponseBean class The following code sample shows the bean specification available to all screens defined in src com extendyourstore pos config defaults defaultuicfg xml 10 4 Oracle Retail Point of Service Operations Guide Beans Example 10 2 defaultuicfg xml Bean Specification Using PromptAndResponseBean BEAN specName PromptAndResponsePanelSpec beanClassName PromptAndResponseBean beanPackage com extendyourstore pos ui beans configuratorPackage com extendyourstore pos ui
340. screen select the group you want to view or edit The Reason Code List screen appears Note Ifthe Edit Reason Codes parameter is set to No the reason codes are for viewing only and the ability to set default edit add delete or change a reason code is not offered Figure 1 5 Reason Code List Screen Oracle Retail Point of Service Select a reason code and choose an option or choose Add or Delete to AO add or delete a reason code in the group plo d Reason Code Group Timekeeping Reason Codes Default Start of Day Reason Code Start of Day z Break In Break Out Lunch In Move Up Move Down No Default 129 Guest User Guest User none 8 6 07 1 21 PM Reason Code List Online Fl FH F12 Esc Enter 3 Select one of the following T m m m mn zm Ri iu ww co M fo ul at w N a To delete a code select it then choose F5 Delete To change the position of a code in the list select it then choose F6 Move Up or F7 Move Down To add a code choose F4 Add The Add Reason Code screen appears Enter a name and database ID then choose Enter Next To change the name or database ID of a code select the code in the list and choose F3 Edit The system displays the Edit Reason Code screen Edit the values shown then choose Enter Next 1 10 Oracle Retail Point of Service Operations Guide Configuring Transaction ID Lengths Figure 1 6 Edit Reason Code Screen Oracle
341. scripts have been swapped Example 13 4 mysql builddb bat Changes to Implement Foreign Key Checking COPY B _360COMMON_MYSQL_PATH mysql_prologue sql 360COMMON LOGS PATH CreateS sql 360COMMON LOGS PATH CreateK sql amp 360COMMON LOGS PATH V InsertD sql _360COMMON_DB2_PATH mysql_epilogue sql 360COMMON LOGS PATH MFinalSQL sq 7 Runc OracleRetailStore pos bin dbbuild bat to rebuild the database dbbuild bat data level data level can be base data seed data test data demo data base data contains just enough to get the build running a seed data should contain enough to build and run unit functional tests a test data will contain the rest of the data that you expect from previous builds The dbbuild bat script performs the following operations a Executes CreateTable sql scripts Store Database 13 7 Example of Saving Data Storing Tender Information Performs inserts and adds keys Creates flat files in C OracleRetailStore pos bin dat 8 After you verify that the table builds successfully and the code referencing the table works check your updates into source control Example of Saving Data Storing Tender Information This section describes how to save data to the database using credit card tender information as an example When completing a retail transaction a customer can offer multiple forms of payment for a purchase Each form of payment is a different tender and the
342. se choices normally vary for each corporation and they must be configured to suit your local requirements and policies The system comes with a predetermined set of reason code groups within each group you can add remove and modify the list of codes all from within Point of Service interface For a complete list of available reason code groups contact Oracle Retail for a copy of the Reason Codes Functional Requirements To modify reason codes 1 From the Main Options screen choose F4 Administration F4 Security and F5 Reason Codes Figure 1 4 Reason Code Group Screen Oracle Retail Point of Service Choose a reason code group and press Next Reason Code Group Markdown Percent Reason Codes al No Sale Reason Codes ON OFF ReasonCodes PATCustomerIDTypes Post Void Reason Codes Price Override Reason Codes Return Reason Codes Tax Exempt Reason Codes Till Pay In Reason Codes TilPayOutApprovalCodes Till Pay Out Reason Codes TilPayrolPayOutApprovalCodes TilPayrolPayOutReasonCodes Timekeeping Reason Codes Transaction Discount By Amount Transaction Discount By Percentage Transaction Suspend Reason Codes Transaction Tax Amount Override Reason Codes Transaction Tax Rate Override Reason Codes Unit Of Measure 4 129 Guest User Guest User 8 6 07 1 21 PM Reason Code Group Online Fl F12 Esc Enter Backend System Administration and Configuration 1 9 Reason Codes 2 From the Reason Code Groups
343. set of components that must be present in the Audit Log Each event is required to have an event name event status system date and system time in which the event was completed The status of an event can either be Success or Failure If an event was executed without interruption and the data of the event is saved to persistent storage the events status is Success If a database exception occurs after the operator or system has finished the event the events status is Failure If any exception occurs before the activity is saved or if the operator selects to leave the application no event is logged The Audit Log is implemented using a log4j logging infrastructure The following is a Point of Service common configuration for the Audit Logging subsystem Appendix Audit Logging D 1 Configuring the Audit Log Figure D 1 Audit Log in Point of Service Store Environment Point of Service Audit Log Service Configurator Log Audit Logger Persistence LogFilter Point of Service Controller Store Point of Service Database Audit Log Configuring the Audit Log Note The Audit Log is a PABP requirement and must not be disabled in any capacity For more information on PABP see the Oracle Retail Strategic Store Solutions Security Implementation Guide The guide is available on Metalink Metalink Note 567438 1 You can configure the Audit Log using configuration files To update the logging infrastructure u
344. site there might be a task that you want to handle in a separate module and then return to the site when the task is complete There is one aisle for each of these cases Letter Letters generally correspond to buttons on a UI screen and responses from the database and devices Look for the events that move control from one site to another or prompt additional behavior within a site to help identify letters 9 2 Oracle Retail Point of Service Operations Guide Tour Components Follow the naming conventions in the Development Standards when deciding the names for the components It is important to understand that the tour metaphor is not only used to describe the interaction of the components but the component s names are used in the code By convention a site named GetTender has a Java class in the package named GetTenderSite java that performs the work done at the site Service and Service Region Bus Tours provide a way of grouping related functionality to minimize maintenance and increase reusability All tours provide a bus to maintain state and cargo for data storage All sites lanes and stations contained within a tour have access to these resources A service is essentially a tour but the terms service and service region are used by the Tour Guide application to refer to a tour Furthermore in the Point of Service source code the tours are found in the src com extendyourstore pos services directory Generally this chapter
345. ssage Level Description ERROR Highest severity entry critical WARN Application warning serious INFO For information only DEBUG For developer use not displayed by default application configuration yyyy mm dd is the date hh mm ss ttt bbbbbbb is the time stamp of the entry comprised of the sub fields described in the following table Table 7 3 provides time stamp fields and their descriptions Table 7 3 Time Stamp Fields Field Description hh Time of entry in hours in 24 hour format mm Minutes past the full hour ss Seconds past the last full minute ttt Milliseconds past the last full second bbbbbbb Milliseconds since the application was started Left justified and blank filled on the right out to 7 places Additional Logging Info The fixed length record header is followed by a blank space followed by the parenthesized fully qualified class name of the logging entity followed by a colon followed by a carriage return line feed pair lt classname gt lt cr gt lt 1f gt The next line in a log entry begins with 6 blank spaces and a square bracketed sequence containing the following information classname methodname lt filename gt lt linenumber gt Parentheses are included in the sequence This sequence reflects the fully qualified name of the method invoking the logging action and the source line number in the file where the logging call was made The next line s in a log en
346. ssed in the next section The following code sample defines the message displayed in the dialog This example from src com extendyourstore pos services inquiry giftcardinquiry MnquirySlipPrintAis le java shows how text on a DialogBean is defined in Java code Example 10 17 InquirySlipPrintAisle java DialogBean Label Definition DialogBeanModel model new DialogBeanModel model setResourceID Retry The resourcelD corresponds to the name of the text bundle For all dialog screens in the en_US locale dialogText en US properties contains the bundles that define the text on the screen as shown in the following code Example 10 18 dialogText en US properties DialogBean Text Bundle Example DialogSpec Retry title Device is offline DialogSpec Retry description Device offline DialogSpec Retry line2 ARG DialogSpec Retry line5 Press the Retry button to attempt to use the device again Tour Code In the Tour code bean models are created to hold the data on the bean components Table 10 12 lists some of the important methods in the DialogBeanModel class Table 10 12 DialogBeanModel Important Methods Method Description setResourcelD String Used to locate screen text in the text bundle setArgs String Sets a string of arguments to replace lt ARG gt tags in the text bundle setButtonLetter int String Sets the specified letter to be sent when the specified button is pressed setType int Sets the flag ind
347. sses STATION name AuthorizationStation servicename classpath com extendyourstore pos services tender authorization Aut horization xml targettier APPLICATIONTIER launchshuttle TenderAuthorizationLaunchShuttle returnshuttle TenderAuthorizationReturnShuttle gt lane definitions to handle exit letter from nested service STATION The servicename can be defined as a logical name like authorizationService and mapped to a filename is the tourmap file The shuttle names can also be overridden in the tourmap file This allows you to override the class name for a customer implementation yet still keep the same workflow for the customer as in the product The code samples below illustrate this Example 9 19 tourmap xml Example of Mapping Servicename tour name authorizationService file classpath com extendyourstore pos services tender authorization Authorizat ion xml file tour Example 9 20 tourmap xml Example of Overriding Shuttle Name lt SHUTTLE class TenderAuthorizationLaunchShuttle replacewith com extendyourstore shuttles NewShuttle Nested tours operate independently with their own XML script and Java classes Stations and shuttles simply provide the functionality to transfer control and data between two independent tours Tour Framework 9 9 Tour Components Signals Signals direct the tour to the correct lane when two or more lanes from the same site or station are activat
348. stem out println Thread Thread currentThread getName requesting number i URLConnection con myUrl openConnection con getContent Thread sleep 3000 catch Exception e log error Error getting connection or content e The initial expectation was for this loop to take approximately 30 seconds since the sleep 3000 would be called ten times Suppose however that con getContent throws an IOException The loop then skips the sleep call entirely finishing in 6 seconds A better way to write this is to move the sleep call outside of the try block ensuring that it is executed Example 6 6 Network Test with Shortened Try Block for int i 0 i lt 10 i try System out println Thread Thread currentThread getName requesting number i URLConnection con myUrl openConnection con getContent catch Exception e log error Error getting connection or content e j General Development Standards 6 13 Common Frameworks Thread sleep 3000 j Avoid Throwing New Exceptions When you catch an exception then throw a new one in its place you replace the context of where it was thrown with the context of where it was caught A slightly better way is to throw a wrapped exception Example 6 7 Wrapped Exception 1 try 2 Class k1 Class forName firstClass 3 Class k2 Class forName secondClass 4 Object o1 kl newInstance 5 Object o2 k
349. t Register Number For Point of Service the register number the event transpired at Role Name Selected role name Appendix Audit Logging D 19 Point of Service Transaction Events Add Role This is a Back Office and Point of Service and Central Office event This event is written to the audit log if the Settings For Audit Logging system setting INFO and the Add Role system setting INFO Event data collection starts when the operator selects Add Event data collection ends when the operator selects to save the role settings for the Role Failure Condition only due to Technical exceptions Table D 19 Add Role Event Components Event Components Notes Event Name Add Role Event Status X Success a Failure Event Originator Class Name and Method Name ClassName methodName System Date System date of the event System Time Time of the event User ID User ID performing the event Register Number For Point of Service the register number the event transpired at Role Name Entered role name Role Setting Selected role setting Includes application full name and Feature Point of Service Transaction Events Transaction Tendered with Credit Card This is a Point of Service event This event is written to the audit log if the Settings For Audit Logging system setting INFO and the Transaction Tendered with Credit Card system setting INFO The use case that i
350. t 5 3 Run Point of Service Configure the Version Control System Each file from the source code repository should be retrieved to the proper location in your sandbox To do this set the workfile location of the root of each of the product components displayed in the version control system such as 360common Each workfile location should be set to the local sandbox For example if your sandbox is named C mySandbox the root of the product components should point to CAmySandbox Run Point of Service To verify the setup run the Point of Service application using the following steps 1 Start the OracleRetailStore Database 2 Build the project 3 Run Point of Service from the IDE 5 4 Oracle Retail Point of Service Operations Guide 6 General Development Standards The following standards have been adopted by Oracle Retail product and service development teams These standards are intended to reduce bugs and increase the quality of the code The chapter covers basic standards architectural issues and common frameworks These guidelines apply to all Oracle Retail applications Basics Note Before extending the Point of Service application make sure the changes will not affect the PABP settings For more information on PABP see the Oracle Retail Strategic Store Solutions Security Implementation Guide The guide is available on Metalink Metalink Note 567438 1 The guidelines in this section cover com
351. t Till at Reconcile Detail and the tender was received lt ARG gt Purchase Order Purchase Order amount entered when Count Till at Reconcile Detail a There is an audit log entry for each Purchase Order entered a lt ARG gt the number of the Purchase Order E Check Total Entered tender amount if Count Till at Reconcile Summary Only recorded if this tender was received and this tender is included in the Tenders To Count at Till Reconcile and if Blind Close No a Total of all entered E Check when Count Till at Reconcile Detail and the tender was received lt ARG gt E Check a E Check amount entered when Count Till at Reconcile Detail There is an audit log entry for each E Check entered a lt ARG gt the number of the E check Canadian Cash Total Entered tender amount if Count Till at Reconcile Summary Only recorded if this tender was received and this tender is included in the Tenders To Count at Till Reconcile and if Blind Close No Total of all entered currencies when Count Till at Reconcile Detail and the currency was received 2 Coins Entered currency denomination amount Only recorded if a value is entered and Count Till at Reconcile Detail Canadian Check Total Entered tender amount if Count Till at Reconcile Summary Only recorded if this tender was received and this tender is included in the Tenders To Count at Till Reconcile and if Blind Close No Total of
352. t Till at Reconcile Summary Only recorded if this tender was received and this tender is included in the Tenders To Count at Till Reconcile and if Blind Close No Total of all entered Mexican Store Credit when Count Till at Reconcile Detail and the tender was received lt ARG gt Mexican Store Credit Mexican Store Credit amount entered when Count Till at Reconcile Detail There is an audit log entry for each Mexican Store Credit entered lt ARG gt the number of the Mexican Store Credit UK Gift Certificate Total Entered tender amount if Count Till at Reconcile Summary Only recorded if this tender was received and this tender is included in the Tenders To Count at Till Reconcile and if Blind Close No Total of all entered UK Gift Certificate when Count Till at Reconcile Detail and the tender was received lt ARG gt UK Gift Certificate UK Gift Certificate amount entered when Count Till at Reconcile Detail There is an audit log entry for each UK Gift Certificate entered lt ARG gt the number of the UK Gift Certificate Appendix Audit Logging D 31 Till Audit Log Events Table D 27 Till Reconcile Event Components Event Components Notes UK Store Credit Total n Entered tender amount if Count Till at Reconcile Summary Only recorded if this tender was received and this tender is included in the Tenders To Count at Till Reconcile and if Blind Close No Total of all entere
353. t can be set as the paramList attribute Table 10 15 lists field types and their descriptions UI Framework 10 13 Connections Table 10 15 Field Types and Descriptions Name Description Parameter List Strings no spaces allowed alphaNumericField Allows letters and or numbers no spaces or characters name minLength maxLength constrainedPasswordField Text where the view indicates something was typed but does not show the original characters name minLength maxLength constrainedTextAreaField Multi line area that allows plain text with restrictions on length name minLength maxLength colum ns wrapStyle lineWrap constrainedField Allows letters numbers special name minLength maxLength characters and punctuation with restrictions on length currencyField Allows decimal numbers only name zeroAllowed negativeAllowe representing currency with two deempty Allowed spaces to the right of the decimal decimalField Allows decimal numbers only name maxLength negativeAllowed emptyAllowed displayField Display area that allows a short name text string or an image or both driversLicenseField Allows alphanumeric text that name can contain or EYSDateField Allows only whole numbers and name the special character the format is MM DD YYYY EYSTimeField Allows only whole numbers and name the special character the format is HH MM nonZeroDecimalField Al
354. ta gets saved to a persistent resource such as the database or flat files on the register Technical Architecture 2 7 Frameworks Figure 2 6 Data Persistence Framework Application Data Technician Configuration Script Data Technician Data Technician Local Database Data Manager Configuration Script Data Manager Transaction Queue Table 2 6 describes the components in the Data Persistence framework Table 2 6 Data Persistence Framework Components Component Description Data Manager The Data Manager defines the application entry point into the Data Persistence Framework Its primary responsibility is to contact the Data Technician and transport any requests to the Data Technician Data Manager The Data Manager processes data actions from the application based on the Configuration Script configuration information set in the Data Manager Configuration Script The Configuration Script defines transactions available to the application Data Technician The Data Technician provides the interface to the database or flat file This class is part of the Oracle Retail Platform framework It provides entry points for application transactions sent by the Data Manager and caches the set of supported data store operations It also contains a pool of physical data connections used by the supported data operations Data Technician The Data Technician Configuration Script
355. tall Point of Service and choose the option to run in Simulated mode posdevices xml is modified accordingly By default unselected devices are set up as simulated The following code sample shows the configuration of SimulatedPrinterSession Example 4 8 Simulated Device Configuration SESSION name SimulatedPrinterSession devicename defaultPrinter class SimulatedPrinterSession package com extendyourstore foundation manager device defaultmode MODE RELEASED gt The Oracle Retail Point of Service application includes help files to provide information to assist the end user When the user chooses Help or F1 from the global navigation panel a help browser appears in Point of Service to describe the current screen An index is provided on the left so the user may choose additional topics to view The help is implemented as JavaHelp and includes these components a One HTML help file for each screen The product help files are Microsoft Word files saved as HTML They can be edited with Word an HTML editor or a text editor a A Table Of Contents file that defines the index that displays on the left A properties file that associates overlay screen names with the corresponding HTML filenames Refer to http www java sun com for more information on JavaHelp Note If the base product help files are modified upgrades for help files will not be available and you will not be able to take advantage of updates provided
356. tanding Transaction IDs for more information on what these properties mean Example 1 1 Changing Transaction ID Length Transaction ID TransactionIDStoreIDLength 5 TransactionIDWorkstationIDLength 3 TransactionIDSequenceNumberLength 4 TransactionIDBarcodeDateFormat yyyyMMdd TransactionIDBarcodeDateFormat TransactionIDSequenceNumberSkipZero false TransactionIDSequenceNumberMaximum 9999 Configuring the Purchase Date Field for Returns and Voids You must configure Point of Service to display the Purchase Date field in the Receipt Info screen when conducting a return or a void To do this you must modify the domain properties file in the OracleRetailStore lt Client or Server gt pos config folder Uncomment the following field Transact ionIDBarcodeDateFormat yyyyMMdd By default this field in domain properties contains no defined date format This prevents the Purchase Date field from being displayed in the Receipt Info screen Configuring RMI Timeout Intervals You can configure remote method invocation RMI timeout intervals at two levels a The JVM level Linux installs only The level of managers and technicians 1 12 Oracle Retail Point of Service Operations Guide Configuring RMI Timeout Intervals If you are performing a Linux installation configure the JVM as described in Setting the RMI Timeout Interval for the JVM Under Linux below If you determine that RMI connections are timing out you can use
357. tative measures Table 6 1 Common Java Bugs Bug Preventative Measure null pointer exception Check for null before using an object returned by another method boundary checking Check the validity of values returned by other methods before using them array index out of bounds When using a value as a subscript to access an array element directly first verify that the value is within the bounds of the array incorrect cast When casting an object use instanceof to ensure that the object is of that type before attempting the cast Formatting Follow these formatting standards to ensure consistency with existing code a Indenting braces Indent all code blocks with four spaces not tabs Put the opening brace on its own line following the control statement and in the same column Statements within the block are indented Closing brace is on its own line and in same column as the opening brace Follow control statements if while etc with a code block with braces even when the code block is only one line long Line wrapping lf line breaks are in a parameter list line up the beginning of the second line with the first parameter on the first line Lines should not exceed 120 characters Spacing Include a space on both sides of binary operators Do not use a space with unary operators Do not use spaces around parenthesis Include a blank line before a code block Deprecation Whenever you deprecate a
358. te the domain object to be saved 2 Savethe data to the cargo s transaction For the credit card tender option the TenderCargo contains a retail transaction object that keeps track of all the data for each tender line item as well as other pertinent data TenderCargo is the cargo for the Tender Tour In Example 13 5 credit is a domain object that stores the credit card data such as number expiration date type of card and so on Credit was already stored in the cargo as a pending line item in GetCreditInfoSite java In the following code credit is retrieved from the cargo and added to the cargo s retail transaction as a tender line item 13 8 Oracle Retail Point of Service Operations Guide Example of Saving Data Storing Tender Information Example 13 5 ValidCreditInfoEnteredRoad java Transaction Object public void traverse BusIfc bus Get the pending line item TenderCargo cargo TenderCargo bus getCargo TenderChargeIfc credit TenderChargeIfc cargo getPendingLineItem TenderableTransactionlfc trans cargo getTransaction Add the credit line item to the transaction trans addTender credit 3 Calla method to save the transaction object After the credit object is added to the Tender Cargo transaction the collected data is saved to the database In Example 13 6 the com extendyourstore pos services common SaveRetailTransaction Aisle java file uses the Utility Manager to call the saveTransaction me
359. ternal Tax Engine sisien tenaa e a tenente teneis B 4 Negate VAT For Shipping Charges For A Post Void Transaction sess B 4 Enhance Overlay Lane Action Class SendMethodSelectedRoad sss B 4 Calculate VAT For Send Transactions oooccccoccnocoonconnoonconnoonono non taaie non nn non non rre rca nena nino B 5 Transaction Persistence for VAT sese nennen tnter enter enirn inneren nenne B 5 Persist Inclusive Tax niece ete edle eie e t e n e b LE EL Re LR tet B 5 Persist Shipping Charge Tax ecrire ee irre ederet rere e eee ere e B 6 Tracking VAT Financial Totals ssssssssssssee eene nennen n nnne nene nnne B 6 Aceumiulate Inclusive T x 5 sait ca B 7 Accumulate Shipping Charge Tax sees eee iii B 8 Transaction Retrieval In CO esi Dei i eai ee M albedo B 9 Enhancing Transaction Entity Beans ener B 9 Enhancing Transaction Service Bean sess sse nene nennen nennen B 9 Enhancing Transaction Manager Bean sese eene nennen nnns B 10 Enhancing POSELEog nee ene m NA IER HR E eones B 10 Seed Data Population edenecderetetadntennim taie nidi etn de nip te prae B 12 VAT Tax Rule Seed D ta 5 e Ene a B 12 Point of Service Department Seed Data sssssssssssssse eee eene B 13 Item Seed Data ette tee ee ee A te ek ee teins B 13 Shipping Method Seed Data sse nennen nnne sea B 13 Sales Retur
360. ternal tax engine classes B 15 send package line item interface class B 20 shipping method interface class B 20 tax rate calculators B 15 web modules transaction view bean classes B 28 P parameters 4 1 parameter group 4 2 parameter hierarchy 4 1 parameter properties 4 3 password policy 1 6 password policy and password change 1 8 password reset 1 7 viewing or modifying the password in the database 1 8 Point of Service architecture 2 2 Point of Service development standards 7 1 R reason codes 1 9 retail domain 12 1 domain object in tour code 12 3 domain object reference 12 4 codelist map 12 4 currency 12 6 transaction 12 8 new domain object 12 2 role of Java classes 9 11 run Point of Service 5 4 S saving data storing tender information 13 8 locate data operation 13 9 modify data operation 13 14 research table requirements and standards 13 8 saving data from site code 13 8 test code 13 16 verify data 13 16 screen design and user interface guidelines 7 1 seed data population B 12 item seed data B 13 Point of Service department seed data B 13 sales return transaction seed data B 14 shipping method seed data B 13 VAT tax rule seed data B 12 Spring configuration A 1 store database 13 1 system settings 1 16 I technical architecture 2 1 tender tour reference 9 16 tour cam 9 12 attributes 9 12 cargo restoration 9 16 letter processing 9 15 tour framework
361. the N previous passwords criteria set for the policy associated with the assigned user role Temporary passwords may not comply with the password policy and are not stored in the password list Do the following to change the password of another user 1 Click Administration 2 Login 3 Click Security 4 Click Employee 5 Click Find 6 Search for the user whose password you are resetting You can search by user ID name or role For example to search by name click Emp Name then enter the user s first name and last name 7 Review the user s information 8 Click Reset Password You will see a message asking if you are sure you want to reset the password Click Yes 9 Ascreen with the user s new temporary password is shown Note This temporary password is provided on this screen only Record this temporary password The password is not recorded or logged and is not provided by email Administrators must provide this temporary password to the user 10 Click Enter Backend System Administration and Configuration 1 7 Password Policy Viewing or Modifying the Password in the Database To reset the password in the database modify the following tables to disable password criteria a SELECT ID_PLCY SC_PLCY NM PLCY DE PLCY FROM CO PLCY PW a SELECT ID_CRTR CD CRTR OY VL CFG DFLT DE CRTR FROM CO_CRTR_ PW a SELECT ID_PLCY ID_CRTR SC PLCY CRIR OY VL CFG FROM CO CRTIR PLCY PW The foll
362. the Point of Service application make sure the changes will not affect the PABP settings For more information on PABP see the Oracle Retail Strategic Store Solutions Security Implementation Guide The guide is available on Metalink Metalink Note 567438 1 6 8 Oracle Retail Point of Service Operations Guide Common Frameworks Separate external constants such as database table and column names JMS queue names port numbers from the rest of the code Store them in in order of preference Configuration files Deployment descriptors Constant classes interfaces Make sure the SQL code included in a component does not touch tables not directly owned by that component Make sure there is some separation from DTO and ViewBean type classes so we have abstraction between the service and the presentation Consider designing so that any fine grained operation within the larger context of a coarse grain operation can be factored out in a separate algorithm class so that it can be replaced without reworking the entire activity flow of the larger operation Common Frameworks Logging This section provides guidelines which are common to the Oracle Retail Strategic Store Solutions applications Oracle Retail Strategic Store Solutions systems use Log4J for logging When writing log commands use the following guidelines x Use calls to Log4J rather than System out from the beginning of your develo
363. the Service level This is where you get your best return on investment Maintenance is a matter of choosing a style and implementing it consistently within a Service and sometimes within an entire application When you are comfortable with how TourCam works maintaining TourCam Services is easy Point of Service Development Standards 7 3 Tour Framework Sites Maintenance is more difficult in general for TourCam Services since these Services are more complex However the simulation feature in Tour Guide helps with this process Aisles help reduce the total number of Sites in a Service but they may be harder to see because they are contained within a Site When making choices give making an application as consistent and easy to maintain as possible the top priority Consider the performance costs of using TourCam or creating additional Sites when designing a Service A Service can often be simplified by reducing the number of individual Sites You can do this by using Aisles to replace Sites Sites with one exit Road can be good candidates and Aisles are good candidates for reuse However Aisles are less visible than Roads Reusing a Site has flow implications Site classes can be reused whenever the exit conditions are identical Reusable Sites should be packaged in a common package as opposed to one of the packages that use them A reusable Site must refer to a reusable Cargo or a common Cargo interface Treat the sendin
364. the cargo create a new class in the customer source tree that extends the cargo in the product source tree Be sure to extend from the lowest level subclass Add the customer abbreviation to the beginning of the filename To replace the cargo create a new cargo class in the customer source tree Edit the appropriate Tour Map for the locale using the replacewith property in the lt CARGO gt tag to define the new package and filename for the cargo Example 8 8 tourmap CA xml Replacing a Cargo tour name tender UI Framework file classpath com mbs pos services tender file SITE name RefundDueUI useaction com mbs pos services tender refundDueUISite gt gt lt CARGO class TenderCargo replacewith com mbs pos services tender MBSTenderCargo gt lt tour gt Modify the tour map and or tour scripts and shuttles of the calling and nested tours to adapt to the cargo modifications Be sure to address Classes in the same tour as the modified cargo All tours for which this tour is a nested tour a All tours which are called by this tour The UIManager and UlTechnician classes are provided by Foundation They are configurable through the Conduit Script and should not be modified directly This section describes customization to the default UI configuration and individual screens Default UI Config The product file pos config defaults defaultuicfg xml contains the building blocks for the UI displays
365. the factory The factory class is instantiated once for the application and returns instances of Retail Domain objects Since different implementations use different classes to implement the objects the factory keeps track of which class implements the requested object The following line of code from src com extendyourstoreNservicesNtenderN GetCheckInfoSite java gets an instance of a Check object Example 12 5 GetChecklnfoSite java Instantiating Check from DomainObjectFactory check DomainGateway getFactory getTenderCheckInstance 2 Call methods on the object Now that an instance of the object exists methods of the class can be called The following lines of code from GetCheckInfoSite java sets attributes on the Check object Example 12 6 GetChecklnfoSite java Setting Attributes of Check check setTenderLimits cargo getTenderLimits check setAmountTender amount Domain Object Reference CodeListMap The Domain Objects discussed below include a description of the purpose of the object classes and interfaces involved in its construction a class diagram and examples in Tour code To implement Point of Service metadata such as reasons for return shipping methods and departments the CodeList objects are used This data is referred to as reason codes from the UI Codes are read in from the database at application startup They are available from the Utility Manager 12 4 Oracle Retail Point of Service Ope
366. the financial totals financialTotals addAmountShippingCharges financialTotals addNumberShippingCharges financialTotals addAmountTaxShippingCharges financialTotals addAmountInclusiveTaxShippingCharges financialTotals addTaxes This adds all the tax at the group rule level based on the information saved in the tax information container of this line item This function returns a clone of this line item public Object clone Determine if two objects are identical public boolean equals Object obj Method to default display string function public String toString The following section depicts the logic in determining the active tax rules for the send package line item If this line item is from a tendered transaction retrieved from db isFromTransaction is true Then do not recalculate tax and return an array of reverse tax rules based on the tax information saved in the line item For an example on how to get reverse tax rules see protected function reverseItemTaxRuleIfc getReverseTaxRules in class com extendyourstore domain lineitem SaleReturnLineItem Else if the shipping method is not taxable getShippingMethod getTaxable is false Then return an array of tax rules of size 0 Else if this shipping method has at least one tax rules getShippingMethod getTaxRules size 0 Then return the shipping method s tax rules Else call getDefaultTaxRules to return an array of default tax rules
367. the following to add new DataSet 1 Add DataSet information in CO DT ST IDDI 2 Add DataSet tables to CO DT ST TB IDDI A 10 Oracle Retail Point of Service Operations Guide Extensibility 3 Create DataSetKey Producer and DataSetKey Consumer classes extending from AbstractDataSetProducer and AbstractDataSetConsumer respectively 4 Define service config DataSetKey in ServiceContext xml 5 Define service DataSetKey Producer with class DataSetKey Producerand service DataSetKey Consumer with class DataSetKey Consumer in ServiceContext xml 6 Addtoservice DataSetKey Producer and service lt lt DataSetKey gt gt Consumer to service DataSetService and service ClientDataSetService respectively in ServiceContext xml 7 Add DataSet key to service FrequentProducerJob service InfrequentProducerJob and service FrequentConsumerJob service InfrequentConsumerJob in ServiceContext xml 8 Add create table scripts and insert script for newly added DataSet in CreateSchema sql Configuring Schedule For Dataset Producer And Consumer Any existing Dataset Producer and Consumer can be individually configured to run on scheduled basis Configure Dataset Producer Follow the steps below to configure DataSet Producer 1 Add JobDetailBean bean configuration service_ lt lt DataSet gt gt ProducerJob lt bean id service_ lt lt DataSet gt gt ProducerJob class org springframework scheduling q
368. the operator selects Credit Debit from Tender Options menu Bin File Look up set to yes and has entered the card number or The operator has chosen Credit from the Tender Options menu Bin File Look up set to no and has entered the card number Event data collection ends when a credit card tender has been added to the transaction with the authorization status pending Failure Condition will be logged only in case of technical failures such as Database is down Table D 6 Transaction Tendered with Credit Card Event Components Event Components Notes Event Name Transaction Tendered with Credit Card Event Status X Success a Failure Event Originator Class Name and Method Name ClassName methodName System Date System date of the event Appendix Audit Logging D 11 Point of Service Transaction Events Table D 6 Transaction Tendered with Credit Card Event Components Event Components Notes System Time Time of the event Store ID Store number the event transpired at User ID User ID performing the event Register Number The register number the event transpired at Till ID The Till ID the event transpired at Card type The card type presented at time of tender Card number The card number presented at the time of tender Only display last 4 digits of card number For example XXXX XXXX xxxx 1111 Amount The amount the card is being charged at the t
369. thod Example 13 6 SaveRetailTransactionAisle java Save Transaction public void traverse BusIfc bus UtilityManagerIfc utility UtilityManagerIfc bus getManager UtilityManagerIfc TYPE utility saveTransaction trans totals till register Locate Data Operation The Data Manager and Data Technician work together to provide access to the database from the application The developer rarely modifies these Typically the site code and the JDBC code are updated To identify which JDBC class should be used trace through the site code until the DataAction sets the operation name As an example the following figure shows the tour workflow that occurs when a tender is complete and the data is ready to be saved Store Database 13 9 Example of Saving Data Storing Tender Information Figure 13 3 Tender Tour to Point of Service Tour Workflow ValidCreditlnfoEnteredRoad CompleteTenderSite WriteTransactionSite SaveRetailTransactionAisle After the Tender Tour has completed the program returns to Point of Service Tour via the WriteTransactionSite to the SaveRetailTransactionAisle The SaveRetailTransactionAisle initiates the save process The conceptual diagram in the following figure illustrates the basic communication path from the SaveRetailTransactionAisle to the database For more detail refer to the source code 13 10 Oracle Retail Point of Service Operations Guide Example of Saving Data Storing Tender Info
370. ting Dataset Types sss eee A 10 Adding New Dataset umi soriano ca bcd Eee dera A 10 Configuring Schedule For Dataset Producer And Consumer sss A 11 Configure Dataset Producer eene nennen nnne nennen A 11 Configure Dataset Consumer sees eene enn nnne enne nennen A 12 Adding New Dataset Type one eh eme ne Do e DL oe re EH SERRE Rt A 13 Changing Oracle Retail Point of Service Client Database Vendor ccc sess A 18 Plugability sss sess uicti eae a eee at eue e aep rae e be ede dE Ee e A 18 B Appendix Value added Tax VAT calculation nedum eund enn iR eR gna ede B 1 Inclusive Tax Flag At Tax Group Rule Level seen B 1 Inclusive Tax Rate Calculator pee rettet ere tele pev e reed reel B 1 Enhancing PLU Item Look Up 5 52 6r ai ee iet dte HEU aaa B 2 Enhancing Internal Tax Engine eee B 2 VAT Tax RuleSeed Data ai un d ee e n ee iae ER ee nisin B 2 Calculate VAT For Unknown Items Invalid Or Blank Tax Groups sss B 3 Calculate VAT For Returns Transactions essere eere neret tnter B 3 Calculate VAT For Reverse Transactions Other Than Returns essen B 3 Calculate VAT For Shipping Charges esee eee eene nennen nennen B 4 Enhance Shipping Method Table And Domain Interface class sss B 4 Add update Send Packages To in A Sale Return Transaction sss B 4 Enhance In
371. tion Serializable execute Object Executes the valet specific processing on the object Sample Code The execute method is called by the Technician after the valet arrives at its destination as a result of the Manager s sendValet or sendValetWithRetry methods as in the following example from src com extendyourstore foundation manager parameter ParameterManager java Example 11 3 ParameterManager java Valet Passed By Manager MailboxAddress techAddress getParameterTechnicianAddress retVal sendValetWithRetry valet techAddress The examples below illustrate the primary changes that need to be made to create a Manager Technician pair Note that interfaces also need to be created for the new Manager Technician and Valet classes Configuration The conduit script needs to define the location of the Manager and Technician This code would be found in a conduit script such as config conduit ClientConduit xml These code samples would typically be in different files on separate machines It would include snippets like the following 11 6 Oracle Retail Point of Service Operations Guide New Manager Technician Example 11 4 Sample Manager and Technician Configuration MANAGER name MyNewManager class MyNewManager package com extendyourstore foundation manager mynew gt MANAGER TECHNICIAN name MyNewTechnician class MyNewTechnician package com extendyourstore foundation manager m
372. tion LocalNavigationPanel The only property available to the NavigationButtonBean in XML is used to enable and disable buttons When setting the states of buttons on a LocalNavigationPanel the buttons are usually defined with the BUTTON element in the bean specification as in the following code sample In fact any bean that extends NavigationButtonBean such as ValidateNavigationButtonBean can define its buttons in the bean specification This example from src com extendyourstore pos services customer customeruicfg xml defining the CustomerOptionsButtonSpec bean specification for the Customer service shows how button text on a NavigationButtonBean is defined in a UI script Example 10 11 customeruicfg xml Bean Specification Using NavigationButtonBean lt BEAN specName CustomerOptionsButtonSpec configuratorPackage com extendyourstore pos ui configuratorClassName POSBeanConfigurator beanPackage com extendyourstore pos ui beans beanClassName NavigationButtonBean gt lt BUTTON actionName AddBusiness enabled true keyName F4 labelTag AddBusiness gt lt BEAN gt UI Framework 10 9 Beans The string that should be displayed on the buttons on the GlobalNavigationPanel is defined in a resource bundle In the resource bundle customerText_en_US properties the following entry defines the label for the AddBusiness button Example 10 12 customerText en US properties NavigationButtonBean Text Bundle Exa
373. tion EJB call exception or if the financial totals are not found in the database Table D 3 End of Day Event Components Event Components Notes Event Name End of Day Event Status X Success a Failure Event Originator Class Name and Method Name ClassName methodName System Date System date of the event Business Date Business date of the event System Time Time of the event Store ID Store number the event transpired at User ID User ID performing the event Register Number For Point of Service the register number the event transpired at Operating Fund Amount Entered cash amount for Count Operating Fund at End of Day Summary a Total of entered cash amount for Count Operating Fund at End of Day Detail Equal to the Operating Fund Expected Amount when Count Operating Fund at End of Day No Pennies Entered currency denomination amount Only recorded if a value is entered and Count Operating Fund at End of Day Detail Nickels Entered currency denomination amount Only recorded if a value is entered and Count Operating Fund at End of Day Detail Dimes Entered currency denomination amount Only recorded if a value is entered and Count Operating Fund at End of Day Detail Quarters Entered currency denomination amount Only recorded if a value is entered and Count Operating Fund at End of Day Detail Half Dollars Entered currency denomina
374. tion amount Only recorded if a value is entered and Count Operating Fund at End of Day Detail 1 Coins Entered currency denomination amount Only recorded if a value is entered and Count Operating Fund at End of Day Detail 1 Bills Entered currency denomination amount Only recorded if a value is entered and Count Operating Fund at End of Day Detail 2 Bills Entered currency denomination amount Only recorded if a value is entered and Count Operating Fund at End of Day Detail 5 Bills Entered currency denomination amount Only recorded if a value is entered and Count Operating Fund at End of Day Detail Appendix Audit Logging D 9 Daily Operations Audit Log Events Table D 3 End of Day Event Components Event Components Notes 10 Bills Entered currency denomination amount Only recorded if a value is entered and Count Operating Fund at End of Day Detail 20 Bills Entered currency denomination amount Only recorded if a value is entered and Count Operating Fund at End of Day Detail 50 Bills Entered currency denomination amount Only recorded if a value is entered and Count Operating Fund at End of Day Detail 100 Bills Entered currency denomination amount Only recorded if a value is entered and Count Operating Fund at End of Day Detail Transaction Number Transaction number assigned by the system to the store close event Register Open This is a Back Office and Point of
375. tion dataConnection TenderableTransactionIfc transaction throws DataException if transaction instanceof SaleReturnTransactionIfc SaleReturnTransactionIfc srt SaleReturnTransactionIfc numDiscounts srt getTransactionDiscounts length srt getLineItems length 1 transaction int numDiscounts 0 if srt getTransactionDiscounts null lineItemSequenceNumber numDiscounts j code to handle different transaction types Retail Domain 12 9 Domain Object Reference 12 10 Oracle Retail Point of Service Operations Guide 13 Store Database This chapter describes the database used with Point of Service and how to interface with it including Updating tables a Rebuilding the database Creating new tables Updating flat file configurations The chapter includes an example of writing code to store new data in the database using the Tender function ARTS Compliance The Oracle Retail Point of Service system uses an Association of Retail Technology Standards ARTS compliant database to store transactions and settings The ARTS standard see http www nrf arts org isa key element in maintaining compatibility with other hardware and software systems Although the Point of Service system complies with the ARTS guidelines it does not implement the entire standard and contains some tables which are not specified by ARIS For example ARTS tables for store equ
376. to purchase any products or services from a third party the relationship is directly between you and the third party Oracle is not responsible for a the quality of third party products or services or b fulfilling any of the terms of the agreement with the third party including delivery of products or services and warranty obligations related to purchased products or services Oracle is not responsible for any loss or damage of any sort that you may incur from dealing with any third party Value Added Reseller VAR Language i the software component known as ACUMATE developed and licensed by Lucent Technologies Inc of Murray Hill New Jersey to Oracle and imbedded in the Oracle Retail Predictive Application Server Enterprise Engine Oracle Retail Category Management Oracle Retail Item Planning Oracle Retail Merchandise Financial Planning Oracle Retail Advanced Inventory Planning and Oracle Retail Demand Forecasting applications ii the MicroStrategy Components developed and licensed by MicroStrategy Services Corporation MicroStrategy of McLean Virginia to Oracle and imbedded in the MicroStrategy for Oracle Retail Data Warehouse and MicroStrategy for Oracle Retail Planning amp Optimization applications iii the SeeBeyond component developed and licensed by Sun MicroSystems Inc Sun of Santa Clara California to Oracle and imbedded in the Oracle Retail Integration Bus application iv the Wavelink component developed and
377. tour components you can add tags The following sample shows the initial state of the file Example 8 1 MBStourmap CA xml Sample initial tourmap file for Canadian locale xml version 1 0 encoding UTF 8 tourmap country CA xmlns xsi http www w3 0rg 2001 XMLSchema instance xsi noNamespaceSchemaLocation com extendyourstore foundation tour dtd tourmap xsd gt Tour tags can be added here lt tourmap gt Extension Guidelines 8 3 POS Package 2 Copy the pos config posfoundation properties file to the customer source tree Modify the tourmap files property in this file adding the names of the new Tour Map files Do not rename the posfoundation properties file since this filename is referenced by Foundation classes It is important to keep the customized tour map files after the product tour map file in the list since the files listed later override earlier files Example 8 2 posfoundation properties Adding new Tour Maps comma delimited list of tourmap files to overlay tourmap files tourmap xml MBStourmap xml MBStourmap CA xml 3 Refer to the procedures that follow to modify tour scripts and Java components of a tour Tour Scripts If you need to change the workflow of a tour you must replace the tour script you cannot extend a tour script To replace a tour script follow these steps 1 Create a new XML tour script in the customer source tree 2 Modify the tour map in the customer sourc
378. tourmap In this instance the tour with the logical name testService references the file com extendyourstore foundation tour engine tourmap testservice xml Additionally the values for SITE and SITEACTION are replaced Note Because of the country in the tourmap element this only happens when the default locale of the application is a Canadian locale Tourmaps are used not only to override XML attributes but they are used also when the workflow needs to be changed Cargo is data that exists for the length of the tour in which it is used Any data that needs to be used at different tour components such as sites and aisles needs to be stored on the cargo Cargo always has a Java class The following code sample from tender xml defines the Tender cargo Example 9 4 tender xml Definition of Cargo CARGO class TenderCargo gt CARGO With the concept of a tourmap a cargo class can be overridden with another class This allows you to override the class name for a customer implementation yet still keep the same workflow for the customer as in the product The following tourmap definition specifies the class to override and the new class to use in place of the original class Note that replacewith is a fully qualified classname with both package and classname specified unlike the class attribute Example 9 5 tourmap xml Example of Overriding Cargo Class CARGO class TenderCargo replacewith com extendyou
379. tring getUniqueID public void setUniqueID String id public Date getCreationTimeStamp void public setCreationTimeStamp Date timestamp public Date getModificationTimeStamp void public setModificationTimeStamp Date timestamp B 26 Oracle Retail Central Office Operations Guide New Or Changed Classes services Sale Return Line Item Tax DTO The sale return line item tax DTO class com _ 360commerce commerceservices transaction salereturn SaleReturnLineltemTaxDTO will be created to hold information for a row in sale return line item tax table TR_ LTM_SLS_RTN_TX see Sales Return Tax Line Item Table TR LTM SLS RTN TX It will contain get set methods for each column in the row It extends the transaction group rule tax dto class com _ 360commerce commerceservices transaction tax GroupRuleTaxDTO In addition to the methods inherited from its base class it will have the following additional methods public int getLineItemSequenceNumber public void setLineItemSequenceNumber int number public BigDecimal getLineItemTaxAmount public void setLineItemTaxAmount BigDecimla amount public BigDecimal getLIneItemInclusiveTaxAmount public void setLineItemInclusiveTaxAmount BigDecimal amount Sale Return Line Item DTO This existing sale return line item DTO class com _ 360commerce commerceservices transaction salereturn SaleReturnLineItemDTO will be modified to have the additional metho
380. try are the log entry content The content is comprised of freeform text supplied by the calling routine The content reflected in the freeform text may be multiple lines in length The next log entry is delineated with another 38 byte fixed length header beginning in column one of the text log file 7 8 Oracle Retail Point of Service Operations Guide Log Entry Format Example Log Entry INFO 2004 09 02 11 12 41 253 23697 main com extendyourstore foundation manager gui DefaultBeanConfigurator com extendyourstore foundation manager gui DefaultBeanConfigurator applyPropertie S DefaultBeanConfigurator java 198 Applying property cachingScheme to Class DialogBean Revision 1 9 012076742 Point of Service Development Standards 7 9 Log Entry Format 7 10 Oracle Retail Point of Service Operations Guide 8 Extension Guidelines Customers who purchase Point of Service extend the product to meet their particular needs These guidelines speed implementation and simplify the upgrade path for future work Developers on customer projects should also refer to the Development Standards The Development Standards address how to code product features to make them less error prone and more easily maintained They are especially important if code from the customer implementation may be rolled back into the base product Conventions Note Before extending the Point of Service application make sure the changes will
381. tter Processmig iiid dietis rb bte i po etit te ebrei Eee teer Pd 9 15 Cargo Restorant n giten oii dd nbi ne en er bienes 9 16 Tender To r Reference eA Rt ede eee Nee be RE Rene 9 16 10 Ul Framework Screens i oat oai eet e eee e re ae e e i Borken RE ee Haee Pann 10 2 Beans eda aq stre feetetete cad ctesete etes eus bebete ed Dess ea epoca eese see fee ee he etes e eade 10 4 PromptAndRespofiseBean eere e In id a tee ete n eee ei tete 10 4 Bean Properties and Text Bundle sese eene 10 4 Tout Code cec sagen denial deett ae ei iet fere reg 10 6 Datalnp tbeari aide HP ted terere pid ee ter bn Paar Pe eu 10 7 Bean Properties and Text Bundle ioios iniii ne ee ari E E E a 10 7 To r Codeine Rand soe Oe m a ee RE eR aa 10 8 NEVA 10 9 Bean Properties and Text Bundle sess eene nennen 10 9 I ocalNavigatiorPatnel taeda ete a adi te ete es 10 9 GlobalNNavigationPariel tede te etie cette teet ete be di 10 10 Tot Codex e Ete e ee eee dort eti ete ne ve ene be tius 10 11 Di l s Beane 255 X a E ci E sd Ii 10 11 Bean Properties and Text Bundle sse eene 10 11 Tour Codec arnold 10 12 Field Types ld ota 10 13 CON A A A de een 10 14 CleatActionListerier 2 ed eue ate ete eae E e UR HL estes 10 15 Docente eue dee eee Fed pee 10 15 Validate Acosta Shee een necesite tested 10 15 Text Bundles isi catu e a ee e et 10 16 reception 10 16 parameter LexEz a di al alain
382. uartz JobDetailBean property name jobClass gt value com extendyourstore foundation iddi DataSetProducerJob value property property name jobDataAsMap gt map entry key producer value ref service_DataSetService gt lt entry key dataSets gt lt list gt lt ref local service_config_ lt lt DataSetKey gt gt gt lt list gt lt entry gt lt map gt lt property gt lt bean gt Note service config DataSetKey should have been configured with the DataSetKey Appendix Intra Store Data Distribution Infrastructure A 11 Extensibility 2 Add CronTriggerBean bean configuration service Trigger DataSet Producer bean id service Trigger DataSet Producer class org springframework scheduling quartz CronTriggerBean gt lt property name jobDetail gt ref local service DataSet ProducerJob property property name cronExpression value 0 0 15 30 45 0 gt bean The above DataSet is configured to run once every 15 minutes Note For more information about configuring using Quartz go to http www opensymphony com quartz wikidocs CronTrig gers 20Tutorial html 3 Add service_Trigger lt lt DataSet gt gt Producer to the SchedulerFactoryBean bean configuration lt bean id service_ProducerSchedulerFactory class org springframework scheduling quartz SchedulerFactoryBean gt lt property name trigg
383. ublic void addAmountInclusiveTaxTransactionSales CurrencyIfc value The following member functions will be added to access collect inclusive tax amount on returns transactions public CurrencyIfc getAmountInclusiveTaxTransactionReturns public void setAmountInclusiveTaxTransactionReturns CurrencyIfc value public void addAmountInclusiveTaxTransactionReturns CurrencyIfc value Add Support for Shipping Charges Tax The financial totals interface class must also be enhanced to track tax for shipping charges The following member function will be added public CurrencyIfc getAmountTaxShippingCharges public void setAmountTaxShippingCharges CurrencyIfc value public void addAmountTaxShippingCharges CurrencyIfc value public CurrencyIfc getAmountInclusiveTaxShippingCharges public void setAmountInclusiveTaxShippingCharges CurrencyIfc value public void addAmountInclusiveTaxShippingCharges CurrencyIfc value Appendix Value added Tax B 19 New Or Changed Classes services These functions will be used by the following api of the send package line item to populate financial total information for shipping charges tax See Send Package Line Item Interface class for more details public FinancialTotalsIfc getFinancialTotals boolean isNotVoid Shipping Method Interface class The shipping method interface com extendyourstore domain financial ShippingMethodlfc and class com extendyourstore domain financial ShippingMeth
384. uration java lang String value OfflineSchemaLogFilePath for storing the Offline database schema SQL File import log file service_ Oracle Retail org apache commons dbcp Ba url OfflineRepositoryDataSou Point of ServiceClient sicDataSource rce Database user PREIS credentials password configuration Appendix Intra Store Data Distribution Infrastructure A 5 Application Configuration Table A 1 Spring Framework Configuration Options Spring bean ID Purpose Provided implementation Configurable Options service OfflineDBHelper Oracle Retail com extendyourstore foundat SchemaName Point of Service Client ion iddi OfflineDerbyHelper offlineDataSource offline Database Helper Class dataImportFilePath configuration service _ Application Version com extendyourstore pos Pos None ApplicationVersion retreival class Version configuration service DataFormatter Data Formatter com extendyourstore foundat None Helper to format ion iddi DerbyDataFormatter Oracle Retail Point of Service Server data to Derby data import format specifications service config EMP KEY DataSet key java lang String None Configuration service config CUR KEY DataSet key java lang String None Configuration service config TAX KEY DataSet key java lang String None Configuration service config ITM KEY DataSet key java lang String None Configuration service config PRC KEY DataSet key java lang String None Configuration For POS the Servic
385. ustomerLaunchShuttle java NestedServiceNameReturnShuttle FindCustomerReturnShuttle java Traffic Signal class IsCondition java indicating the condition IsAuthRequiredSignal java being tested Foundation The best reuse in the Foundation engine takes place at the Service level Sites require extra thought because they can affect flow Lane actions can be reused without flow implications Signals and Shuttles are very well suited to reuse especially when interfaces are developed for accessing Cargo If validation and database lookup are coded in Aisles they may be good candidates for reuse in several Sites as well as in multiple Services All component pieces need to be designed with care for reuse they must be context insensitive or must do a lot of checking to make sure that the managers they access exist for the bus that is active the Cargo contains the data they need etc Trying to maximize reuse can result in confusing code with too many discrete parts If the reusable unit consists of one or two lines of code consider whether there is sufficient payoff in reusing the unit of code If the code contains a complex calculation that is subject to change over time then isolating this logic in one place may be well worth the effort Tours and Services There is often a one to one mapping between a Use Case and a Service The Service should provide the best opportunity for reuse If you design for reuse it should be focused at
386. uthorization tour script is found in src com vextendyourstoreN pos services tender Nauthorization but the UI script is located in src com extendyourstore pos services tender This overlay screen is based on a default screen and defines additional properties for the beans on the areas of the screen The overlay screen may also specify connections which are described in Connections in next chapter XREF The following code sample shows the definition of the ALTERATION TYPE screen defined in src com extendyourstore pos services alterations alterationsuicf g xml UI Framework 10 3 Beans Beans Example 10 1 alterationsuicfg xml Overlay Screen Definition OVERLAYSCREEN defaultScreenSpecName EYSPOSDefaultSpec resourceBundleFilename alterationsText specName ALTERATION_TYPE gt lt ASSIGNMENT areaName StatusPanel beanSpecName StatusPanelSpec gt lt BEANPROPERTY propName screenNameTag propValue AlterationTypeScreenName gt lt ASSIGNMENT gt lt ASSIGNMENT areaName PromptAndResponsePanel beanSpecName PromptAndResponsePanelsSpec gt lt BEANPROPERTY propName promptTextTag propValue AlterationTypePrompt gt ASSIGNMENT ASSIGNMENT areaName LocalNavigationPanel beanSpecName AlterationsOptionsButtonSpec gt lt ASSIGNMENT gt lt OVERLAYSCREEN gt A screen is composed of beans mapped to specific areas on the screen All beans are defined in src com extendyourstore po
387. veTenderLineltems Other data actions occurred before these tender data actions Data Actions are added in the specific order in which they should occur 13 12 Oracle Retail Point of Service Operations Guide Example of Saving Data Storing Tender Information Example 13 10 TransactionWriteDataTransaction DataAction protected void addSaveSaleReturnTransactionActions SaleReturnTransactionIfc transaction FinancialTotalsIfc totals TillIfc till RegisterIfc register artsTransaction new ARTSTransaction transaction Da da da ac da da da ac Da ac Add a DataAction to save the SaleReturnTransactionIfc taAction dataAction new DataAction taAction setDataOperationName SaveRetailTransaction taAction setDataObject artsTransaction tionVector addElement dataAction Add a DataAction to save all the line items in the Transaction taAction new DataAction taAction setDataOperationName SaveRetailTransactionLinelItems taAction setDataObject artsTransaction tionVector addElement dataAction Add a DataAction to save all the tender line items in the Transaction taActionIfc da new SaveTenderLineItemsAction this artsTransaction tionVector addElement da Add a DataAction to save store credit in the Transaction da ac taAction createDataAction artsTransaction SaveStoreCredit tionVector addElement dataAction Example 13 11 SaveTenderLineltemsAct
388. vices transaction ejb TransactionServiceBean must be enhanced to retrieve the line item and shipping record tax information The following methods will be enhanced to do so Appendix Value added Tax B 9 Enhancing POSLog private List getItemsForTransaction TransactionKey key This function retrieves all the sales return line items of a sales return order or layaway transaction It must be enhanced to call entity bean SaleReturnLineItemTaxBean to get a collection of SaleReturnLineltenTaxDTO objects for each sale return line item and set them to the SaleReturnLineltemDTO object For details of the DTO classes see Commerce Service Transaction DTO Classes private List getShippingRecordsForTransaction TransactionKey key This function retrieves all the shipping records of a sales return transaction It must be enhanced to call entity bean SaleReturnShippingRecordTaxBean to get a collection of SaleReturnShippingRecordTaxDTO objects for each shipping record and set them to the SaleReturnShippingRecordDTO object For details of the DTO classes see Commerce Service Transaction DTO Classes Enhancing Transaction Manager Bean The following function in transaction manager bean class com 360commerce webmodules transaction app ejb EJournalManagerBean will be enhanced to populate the inclusive summary tax information into the TransactionDetailViewDTO see Web Modules Transaction View Bean Classes for the view DTO object returned fr
389. wing Dsun rmi transport tcp logLevel VERBOSE Dsun rmi transport tcp responseTimeout 5000 Dsun rmi transport logLevel VERBOSE Dsun rmi transport tcp readTimeout 1500 Dsun rmi transport tcp handshakeTimeout 5000 Dsun rmi transport proxy connectTimeout 10000 Dsun rmi transport connectionTimeout 15000 These values are described at http java sun com j2se 1 4 2 docs guide rmi sunrmipropertie s html Set the Linux tcp property values There are three operating system level settings that work together to determine how long to keep the tcp connection open which affects the observed system performance At the Linux command line type the following sysctl w net ipv4 tcp keepalive time value sysctl w net ipv4 tcp keepalive intvl value Sysctl w net ipv4 tcp keepalive probes value Additional information can be found at http ibdeveloper com issues issue 1 sep 1 2005 using keepal ive sockets to detect and release hung Setting the RMI Timeout Interval for a Specific Technician To set the time out for a specific technician edit the OracleRetailStore lt Client or Server gt pos bin comm properties file and the conduit script as follows 1 Add a new communication scheme to the OracleRetailStore lt Client or Server gt pos bin comm properties file The following lines provide an example comm rmi longread readTimeout 120000 comm rmi longread connectTimeout 1000 These lines establish a new communication
390. with future maintenance releases of the application Modifying Help Files 1 Locate the name of the help file associated with the overlay screen name that needs to be modified The help file names are defined in helpscreens properties located in config Nui help Example 4 9 JavaHelp helpscreens properties REFUND_OPTIONS refundoptionshelp htm 4 6 Oracle Retail Point of Service Operations Guide Help Files 2 Locate the help file in the locales en_US config ui help directory Open the file in Microsoft Word or an HTML editor and edit the content If you are using Word to edit be sure to save the file as HTML when the edits are complete 3 Make identical modifications to the help file for each of the supported languages For example the base product also has help files in locales en_ US config Nui help 4 If the index location or text descriptions needs to be modified change toc xml located in locales en_US config ui help The order of the items in the index is also defined by this file Example 4 10 JavaHelp toc xml lt tocitem target REFUND_OPTIONS text Refund Options gt Customization 4 7 Help Files 4 8 Oracle Retail Point of Service Operations Guide 5 Preparation Setup Development Environment A development environment for Point of Service includes all files tools and resources necessary to build and run the Point of Service application While development environments may vary d
391. x public ItemTaxIfc getItemTax public void setItemTax ItemTaxIfc itemTax This function returns the active tax rules See Enhancing Sale Return Transaction Interface class to see the logic in determining this shipping method line item s active tax rules public RunTimeTaxRuleIfc getActiveTaxRules This should always return false indicating that tax on shipping charges can never be overridden by transaction level tax modifications public boolean canTransactionOverrideTaxRules This function is called before a tax calculation to clear all the tax amounts previously saved It should delegate the task by calling the clearTaxAmounts function on item tax public void clearTaxAmounts This function returns the taxable amount when the tax rule is set up to use the discounted amount In this case it is equivalent to the calculated shipping charges of the shipping method It should delegate the task by calling the getCalculatedShippingCharge function on the shipping method public CurrencyIfc getExtendedDiscountedSellingPrice This function returns the taxable amount when the tax rule is set up to use the pre discounted amount Since no discount is ever applied to shipping charges this function should just call the getExtendedDiscountedSellingPrice to return the same calculated shipping charges public CurrencyIfc getExtendedSellingPrice This function retrieves the tax information container that the tax calculation r
392. y Create TableQueryInfo object with the column names to fetch Qparam TableName return TableQueryInfo Object public TableQueryInfo getTableQueryInfo String tableName TableQueryInfo tableQueryInfo new TableQueryInfo tableName tableQueryInfo setTableFields TABLE FIELDS return tableQueryInfo Finalize DataSet Method public void finalizeDataSet Example A 5 DataSetConsumer Code package com extendyourstore domain iddi import com extendyourstore foundation iddi AbstractDataSetConsumer The NewDataSetConsumer defines methods that the application calls to import Employee dataset files into offline database version Revision public class NewDataSetConsumer extends AbstractDataSetConsumer Dataset key name for currency dataset private String dataSetKey null public String getDataSetKey return dataSetKey j _ param dataSetKey The DataSetKey to set public void setDataSetKey String dataSetKey Appendix Intra Store Data Distribution Infrastructure A 15 Extensibility this dataSetKey dataSetKey 3 Define service config DataSetKey in ServiceContext xml bean id service config datasetKey class java lang String constructor arg type java lang String value lt lt DataSetKey gt gt gt bean eg bean id s
393. y Comments applications This has one sub directory centraloffice which contains Point of Service specific code Other directories contain code that might be common to Oracle Retail Strategic Store Solutions applications like Back Office or Central Office build Files used to compile assemble and run functional tests clientinterfaces Interface definitions between different code modules commerceservices Commerce Services code modules A collection of various code modules some of which are the foundation for Commerce Services The utility module contains SQL files used for database creation and pre loading Extracting Source Code 3 1 Directory Comments thirdpar Executable mostly jar files from third party providers party yj party p webapp Web based user interface code Also contains the Application Managers In subsequent chapters all pathnames of a code file are made relative to one of these directories You must prepend lt POS_SRC_ROOT gt to the file path to get its actual location on disk 3 2 Oracle Retail Point of Service Operations Guide 4 Parameters Customization This chapter covers additional customization options Frequently it is necessary to customize Point of Service to integrate with existing systems and environments Note Before making changes to the Timeout parameter default settings in the Point of Service application make sure the changes will not affect the PABP s
394. y qualified classname with both package and classname specified unlike the class attribute Example 9 16 tourmap xml Example of Overriding Aisle Laneaction lt LANEACTION class CardInfoEnteredAisle replacewith com extendyourstore actions SomeOtherLaneAction gt 9 8 Oracle Retail Point of Service Operations Guide Tour Components Stations and Shuttles Transfer stations are used to transfer workflow to another tour and return once the tour workflow has completed A transfer station describes a location where another tour is started and the passenger exits one bus and enters the bus for another tour Transfer stations specify the name of the nested tour and define data transport mechanisms called shuttles Shuttles are used to transfer cargo to and from the nested tour These shuttles are either launch shuttles or return shuttles Launch shuttles transfer cargo to the nested tour and the return shuttles transfer newly acquired cargo from the nested tour to the calling tour Shuttles have Java classes associated with them but stations do not The following code samples from src com extendyourstore pos services tender Ntender xml contain the station and shuttle information from the SERVICECODE and MAP elements in the tour script respectively Example 9 17 tender xml Definition of Shuttle Class SHUTTLE class TenderAuthorizationLaunchShuttle gt Example 9 18 tender xml Mapping of Station to Service and Shuttle Cla
395. y table see Store History Table LE HST STR B 6 Oracle Retail Central Office Operations Guide Tracking VAT Financial Totals For schema enhancement of tax history table see Tax History Table HST TX Accumulate Inclusive Tax For a retail transaction its inclusive tax amount must be accumulated in financial totals and added to store register till and Point of Service department history tables A detail break down of its inclusive tax collected for each tax group rule must be accumulated in financial totals and added to tax history table Financial totals classes must be enhanced to hold inclusive tax information For details see Enhancing Financial Totals Interfaces classes The following existing member function in sales return line item class com extendyourstore domain lineitem SaleReturnLineltem will be enhanced to populate its financial totals inclusive tax amounts public FinancialTotalsIfc getFinancialTotals boolean isSale The following existing member function in layaway transaction class com extendyourstore domain transaction Layaway Transaction will be enhanced to populate its financial totals inclusive tax amounts protected FinancialTotalsIfc getLayawayFinancialTotals The following existing member function in order transaction class com extendyourstore domain transaction OrderTransaction will be enhanced to populate its financial totals inclusive tax amounts protected FinancialTotalsIfc getOr
396. ynew export Y gt PROPERTY propname techField propvalue importantVal PROPERTY propname configScript propvalue classpath com extendyourstore pos config myconfigscript xml lt TECHNICIAN gt Tour Code Tour code might include a snippet like the following which might be located in src com extendyourstore pos services Example 11 5 Sample Manager in Tour Code try MyNewManagerlfc myManager MyNewManagerIlfc bus getManager MyNewManager myManager doSomeClientWork From site code catch Exception e logger info bus getServiceName e toString Manager This is a minimal Manager class to illustrate how to create a new Manager A new Manager interface also needs to be created for this class Note that this class references the sample MyNewTechnician class shown in a later code sample Example 11 6 Sample Manager Class package com extendyourstore foundation manager mynew import com extendyourstore foundation manager log LogMessageConstants import com extendyourstore foundation tour manager Manager import com extendyourstore foundation tour manager ValetIfc public class MyNewManager extends Manager implements MyNewManagerIfc Constructs MyNewManager object establishes the manager s address and identifies the associated technician public MyNewManager getAddressDispatcherOptional setTechnicianName MyNewTechnician Manager Technician Framework 11

Download Pdf Manuals

image

Related Search

Related Contents

INSTALLATION MANUAL AND OPERATING INSTRUCTIONS MD41  FTA-1 - Mode de emploi  多様な工程に対応  1 Parts Installation 2 Attaching Main Unit and Chest Belt 3  MoistAir HD14070 User's Manual  EndoStim User Manual  MASTERSEAL 525  

Copyright © All rights reserved.
Failed to retrieve file