Oracle® Retail Store Inventory Management: Operations Guide Release 13.1
Oracle® Retail Store Inventory Management: Operations Guide Release 13.1
Oracle® Retail Store Inventory Management: Operations Guide Release 13.1
Operations Guide
Release 13.1
June 2009
Oracle Retail Store Inventory Management Operations Guide, Release 13.1
This software and related documentation are provided under a license agreement containing restrictions on
use and disclosure and are protected by intellectual property laws. Except as expressly permitted in your
license agreement or allowed by law, you may not use, copy, reproduce, translate, broadcast, modify, license,
transmit, distribute, exhibit, perform, publish, or display any part, in any form, or by any means. Reverse
engineering, disassembly, or decompilation of this software, unless required by law for interoperability, is
prohibited.
The information contained herein is subject to change without notice and is not warranted to be error-free. If
you find any errors, please report them to us in writing.
If this software or related documentation is delivered to the U.S. Government or anyone licensing it on
behalf of the U.S. Government, the following notice is applicable:
U.S. GOVERNMENT RIGHTS Programs, software, databases, and related documentation and technical data
delivered to U.S. Government customers are "commercial computer software" or "commercial technical data"
pursuant to the applicable Federal Acquisition Regulation and agency-specific supplemental regulations. As
such, the use, duplication, disclosure, modification, and adaptation shall be subject to the restrictions and
license terms set forth in the applicable Government contract, and, to the extent applicable by the terms of
the Government contract, the additional rights set forth in FAR 52.227-19, Commercial Computer Software
License (December 2007). Oracle USA, Inc., 500 Oracle Parkway, Redwood City, CA 94065.
This software is developed for general use in a variety of information management applications. It is not
developed or intended for use in any inherently dangerous applications, including applications which may
create a risk of personal injury. If you use this software in dangerous applications, then you shall be
responsible to take all appropriate fail-safe, backup, redundancy, and other measures to ensure the safe use
of this software. Oracle Corporation and its affiliates disclaim any liability for any damages caused by use of
this software in dangerous applications.
Oracle is a registered trademark of Oracle Corporation and/or its affiliates. Other names may be trademarks
of their respective owners.
This software and documentation may provide access to or information on content, products, and services
from third parties. Oracle Corporation and its affiliates are not responsible for and expressly disclaim all
warranties of any kind with respect to third-party content, products, and services. Oracle Corporation and
its affiliates will not be responsible for any loss, costs, or damages incurred due to your access to or use of
third-party content, products, or services.
Value-Added Reseller (VAR) Language
The following restrictions and provisions only apply to the programs referred to in this section and licensed
to you. You acknowledge that the programs may contain third party software (VAR applications) licensed to
Oracle. Depending upon your product and its version number, the VAR applications may include:
(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, Oracle Retail Demand
Forecasting, Oracle Retail Regular Price Optimization, Oracle Retail Size Profile Optimization, Oracle Retail
Replenishment Optimization 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 & 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 licensed by Wavelink Corporation (Wavelink) of Kirkland,
Washington, to Oracle and imbedded in Oracle Retail Mobile Store Inventory Management.
(v) the software component known as Crystal Enterprise Professional and/or Crystal Reports Professional
licensed by SAP 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 & 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 DataBeacon™ developed and licensed by Cognos Incorporated of
Ottawa, Ontario, Canada, to Oracle and imbedded in the Oracle Retail Value Chain Collaboration
application.
You acknowledge and confirm that Oracle grants you use of only the object code of the VAR Applications.
Oracle will not deliver source code to the VAR Applications to you. Notwithstanding any other term or
condition of the agreement and this ordering document, you shall not cause or permit alteration of any VAR
Applications. For purposes of this section, "alteration" refers to all alterations, translations, upgrades,
enhancements, customizations or modifications of all or any portion of the VAR Applications including all
reconfigurations, reassembly or reverse assembly, re-engineering or reverse engineering and recompilations
or reverse compilations of the VAR Applications or any derivatives of the VAR Applications. You
acknowledge that it shall be a breach of the agreement to utilize the relationship, and/or confidential
information of the VAR Applications for purposes of competitive discovery.
The VAR Applications contain trade secrets of Oracle and Oracle's licensors and Customer shall not attempt,
cause, or permit the alteration, decompilation, reverse engineering, disassembly or other reduction of the
VAR Applications to a human perceivable form. Oracle reserves the right to replace, with functional
equivalent software, any of the VAR Applications in future releases of the applicable program.
Contents
List of Figures
Preface ................................................................................................................................................................. xi
Audience....................................................................................................................................................... xi
Related Documents ..................................................................................................................................... xi
Customer Support ...................................................................................................................................... xii
Review Patch Documentation .................................................................................................................. xii
Oracle Retail Documentation on the Oracle Technology Network .................................................... xii
Conventions ............................................................................................................................................... xiii
1 Introduction
Overview.................................................................................................................................................... 1-1
Technical Architecture Overview .......................................................................................................... 1-1
v
retek/rules_sim.xml .......................................................................................................................... 2-6
retek/rib/injectors.xml ..................................................................................................................... 2-6
Port Configuration ................................................................................................................................... 2-6
Configuring the Transaction Timeout for SIM................................................................................... 2-7
Logging Information................................................................................................................................ 2-7
Default Location of Log Files............................................................................................................ 2-7
Server Log Files ........................................................................................................................... 2-7
Client Log Files............................................................................................................................ 2-8
Changing Logging Levels ................................................................................................................. 2-8
Editing log4j.xml ......................................................................................................................... 2-8
Using Oracle Enterprise Manager Application Server Control ........................................... 2-8
3 Technical Architecture
SIM Technology Stack............................................................................................................................. 3-1
Advantages of the Architecture ............................................................................................................. 3-1
SIM Technical Architecture Diagrams and Description................................................................... 3-2
Client Tier............................................................................................................................................ 3-3
Middle (Server) Tier........................................................................................................................... 3-3
Data Access Objects (DAO) ...................................................................................................... 3-4
Java Database Connectivity (JDBC) ........................................................................................ 3-4
Database Tier ...................................................................................................................................... 3-4
Distributed Topology .............................................................................................................................. 3-4
A Word About Activity Locking ........................................................................................................... 3-6
4 Batch Processes
Batch Processing Overview .................................................................................................................... 4-1
Running a Batch Process......................................................................................................................... 4-1
Summary of Executable Shell Scripts, Batch Files, Java Packages ................................................. 4-1
Scheduler and the Command Line ....................................................................................................... 4-2
Return Value Batch Standards ............................................................................................................... 4-3
Batch Logging............................................................................................................................................ 4-3
Functional Descriptions and Dependencies ....................................................................................... 4-3
Batch Process Scheduling ....................................................................................................................... 4-5
Batch Details ............................................................................................................................................. 4-5
Activate PriceChanges Batch............................................................................................................ 4-5
Usage............................................................................................................................................. 4-5
CleanupPickList ................................................................................................................................. 4-6
Usage............................................................................................................................................. 4-6
CloseProdGroupSchedule Batch...................................................................................................... 4-6
Usage............................................................................................................................................. 4-6
DexnexFileParser Batch..................................................................................................................... 4-6
Usage............................................................................................................................................. 4-6
ExtractStockCount Batch................................................................................................................... 4-7
Usage............................................................................................................................................. 4-7
ItemRequest ........................................................................................................................................ 4-7
Usage............................................................................................................................................. 4-7
LateSalesInventoryAdjustmentPublishJob..................................................................................... 4-7
vi
Usage............................................................................................................................................. 4-8
ProblemLineStockCount Batch ........................................................................................................ 4-8
Usage............................................................................................................................................. 4-8
ResaFileParser Batch.......................................................................................................................... 4-8
Batch Design Overview.............................................................................................................. 4-8
Usage............................................................................................................................................. 4-9
Restart and Recover ................................................................................................................. 4-10
Multi-Threading....................................................................................................................... 4-11
Error Handling, Logging and File Archiving ...................................................................... 4-11
ReturnNotAfterDateAlert Batch .................................................................................................. 4-12
Usage.......................................................................................................................................... 4-12
ThirdPartyStockCountParser Batch ............................................................................................. 4-12
ThirdPartyStockCount Integration Assumptions ............................................................... 4-13
Usage.......................................................................................................................................... 4-13
WastageInventoryAdjustments Batch.......................................................................................... 4-14
Usage.......................................................................................................................................... 4-14
WastageInventoryAdjustmentPublishJob ................................................................................... 4-14
Usage.......................................................................................................................................... 4-14
SIM Purge Batch Process ..................................................................................................................... 4-15
PurgeAll Batch................................................................................................................................. 4-15
Usage.......................................................................................................................................... 4-15
PurgeAdHocStockCount Batch..................................................................................................... 4-16
Usage.......................................................................................................................................... 4-16
PurgeAudits ..................................................................................................................................... 4-16
Usage.......................................................................................................................................... 4-16
PurgeDSDreceivings Batch ............................................................................................................ 4-16
Usage.......................................................................................................................................... 4-16
PurgeInventoryAdjustments Batch .............................................................................................. 4-17
Usage.......................................................................................................................................... 4-17
PurgeItemRequests Batch .............................................................................................................. 4-17
Usage.......................................................................................................................................... 4-17
PurgeItemTickets Batch.................................................................................................................. 4-17
Usage.......................................................................................................................................... 4-17
PurgeLocking Batch ........................................................................................................................ 4-18
Usage.......................................................................................................................................... 4-18
PurgePickList Batch ........................................................................................................................ 4-18
Usage.......................................................................................................................................... 4-18
PurgePriceChanges Batch .............................................................................................................. 4-18
Usage.......................................................................................................................................... 4-18
PurgePriceHistories Batch ............................................................................................................. 4-18
Usage.......................................................................................................................................... 4-18
PurgeReceivedTransfers Batch...................................................................................................... 4-19
Usage.......................................................................................................................................... 4-19
PurgeStockCounts Batch ................................................................................................................ 4-19
Usage.......................................................................................................................................... 4-19
PurgeStockReturns Batch............................................................................................................... 4-19
Usage.......................................................................................................................................... 4-19
vii
PurgeWHDReceivings Batch......................................................................................................... 4-20
Usage.......................................................................................................................................... 4-20
Price Bulk Processing Batch Process.................................................................................................. 4-20
Running A Script............................................................................................................................. 4-20
Restart and Recovery ..................................................................................................................... 4-24
ResaCustomerOrderFileParser Batch........................................................................................... 4-24
Assumptions ............................................................................................................................. 4-25
Usage.......................................................................................................................................... 4-26
A Note About Multi-Threading and Multiple Processes ............................................................. 4-26
Batch Programs that Create Threads............................................................................................ 4-27
Index
viii
List of Figures
1–1 SIM Technical Architecture ....................................................................................................... 1-2
3–1 SIM Technical Architecture, Tiers ............................................................................................ 3-2
3–2 SIM Deployment ......................................................................................................................... 3-5
ix
List of Tables
4–1 Summary of Executable Shell Scripts, Batch Files, Java Packages...................................... 4-2
4–2 Batch Process Business Functionality and Dependencies.................................................... 4-3
A–1 Stock Count Results Flat File................................................................................................... A-1
B–1 DexnexFileParser Batch File Structure................................................................................... B-4
B–2 DexnexFileParser Batch File Details....................................................................................... B-4
B–3 RGIS File Layout Definition .................................................................................................... B-6
B–5 RegularPriceChange Output File Layout .............................................................................. B-8
B–6 PromotionPriceChange Output File Layout ....................................................................... B-10
B–7 ReSA Customer Order Flat File Format............................................................................... B-12
x
Preface
Oracle Retail Operations Guides are designed so that you can view and understand
the application’s behind-the-scenes processing, including such information as the
following:
■ Key system administration configuration settings
■ Technical architecture
■ Functional integration dataflow across the enterprise
Audience
Anyone who has an interest in better understanding the inner workings of the Oracle
Retail Store Inventory Management (SIM) system can find valuable information in this
guide. There are three audiences in general for whom this guide is written:
■ System analysts and system operation personnel:
■ who are looking for information about SIM’s processes internally or in relation
to the systems across the enterprise.
■ who operate SIM on a regular basis.
■ Integrators and implementation staff who have the overall responsibility for
implementing SIM into their enterprise.
■ Business analysts who are looking for information about processes and interfaces
to validate the support for business scenarios within SIM and other systems across
the enterprise.
Related Documents
For more information, see the following documents in the Oracle Retail Store
Inventory Management Release 13.1 documentation set:
■ Oracle Retail Store Inventory Management Release Notes
■ Oracle Retail Store Inventory Management Installation Guide
■ Oracle Retail Store Inventory Management User Guide
■ Oracle Retail Store Inventory Management Online Help
■ Oracle Retail Store Inventory Management Data Model
■ Oracle Retail Store Inventory Management Implementation Guide – Volume 1
xi
■ Oracle Retail Store Inventory Management Implementation Guide – Volume 2 –
Integration Information
■ Oracle Retail Store Inventory Management Implementation Guide – Volume 3 – Mobile
Store Inventory Management
■ Oracle Retail Store Inventory Licensing Information
■ Oracle Retail Service Layer documentation
■ Oracle Retail Integration Bus documentation
■ Oracle Retail Price Management documentation
Customer Support
To contact Oracle Customer Support, access My Oracle Support at the following URL:
■ 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 recreate
■ Exact error message received
■ Screen shots of each step you take
xii
Conventions
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.
xiii
xiv
1
Introduction
This operations guide serves as an Oracle Retail Store Inventory Management (SIM)
reference to explain backend processes. SIM is designed as a standalone application
that can be customized to work with any merchandising system.
Overview
SIM empowers store personnel to sell, service, and personalize customer interactions
by providing users the ability to perform typical back office functionality on the store
sales floor. The results are greatly enhanced customer conversion rates, improved
customer service, lower inventory carrying costs, and fewer markdowns. SIM delivers
the information and flexible capabilities that store employees need to maintain optimal
inventory levels and to convert shoppers into buyers.
The SIM solution does the following:
■ Improves perpetual inventory levels by enabling floor-based inventory
management through handheld devices and store PCs.
■ Minimizes the time to process receipt and check-in of incoming merchandise.
■ Receives, tracks, and transfers merchandise accurately, efficiently, and easily.
■ Reduces technology costs by centralizing hardware requirements.
■ Guides users through required transactions.
■ Allows customizations to the product through an extensible technology platform.
The retailer’s modifications are isolated during product upgrades, lowering the
total cost of ownership.
Introduction 1-1
Technical Architecture Overview
One of SIM’s most significant advantages is its flexible distributed topology. SIM offers
complete location transparency because the location of data and/or services is based
upon the retailer’s business requirements, not upon technical limitations. The server is
not deployed within the store. The application’s clients talk to the server across the
wire in almost real time.
The following diagram offers a high-level conceptual view of the main components
and integration points of the SIM architecture. For a detailed description of this
diagram, see Chapter 3, "Technical Architecture".
This chapter of the operations guide is intended for administrators who provide
support and monitor the running system.
The content in this chapter is not procedural, but is meant to provide descriptive
overviews of key system parameters, logging settings, and exception handling.
■ If Enable GMT is set to yes, timestamps are published to the RIB in GMT, and
incoming timestamps in RIB messages will be read as GMT.
■ If Enable GMT is set to no, timestamps are published to the RIB in the store time
zone, and incoming timestamps in RIB messages will be read as the store time
zone.
The PA_RTL_STR table contains the field RK_TIMEZONE, which holds the time zones
for each store. An administrator (or DBA) should determine the correct time zone, and
enter this information into the table. As stated above, once retailers have specified the
local (store) time, they can specify which time zone, GMT or store, to use for
timestamp publication to the RIB.
Configuration Files
Key client-defined configurations for SIM are described in this section. The system
parameters contained in these files are also detailed. Many parameters have been
omitted from this section because retailers should not have to change them.
Note: Within these files (and thus in some of the examples from
those files below), a # sign that precedes a value in the file signifies
that what follows is a comment and is not being utilized as a setting.
Some settings in the files are configurable. Thus, when retailers install SIM into an
environment, they must update these values to their specific settings.
batch_db.cfg
Database connection info for batch programs.
This file is no longer used.
dao.cfg
Data access object implementations.
This file defines the implementation classes for all data access objects in SIM. Each
value is the fully qualified class name of the implementation class for that key. If a
retailer customizes SIM, they may need to change some of the class names in this file.
date.cfg
Date format configuration.
This file contains java format pattern strings for several different types of dates
defined in the system. These pattern strings follow the rules defined in java for
SimpleDateFormat. The key for the date is defined as language and country followed
by the pattern key. For example, enAU.entryDate is the entry format for dates in
English for Australia.
The pattern keys are entryDate (used for date entry in calendar editor), shortDate
(format for short length date - this is the most commonly used), mediumDate (format
for medium length date), longDate (nearly complete date format), fullDate (fully
written out date format), monthPattern (formats only month and day), wirelessInput
(defines entry for wireless device), wirelessOutput (defines the format of dates on the
wireless device) and wirelessDisplay (defines the exact text string to display to the
user at the entry location).
The prefix before the pattern key is the ISO standard two-character code for language
and then two-character code for country. Both language and country must be present.
integration.cfg
Integration (RIB and RSL) settings.
This file contains settings related to SIM integration via Oracle Retail Integration Bus
(RIB) and Oracle Retail Service Layer (RSL). This file contains the following keys:
■ ribMessagePublishEnabled – if set to true, SIM will actually publish messages to
the RIB during processing. If set to false, SIM will not publish messages to the RIB,
but will instead log the messages to the SIM server log file. This is intended to be
used only for troubleshooting purposes. For an integrated production
environment, the value should be true.
■ rslCallsEnabled – if set to true, SIM will actually make RSL calls during
processing. If set to false, SIM will not allow the user to access areas of the
application that call RSL. This is intended to be used only for troubleshooting
purposes. For an integrated production environment, the value should be true.
■ *_PUB – the various keys that end in _PUB are the class names of classes that
implement interfaces to publish messages to the RIB. If a retailer customizes SIM,
they may need to change some of the class names in this file.
■ RMS_VERSION – this key is no longer used.
jndi.cfg
JNDI settings.
This file contains JNDI configuration settings. In the SIM server, the only key used is:
■ DB_JNDI_NAME – the name of the datasource SIM will use to get database
connections
However, java processes that are clients to the SIM server (the wireless server and
the java batch programs), the other keys are used to determine the JNDI
information for looking up the SIM server’s EJBs:
■ INITIAL_CONTEXT_FACTORY – the name of the factory used to get an initial
JNDI context. This should not be changed.
■ OBJECT_FACTORY_PACKAGES – the java packages containing object factories.
This should not be changed.
■ NAMING_SERVER_URL – the JNDI URL for the naming server. This should be
configured to point at the SIM server’s JNDI URL. The SIM installer should have
set this.
■ SECURITY_PRINCIPAL – the user name to connect to the Oracle Application
Server’s JNDI context. The SIM installer should have set this.
■ SECURITY_CREDENTIALS – the password to connect to the Oracle Application
Server’s JNDI context. The SIM installer should have set this.
ldap.cfg
Configuration for connecting to an LDAP server.
This file contains various configuration parameters for connecting to an LDAP server.
The SIM installer should have set all values.
log4j.xml
This contains configuration about what information gets logged and where it gets
logged. See Logging Information for more information.
reporting.cfg
Configuration for printing reports.
See the Reporting chapter in the Oracle Retail Store Inventory Management
Implementation Guide – Volume 1 for more information about this file.
services.cfg
Service implementation classes.
This file contains entries for every service in SIM that define the client-side, downtime,
and server-side implementations of a given service interface. If a retailer customizes
SIM, they may need to modify this file.
sim.cfg
SIM server configuration.
This file contains various parameters used by the SIM server. This file contains the
following keys:
■ DB_LOCK_WAIT_TIME – the number of seconds that SIM should wait when
trying to acquire a database lock.
■ DB_BATCH_MAX_PARAM – the maximum number of parameters allowed in a
batch JDBC statement. When the server arranges a large number of JDBC
statements into groups to execute them as a JDBC batch, this will be the maximum
group size.
■ BO_FACTORY_IMPL – the fully qualified class name of the class implementing
the BOFactory interface. This implementation is responsible for instantiating new
Business Objects in the SIM code. A retailer might need to change this value if
customizing SIM.
■ SERVER_INITIALIZE_CLASSNAMES – a comma-delimited list of classes that
implement oracle.retail.sim.closed.common.Initializer. These classes are run when
the SIM server is started.
■ CURRENCY_DEFAULT_TYPE – the currency code for the default currency. If
none is given, the base currency defaults to USD. This currency code will only be
used when currency information is not available for something in SIM, which is a
rare situation.
■ STOCK_COUNT_MAX_AUTH_LINES – when breaking a stock count into groups
of line items to authorize, the groups will be a maximum of this size
wireless_client_master.cfg
Wireless Server Configuration.
This file contains configuration used by the Wireless Server. The only key used is:
■ INITIALIZE – a comma-delimited list of classes that implement
oracle.retail.sim.closed.common.Initializer. These classes are run when the
Wireless server is started.
wireless_services.cfg
This file is no longer used.
retek/jndi_providers.xml
JNDI Configuration File:
SIM uses this file as part of its RSL-based integration with the Oracle Retail Price
Management (RPM) and Oracle Retail Merchandising System (RMS) applications, and
for connecting to the Retail Integration Bus (RIB). For more information about this
integration, see the integration chapters of this document. The jndi providers file
contains JNDI naming URL information for the other Oracle Retail applications to
which SIM makes remote calls.
retek/jndi_providers_ribclient.xml
JNDI Configuration File for RIB Communication:
SIM uses this XML file to provide the location of the JNDI directory used to
communicate with the RIB. The following properties must be defined:
■ java.naming.factory.initial – the JNDI factory class. Should not need to be changed.
■ java.naming.provider.url – the JNDI URL of the RIB J2EE application. Set by the
installer.
■ java.naming.security.principal – the JNDI username to connect to the RIB. Set by
the installer.
■ java.naming.security.credentials – the JNDI password to connect to the RIB. Set by
the installer.
retek/rules_sim.xml
Business Rules configuration.
This file defines business rules that are run in SIM. If a retailer customizes SIM, this file
may need to be modified.
retek/rib/injectors.xml
RIB subscriber configuration.
This file defines the classes that are used in SIM to handle messages coming in over the
RIB. A class is defined for each family type/message type combination that is
supported by SIM. If a retailer customizes SIM, this file may need to be modified. For
more information, see the Integration chapters of this document, and the RIB
documentation.
Port Configuration
The SIM PC and handheld clients require a number of ports to be open on the SIM
server in order to communicate. That means these ports will have to be opened on any
firewalls between the SIM clients and the SIM server.
The following types of ports are required to be open by SIM:
■ OAS HTTP port (to download the SIM client)
■ OAS RMI ports (to make RMI calls from the SIM client to the SIM server)
■ Wavelink server port (for the handheld devices to communicate with the Wavelink
server)
The Wavelink port is defined in wavelink-startup.sh and wireless_services.cfg. See the
"Wireless Server Port in wavelink-startup.sh and wireless_services.cfg" section of the
"SIM Configuration Files" appendix of the Oracle Retail Store Inventory Management
Installation Guide for more information.
The Oracle Application Server controls the HTTP and RMI ports. The HTTP port is a
single port, but the RMI ports are defined as a range of ports. These port numbers can
be changed if necessary. Refer to the following documentation for descriptions and
instructions on how to change the ports:
■ Oracle® Application Server Administrator's Guide
– Section D.2 Port Numbers (Sorted by Port Number) - Shows the port ranges
assigned by default.
http://download.oracle.com/docs/cd/B25221_
04/core.1013/b25209/portnums.htm#i688124
– Section 4.3.1 Changing OC4J Ports - Instructions for how to change port
ranges.
http://download.oracle.com/docs/cd/B25221_
04/core.1013/b25209/ports.htm#i1038852
Logging Information
One of the first places to look for information concerning a problem in SIM is in the log
files. Stack traces and debugging information can be found within the log files.
The log files are configured to roll over once they reach a certain size (currently 10
MB). Once a log file reaches the configured size, it will be renamed (for example,
sim.log will be renamed to sim.log.1) and new log messages will be written to a new
file (for example, sim.log). If there are already rolled-over logs, they will be also be
renamed for example, sim.log.1 becomes sim.log.2, sim.log.2 becomes sim.log.3, and
so forth). Only ten files are kept – if ten files already exist and the current file rolls
over, the oldest log file is deleted.
For information about logging related to the DexnexFileParser batch process, see
Chapter 4, "Batch Processes".
The log file for the java batch programs is located at:
<sim-oc4j-instance>/sim-home/log/sim-batch.log
It can be changed by changing the value of the File param in the sim.appender
appender in sim-home/batch-config/log4j.xml.
Editing log4j.xml
log4j.xml is in the SIM OC4J instance, in sim-home/files/prod/config/log.xml. It is
possible to change the level of any logger in the file. It is also possible to add new
loggers if you want a certain SIM class to log more information. For more detail about
loggers and logging levels, see Log4J documentation at
http://logging.apache.org/log4j/docs/documentation.html.
Note: After changing a log level in log4j.xml the SIM server must be
bounced before the change will take effect.
This chapter describes the overall software architecture for SIM, offering a high-level
discussion of the general structure of the system, including the various layers of Java
code. This information is valuable when the retailer wishes to take advantage of SIM’s
extensible capabilities and write its own code to fit into the SIM system.
Client Tier
SIM can be deployed on a wide variety of clients, including a desktop computer, a
hand-held wireless device, and so on. The graphical user interface (GUI) is responsible
for presenting data to the user and for receiving data directly from the user through
the front end. The presentation tier only interacts with the middle tier (as opposed to
the database tier). To optimize performance, the SIM PC front end facilitates robust
client-side processing.
The PC side of SIM is built upon a fat client architecture, which was developed using
Swing, a toolkit for creating rich GUIs in Java applications.
The handheld communication infrastructure piece, known as the Oracle Retail
Wireless Foundation Server, enables the handheld devices to communicate with the
SIM server. The handheld devices talk to the Oracle Retail Wireless Foundation Server,
which in turn makes calls as a client to the SIM server.
The middle tier consists of the following core components, which allow it to make
efficient and reliable calls to the SIM database:
■ Server services contain the pertinent business logic.
■ DAO objects handle database interaction.
■ Databeans contain the SQL necessary to retrieve data from and save data to the
database.
Note: There is at least one databean for every table and view in the
database, but there may be more, used for different specific purposes.
Database Tier
Note: The SIM data model includes some tables and columns that
are SIM-specific and some that derive their names from the
Association for Retail Technology Standards (ARTS) data model. Note,
though, that SIM uses but does not fully conform to the ARTS
standard.
The database tier is the application’s storage platform, containing the physical data
used throughout the application. The database houses data in tables and views; the
data is used by the SIM server and then passed to the client. The database also houses
stored procedures to do data manipulation in the database itself.
Distributed Topology
One of SIM’s most significant advantages is its flexible distributed topology. SIM offers
complete location transparency because the location of data and/or services is based
upon the retailer’s business requirements, not upon technical limitations. SIM’s client
server communication is an EJB call (which uses RMI). Because the server does not
have to be in the same store as the in-store clients, the clients log onto the server over
the wire.
SIM’s client code makes use of helper and framework classes that contain the logic to
look up remote references to EJBs on the server and make calls to them. These helper
and framework contain no business logic but contain only enough code to
communicate with the server.
For example, if a helper class is called by the client to perform the method update
shipment, the helper class appears to have that capability, though in reality it only
behaves as a passage to the EJB remote reference, which is looked up from the server.
The EJB remote reference communicates across the network with the server to
complete the business-logic driven processing. The server performs the actual update
shipment business logic and returns any return values or errors to the client.
Connectivity between the SIM client and the middle tier is achieved via the Java
Naming and Directory Interface (JNDI), which the SIM client accesses with the
necessary IP address and port. JNDI contains the means for the client to look up
services available on the application server.
The following diagram illustrates SIM’s deployment.
Table 4–1 Summary of Executable Shell Scripts, Batch Files, Java Packages
Executable shell script Batch program executed
ActivatePriceChanges.sh oracle.retail.sim.closed.batchjob.ActivatePriceChangeJob
CleanupPickList.sh oracle.retail.sim.closed.batchjob.CleanupPickListJob
ClearancePriceChange.sh oracle.retail.sim.closed.batchjob.BulkPriceClearanceJob
CloseProdGroupSchedule.sh oracle.retail.sim.closed.batchjob.ProductGroupScheduleCleanupJob
DexnexParser.sh oracle.retail.sim.closed.batchjob.DexnexFileParserJob
ExtractStockCount.sh oracle.retail.sim.closed.batchjob.GenerateUnitCountJoboracle.retail.
sim.closed.batchjob.GenerateUnitAmountCountJob
ItemRequest.sh oracle.retail.sim.closed.batchjob.GenerateItemRequestJob
LateSalesInventoryAdjustmentPublishJob.sh oracle.retail.sim.closed.batchjob.InventoryAdjustmentPublishJob
ProblemLineStockCount.sh oracle.retail.sim.closed.batchjob.GenerateproblemLineCountJob
PromotionPriceChange.sh oracle.retail.sim.closed.batchjob.BulkPricePromotionJob
PurgeAdHocStockCount.sh oracle.retail.sim.closed.batchjob.PurgeAdhocStockCountJob
PurgeAll.sh oracle.retail.sim.closed.batchjob.PurgeAllJob
PurgeAudits.sh oracle.retail.sim.closed.batchjob.PurgeAuditsJob
PurgeDSDReceivings.sh oracle.retail.sim.closed.batchjob.PurgeDSDReceivingsJob
PurgeInventoryAdjustments.sh oracle.retail.sim.closed.batchjob.PurgeInventoryAdjustmentsJob
PurgeItemRequests.sh oracle.retail.sim.closed.batchjob.PurgeItemRequestsJob
PurgeItemTickets.sh oracle.retail.sim.closed.batchjob.PurgeItemTicketsJob
PurgeLockings.sh oracle.retail.sim.closed.batchjob.PurgeLockingsJob
PurgePickList.sh oracle.retail.sim.closed.batchjob.PurgePickListsJob
PurgePriceChanges.sh oracle.retail.sim.closed.batchjob.PurgePriceChangesJob
PurgePriceHistories.sh oracle.retail.sim.closed.batchjob.PurgePriceHistoriesJob
PurgeReceivedTransfers.sh oracle.retail.sim.closed.batchjob.PurgeReceivedTransfersJob
PurgeStockCounts.sh oracle.retail.sim.closed.batchjob.PurgeStockCountsJob
PurgeStockReturns.sh oracle.retail.sim.closed.batchjob.PurgeStockReturnsJob
PurgeWHDReceivings.sh oracle.retail.sim.closed.batchjob.PurgeWHDReceivingsJob
RegularPriceChange.sh oracle.retail.sim.closed.batchjob.BulkPriceRegularJob
ResaFileParser.sh oracle.retail.sim.closed.batchjob.ResaFileParserJob
ReturnNotAfterDateAlert.sh oracle.retail.sim.closed.batchjob.ReturnNotAfterDateAlertJob
ThirdPartyStockCountParser.sh oracle.retail.sim.closed.batchjob.ThirdPartyStockCountParserJob
WastageInventoryAdjustments.sh oracle.retail.sim.closed.batchjob.GenerateInventoryWastageJob
WastageInventoryAdjustmentPublishJob.sh oracle.retail.sim.closed.batchjob.InventoryAdjustmentPublishJob
Batch Logging
Relevant progress messages are logged with regard to batch program runtime
information. The location of sim batch log and logging levels can be configured in
log4j.xml file which is located in sim-home/batch-config.
The user running the batch process must have write permission on the directory into
which the sim batch log is written, or the batch process will not run. If it is not
acceptable to give the batch user permission for the default log directory, log4j.xml
must be configured to use a different directory.
For more information, see Logging Information.
Batch Details
The following section summarizes SIM’s batch processes and includes both an
overview of each batch process business functionality, assumptions, and scheduling
notes for each batch.
Usage
The following command runs the ActivatePriceChanges batch job:
ActivatePriceChanges.sh <activate_date>
Where the activate_date is optional, date format must be in dd/mm/yyyy if the date is
specified.
If the user does not specify the date, the current server date in GMT time will be used
to find the matching price changes.
If the user passes a date string, then the batch process uses that date as the store local
time to find the matching price changes for each store.
Note: The price effective date in SIM database is stored as GMT date.
When integrating with Oracle Retail Price Management for pricing
information, the Enable GMT for Price Changes system option must
always be set to no since the pricing date from Oracle Retail Price
Management is not a GMT date.
CleanupPickList
The end of day batch process runs at the end of each day to reset the delivery bay and
close any open pending pick lists. The system takes the entire inventory from the
delivery bay and moves it to the back room. Any pending or in progress pick lists are
changed to a cancelled state. Users who are actioning a pick list are kicked out of the
system. That is, the system takes over their database lock, so they cannot make a save.
After the batch process is run, all pick lists are either completed or cancelled, and the
delivery bay has zero inventory.
Usage
The following command runs the CleanupPickList batch job:
CleanupPickList.sh
CloseProdGroupSchedule Batch
This batch program searches for all open product group schedules that have ended
date before today (or user specified date), and change the product group schedule
status to closed.
Usage
The following command runs the CloseProdGroupSchedule batch:
CloseProdGroupSchedule.sh <close_date>
Where the <close_date> is optional and a date is not entered, then the server date is
used.
DexnexFileParser Batch
This batch imports the direct delivery shipment records (PO, shipment and receipt)
from Dex/Nex files in the DEX/NEX directory into SIM.
With the uploaded data, SIM processing creates a DEX/NEX direct delivery, allowing
the store user to view, edit, and confirm the information contained in the DEX/NEX
file before approving it so that it can become an in progress direct delivery.
Usage
The following command runs the DexnexFileParser batch:
DexnexFileParser.sh file_name
Where file_name is the DEX/NEXT file name that resides at the location specified in
sim.cfg file under DEXNEX_INPUT_DIR, errors are written to the location specified by
DEXNEX_ERRORS_DIR in the same sim.cfg file.
ExtractStockCount Batch
The Extract Stock Count Batch program generates Unit stock counts or Unit and
Amount stock counts.
On a daily basis, the batch process creates the stock counts that are scheduled for the
current day or future date which matches the next scheduled date. The system looks at
all the scheduled stock count records and determines whether any are scheduled for
today or the user specified future date. The process creates the stock counts for each
individual store. If a scheduled count includes a list of 5 stores, 5 separate stock count
records are created.
For Unit stock counts, if the system is configured to use unguided stock counts, the
batch process does not generate multiple counts even if the item is located at multiple
locations within the store.
For unit and amount stock counts, if an all location stock count is being run, the batch
processing generates individual counts for every macro sequence location.
The date parameter is optional when running the Extract Stock Counts batch. If no
date is provided, today’s date is used. The date format is dd/mm/yyyy.
Usage
The following command runs the ExtractStockCount batch:
ExtractStockCount.sh <extract_date>
Where the extract_date is optional, if specified, it must be in format of dd/mm/yyyy.
Note: If date is not passed in when the batch is run, today’s date on
the server is used.
ItemRequest
The batch process looks for those product groups that are set up as item request type
that are scheduled for the current date. It generates the item request (with items and
quantities) in a pending or worksheet status. The user (for example, a manager) can
then add items, delete items, change quantities, and so on before submitting the data
to the merchandising system. The merchandising system can generate POs or
warehouse to store transfers as applicable.
Usage
The following command runs the ItemRequest batch:
ItemRequest.sh
LateSalesInventoryAdjustmentPublishJob
LateSalesInventoryAdjustmentPublishJob process publishes the late sale inventory
adjustments records to Retail Merchandise System (RMS) through the Retail
Integration Bus (RIB). Late sale inventory adjustment could be the result of processing
late sale records in ReSA sale data file by ResaFileParser batch.
This batch can be run anytime. For example, it can be run after ResaFileParser batch
for each store or run after ResaFileParser batch completes for all stores.
Usage
The following command runs the LateSalesInventoryAdjustmentPublishJob.sh:
LateSalesInventoryAdjustmentPublishJob.sh
ProblemLineStockCount Batch
Before the batch process runs, the retailer establishes a group of items and item
hierarchies (by associating them to the problem line group type) and selects applicable
parameters (negative SOH, negative available, and so on). The problem line batch
process goes through the list of items in the group, determining which fall within the
parameters. The system automatically creates a stock count from those items that do
fall within the parameters.
If an item is a problem line item (negative inventory for example) on a stock count,
and the user does not get the chance to perform the stock count on it that day, the next
day the item may no longer be a problem line (positive inventory). However, the
system continues to create a stock count for that item because a problem existed at one
time.
Usage
The following command runs ProblemLineStockCount batch:
problemLineStockCount.sh
ResaFileParser Batch
This batch program imports sales transaction data (POSU file) that originated in a
point-of-sale system. The external audit system will provide in its sales upload file a
percentage or quantity that indicates how much the inventory needs to be reduced by,
in addition to the sold quantity.
For example, meat will become lighter as fluids evaporate. Other items, for example
cheese or ham, will only be reduced when of the outside layers are cut off to sell the
item.
SIM takes the sales transaction data to update the store item’s inventory buckets. From
the batch program, SIM learns about inventory movement (that is, what is sold and
what is returned). Once SIM attains the data, SIM assumes that sales should be taken
from the store’s shelf-related inventory buckets. This assumption is important to SIM’s
shelf replenishment processing. Similarly, SIM assumes that returns should go to the
backroom bucket; the system’s logic is that returns must be inspected.
■ If an item in file has an item level below the transaction level (for example, item
level=3, transaction level = 2), then batch process will compare the parent item’s
item level and transaction level as following:
– If ref item’s parent item level equals the transaction level, and parent item
exists in the store, then the stock on hand of the parent item will be updated.
– If ref item’s parent item is a transaction level item, but is not ranged (exists) for
the store, then a new ranged item is created for that store, and the stock on
hand for the parent item will be updated.
For late sale items:
■ A late sale is a sales transaction occurring before a stock count is completed, and
the sale data file is processed after the count has started.
■ SIM system parameter stock_count_sales_processing with value of Timestamp
Processing or Daily Sales Processing indicates if the POSU sales transaction data
contains the transaction date timestamp.
■ Timestamp Processing indicates that sale data in the Sales Audit upload file has
the timestamp for the transaction date. The sales data transaction timestamp is
compared against the timestamps taken during the stock count to decide if the
sales transaction is a late sale.
■ Daily Sales Processing indicates sale data in the POSU upload file does not have
the timestamp for the transaction date.
For daily sales processing, the Before Store Open or After Store Close stock count
time frame parameters are also used to determine whether the stock count
occurred before or after business hours so that SIM knows how to handle late
sales.
■ When SIM encounters a ReSA late-sale item, it must correct the inventory for stock
counts that have been processed after the time of the sale. The stock count creates
inventory adjustments for discrepancies during the count that are out of sync. The
ResaFileParser will attempt to correct the inventory buckets by creating an
inventory adjustment with the reversal in the amount indicated in the ReSA flat
sale file.
For open stock count items:
■ An open stock count item is the in-progress stock count item while ResaFileParser
is running.
■ For open stock count items, in addition to updating the store item’s inventory
buckets, the batch refreshes the stock count snapshot, if applicable.
Usage
The following pre-setup items are required when running ResaFileParser batch:
■ The ReSA File Parser batch processes ReSA data files through the Oracle database
stored procedure. The stored procedure locates the file location through database
directory objects.
■ RESA_DIR, RESA_ORIGINAL_DIR and RESA_LOG_DIR database directory
objects are created when SIM is installed.
■ The read and write privileges on these database directory objects must be granted
to the SIM database user.
■ The corresponding operating system directories for the file storage must be
created.
■ The ReSA data file needs to reside on the database server or at locations that can
be accessed by Oracle database process. The Oracle process should have full access
to the directory locations specified by RESA_DIR, RESA_ORIGINAL_DIR and
RESA_LOG_DIR.
■ The actual file location on the database server can be found by executing the
following queries:
■ Select directory_name, directory_path from dba_directories where directory_name
in ('RESA_DIR', 'RESA_ORIGINAL_DIR', 'RESA_LOG_DIR');
■ The system or database administrator must ensure that the operation system
directory has the correct read and write permissions for the Oracle database
processes.
■ The minimum required permissions for the input file should be given:
rw_rw_r__
Where:
■ filename (required): The name of the input POSU file containing the sales
transaction data from one store.
ResaFileParser batch has the ability of processing multiple files. File names are
separated by a space.
Multi-Threading
When multiple files are sent to ResaFileParser batch for processing, the batch spawns
multi-threads based on the number of threads configured in the restart control table.
Each file can only be processed by one thread; the same data file will never be acted
upon by multiple processes.
The number of parallel threads to execute the batch processes can be configured. To
configure the thread numbers for the batch, update the NUM_THREADS column in
the RK_RESTART_CONTROL table for program_name RESA_FILE_PARSER.
Log file: ResaFileParser batch writes the log file to the location specified by RESA_
LOG_DIR database directory object. The log file has the following naming convention:
<resa_file>.log
ReturnNotAfterDateAlert Batch
This batch process warns users a number of days in advance that the RTV/RTW is
about to reach the Not After date and must be dispatched. The value for the number
of days of advance warning is configurable using the system’s administration screens.
Usage
The following command runs the ReturnNotAfterDateAlert batch:
ReturnNotAfterDateAlert.sh
ThirdPartyStockCountParser Batch
This batch process imports stock count file from a third-party counting system (such as
RGIS), the stock on hand quantities are updated for the existing unit and amount stock
count records in SIM.
Non-Auto-Authorized Count -- if the Auto-Authorize flag is not checked during
product group setup, the following occurs:
■ The import file contains item and quantity counted information. SIM populates
the count quantity on the stock count records and sets the authorize quantity equal
to the count quantity. Once the file has been imported from the RGIS system, the
stock count records type is set to authorize and the status is set to in progress. The
user needs to manually authorize the stock after the import process completes.
■ If any items are sent from RGIS that were not already ranged to the store, SIM
adds the item to the appropriate stock count record (based on department), and
sets the snapshot SOH amount to 0.
■ During the import process from RGIS to SIM, any unknown item data is written to
the Not On File table.
■ Any not-on-file or not-at-store items can be assigned a valid SIM item ID using the
Rejected Items screen on the PC.
Auto-Authorized Count -- if the Auto-Authorize flag is checked during product group
setup, the following occurs:
■ The import file contains item and quantity counted information. SIM populates
the count quantity on the stock count records, and sets the authorize quantity
equal to the count quantity. Once the file has been imported from the RGIS system,
the stock count records type is set to authorize and the status is set to completed.
■ If any items are sent from RGIS that were not already ranged to the store, SIM
adds the item to the appropriate stock count record (based on department), and
sets the snapshot SOH amount to 0.
■ During the import process from RGIS to SIM, any unknown item data is written to
the Not On File table.
■ The authorization process occurs as part of the import of the third party file. Note
that in this case, any items that are considered Not On File or Not at Store items
cannot be assigned to a valid SIM item ID. The auto-authorization process
assumes the retailer has resolved all discrepancies and data conflicts prior to
exporting the count data from the third-party system. An assumption is also made
that no data will be reviewed or changed using SIM. This process merely updates
SIM with the stock count data and generates an export file to RMS with the same
stock count data.
■ The user does not need to manually authorize the stock after the import process
completes.
■ Once the import process is complete, SIM automatically authorizes the unit and
amount stock counts and exports the stock count data to RMS. The location of this
export upload file to RMS is specified by the database directory object STOCK_
COUNT_UPLOAD_DIR. Under normal operating circumstances, this manual
process is triggered by a SIM user through the SIM PC Stock Count Screen.
Usage
The ThirdPartyStockCountParser batch processes stock count import files through the
Oracle database stored procedure. The stored procedure locates the file location
through database directory objects: STOCK_COUNT_DIR and STOCK_COUNT_
UPLOAD_DIR, the read and write privileges on these directory objects should be
granted to the schema owner. The stock count import data file needs to reside on the
database server or locations that can be accessed by Oracle database process. The
Oracle process should have full access to the directories specified by STOCK_COUNT_
DIR and STOCK_COUNT_UPLOAD_DIR, and the stock count import data file
permissions need to be changed to allow the oracle process to read and write (remove)
the file.
The corresponding operating system directories for the file storage must be created.
The system or database administrator must ensure that the operation system directory
add the correct read and write permissions for the Oracle database processes.
Where:
■ file_name is the import file data from one store; the stock count import data file
needs to be put at the location specified by the STOCK_COUNT_DIR Oracle
directory. This upload file is an export file to RMS. The Oracle database process
must have full access to the stock count data file. Use chmod 777 to change the
stock count import data file before start the batch.
■ snapshot is an optional argument that indicates if batch will automatically take the
snapshot for the stock count if snapshot has not been taken. Snapshot is required
prior to authorizing the stock count.
WastageInventoryAdjustments Batch
This batch process looks for wastage product groups that are scheduled for today and
creates an inventory adjustment for each item in the product group. The batch process
uses amounts based on percentage/units. Note that if both a percentage and unit exist,
the batch process applies the least amount of the two. For example, consider an item
with a stock on hand value of 100. If the two values are 10% and 5 units, the batch
process would create an inventory adjustment of 5 units for the item.
The batch process creates a completed inventory adjustment record using the
adjustment reason of Shrinkage (code = 1) for each item that is published to the
merchandising system.
Usage
Following command runs the WastageInventoryAdjustments batch:
WastageInventoryAdjustments.sh
After the batch process complete, the retailer needs to run another batch
WastageInventoryAdjustmentPublishJob.sh to publish the inventory adjustment
generated by the above batch to the merchandising system.
WastageInventoryAdjustmentPublishJob
The batch process picks up all items that were flagged for publishing to the
merchandising system. After an item is published, the flag is reset.
Usage
Following command runs the WastageInventoryAdjustmentPublishJob batch:
WastageInventoryAdjustmentPublishJob.sh
PurgeAll Batch
This process deletes records from the SIM application that meet certain business
criteria (for example, records that are marked for deletion by the application user,
records that linger in the system beyond certain number of days, and so on).
Following is the list of transactions whose records get purged by the PurgeAll.sh
batch:
■ Received transfers
■ Stock Counts
■ Inventory Adjustments
■ Warehouse Receivings
■ DSD/DSDASN Receivings
■ Stock Returns
■ Price Changes
■ Price Histories
■ Pick Lists
■ Item Requests
■ Item Tickets
■ Audits
■ Lockings
■ Adhoc Stock Counts
Usage
PurgeAll.sh <purge_date>
PurgeAdHocStockCount Batch
This batch program deletes ad hoc stock counts with a status of in progress. Any ad
hoc stock count with a creation date/time stamp older than the Days to Hold In
Progress Ad Hoc Counts parameter value will be deleted. For example, the default
value is 1. If the batch program is run with the default value, the batch program would
delete all in progress counts more than 24 hours old.
Usage
PurgeAdHocStockCount.sh
PurgeAudits
This batch process deletes audit records. Any audit record with a create
date/timestamp older than the Days To Hold Audit Records parameter value is
deleted. For example, if the default value is 30 and the batch program is run with the
default value, the batch program would delete all the audit records that are more than
30 days old.
Usage
PurgeAudits.sh <purge_date>
Where purge_date is optional and the date format must be in dd/mm/yyyy if purge_date
is specified.
PurgeDSDreceivings Batch
This batch process deletes the Direct Store Delivery receivings.
Any DSD record which is in Closed/Cancelled status and which has a complete date
older than Days to Hold Received Shipments is an eligible record for purge.
However, before a DSD record is purged, checks are made to ensure that the purchase
order associated with a particular DSD is also completed and is older than Days to
Hold Purchase Orders.
Another check is made to identify the DSDASNs associated with a DSD record. If the
DSDASN is cancelled/completed and is older than Days to Hold Received Shipments,
only then it can get purged.
In effect a DSD record can be purged only if its associated PO and DSDASN records
can be purged.
Usage
PurgeDSDReceivings.sh <purge_date>
Where purge_date is optional and the date format must be in dd/mm/yyyy if purge_date
is specified.
PurgeInventoryAdjustments Batch
This batch process deletes inventory adjustments. Any inventory adjustment record
with a create date/timestamp older than Days To Hold Completed Inventory
Adjustments parameter value will be deleted. For example, the default value is 30. If
the batch program is run with the default value, the batch program would delete all
the inventory adjustment records, which are more than 30 days old.
Usage
PurgeInventoryAdjustments.sh <purge_date>
Where purge_date is optional and the date format must be in dd/mm/yyyy if purge_date
is specified.
PurgeItemRequests Batch
This batch process deletes item requests which are in Cancelled/ Completed status.
Any item request record with a process date/timestamp older than Days To Hold Item
Requests parameter value will be deleted. For example, the default value is 30. If the
batch program is run with the default value, the batch program would delete all the
item request records, which are more than 30 days old.
Usage
PurgeItemRequests.sh <purge_date>
Where purge_date is optional and the date format must be in dd/mm/yyyy if purge_date
is specified.
PurgeItemTickets Batch
This batch process deletes item tickets which are in Printed/ Completed status. Any
item tickets record with a status date/timestamp older than Days To Hold Item Tickets
parameter value will be deleted. For example, the default value is 30. If the batch
program is run with the default value, the batch program would delete all the item
ticket records, which are more than 30 days old.
Usage
PurgeItemTickets.sh <purge_date>
Where purge_date is optional and the date format must be in dd/mm/yyyy if purge_date
is specified.
PurgeLocking Batch
This batch process deletes lockings records from RK_LOCK_RECORD table. Any lock
record with a lock date/timestamp older than Days To Hold Locking Records
parameter value will be deleted. For example, the default value is 30. If the batch
program is run with the default value, the batch program would delete all the lock
records, which are more than 30 days old.
Usage
PurgeLockings.sh <purge_date>
Where purge_date is optional and the date format must be in dd/mm/yyyy if purge_date
is specified.
PurgePickList Batch
This batch process deletes pick lists which are in Completed/ Cancelled state. Any
pick list record with a post date/timestamp older than Days To Hold Pick Lists
parameter value will be deleted. For example, the default value is 30. If the batch
program is run with the default value, the batch program would delete all the pick list
records, which are more than 30 days old.
Usage
PurgePickList.sh <purge_date>
Where purge_date is optional and the date format must be in dd/mm/yyyy if purge_date
is specified.
PurgePriceChanges Batch
This batch process deletes price changes which are in Approved/ Rejected/
Completed status. Any price change record with an effective date/timestamp older
than Days To Hold Price Changes parameter value will be deleted. For example, the
default value is 30. If the batch program is run with the default value, the batch
program would delete all the price change records, which are more than 30 days old
Usage
PurgePriceChanges.sh <purge_date>
Where purge_date is optional and the date format must be in dd/mm/yyyy if purge_date
is specified.
PurgePriceHistories Batch
This batch process deletes price histories. At least a minimum of 4 historical prices are
maintained for an item/store. Days To Hold Price History will determine the number
of days that price histories can be kept in the database.
Usage
PurgePriceHistories.sh <purge_date>
Where purge_date is optional and the date format must be in dd/mm/yyyy if purge_date
is specified.
PurgeReceivedTransfers Batch
This batch process deletes received transfers. The transfer in and transfer out
transactions will be purged from the database. The transfer out transactions which are
in Received/ Auto Received/ Complete Approved/ Complete Reject/ Cancelled /
Cancelled Request will be purged if the records are older than Days To Hold Received
Transfer Records parameter. Also, the Purge Received Transfers parameter must be set
to Yes in the admin screen to enable purging of the received transfers.
Usage
PurgeReceivedTransfers.sh <purge_date>
Where purge_date is optional and the date format must be in dd/mm/yyyy if purge_date
is specified.
PurgeStockCounts Batch
This batch process deletes stock counts which are in Completed/ Cancelled status.
Any stock count with a schedule date/timestamp older than Days To Hold Completed
Stock Counts parameter value will get deleted. For example, the default value is 30.If
the batch program is run with the default value, the batch program would delete all
the stock return records, which are more than 30 days old
Usage
PurgeStockCounts.sh <purge_date>
Where purge_date is optional and the date format must be in dd/mm/yyyy if purge_date
is specified.
PurgeStockReturns Batch
This batch process deletes stock returns which are in Dispatched/ Cancelled status.
Any stock return record with a completed date/timestamp older than Days To Hold
Returns parameter value will be deleted. For example, the default value is 30.If the
batch program is run with the default value, the batch program would delete all the
stock return records, which are more than 30 days old
Usage
PurgeStockReturns.sh <purge_date>
Where purge_date is optional and the date format must be in dd/mm/yyyy if purge_date
is specified.
PurgeWHDReceivings Batch
This batch process deletes the Warehouse delivery receivings which are in Completed
/ Cancelled status. The warehouse receivings records which are older than the Days
To Hold Received Shipments will get purged, based on the value set for this
parameter.
Usage
PurgeWHDReceivings.sh <purge_date>
Where purge_date is optional and the date format must be in dd/mm/yyyy if purge_date
is specified.
Running A Script
Retailers are required to be aware of the following before running the script:
■ The input price change file has to be placed in BPP_INPUT_DIR before starting the
batch process.
■ The minimum required permissions for the input file should be given. Minimal
required permissions for the any price change input file are:
rw_rw_r__
■ The number of threads for multi-threading of the batch process should be set
based on the machine configuration.
■ After the completion of batch processes, check for the .bad file and .dsc file to see if
there are any bad or discarded records.
The following defines the main price change files and their descriptions:
PromotionPriceChange.sh
This is the shell script for importing the promotion price changes to SIM.
Do the following to run the script:
1. Place the promotion price change input files from RPM in BPP_INPUT_DIR
directory.
2. Run the PromotionPriceChange.sh at the command prompt with price change
input files as arguments separated by space. For example:
PromotionPriceChange.sh <<filename1>> <<filename2>>
filename1 and filename2 are separated by a space. The order for processing the files
for price changes is from left to right.
■ The shell script sets the appropriate java environment by calling the javaenv.sh
shell script.
■ The javaenv.sh shell script sets the classpath with all the jars and classpath
variables required to call the bulkPricePromotionJob java class in SIM server.
■ BulkPricePromotionJob calls the promotion_file_parser stored procedure and
loads the data from the price change input file into the staging tables in SIM.
BulkPricePromotionJob moves the input file to the archive directory, BPP_
ARCHIVE_DIR.
■ BulkPricePromotionJob sets the thread IDs to a logical unit of promotion
information based on the number of threads configured for this promotion
batch processing.
ClearancePriceChange.sh
This is the shell script for importing the clearance price changes to SIM.
Do the following to run the script:
1. Place the clearance price change input files from RPM in BPP_INPUT_DIR
directory.
2. Run ClearancePriceChange.sh at the command prompt with price change input
files as arguments separated by space. For example:
ClearancePriceChange.sh <<filename1>> <<filename2>>
filename1 and filename2 are separated by a space. The order for processing the files
for price changes is from left to right.
■ The shell script sets the appropriate java environment by calling the javaenv.sh
shell script.
■ The javaenv.sh shell script sets the classpath with all the jars and classpath
variables required to call the BulkPriceClearanceJob java class in SIM server.
■ BulkPriceClearanceJob calls clearance_file_parser stored procedure and loads
the data from the price change input file into the staging tables in SIM.
BulkPriceClearanceJob moves the input file to the archive directory, BPP_
ARCHIVE_DIR.
■ BulkPriceClearanceJob sets the thread IDs to a logical unit of clearance
information based on the number of threads configured for this clearance
batch processing.
RegularPriceChange.sh
This is the shell script for importing the regular or permanent price changes to SIM.
Do the following to run the script:
1. Place the regular price change input files from RPM in BPP_INPUT_DIR directory
2. Run RegularPriceChange.sh at the command prompt with price change input files
as arguments separated by space. For example:
RegularPriceChange.sh <<filename1>> <<filename2>>
filename1 and filename2 are separated by a space. The order of processing the files
for price changes is from left to right.
■ The shell script sets the appropriate java environment by calling the javaenv.sh
shell script.
■ The javaenv.sh shell script sets the classpath with all the jars and classpath
variables required to call the BulkPriceRegularJob java class in SIM server.
■ BulkPriceRegularJob calls regular_price_file_parser stored procedure and
loads the data from the price change input file into the staging tables in SIM.
BulkPriceRegularJob moves the input file to the archive directory, BPP_
ARCHIVE_DIR.
■ BulkPriceRegularJob sets the thread IDs to a logical unit of regular price
information based on the number of threads configured for this regular batch
processing.
The last commit point for this thread is saved in the table RK_RESTART_
BOOKMARK. The system administrator can view the error and make any correction if
needed. Once the records are ready to run again, the administrator sets the RESTART_
FLAG to Y in RK_RESTART_PROGRAM_STATUS table. In the event of a restart, the
process begins from the last commit point.
ResaCustomerOrderFileParser Batch
This batch imports the Inventory Reservation information related to a Customer Order
from ReSA. The Customer Order transactions originate from the point-of-sale system
as Customer Pickup, Layaway, Customer Order and Pending Purchase transactions.
In a point-of-sale system, the customer reserves the inventory of an item for later
pickup. These items have to be reserved in SIM and inventory of these items should
me moved to the Unavailable bucket. In SIM, the reserved inventory is accounted in
Customer Order Quantity bucket and this bucket is considered as unavailable
inventory. The available Stock On Hand is updated accordingly.
When the items are delivered as part of pickup in a point-of-sale system, the Customer
Order Quantity bucket has to be updated to un-reserve the inventory.
The ResaCustomerOrderFileParser performs the following:
■ Import the inventory reservation information from the flat file into the staging
table.
■ Identifies bad records and discarded records, and logs them in a separate file. The
bad and discarded records are identified by running the business rules on the
input details. The business rules include:
– Items and Store combination exists in SIM.
– Checks for the valid UOM of the item.
– The items must be transaction level or lower in order for the system to process.
– Consignment and non-sellable items are not considered for Inventory
Adjustment.
– Quantity should be greater than zero.
– The final quantity of the Customer Order Quantity after reserving and
unreserving should not be negative.
– Validate the action for each item. The valid actions are:
* New
* CancelReservation
* Fulfill
* CancelFulfill
– Identify duplicate entries of Customer Order.
■ Read the Customer Order header and detail information from the staging table.
The header information includes the Store ID, Customer Order number, and
Timestamp. The detail information includes Item Number, Quantity and Action.
■ Based on action for each item, determine if the final quantity for the item is not
negative. For example, in a Customer Order, if the reservation quantity of an item
is 10, the fulfilled quantity cannot be more than 10. If the reservation quantity is
more than 10, it violates the business rule that the user had picked up more
quantity than the reserved quantity.
■ Update the Customer Order tables for each item and quantity
■ If the item is other than Consignment and Concession Item and non-sellable item,
create Inventory Adjustment using the reason codes as
– Customer Order Reservations – In
– Customer Order Reservations - Out
■ In a customer order, when the reservation quantity of an item is equal to the
fulfilled quantity, then the customer order is completed.
Assumptions
If the UOM is not passed as input, the UOM of the item is assumed to be Standard
UOM.
Retailers are required to be aware of the following before running the script:
■ The input Customer Order file has to be placed in RESA_CO_DIR before starting
the batch process.
■ The minimum required permissions for the input file should be given. Minimal
required permissions for the any price change input file are:
rw_rw_r__
■ The number of threads for multi-threading the batch process should be set based
on the machine configuration.
■ After the completion of batch processes, check for the .bad file and .dsc file to see if
there are any bad or discarded records.
Usage
ResaCustomerOrderFileParser.sh <filename1> <filename2>
Where filename1 and filename2 are separated by a space. The order for processing the
files is from left to right.
If multiple input files are considered for processing, each file will be processed by a
separate thread. The batch supports up to a max number of threads configured for this
process.
The shell script sets the appropriate java environment by calling the javaenv.sh shell
script.
The javaenv.sh shell script sets the classpath with all the jars and classpath variables
required to call the ResaCustomerOrderFileParserJob java class in SIM server.
ResaCustomerOrderFileParserJob calls the ResaCustOrderFileParserProcedure java.
The ResaCustOrderFileParserProcedure invokes start_cust_order_resa_parser stored
procedure in RESA_CUST_ORDER_FILE_PARSER package. This stored procedure
loads the data from the customer order input file into the staging tables in SIM and
processes it. After the successful processing, it moves the input file to the RESA_CO_
ARCHIVE_DIR archive directory.
The log file for each execution is generated and placed in the RESA_CO_LOG_DIR
directory.
This batch also supports Restart and Recovery process.
The number of threads that will be created to work on the units of work is determined
by the configuration parameter NUM_THREADS_IN_POOL in sim.cfg (located at
sim-home/files/prod/retek/sim.cfg). If no value is specified, a default value of 4 is
used.
■ ST – Contains the transaction set number (for example, 894) and a control number.
■ G82 – Contains the type of delivery (Delivery or Return), supplier information,
and delivery date.
■ N9 – Contains additional supplier information (Canada only).
■ LS – Contains an ID for the details loops to follow.
■ G83 – Contains the item #, quantity, UOM, unit cost, and item description.
■ G72 – Contains allowance (e.g. 10% off) or charge (e.g. environmental levy)
information.
■ LE – Contains the loop trailer.
■ G84 – Contains the total quantity and cost of the delivery.
■ G86 – Contains the suppliers UCC signature.
■ G85 – Contains an authentication identifier.
■ SE – Contains the number of transactions in the transmission.
The following table provides details of the DexnexFileParser batch file:
Note: After the batch has completed, from the Main Menu go to Inv
Mgmt>Stock Counts>Stock Count List screen. Notice that a separate
stock count record has been created for each department. The batch
creates stock count groups for all items for all departments for the
store, including items with SOH values of zero (0) grouped by
department. For each department record, the Stock Count Type and
Status from the stock count list screen will be Type = Stock Count and
Status = New.
Note: The batch process imports the stock count quantity from the
flat file into the SIM stock count. If the count contains items in SIM
that were not ranged for the store, SIM will temporarily range the
item. If the count contains items that do not exist in SIM, they will go
to the Not on File table. These unknown items can be assigned a valid
SIM ID through the Not on File screen for non-auto authorized stock
count. Inventory adjustment is written internally for SIM only.
Inventory Adjustment is not sent to RMS for Unit and Amount stock
count since the export file will send the stock count result to RMS. The
same batch process will also generate an export file to import into
RMS with all the valid counted quantities. The output file will be
generated in the location specified by Oracle database directory object
STOCK_COUNT_UPLOAD_DIR.
A purgepicklist, 4-18
purgepricechanges, 4-18
activity locking, 3-6
purgepricehistories, 4-18
purgereceivedtransfers, 4-19
B purgestockcounts, 4-19
purgestockreturns, 4-19
backend system configuration, 2-1
purgeWHDreceivings, 4-20
batch file layout specifications, B-1
batch scheduler, 4-2
dexnexfileparser flat file, B-3
price bulk processing flat file, B-7
resafileparser flat file, B-1 C
thirdpartystockcountparser flat file, B-6 configuration, 2-1
batch files, 4-1 files, 2-2
batch processes, 4-1 batch_db.cfg, 2-2
batch details, 4-5 dao.cfg, 2-2
activate price changes batch, 4-5 date.cfg, 2-2
cleanuppicklist, 4-6 integration.cfg, 2-3
closeprodgroupschedule, 4-6 jndi.cfg, 2-3
dexnexfileparser, 4-6 ldap.cfg, 2-3
extractstockcount, 4-7 log4j.xml, 2-4
itemrequest, 4-7
reporting.cfg, 2-4
latesalesinventoryadjustmentpublishjob, 4-7, retek/jndi_providers.xml, 2-5
4-8 retek/retek/jndi_providers_ribclient.xml, 2-6
resafileparser, 4-8 retek/rib/injectors.xml, 2-6
returnnotafterdatealert, 4-12 retek/rules_sim.xml, 2-6
thirdpartystockcountparser, 4-12 services.cfg, 2-4
wastageinventoryadjustmentpublishjob, 4-14 sim.cfg, 2-4
wastageinventoryadjustments, 4-14 wireless_client_master.cfg, 2-5
batch logging, 4-3 wireless_services.cfg, 2-5
functional descriptions and dependencies, 4-3 port, 2-6
multi-threading, 4-26 time zones, 2-1
overview, 4-1 transaction timeout, 2-7
price bulk processing batch process, 4-20 creating an auto-authorized third-party stock
resacustomerorderfileparser, 4-24 count, C-1
restart and recovery, 4-24
running a script, 4-20
running, 4-1 D
scheduling, 4-5 distributed topology, 3-4
SIM purge batch process, 4-15
purgeadhocstockcount, 4-16
purgeall, 4-15 E
purgeaudits, 4-16 executable shell scripts, 4-1
purgeDSDreceivings, 4-16
purgeinventoryadjustments, 4-17
purgeitemrequests, 4-17, 4-18
I
purgeitemtickets, 4-17 introduction, 1-1
Index-1
technical architecture overview, 1-1
J
java packages, 4-1
L
logging, 2-7
changing logging levels, 2-8
default location, files, 2-7
client log files, 2-8
server log files, 2-7
logging information, 2-7
P
port configuration, 2-6
R
return value batch standards, 4-3
S
SIM technical architecture
client tier, 3-3
database tier, 3-4
diagrams and description, 3-2
middle (server) tier, 3-3
stock count results upload file layout
specification, A-1
stock count results -- flat file specification, A-1
supported environments, 2-2
supported products, 2-2
T
technical architecture, 3-1
advantages, 3-1
SIM technology stack, 3-1
Index-2