Beruflich Dokumente
Kultur Dokumente
Solution Delivery
Wrapper Production
Company Confidential
News Limited
2 Holt Street
Surry Hills, NSW 2010
Control Page
Title: Functional Specification – NSSR2-xx {feature}
Validity: When printed, this document is only valid on the day it was
printed. Refer to the softcopy for the latest version.
Author:
Document Purpose:
Change History:
Distribution:
ACCEPTANCE
The undersigned hereby approves the attached document
Insert Name
Insert Title
Insert Business Unit
Date
Insert Name
Insert Title
Insert Business Unit
Date
Table of Contents
Prerequisites.....................................................................................................................6
Related Jira Items.............................................................................................................6
Business Module Impact .................................................................................................6
Implementation Summary...............................................................................................7
Summary of Task WP001 – Unit tests.........................................................................7
Summary of Task WP002 – New Letters field ‘FileName’.........................................8
Summary of Task WP003 – new CustSupplies field ‘WrapperRequired’...................8
Summary of Task WP004 – Create new attributes .....................................................8
Summary of Task WP005 – Create new contact type..................................................9
Summary of Task WP006 – Create stored procedure..................................................9
Summary of Task WP007 – Create list class.............................................................10
Summary of Task WP008 – Create wrapper templates.............................................10
Summary of Task WP009 – Create C# batch job.......................................................11
Unit test Summary.........................................................................................................12
External Interfaces.........................................................................................................12
Appendix 1 – Sample BO_SupplyHistory output......................................................13
Appendix 2 – Stored procedure skeleton...................................................................14
Appendix 3 – Wrapper templates...............................................................................15
Wrapper Example – Single Copy...............................................................................15
Wrapper Example – Multiple Copies.........................................................................16
Wrapper Example – Master Wrap..............................................................................16
Wrapper Header Page................................................................................................17
Prerequisites
Jira Relationship
Module Impact
Implementation Summary
1. Create new varchar field (255 characters, nullable) called “FileName” in the
Letters table,
2. Regenerate the Letters stored procedures,
3. Regenerate the LetterBase class (NSS.Objects.BaseClasses.Interactions),
4. Add a new textbox to GUIBase.frmLetterEdit, bound to the new property on the
derived Letter class (and datasource for this form)
3. For this DataItem, create at least one row in DataItemValues representing the
individual Drop Numbers. Some agents have multiple drop numbers; by adding
one or more DataItemValues, these will be available
The current Letters and Faxes functionality is driven from Contacts. To re-use as much of
this codebase as possible, Wrapper production should also be driven from Contacts.
A new contact type “Wrapper” should be created. This can then be linked to Wrappers
templates in the same was as contact types are linked to Letters, via the Edit Contact/Edit
Offer Letters screens as shown in section 3.6 of the functional specification.
As part of a separate unit of work, a new table-based function fnAdrian is being created
and will be available for this unit of development. The data returned by this function will
form the basis of the data used to drive Wrapper production.
An example of the intended output from this function can be seen in the Functional Test
database table BO_SupplyHistory.
The function will take three arguments – a Division ID, Start and To dates. The table that
it returns will contain the following three fields: -
From the data returned by fnAdrian, it will be possible to determine the exact set of
CustSupplies shipped to the required agents (i.e. those requiring wrapper production) on
any given date. The CustAgents table can be joined to CustSupplyProducts (and thence to
CustSupplies) and also to CustSupplyAddresses. There will be no need for any filtering
to determine the currency of supplies, as this logic is already provided in the table
structure.
The Groupings for wrapper production (functional spec 1.1.2) will stipulate a day of
production and a day for publication, it is likely that the stored procedure that will use
these results will take only a single date parameter, that being the day on which
publication is for and thus that which we are interested in.
The result set produced by the stored procedure created in WP006 must be encapsulated
in a custom list class for processing by the batch job. This class should derive from the
ActiveReadOnlyCollectionBase class and will provide a means for the batch job to iterate
the set of results returned.
Example implementations for reference can be found in several classes within the Objects
assembly, including CustomersList, CustomerNotificationsList and CustomersToBillList
within NSS.Objects.Customers.
These templates can be created using built-in NSS template-creation functionality and the
resulting data scripted for synchronization with test/production environments.
A new batch job class must be created to invoke the stored procedure (WP006) and
produce wrappers from a combination of the data returned and the wrapper templates
(WP008). The current Letters and Faxes codebase can be leveraged to achieve this.
Data should be returned in the order in which it is required by the DBPL ordering
requirements, which will allow wrappers to be grouped together as required. The
groupings required (in order) are: -
1. Product
2. Publication Date
3. Wrapper type (single then multiple copies)
4. Agent Number
5. Drop Number
6. Customer surname
Product is therefore the top-level grouping. A Wrapper Header Page should be produced
for each Publication Date within a Product grouping.
Next, the set of all subscriptions with 1 copy come first. Within this grouping, all
customer surnames should be printed within a single drop sequence (Agent Number and
Drop Number). After this, if any subscriptions required a Master Wrap, this should be
produced at the end of the drop sequence, before moving onto the next.
Once all single-copy subscriptions have had wrappers produced, the batch job should
process all multiple-copy subscriptions in the same manner as described in the paragraph
above.
Test Summary
External Interfaces
Interface Summary
The new function fnAdrian will return data in the same format as the presented in the
table BO_SupplyHistory (nsssql02\uat – SubscriptionsNationalFT).
Note the time portion of the date always being “00:00:00” – this means “for the whole
day”; each row shows the quantity of products supplied at the intersection of Customers
and Agents (CustAgentID) for the whole day.
The following table represents the Mail Merge Fields required for the production of
Wrappers for DBPL.
13
10
2
3 7
1 8
10
2
Master Wrap
3 Free text.
Shading to denote
Wrapper is a Master
Wrap.