A Database System High Level Design Template

30
Oracle DATABASE SYSTEM HIGH LEVEL DESIGN TEMPLATE Author: Brendan Furey Creation Date: 28 November 2010 Version: 1.0 Last Updated: document.doc . Page 1 of 30

description

The concept of top-down design is very important in IT systems design. Every IT system is unique, but also shares many common features with other systems, and one of the keys to good design is to identify the common features. In this way established methods, and perhaps applications and code, can be applied to the majority of the system, leaving just a small part that is genuinely unique. It is similar to the concept in mathematics of solving a complex problem by first reducing it to a problem with a known solution plus an unsolved but smaller additional problem. Achieving the equivalent in IT systems design requires the taking of a similarly abstract view of the system design at the higher levels, and high level design documents can play a key role here. This document provides a template for the high level design of a database system. Incidentally, it seems likely that lack of a sufficiently rigorous top-down approach may be a major cause of the failure of some big IT projects, where it is especially necessary. I have noticed while working on large pan-European projects a lack of awareness of its importance even within the very large software services providers. There tends to be requirements specifications and very detailed design documents but a gap in the middle (non-technical people, such as managers and business analysts, usually think the more detailed the design the better, but that’s not the case).

Transcript of A Database System High Level Design Template

Page 1: A Database System High Level Design Template

Oracle

DATABASE SYSTEM HIGH LEVEL DESIGN

TEMPLATE

Author: Brendan Furey

Creation Date: 28 November 2010

Version: 1.0

Last Updated:

document.doc . Page 1 of 24

Page 2: A Database System High Level Design Template

Table of Contents

Document Control 4

Change Record 4

Introduction 5

Definitions 5

System Overview 6

Overview 6Database Objects Summary 6Components 7

Data Model 9

XX Custom and Several Standard Schemas 9ERD 9Entities and Tables 10

Other XX Tables 11

Database Packages and Functions 12

Backend 12Web Service Packages 13Functions 13

Database Triggers 14

Trigger List 14

Database Links 15

Link List 15

Views/Synonyms 16

Views 16Database Link Views/Synonyms16

Interfaces 17

Interfaces List 17Interfaces Diagrams 17

Link Entities and Key 17XYZ Interfaces Diagram 19

Batch Programs 20

Interface Jobs 20Non-Interface Jobs 20

Scripts 21

SQL Scripts 21Unix Scripts 21

User Interactions 22

Company.com 22Call Centre 22Business Objects 22

Database Jobs 23

Job List 23document.doc Page 2 of 24

Page 3: A Database System High Level Design Template

Batch Jobs Schedule 24

Interface Jobs Schedule24Other Jobs Schedule 24

Issues and References 25

Issues 25References 25

document.doc Page 3 of 24

Page 4: A Database System High Level Design Template

Document Control

Change Record

Date Author Version Change Reference

28-Nov-2010 BPF 1.0 Initial

document.doc Page 4 of 24

Page 5: A Database System High Level Design Template

Introduction[The concept of top-down design is very important in IT systems design. Every IT system is unique, but also shares many common features with other systems, and one of the keys to good design is to identify the common features. In this way established methods, and perhaps applications and code, can be applied to the majority of the system, leaving just a small part that is genuinely unique. It is similar to the concept in mathematics of solving a complex problem by first reducing it to a problem with a known solution plus an unsolved but smaller additional problem. Achieving the equivalent in IT systems design requires the taking of a similarly abstract view of the system design at the higher levels, and high level design documents can play a key role here. This document provides a template for the high level design of a database system.

Incidentally, it seems likely that lack of a sufficiently rigorous top-down approach may be a major cause of the failure of some big IT projects, where it is especially necessary. I have noticed while working on large pan-European projects a lack of awareness of its importance even within the very large software services providers. There tends to be requirements specifications and very detailed design documents but a gap in the middle (non-technical people, such as managers and business analysts, usually think the more detailed the design the better, but that’s not the case).

Unlike other templates I’ve published (for example, REF-4), I have decided to include examples to give a better idea of what a completed design might look like. The examples are based on a number of systems I’ve worked on that use Oracle CRM as a component in a larger database system, and have been modified to remove any details of the companies concerned. This template has been largely extracted from retrospective design documents, where one is documenting the design of existing systems, and thus would have some features that would differ from a design that is for a new system. It should be straightforward to adapt the template to requirements. For example, the design for a new system clearly would not have listings of the numbers of lines of code in the PL/SQL packages, but one might want to replace them with other estimated sizing metrics. The example design material should not be considered as recommendations for good design, merely how one might document a design.]

