<h2>acs-reference Design Documentation</h2><h3>I. Introduction</h3><p>Reference data services are often overlooked in the rush to get
<h2>acs-reference Design Documentation</h2>
<h3>I. Introduction</h3>
<p>Reference data services are often overlooked in the rush to get
coding. Much of the code is redundant or of similarly patterned
implementations. This package intends to address some common
features and needs.</p><h3>II. Historical Considerations</h3><p>Before the existence of acs-reference, the ACS required that you
features and needs.</p>
<h3>II. Historical Considerations</h3>
<p>Before the existence of acs-reference, the ACS required that you
preload some tables in a script to get some basic reference
functionality. There were many problems with this:</p><ul>
functionality. There were many problems with this:</p>
<ul>
<li>No easy way to find out what reference data even existed.</li><li>No way to find out how old the data was.</li><li>No way to find out where that data came from.</li><li>Very US/English slant on the data.</li>
<p>The UNSPSC reference data has a data model for handling data
revisions. An application can determine any new/revised category
based on existing, obsolete data.</p><h3>VI. User Interface</h3><p>Their is no end user interface. There needs to be some kind of
based on existing, obsolete data.</p>
<h3>VI. User Interface</h3>
<p>Their is no end user interface. There needs to be some kind of
admin UI to report status and possibly manage updates per
requirements.</p><h3>VII. Configuration/Parameters</h3><p>None</p><h3>VIII. Future Improvements/Areas of Likely Change</h3><p>A server based update mechanism will be supported. This will
requirements.</p>
<h3>VII. Configuration/Parameters</h3>
<p>None</p>
<h3>VIII. Future Improvements/Areas of Likely Change</h3>
<p>A server based update mechanism will be supported. This will
allow for tables to be updated (and preferably diffed) instead of
being reloaded with a package upgrade. An interface to produce
xml/csv from the reference data would be a nice service to the
community (allowing legacy applications a way to import this
<p>This document describes the requirements for the ACS Reference
service package. This package has the following primary
functions:</p><ul>
functions:</p>
<ul>
<li>It allows applications to refer to and employ a common set of
reference data.</li><li>It gives administrators the ability to run standard reports on
this data.</li><li>It offers a convenient repository for and the ability to run
reports on data of this sort.</li><li>It allows us to monitor the usage of reference data.</li>
</ul><h3>II. Vision Statement</h3><p>What is reference data? Simply put, it is data that doesn't
</ul>
<h3>II. Vision Statement</h3>
<p>What is reference data? Simply put, it is data that doesn't
change very often and also in many cases comes from an external
source and not from within the system itself. Many times it is
created from a standards body, i.e. <a href="http://www.iso.ch/">ISO</a> or <a href="http://www.ansi.org">ANSI</a>, and may be required for a client's
particular industrial needs.</p><p>Some examples of reference data are:</p><ul>
particular industrial needs.</p>
<p>Some examples of reference data are:</p>
<ul>
<li>Geographic data: zip codes, country codes and
states/provinces</li><li>Standards bodies data: ISO 4217 currency codes, ISO 3166
Country Codes, ITU Vehicle Signs</li><li>Quasi-Standards: S&P Long-term Issuer Credit Ratings</li><li>Internal: Status Codes, Employee Position Codes</li>
</ul><p>Historically, reference data has been looked upon by developers
</ul>
<p>Historically, reference data has been looked upon by developers
as something less important than more immediate coding needs, and
so most data models simply defer the issue by treating reference
data as something simple to implement. Elsewhere. The reality is
that for most organizations reference data is extremely important
and also extremely difficult to manage.</p><p>This module will not only <i>package</i> all of a site's
and also extremely difficult to manage.</p>
<p>This module will not only <i>package</i> all of a site's
reference data in one place, it will also help manage that
data.</p><h3>III. System Overview</h3><p>The ACS Reference package consists of:</p><ul>
data.</p>
<h3>III. System Overview</h3>
<p>The ACS Reference package consists of:</p>
<ul>
<li>A standard framework for monjitoring and modifying reference
data.</li><li>A method of determining whether or not that data is
expired.</li><li>The ability to include not only the data but also functions to
work with that data.</li>
</ul><h3>IV. Use-cases and User-Scenarios</h3><p>Papi Programmer is developing a module that will use country
</ul>
<h3>IV. Use-cases and User-Scenarios</h3>
<p>Papi Programmer is developing a module that will use country
codes as part of his table structure. Instead of creating his own
table he can use the ACS Reference package and the country codes
therein. If the country codes change - which does in fact happen
from time to time - the ACS Reference package will maintain that
information for him.</p><h3>V. Related Links</h3><ul><li><a href="design">Design document</a></li></ul><h3>VI.A Requirements: Data Model</h3><p>10.10 The package should use a table that is the <i>master</i>