This document provides a high level technical system design for the the XYZ (Xxx Yyy Zzz Application). It should be read in conjunction with Oracle’s documentation for the standard Oracle components of the system, as well as with the functional design documents.

The structure of the document is that there is an overview section including a list of components, followed by subsequent sections describing these components.

Definitions

ABC – Aaa Bbb Ccc Application (the subject internal application of the design)

XYZ – Xxx Yyy Zzz Application (another internal application)

CRM – Customer Relationship Management

ETL – Extract, Transform, Load

ETLT – Staging database for ETL; used for interfacing

CIN – Customer Identification Number

CP – Concurrent Program (or batch program)

RS – Request Set (a group of concurrent programs)

DFF – Oracle Descriptive Flexfield consisting of generic character fields on standard tables that can be configured to hold custom data

cron – a Unix scheduling utility

document.doc . Page 5 of 24

Page 6: A Database System High Level Design Template

System Overview

Overview

XYZ is a loyalty system targeted at business customers (whereas ABC is the corresponding system targeted at retail customers). The database system is based on Oracle’s Telesales CRM system, with extensive customisations. It interacts with the ABC system and with two other internal database systems, ETL, the transactions data warehouse, and ETLT the staging database.

The front end applications are:

Oracle Applications screens – available to Call Centre staff

Company.com web site – available to customers through web browsers

Business Objects – available to IT staff for reporting

In addition to internal interactions, there are a number of external interfaces, both inbound and outbound.

The system is centred around the member, who earns points for each transaction that he makes, and who may then redeem points to purchase goods and services. The member is assigned a tier on entry, that defines privileges such as …, and rules are defined in the database for tier qualification. The member is given a contract for his tier lasting up to a year, and rules are defined to determine transitions between the tiers at contract end, or earlier. There are further rules defining the mapping between prices paid and points awarded.

The internal database architecture is depicted in the data model section below. The customer personal details are stored in Oracle’s Customer and CRM modules, along with his interactions with the loyalty scheme, while the loyalty scheme-specific data such as points and the business rules metadata are stored in a custom schema.

The outbound interfaces include details being sent to a fulfilment house to supply membership cards by mail, and for SMS or emails to members in various circumstances. Inbound interfaces allow points assignments to be made from multiple sources, including partner companies, and also allow for confirmation of provisional points claims when transactions are confirmed in the ETL database. The interface relationships are depicted in the interfaces section below.

This document is aimed at providing a high-level design view and is largely technical in nature. The tables below summarise the database objects, and list the main components in the XYZ system, and the remaining sections provide design specifications. Lower level documents (see references) describe the components in more detail.

Database Objects Summary

Object Type CountLines of code

Notes

ValidDATABASE LINK 2 NA PublicINDEX 48 NA Owner or table owner = XXPACKAGE 68 1,963

Objects like COMP%PACKAGE BODY 47 27,932PROCEDURE 2 259FUNCTION 8 365SEQUENCE 30 NA Owner = XXSYNONYM 239 NA Owner or table owner = XXTABLE 170 NA Owner = XX

TRIGGER 21 292Table or trigger owner = XX or trigger name like COMP%

VIEW 82 3,491Table owner = XX or view name like COMP%

InvalidPACKAGE 2 112

Objects like COMP%PACKAGE BODY 23 18,402PROCEDURE 1 24

document.doc Page 6 of 24

Page 7: A Database System High Level Design Template

FUNCTION 1 25

Components

Name DescriptionSchemas

APPLSYS Schema Oracle Applications foundation schema, owning tables such as fnd_userAPPS Schema Oracle Applications schema that owns packages, views etc.

AR SchemaOracle Applications schema that owns Accounts Receivable, and customer, tables

HR Schema Oracle Applications schema that owns Human Resources tables

JTF SchemaOracle Applications schema that owns Customer Relationship Management tables

XX Schema Custom schema owning all custom tablesDatabase Packages and Functions

Backend Code for backend logic in concurrent programs and elsewhereWeb Service Called by web services for Company.comWeb Service Wrapper Wrappers for use by Java interface code, for old style web services

FunctionsSmall number of functions for various logical requirements returning a value

ObsoleteMany packages are no longer used, or even invalid – we exclude these from this document as far as is known

Database Triggers

Custom TablesSome of the custom tables have triggers that perform some logic on insert or update; typically, this is to set the unique identifier from a sequence on insertion, or to set the ‘Who’ columns

Standard TablesThere is a custom trigger on the standard tasks table to set DFF attributes

Database LinksETLT_LINK.US.ORACLE.COM ETL Company Staging databaseETL_LINK.US.ORACLE.COM ETL Company Transactions database

Views/SynonymsBusiness Objects Views created for Business Objects reportingSpecific Purpose Views created for purposes such as pre-fulfilment reportingMiscellaneous Views intended for general purposes

Database Link Views/SynonymsIt’s considered good practice to create views or synonyms where access to remote databases is required, with the link included

InterfacesCompany.com Web site makes calls to XYZ web servicesETL Links Database links for Business Objects reports

ABC LinksDatabase links for checking existence of claims and accounts across the two Loyalty systems

XYZ TransactionInterface triggered from ETLT to transfer points-related data from ETL into XYZ

External Systems 8 external interfaces have been identified, all using flat file transfersBatch Jobs

Interface JobsMany of the interfaces are scheduled batch jobs, configured as concurrent programs or request sets (i.e. groups of concurrent programs)

Non-Interface JobsOther batch jobs perform such processing as contract renewal, archiving etc.

ScriptsSQL Scripts Batch jobs normally call either a database package, or an SQL or Unix

script to execute their logic, and these may in turn call packages, while Unix scripts may call SQL scripts or packages within embedded SQLUnix Scripts

Database JobsGather Statistics The standard database administration job

Batch Jobs ScheduleInterface Jobs Both interface and other jobs may be scheduled, as opposed to being

triggered manuallyNon-Interface Jobs

document.doc Page 7 of 24

Page 8: A Database System High Level Design Template

Data ModelThis section covers the data model as far as current functionality is concerned. Many tables exist in the custom XX schema that are not part of this functionality – they may have been used for one-off data migrations, or have become obsolete for other reasons. The diagram covers entities from both standard Oracle Applications schemas and the custom schema that form the core data model, but excludes staging and other system entities, as well as standard entities that are not used directly.

XX Custom and Several Standard Schemas

ERD

document.doc Page 8 of 24

Page 9: A Database System High Level Design Template

Entities and Tables

Core entities and tables are listed here, and are shown on the ERD, while system and other tables are listed separately below, without appearing on the ERD. Standard entities are further described in Oracle’s documentation set (REF-1).

Entity Table NotesAPPLSYS Schema

User fnd_userAR Schema

Customer Account hz_cust_accountsBasic account information including account number (our CIN)

Customer Profile hz_customer_profiles Additional account information, with historyContact Point hz_contact_points Telephone numbers, email addresses etc.

Party hz_partiesBasic information about a party (in general company or person, and technical entities, but here always person)

Party Site hz_party_sites Link from party to a siteParty Site Use hz_party_site_uses Uses a party can make of a site (not used)Person Profile hz_person_profiles Additional account information, with historyLocation hz_locations Address data for a site

HR SchemaPeople per_people_f Data on person employed by Company

JTF Schema

Action jtf_ih_actions_b, _tlTables _b, _tl indicate base table, plus table of translated description fields; view ending _vl joins the two

Activity jtf_ih_activities CRM activityGroup jtf_rs_groups_b, _tl Grouping of resourcesGroup Member jtf_rs_group_members Member of a groupInteraction jtf_ih_interactions Interaction with customerNote jtf_notes_b, _tl Note about customerOutcome jtf_ih_outcomes_b, _tl Outcome of an interactionResource jtf_rs_resource_extns Resource (human)Result jtf_ih_results_b, _tl Result of interactionRole jtf_rs_roles_b, _tl Role that may be played by a resourceRole Relation jtf_rs_role_relations Link between resource and roleTask jtf_tasks_b, _tl CRM taskTask Assignment jtf_task_assignments Assignment to resource of task

XX Schema (except some APPLSYS tables, but considered custom entities)Additional Comm xx_additional_comms Actually interface table used for targetting mailshots

Application Form Company_appl_formMember details as entered via call centre in Oracle application front end

Company (none) Company selling transactionCurrency (none) CurrencyECOM Preference Type

(none) Preference types as named on Company.com

Market Mapping xx_market_mappings Maps company code to marketFulfilment Code xx_fulfillment_codesXYZ-ECOM Pref Type Mapping

xx_ws_XYZ_pref_mappingsMaps preference type names between XYZ and Company.com

XYZ Points Company_points Member points earnings and redemptionsMarket (none) UK or FR or BE or otherParty Preference xx_party_references Holds preference information Points Mapping xx_point_mappings Maps prices to points

Preference Type fnd_descr_flex_contextsdescriptive_flexfield_name ='XX_PARTY_REFERENCES'

Member Qualification xx_membership_qualifications Rules defining qualification criteria for each tier

document.doc Page 9 of 24

Page 10: A Database System High Level Design Template

Tier fnd_lookup_values lookup_type=’XYZ_MEMBERSHIP_STATUS_TYPES’Transition Rule xx_membership_rules Points required for transitions between different tiersTravel Segment (none) Transactions table - exists on ETL system

Other XX Tables

Some tables are used for interfaces or as staging tables for reporting purposes, or are system tables used for storing error, configuration parameters or other system data. These are listed here but not included in the ERD.

Table Purpose NotesInterfaces

xx_pqr_cinfiles Staging tables for PQR interface

Company PQR Interface Request Setxx_pqr_rejfiles

xx_interface_batches Audit table for EML interface

XX Weekly QES to EML Request Set

Company_cc_enrol_verify Further staging tables for partner interfacesCompany_carhire_partner_t

xn Company_etl_txn_error Error and staging table

for ETL Transaction interfaceCompany_etl_txn_interface

Company_partner_load SQL*Loader staging tables for partner interfacesCompany_partner_txn

Company_output_file_audit Audit table for weekly fulfilment process

XX Weekly Fulfilment Request Set

Reportsxx_mis Report staging Used in monthly financial reports from Business ObjectsCompany_report_% Report staging Various tables beginning ‘Company_report_’

Systemxx_cin_ranges CIN creationCompany_conf_parameters Configuration

parametersxx_ws_errors Web services error logCompany_errlog

General error logsCompany_gen_error

document.doc Page 10 of 24

Page 11: A Database System High Level Design Template

Database Packages and FunctionsAs with the tables, many obsolete packages and functions exist, but are excluded from this section (where known to be obsolete), as are all standard packages, for which Oracle’s own documentation should be consulted (REF-1).

Backend

Package Name Purpose Top Level Calling Process

XX_Add_Beh_Process_PKGCreates interactions for quarterly email process

XX Weekly QES to EML (Report Set)

XX_Create_Partner_Pref Creates preferences Web service (XX_Change_Details)

XX_Customer_ArchivingArchives customers due to inactivity or other reasons

XX_EML_Recon_Pro_PKGProcessing of rec_eml_recon_stg table

Obsolete?

XX_Fulfillment_Process_PKGCreates output file for quarterly email process

XX Weekly QES to EML (Report Set)

XX_Generic_PKGGeneric processing such as contact retrieval

XX Weekly QES to EML (Report Set) and others

XX_Generic_Redemption Redemption processing Web service (XX_Redemption)

XX_Interface_Batches_PKG Creates interface batches recordXX Weekly QES to EML (Report Set)

XX_XYZ_CIN_Create CIN generation Web service (XX_WS_Validation)

XX_Magnetic_Card_Replace_PKGCreate Magnetic Card Replacement task

Obsolete? Refers to customer in 2007

XX_Member_Status_Mgmt_PK Member status managementXX Weekly Fulfilment (Report Set)Also Web services, such as Create Account

XX_Pending_TXN Process points pending validation Company Pending TXN Processing

XX_PK_Alpha_TestStandardises name for PQR customers Company PQR Interface (Report

Set)XX_PK_PQR

Sends changed customers to PQR by flat file

XX_Points_RequiredGet points for a transaction based on mtl_system_items

Obsolete?

XX_Reference_Model Insert or update preferences Web service (XX_Change_Details)XX_VFC_Validation Validate VFC membership code Web service (XX_WS_Validation)Company_CC_File_Processing Processing for CC interface Company CC Interface

Company_Convert_Txn_Mode_PK Returns 1 for ACR, -1 for REDXX Weekly QES to EML (Report Set) (from XX_Generic_PKG so could be various)

Company_Email_Upload_PKGProcesses COMPANY_EMAIL_UPLOAD_TMP

Obsolete?

Company_Error_PK Error loggingXX Weekly Fulfilment (Report Set) and various

Company_ETL_ProcessingInsert/update points for ETL transactions

XYZ Transaction Interface (ETL job)

Company_ETL_Processing_SPCETL processing, looks like migration code

Obsolete?

Company_Fulfillment_Mgmt_PK Creates the fulfilment file XX Weekly Fulfilment (Report Set)Company_Ful_Mgmt_Data_Fix_PK Data fix Obsolete?

Company_Incentive_Mgmt_PKOld version of Company_Fulfillment_Mgmt_PK?

Obsolete? Mainly, but table API is still used by original version to insert into

Company_Inter_Hist_PK Wrapper for interactionsXX Weekly Fulfilment (Report Set) and various

Company_Partner_Processing Processing for Carhire interfaceCarhire interface (manually triggered)

Company_Task_PK Wrapper for tasks Various including Web service such

document.doc Page 11 of 24

Page 12: A Database System High Level Design Template

as Change DetailsCompany_Translation_Utility Format validation/conversion Obsolete?Company_Util_Pck Utilities XX Weekly Fulfilment (Report Set)

Web Service Packages

Package Name PurposeXX_Change_Details Changes member detailsXX_Create_Account Creates member account

XX_XYZ_WSChecks tier status for a potential member. This is called via the ABC package XX_XYZ_WS owing to limitations of v8 of XYZ database

XX_Redemption Redeems pointsXX_Retro_Claim Processes retro claimsXX_View_Account Returns account detailsXX_View_Statement Returns statement detailsXX_WS_Generic_PKG Error handling and generic processing for web servicesXX_WS_Validation Web service validation

Wrappers for use by Java interface code, for old style web servicesXX_Change_Details_PLSQL_Wrap Wrapper for XX_Change_DetailsXX_Create_Account_PLSQL_Wrap Wrapper for XX_Create_AccountXX_Redemption_PLSQL_Wrapper Wrapper for XX_RedemptionXX_Retro_Claim_PLSQL_Wrapper Wrapper for XX_Retro_ClaimXX_View_Account_PLSQL_Wrappe Wrapper for XX_View_AccountXX_View_Statement_PLSQL_Wrap Wrapper for XX_View_Statement

Functions

Package Name PurposeXX_De_Duplication_Check Checks whether prospect is an existing memberXX_Get_Lookup_Value Gets lookup valueXX_Get_Point_Avl_Func Gets points availableXX_Price_Based_Pnt_Calc_Func Gets points for a transactionCompany_Convert_Txn_Mode Decodes ACR/RED into 1/-1Company_Get_Trans_String Translates strings

document.doc Page 12 of 24

Page 13: A Database System High Level Design Template

Database Triggers

Trigger List

Table Name Trigger Name Purposexx_pqr_cinfiles DBT_PQR_CINFiles

Sequence and Who columnsxx_pqr_rejfiles DBT_PQR_REJFilesxx_internet_files DBT_INTRFileCompany_cc_enrol_verify Company_TCC_Enrol_Verify Sequence and call

Company_Util_PCK.Convert_CIN to prepend Company idCompany_cc_partner_txn Company_TCC_Parnter_Txn

Company_campaign_hist Company_TCPN_Hist Sequence and Who columnsCompany_campaign_hist Company_TCPN_Hist_U Sequence and Who columnsCompany_etl_cust_interface

Company_TETL_Cust_InterfaceSequence and Who columns; decode nationality

Company_etl_cust_interface

Company_TETL_Cust_Interface Sequence and Who columns

Company_etl_txn_interface Company_TETL_Txn_Interface Sequence and Who columnsCompany_points_reload Company_TEURR_Points_INS Add points to attribute13 of hz_partiesCompany_points Company_TEUR_Points_Date Who columns (last update date onlyCompany_points Company_TEUR_Pre_Change Add points to attribute13 of hz_partiesCompany_gen_error Company_TGeneral_Error SequenceCompany_output_file_audit Company_TOutput_File_Audit Sequence

Company_partner_txn Company_TPartner_TxnSequence and call Company_Util_PCK.Convert_CIN to prepend Company id

Company_partner_load Company_TPartnerLoadSequence and Who columns (last update date only

jtf_tasks_b Company_TTask_CreditcardSet DFF attributes for closed tasks according to type

Company_trans Company_TTrans Null!

xreference_ftp_data_bckCompany_TXReference_FTP_Data

Sequence

Company_ref_data Company_UPD_Enrol_SourceInsert into enrolment_sources@etl_link, using attribute6 as code

document.doc Page 13 of 24

Page 14: A Database System High Level Design Template

Database Links

Link List

Name Target Host Target User NotesETLT_LINK.US.ORACLE.COM XYZNETLT ETLADMINETL_LINK.US.ORACLE.COM XYZNETL XYZ ETL Company Transactions database.

document.doc Page 14 of 24

Page 15: A Database System High Level Design Template

Views/Synonyms

Views

Name NotesBusiness Objects

XX_MIS%Most views created for Business Objects reporting have the prefix shown

XX_BOJ%COMPANY_REPORT%

Specific PurposeXX_PRE_FULFILLMENT_V Returns the records that will be included in the weekly fulfilment jobXX_FINANCIAL_V Financial report by month with cumulative values included

Miscellaneous(Various) Various other views exist

Database Link Views/Synonyms

These may be used for linking to other systems, for both table and package access. There are no current synonyms of this kind.

document.doc Page 15 of 24

Page 16: A Database System High Level Design Template

Interfaces

Interfaces List

NameExternal System

In/Out?

Frequency Interface Type Notes

Company.comCompany.com

In/Out Real time Web servicesWeb site makes calls to XYZ web services

ETL Links ETL Out Real time Database linksDatabase links for Business Objects reports

ABC Links ABC In/Out Real time Database links

Database links for checking existence of claims and accounts across the two Loyalty systems –the XYZ-side link does not exist, but should

XYZ Transaction ETL In DailyDatabase links, scheduled

PQR PQR Out DailyFlat file, CFTP, scheduled

CFTP is custom version of FTP.Company PQR Interface

CC CC In/Out DailyFlat file, FTP, scheduled

Carhire Carhire In MonthlyFlat file, email, manual

Weekly Fulfilment Card supplier Out WeeklyFlat file, email, scheduled

Email SupplierEmail Supplier

Out SporadicFlat file, FTP, scheduled

Octal Octal Out WeeklyFlat file, FTP, scheduled

SMS Feed ETL Out DailyFlat file, FTP, scheduled

Interfaces Diagrams

Link Entities and Key

Interfacing between internal databases is done using database links. The diagram below shows that information may be read from table (or view) synonyms or views pointing at remote tables and views, while synonyms to remote packages are used for writing information remotely, and may also return information.

document.doc Page 16 of 24

Page 17: A Database System High Level Design Template

document.doc Page 17 of 24

Page 18: A Database System High Level Design Template

XYZ Interfaces Diagram

This diagram shows the interfaces between XYZ, the two internal databases, ABC and ETL, the various up and down-stream external systems, and the main front end interfaces.

document.doc Page 18 of 24

Page 19: A Database System High Level Design Template

Batch ProgramsKey:

D = Daily

M = Monthly

S = Sporadic

4h = Every 4 hours

Interface Jobs

Name F Executable File/Procedure NotesCompany CC Interface D XX_CC_FILE_PROCESS Credit Card

Carhire Interface D partner_txn.shExecuted manually from Unix after copying emailed file to directory

XXSMSYY - SMS transaction details extract

D XXSMSYY.sql

XX Weekly Fulfilment DCompany_Fulfillment_Mgmt_PK.Company_Fulfillment_Pro

Company Fulfilment Process

XX_Fulf_Email.prog XX Weekly Fulfilment Post-Processor

XX Weekly QES to EML S

XX_ADD_BEH_Process_PKG.XX_Create_Add_BEH_IH

Company Additional Behavioral Process

XX_FULFILLMENT_PROCESS.prog

Company Fulfillment Process Program

This calls two SQL scripts that in turn call a procedure and a CP, thus:XX_FULFILLMENT_PROCESS.sql -> XX_Fulfillment_Process_PKG.XXFulfillment_Process_PXX_FTP_REQ.sql -> XXFTP

Company PQR Interface DXX_PK_PQR.PQR_BCE_Extract_Data

Company PQR Data Extract

xx_pqr_interface Company PQR Interface File Transfer

Non-Interface Jobs

Name F Executable File/Procedure Notes

Company Contract Renewal Process

DXX_Member_Status_Mgmt_PK.Renew_Contract_Proc

Processes contract renewals and inactivations for processing by the fulfilment interface

Company Downgrade Warning Process

MXX_Member_Status_Mgmt_PK.Company_Card_Down_Warn

Creates interactions for warnings of likely downgrades for processing by the fulfilment interface

XX Archiving Program DXX_Customer_Archiving.XX_Customer_Archiving_Proc

Archives members inactive for a certain time, or marked for archiving

Company Pending TXN Processing

DXX_Pending_TXN.XX_Pending_TXN_P

Updates pending points when transactions take place

XX Person Datafix 4h XXPERDF.sqlCorrects known person data problems caused by web-site interface

XX Populate MIS Table M XXPMIS.sqlPopulates staging tables used by monthly Business Objects financial reports

document.doc Page 19 of 24

Page 20: A Database System High Level Design Template

Scripts

SQL Scripts

Name Called From NotesCC_partner_process.sql

XX_CC_FILE_PROCESSCC_fileout.sql

XX_FULFILLMENT_PROCESS.sql

XX_FULFILLMENT_PROCESS.prog

Calls procedure XX_Fulfillment_Process_PKG.XXFulfillment_Process_P

XX_FTP_REQ.sqlTriggers CP xXXFTP, which runs an FTP file transfer

XXPERDF.sql XX Person DatafixXXPMIS.sql XX Populate MIS Table

XXSMSYY.sqlXXSMSYY - SMS transaction details extract

partner_process.sql Carhire interface Manually run

Unix Scripts

Name Called From NotesXX_CC_FILE_PROCESS Company CC InterfaceXX_Fulf_Email.prog XX Weekly Fulfilment XX Weekly Fulfilment Post-Processor

XX_FULFILLMENT_PROCESS.prog XX Weekly QES to EMLCalls two SQL scripts that in turn call a procedure and a CP

EUKFTP XX_FTP_REQ.sql via a CP SQL script calls CP for EUKFTP

partner_txn.sh Manually from UnixExecuted manually from Unix after copying emailed file to directory

xx_pqr_interface Company PQR Interface Uses cftsend file transfer utility

document.doc Page 20 of 24

Page 21: A Database System High Level Design Template

User InteractionsThis section lists the main functional interactions possible through the front end applications, with source file names where in scope (i.e. for Call Centre forms, but web forms and Business Objects source files are out of scope)

Company.com

Name NotesChange Account Details A member can change the details on his account

Check Tier StatusA non-member can apply for membership by submitting receipts, and a call is made to check what tier, if any, the member qualifies for, prior to account creation

Claim PointsEntering the CIN number while making a purchase causes points to be assigned to the account

Create AccountA non-member has an account created after submitting receipts, if the call made to check what tier, if any, the member qualifies for, results in a membership tier

Retro-Claim Points Points can be claimed for a member for transactions already madeView Account A member can view his account details on-lineView Statement A member can view his statement details on-line

Call Centre

Name Form File NotesRun/View Requests screen

FNDRSRUN.fmb (standard)

Standard functionality allowing reports to be run in batch and viewed in a screen or downloaded on completion

eBusiness Centre screen

ASTRCALL.fmb (customised version of standard form)

This is a standard Oracle screen allowing customers to be viewed and updated, along with various standard CRM activities (notes, tasks, interactions etc.), and has a customised tab for custom functionality

XX Overview tabThe XX tab on the eBusiness Centre screen allows the member’s tier and earnings to be viewed, and provides access to the windows and buttons listed below

Status button Allows the member’s tier to be changed manuallyCancellation button Allows selected earnings to be cancelled Statement window COMPST04.fmb Allows viewing of member’s statementApplication window COMPST01.fmb Allows entry and viewing of an application form for a memberRetro window COMPST02.fmb Allows retro-claims to be made for pointsRedemption window COMPST03.fmb Allows recording of member redemptionsSpecial window COMPST06.fmb Allows manual addition of points to an account

References window XXREF.fmbThis really means preferences. Preferences of the different available types may be viewed and set here

Business Objects

Name Notes

ReportingMiscellaneous reports are defined, and can be run by IT staff, as well as being scheduled as necessary

document.doc Page 21 of 24

Page 22: A Database System High Level Design Template

Database Jobs

Job List

Name Frequency NotesGather Statistics Sundays at 21:00 DBMS_Stats.Gather_Schema_Stats; 10% sampling

document.doc Page 22 of 24

Page 23: A Database System High Level Design Template

Batch Jobs Schedule

Interface Jobs Schedule

* denotes that the job runs on the external system

CP denotes Oracle concurrent program

RS denotes Oracle concurrent request set

Cron is the Unix job scheduling utility

Start Time

Daily, or …

External System

In/Out?

JobJob Type

Notes

0500 FridaysCard supplier

OutCompany Fulfilment Process

CPRuns after contract renewal and downgrade warning

0700ETL* In XYZ Transaction cron Twice daily

16000800 CC In/Out Company CC Interface CPNA Monthly Carhire In Carhire Manual Run manually from emailed file

NA SporadicEmail supplier

Out XX Weekly QES to EML RS

0800 Mondays Octal Out Octal cron Run on XYZ Server via cron

0630SMS provider

OutXXSMSYY - SMS transaction details extract

CP

1300 PQR Out Company PQR Interface CP

Other Jobs Schedule

Start Time

Daily, or … JobJob Type

Notes

0430Company Contract Renewal Process

CPRun before the weekly fulfilment interface

0445 4’th of monthCompany Downgrade Warning Process

CP

0700 XX Archiving Program CP

0700Company Pending TXN Processing

CP

0200 Every 4 hours XX Person Datafix CP2200 2’nd of month XX Populate MIS Table CP

document.doc Page 23 of 24

Page 24: A Database System High Level Design Template

Issues and References

Issues

# Issue Description Note if closed

1 Obsolete objectsIntend to delete these at a later stage, but retain for version control

2 Business logic Check whether covered sufficiently

3 ReferencesNeed to add for detailed design documents

References

REF Document Location

REF-1 eTRMhttp://etrm.oracle.com/pls/trm1157/etrm_search.search

REF-2 ETL Company Transactions Database - System Design.doc PVCSREF-3 (detailed design documents) PVCSREF-4 Unit Test Plan Template.doc scribd

document.doc Page 24 of 24