SlideShare a Scribd company logo
Interfacing the Application with Master Product Database
1
Interfacing the Application with Master Product Database
SEWP ZG629T DISSERTATION
By
Swaminathan V
BITS ID No: 2011HW69968
Dissertation Work carried out at
Wipro Technologies, Hyderabad
BIRLA INSTITUTE OF TECHNOLOGY AND SCIENCE
Pilani (Rajasthan) India
September, 2015
Interfacing the Application with Master Product Database
2
SEWP ZG629T DISSERTATION
Final Report
Interfacing the Application with Master Product Database
Submitted in complete fulfillment of the requirements of
M.S. Degree Program
By
Swaminathan V
ID No. 2011HW69968
Under the supervision of
Agnel Vignesh,
Consultant
Dissertation work carried out at
Wipro Technologies, Hyderabad
BIRLA INSTITUTE OF TECHNOLOGY AND SCIENCE
Pilani (Rajasthan)
(September, 2015)
Interfacing the Application with Master Product Database
3
Interfacing the Application with Master Product Database
4
Interfacing the Application with Master Product Database
5
Interfacing the Application with Master Product Database
6
Interfacing the Application with Master Product Database
7
ACKNOWLEDGEMENTS
I wish to express my gratitude to Wipro Technologies for giving me an opportunity to purse the
degree of M.S from BITS - Pilani through WASE (Wipro Academy of Software Excellence)
program.
I would like thank my supervisor, Mr. Agnel Vignesh and examiner Mr. Prashanth Raja for
all their help and support in completing the dissertation.
I would like to extend my thanks to all the professors, coordinators for all their support and
guidance which made the learning smooth.
Finally, my sincere thanks to my family, friends and colleagues for their support throughout my
MS journey.
Thanks.
Interfacing the Application with Master Product Database
8
Table of Contents
1. Introduction ...........................................................................................................................................................10
1.1 Business Problem.............................................................................................................................................11
1.2 Proposed Solution............................................................................................................................................11
1.3 In Scope ............................................................................................................................................................11
1.4 Out Of Scope ....................................................................................................................................................11
2. Functional Overview .............................................................................................................................................12
2.1 Change Requests..............................................................................................................................................13
2.1.1 Functional Description:............................................................................................................................13
2.1.2 Process Flow Chart...................................................................................................................................14
2.2 Cancellation Requests .....................................................................................................................................15
2.2.1 Functional Description .............................................................................................................................15
2.2.2 Process Flow Chart...................................................................................................................................15
2.3 Approval/Routing ............................................................................................................................................16
2.3.1 Functional Description .............................................................................................................................16
2.3.2 Process Flowchart.....................................................................................................................................17
2.4 NOPC Report...................................................................................................................................................18
2.4.1 Functional Description .............................................................................................................................18
2.4.2 Process Flowchart.....................................................................................................................................19
3. Technical Overview ...............................................................................................................................................20
3.1 Individual MHID/ISBN field change: ............................................................................................................20
3.1.1 Technical Process Diagram......................................................................................................................22
3.2 Individual MHID Cancellation.......................................................................................................................23
3.2.1 Technical Process Diagram......................................................................................................................23
3.3 NOPC Report...................................................................................................................................................24
3.3.1 Technical Process Diagram......................................................................................................................25
3.4 Routing Workflow ...........................................................................................................................................26
3.4.1 Technical Process Diagram......................................................................................................................26
3.5 Outbound Update Processing:........................................................................................................................29
3.5.1 Technical Process Diagram......................................................................................................................30
4. Test Plan.................................................................................................................................................................33
5. ANGULARJS.........................................................................................................................................................35
5.1 Features ............................................................................................................................................................35
5.2 Core Features...................................................................................................................................................36
5.3 Concepts in AngularJS....................................................................................................................................37
5.4 Advantages of using AngularJS......................................................................................................................38
5.5 AngularJS vs Apache Flex (prev. Adobe Flex)..............................................................................................39
6. Using AngularJS....................................................................................................................................................40
6.1 Working of the report: ....................................................................................................................................41
Interfacing the Application with Master Product Database
9
6.2 Testing of the report:.......................................................................................................................................44
7. Conclusion..............................................................................................................................................................45
8. References ..............................................................................................................................................................45
Acronyms
Acronyms Definition
LSPT Learning Solutions Project Tracking
NOPC Notification of Product Change
PDH Product Data Hub
IDS Integrated Data Set
SPA Single Page Application
HTML Hyper Text Markup Language
RIA Rich Internet Application
DOM Data Object Model
MVC Model View Controller
DB Data Base
JSON JavaScript Object Notation
List of Figures
Figure 1 Process Flowchart for change requests ....................................................................................................14
Figure 2 Process Flowchart for Cancellation requests ...........................................................................................15
Figure 3 Process Flowchart for Approval process 1...............................................................................................17
Figure 4 Process Flowchart for Approval Process 2...............................................................................................17
Figure 5 Process Flowchart for NOPC reports.......................................................................................................19
Figure 6 Process Diagram for Individual MHID field change...............................................................................22
Figure 7 Process Diagram for Individual MHID Cancellation..............................................................................23
Figure 8 Process Diagram for NOPC Reports ........................................................................................................25
Figure 9 Process Diagram for Routing Workflow ..................................................................................................27
Figure 10 Process Diagram for Outbound Update Processing ..............................................................................30
Figure 11 Concepts in AngularJS ............................................................................................................................37
Figure 12 Sample AngularJS Report.......................................................................................................................40
Interfacing the Application with Master Product Database
10
1. Introduction
The McGraw-Hill Education:
The McGraw Hill Education is one of the leading media publishing companies in the world.
At McGraw-Hill, the proven, research-based content is combined with the best emerging digital
technologies to guide assessment, teaching and learning to achieve the best possible outcome for
students, instructors and institutions. It publishes media in more than 65 languages.
McGraw Hill is:
 A global leader in education, and have been for nearly 125 years.
 A leader in digital transformation of teaching and learning worldwide.
 Renowned for instructional design, personalized learning and customized content.
 A provider of positive learning outcomes for millions of students worldwide.
About the Application
Before actually publishing a product, it is first reviewed internally and the revenue, attributes,
manufacturing information, scheduled dates are analyzed. These are done through an application.
Learning Solutions Project Tracking:
The Learning Solutions Project Tracking(LSPT) application tracks information for each custom
project, including product attributes, estimated revenue, project school and customer(s), people
contacts, manufacturing information, and schedule dates.
Products go through various stages of approval before finally being printed/published.
When a new product/project is created, it is assigned Open Lead/Proposed status.
Depending on the approvals, the status changes to ‘Approved’, ‘In Production’, ‘Printing’,
‘Published’ and ‘Out of Print’.
Each project/product is assigned a rep, who will be responsible for that product/project.
Once a product is approved by the respective group, a 10-digit MHID is assigned to the product
which will link the product in LSPT with the Product Data Hub (PDH).
Various reports for financial details, manufacturing information, product attributes, people
contacts assigned can be generated for different stages of the product.
Interfacing the Application with Master Product Database
11
1.1 Business Problem
After a product is created and approved by the respective groups, a 10 digit MHID is assigned
which links the product to the Product Data Hub.
Any updates made to the product in the application after a MHID is assigned should also be
updated in Product Data Hub and vice versa.
Previously the updates would directly flow into PDH without any validations from the
application and from PDH as well. In that case, when one owner of the product changes an
attribute and if that is not accepted by another owner of the product, then the change made
should be reverted again which may cause inconsistency in the data.
The reports in the application uses Adobe FLEX which is nearing its end. This should also be
rewritten using a much consistent language.
1.2 Proposed Solution
So a new system, Notification of Product Change (NOPC) or IDS (Integrated Data Set, a
database), is to be created that would interface the application with the Product Data Hub and
validate the updates flowing from PDH and LSPT respectively.
Any changes in the application for a product with MHID would create an update request, this
request will be sent to respective groups for approval. Once approved the values are updated in
local copy of PDH i.e., IDS and the values from IDS flow to PDH.
This interface helps in proper values updated and helps in data consistency and security by
limiting the access to directly update the PDH.
Also the reports generated for the product uses the Adobe Flex for the front end design.
As the Adobe Flash is near to its death and few noted browsers and web sites are disabling Flash
from running their services due to security reasons, the reports used in LSPT needs to be
converted to use AngularJS for their front end designs.
1.3 In Scope
 Create a system that will interface the application and IDS in turn PDH.
 Integrate the system with the application.
 Rewrite reports using AngularJS to enhance the usability of the existing reports.
1.4 Out Of Scope
 The product cancellation request made through the interface will not cancel the product
immediately in Learning Solutions Project Tracking. This will be done by a separate
daily batch job in Learning Solutions Project Tracking.
Interfacing the Application with Master Product Database
12
2. Functional Overview
After a product has been assigned MHID, changes to key product attributes (such as edition,
copyright, price, etc.,) must be submitted as a request and go through an approval process before
the change is updated in PDH. Once the changes have been updated in PDH, the new values will
flow down to IDS and will be reflected in Learning Solutions Project Tracking where the product
originated from. Similarly, cancellation of the above products must also be submitted through
requests. And after the approval, products are canceled in PDH. NOPC Requests can be
generated through both the NOPC application and Learning Solutions Project Tracking
applications. The NOPC application is used manage the approval workflow based on the
business rules defined for the business divisions.
Functional Area Overview:
1. On calling the NOPC application from LSPT requests can be created for:
 Individual MHID Field Change – A change to one or more key attributes on one product
 Individual MHID Cancellation – Cancel a single non-published product
2. LSPT application will programmatically create Requests for certain fields:
 Individual MHID Field Change for Projected Warehouse Date when the Original or
Revised Book Bound Date is changed. The Projected Warehouse Date will be requested
as 7 days after the date entered for the Original or Revised Book Bound Date of the
product.
 Product Subject, Market Classification and Title of the product will be changed based on
its components and if the product has an ISBN assigned, the change request is
automatically created in NOPC.
Interfacing the Application with Master Product Database
13
Business Process Logic:
Table 1 Functional Overview
# Name Description Type
1 NOPC Link (from
Homepage)
The user selects the NOPC
application from the intranet page
Manual
1.1 NOPC Opening Screen NOPC Opening screen is displayed. Automated
2 NOPC Link (from
LSPT)
User clicks on NOPC link within in
the Learning Solutions Project
Tracking application
Manual
2.1 NOPC Change screen NOPC Change screen is displayed Automated
3 Cancel Link (from
LSPT)
User selects the Cancel function for
a Project or Product from the
Learning Solutions Project Tracking
application
Manual
3.1 NOPC Cancel screen NOPC Cancellation screen is
displayed. Cancelation request will
always direct the user to the
Individual MHID Cancellation
request screen from Learning
Solutions Project Tracking
Automated
2.1 Change Requests
2.1.1 Functional Description:
Learning Solutions Contacts can request a change to a field at any time by clicking on the NOPC
link next to the field in Project Tracking or using the NOPC application. All LSPT Custom
product NOPC changes will use the Individual MHID Field Change request type. Mass Change
and Mass Cancellation will be disabled for LSPT Custom product products. The NOPC request
must be approved by the appropriate departments before the change will be made.
Note: The NOPC application will be used by other applications like IPub which also deals with
products but from different divisions.
Interfacing the Application with Master Product Database
14
2.1.2 Process Flow Chart
Individual ISBN Field Change/Mass Change
SubmitNOPCRequestsfromNOPC
Application
SubmitNOPCRequestsfromiPubor
LSPTApplication
Start
(1)
Open Project/
Program/Product
General Information
or Sales/comp
(2)
Click on the
NOPC link next
to attribute fields
(3.1.1)
List all products with MHID of
the Project/Program/Core
Product
(3.1)
Mass Change
(4)
Stat Sponsor code
or Product Group need to
be changed?
(4.1)
Select list of
Products need to
be changed.
No
(4.2)
All listed products of the Project/
Program/Core Product
will be selected automatically and
cannot be override.
Yes
(5)
Enter new value
of key attribute(s)
(3.2)
Individual ISBN
Field Change
(8)
Generate NOPC Requests for changes in
each attribute for each product,
A
(7)
Submit Request
Start
(1)
Click on ‘Create
NOPC Request’
(2)
Select NOPC
Request Type
(2.2.1)
Search and Select the
particular program
ISBN to be changed
(2.1.1)
Search and Select
the particular
product to be
changed
(2.1) Individual ISBN
Field Change
(2.2) Mass Change
(2.2.2)
List all products
with MHID of the
program
(2.2.3)
Select list of
Products need to
be changed
(3)
Enter new value
of key attribute(s)
(4)
Validate the entered
values and show error
message if any
(5)
Submit Request
(6)
Generate NOPC Requests for changes in
each attribute for each product.
A
(6)
Validate the entered
values and show error
message if any
Figure 1Process Flowchart for change requests
Interfacing the Application with Master Product Database
15
2.2 Cancellation Requests
2.2.1 Functional Description
Learning Solutions users can cancel a Learning Solutions Project Tracking product at any time
once an MHID is assigned until the product is published. The NOPC request must be approved
by the appropriate routing workflow before the product will be cancelled. Final cancellation
within Learning Solutions Project Tracking will be completed by a nightly batch job. This will
ensure that the Learning Solutions Project Tracking main product is only cancelled if all other
products in the project have also been cancelled. The mass cancellation option will not be used.
Cancellation requests can be initiated from Learning Solution Project Tracking or NOPC.
2.2.2 Process Flow Chart
Figure 2 Process Flowchart for Cancellation requests
Interfacing the Application with Master Product Database
16
2.3 Approval/Routing
2.3.1 Functional Description
When a Learning Solutions Contact submits a change request, it is automatically routed to the
first security group in the workflow. If the first security group level is an approver, when a
member of the security group approves the change request, it is then routed to the next security
group defined in the approval workflow. This process will continue until the change request has
been routed through all the security groups defined in the approval workflow.
If the requestor had indicated that he/she would like to receive an email notification upon
approval, then after the last approver has approved the request, an approval email notification
will automatically be sent to the requestor.
If at any time a change request is denied during the approval workflow routing, the change
requestor and any approvers that had previously approved the change will be notified via an
email.
For change requests that need prior approval, a routing workflow is predefined for each field.
Each field change has a predefined routing workflow based on defined security groups. Each
security group defined in the routing workflow is assigned an action level of either approve or
view. For an approve level, the request will be held and it must be approved by the security
group before it can be processed by the next security group. If the type of level is view, the
request can be processed by the next security group in the routing workflow (it will not be held).
The security groups are comprised of the authorized people who can either approve or view a
particular type of change request. Any person within the security group has the authority to
process the change request.
Processing Summary:
 Approve NOPC Change request
 Approve NOPC Cancellation request
 Routing
 Routing Workflow Report
Note: Oracle EBS is another database that is in sync with PDH.
Interfacing the Application with Master Product Database
17
2.3.2 Process Flowchart
Individual MHID Field Change/Mass Change
ApprovalprocessinNOPCApplication
A
(1)
NOPC Request
routed for
approval
(2)
Request
Approved?
(2.1)
Email notification
sent to requester
(2.4)
Email notification
sent to requester
No Stop
Yes, iPub
(4)
Updated value fed to
Oracle EBS from PDH
(5)
PDH will feed the
change(s) to IDS,
then to iPub
(2.3)
For mass change, once all NOPC
requests were approved, apply the
changes to all products without MHID
of the project/program/core product in
iPub and update the project header and
program header fields.
Yes, PT
(2.2)
Product Source?
Yes
(3)
Updated value fed to
PDH from NOPC
Figure 3 Process Flowchart for Approval process 1
Individual MHID Cancellation/Mass Cancellation
ApprovalprocessinNOPCApplication
B No
Yes
(1)
NOPC Request routed
for approval
(6)
Move Plant
Budget = Yes?
(2)
Request
Approved?
Stop
(2.1)
Email notification
sent to requester
(2.2)
Email notification
sent to requester
(6.1)
Move Plant cost from
cancelled product to “move
to” ISBN in iPub
(7)
Zero out costs on
cancelled
product(s) in iPub
(8)
Once all product has been
cancelled, cancel linked product
without MHID in iPub/PT, update
product/program/project pending
cancelled flag and update project/
program statuses
(4)
Cancelled status is fed
from PDH to Oracle EBS
(5)
PDH will feed the update to
IDS, then to iPub(5.1)
Product Source?
iPub
(3)
Cancelled status
is fed to PDH
from iPub
PT
No
Yes
Figure 4 Process Flowchart for Approval Process 2
Interfacing the Application with Master Product Database
18
2.4 NOPC Report
2.4.1 Functional Description
The NOPC report will list NOPC requests for one or more ISBNs. You can enter any
combination of the report criteria to limit the report to contain only the change requests that meet
the entered criteria.
The report has two formats, an HTML format and an Excel format. The HTML format has two
sub formats, a summary format and a detailed format. The default HTML format is the summary
format. The difference between the two HTML formats is that the detailed format displays the
routing workflow grid and, if the request has been cancelled, the denial reason.
The Excel version of the report will always display the equivalent of the HTML detail report
format.
There is a link in the top left of the HTML report that will generate the report in Excel format.
There is a button in the top right of the screen that will toggle the screen display between
summary format and detail format.
Security Groups for Default Marketing Manager and Editorial Director and Editorial Managing
Director:
 50,124,125,126,127,523,951,955
Processing Summary:
 NOPC Report Selection screen
 NOPC Summary Report
 NOPC Detail Report
 NOPC Detail Excel Report
Interfacing the Application with Master Product Database
19
2.4.2 Process Flowchart
NOPC Report
Editorial,Marketing,Finance,Inventory
Management
(1)
User Clicks on
NOPCReport
frfom the nav
menu
(1.1)
Selection Screen
is displayed
(1.4)
User Clicks on
Show Detailed
Format link to see
Detailed Report
(1.2)
Summary Report
is displayed
(1.3)
Detailed Excel
Report is
generated
Figure 5 Process Flowchart for NOPC reports
Interfacing the Application with Master Product Database
20
3. Technical Overview
3.1 Individual MHID/ISBN field change:
In order to create a change request in NOPC for a product, the user must be having the security
access to log in to NOPC application and also access to the product’s division security groups.
This is defined in the table dbo.div_user_group_xref table. Basically if the user is able to access
LSPT application and is a member of the one of the security groups given above, then the user
will be able to create a NOPC.
Once user is logged in, either an MHID can be entered or a search can be used to get the required
MHID.
Once the entered MHID is validated, then a screen is displayed with basic header information
about the product and all the fields that can be updated for the product. The field list that can be
changed for a product will based on the division of the product.
For a LSPT product, the following fields can be changed:
Table 2 Individual MHID Field Change 1
Field Business Rules Field
Type
Stat Sponsor  Will be displayed for Learning Solutions Project Tracking
products.
 Ensure proper hierarchy combination with Product Group
and Sub Division, Sponsor Area and Sponsor Discipline.
Sponsor Area  Will be read-only for Learning Solutions Project Tracking
products.
 Will be based upon the value of stat sponsor code selected
above.
Sponsor
Discipline
 Will be read-only for Learning Solutions Project Tracking
products.
 Will be based upon the value of stat sponsor code selected
above.
Product Group  Will be read-only for Learning Solutions Project Tracking
products.
 Will be based upon the value of stat sponsor code selected
above.
Lead Contributor  Available for update.
Marketing Title  Available for update. Limit
entry to
1000
Characters
Product Subject  Available for update. Dropdown
Edition  Available for update.
Copyright Year  Available for update
Prior Edition
MHID
 Tis field will be a text field which will display the current
previous edition MHID of the product if one exists. The
field can be updated with an entered MHID. Validation
needs performed on the entered MHID to ensure it exists in
the system similar to the lookup done on the search screen.
Text
Interfacing the Application with Master Product Database
21
If successfully validated the new MHID value will be used
for NOPC creation.
 Error Message: ‘Prior Edition MHID 9999999999 was
not found in PDH’
 Validation should not allow prior edition to be set to the
current product, to an MHID that is already the prior edition
of another product, or an MHID that is not within the same
division of the current product.
 Inventory will be the only approval group on routing.
Net Price  Available for update.
 List price will be calculated based on this value.
Projected
Warehouse Date
 Available for update.
Actual
Warehouse Dt
 In addition to the list of title types used to display Actual
Warehouse date, logic to also check LSPT Delivery
Medium of Web is used. If the product only exists in the
PDH, check for a PDH Delivery Format of Web.
Price Type  Price type dropdown is part of the NOPC submission for the
List Price or Net Price.
 It will have the values of “Estimated” and “Actual”.
 It will default to select Actual for MHHE and MHP.
 A price change cannot be submitted without a Price
Indicator being selected.
Dropdown
Discount Class  PrePack LSPT Custom products can only use US-CG (net
to list price markup 1.3333)
 Non-Package LSPT Custom product can use 4 possible
values:
 US-CG (net to list price markup 1.3333)
 US-GP (net to list price markup 1.3333)
 US-CP (net to list price markup 1)
 US-FL (net to list price markup 1)
Selling Rights  Available for update Dropdown
Delivery Medium  A list of all active Learning Solutions Project Tracking
Delivery Mediums
 If a change is made to the Delivery Medium, a single NOPC
submission will be made for Delivery Medium and
Production/Media Type
Dropdown
Production/Media
Type
 A list of all active Learning Solutions Project Tracking
Production/Media Types
 It’s values will be controlled by the selected Delivery
Medium
 If a change is made to the Production/Media type, a single
NOPC submission will be made for Delivery Medium and
Production/Media Type
Dropdown
Interfacing the Application with Master Product Database
22
3.1.1 Technical Process Diagram
Start iPub application
NOPC application
CreateNOPCForm
ISBNChange.cfm
CreateNOPC.cfm
CreateNOPCProd
uctSearch.cfm
Database
PP.NOPC
PP.NOPC_FIELD_ROUTING_MASTER
PP.NOPC_GROUP_ROUTING_MASTER
SP
PP.create_NOPC
Figure 6 Process Diagram for Individual MHID field change
Table 3 Individual MHID field change 2
# Name Description Type Execution Mode Data Source Name
1 CreateNOPC.cfm NOPC Selection screen.
Option to choose
Individual MHID Field
Change.
.cfm Real time
2 CreateNOPCProduct
Search.cfm
NOPC Search screen to
search for product to be
changed.
.cfm Real time
3 CreateNOPCFormIS
BNChange.cfm
File through which
changes to the fields are
made and NOPC’s
submitted.
.cfm Real time
4 PP.NOPC Table with the data of
the change requested
for the ISBN/MHID
Table Real Time
5 PP.NOPC_FIELD_RO
UTING_MASTER
Table with the data for
security access over a
field.
Table Real Time
6 PP.NOPC_GROUP_R
OUTING_MASTER
Table with the data on
which group can
approve/deny the
requests.
Table Real Time
Interfacing the Application with Master Product Database
23
# Name Description Type Execution Mode Data Source Name
7 PP.CREATE_NOPC Stored procedure which
when called inserts the
data about the change
in pp.nopc table.
Stored
procedure
Real Time
8 PP.NOPC_ROUTING Table with the data on
which groups are to be
involved in the routing
workflow of the change
request that was
created.
Table
Real Time
3.2 Individual MHID Cancellation
Once an ISBN/MHID is entered, it is validated to check whether it is eligible for cancellation.
Once it is validated, a request for cancellation is raised in a similar way as for a field change.
Comments need to be entered for the cancellation of the product.
3.2.1 Technical Process Diagram
Start iPub application
NOPC application
CreateNOPCForm
ISBNCancel.cfm
CreateNOPC.cfm
CreateNOPCProd
uctSearch.cfm
Database
PP.NOPC
PP.NOPC_FIELD_ROUTING_MASTER
PP.NOPC_GROUP_ROUTING_MASTER
SP
PP.create_NOPC
Figure 7 Process Diagram for Individual MHID Cancellation
Table 4 Individual MHID cancellation
# Name Description Type Execution Mode Data Source Name
1 CreateNOPCFormIS
BNCancel.cfm
File through which
Cancellation NOPC is
submitted.
.cfm Real time
Interfacing the Application with Master Product Database
24
3.3 NOPC Report
In the NOPC application, user can get all the requests that are Approved, In Routing Workflow,
Denied based on certain search criteria. This report will give the overall picture of how many
change/cancel requests are being created, per user, per field, per product.
Following are the search criteria fields that will be available in the Search screen:
 Division
 Pub Number (Project Number, Program Number of MHID
 Include Only NOPCs Submitted by Me Checkbox
 Request Date Range
 Sub Division
 Publishing Group
 Lead Contributor
 Copyright
 Stat Sponsor Code
 Editorial Manager
 Marketing Manager
 NOPC Status/PDH Update Status:
 Update Ready to be Sent
 Update In Process
 Update Business Rules Failed
 Update System Validation Error
 Update Received
 Update Completed
 Changes Types if Limiting to Certain Fields and/or to Cancellations:
 Lead Contributor
 Marketing Title
 Long Title
 Edition
 Prior Edition MHID (MHHE Only)
 Copyright
 Stat Sponsor Code
 Sponsor Area
 Sponsor Discipline
 Product Subject
 Project Warehouse Date
 Actual Warehouse Date
 Net/List Price
 List Price
 Discount Class
 Product Group
 Selling Rights
 Finish Width
 Finish Height
 Thickness
Interfacing the Application with Master Product Database
25
 Comments
 Cancellation
 Move Product
 Delivery Medium and Production/Media Type (this selection will also cause the
report to report upon the old individual NOPC types of Delivery Medium and
Production Media
3.3.1 Technical Process Diagram
Start
NOPC Application
NOPCReport.cfm
NOPCReportResults.cfm
Calls custom tag GetNOPCs.cfm
Database
PP.NOPC
PP.NOPC_FIELD_ROUTING_MASTER
PP.NOPC_GROUP_ROUTING_MASTER
SP
PP.create_NOPC
NOPCReportResultsExcel.cfm
Uses custom tag GetNOPCs.cfm
Figure 8 Process Diagram for NOPC Reports
Interfacing the Application with Master Product Database
26
Table 5 NOPC Reports
# Name Description Type Execution Mode Data Source Name
1 NOPCReport.cfm Search screen for NOPC
report
.cfm Real time
2 NOPCReportResults.
cfm
Displays the report
results.
.cfm Real time
3 GetNOPCs.cfm File which fetches the
NOPCs based on the
search criteria
.cfm Real time
4 NOPCReportResults
Excel.cfm
Displays the detailed
report in Excel format.
.cfm Real time
3.4 Routing Workflow
This screen displays the division and sub division wise routings for the fields and also the groups
that are responsible for the approval/denial of the requests for the fields.
3.4.1 Technical Process Diagram
Interfacing the Application with Master Product Database
27
User Logs in to the NOPC application
Start
Application.cfm is called,
The user uses the application and creates
NOPCs.
SetControlVariables.cfm is called. The user clicks
on the Routing Workflow Report,
RoutingWorkflowReport.cfm is called
Database
PP.NOPC
PP.NOPC_FIELD_ROUTING_MASTER
PP.NOPC_GROUP_ROUTING_MASTER
SP
PP.create_NOPC
Figure 9 Process Diagram for Routing Workflow
Interfacing the Application with Master Product Database
28
Table 6 Routing Workflow
Name Description Type Execution Mode Data Source Name
Application.cfm Gets executed before
every page call. Stores
application level
information.
.cfm Real time
SetControlVariables.
cfm
Gets executed when the
mass change, mass
cancel, individual change,
individual cancellation
screens are accessed.
Sets various control
variables for the
application.
.cfm Real time
RoutingWorkflowRe
port.cfm
Displays the routing by
division and then sub
division
.cfm Real time
Interfacing the Application with Master Product Database
29
3.5 Outbound Update Processing:
Once a change/cancel request is created and approved in NOPC, the details of the change for the
isbn is sent to update outbound staging table. This part of the interface is designed to expose a
procedure to the source applications and the update outbound staging table to the PDH service.
Following will be created intermediate interface before sending the details to PDH:
 Create Update Outbound Staging Table and Audit Update Outbound Staging tables
 Procedures to do update or insert into the update outbound staging table
The staging tables created in the database will be shared by the source applications.
The audit table for the staging tables will be created in order to archive the processed records of
the staging table.
A procedure is created which will update or create records in the staging tables.
Before inserting into the staging tables, the column/field changed in NOPC is to be validated
against the column name in util.update_item_outbound_xref table so that the PDH recognises the
field name and accepts the changes.
Also based on the column name and the MHID/ISBN value, if there are update records for the
same ISBN for the same field, then a dynamic merge statement is created so that instead of
creating a new row in the staging table, the new value is updated in the same row.
The records are created or updated with ITEM_STATUS = ‘READY’.
Interfacing the Application with Master Product Database
30
3.5.1 Technical Process Diagram
Batch Components
API
DB
update out bound tables
util.pkg_utilities_api.create_email
util.create_item_outbound
util.pkg_pdh_api.update_item_ou
tbound
util.pkg_pdh_api.create_item_
outbound
PDH
PDH Service
Application
iPub
LSPT
PrePack
Combo
NOPC
audit_pdh_item_outbound.bat
util.audit_create_item_outbou
nd
Update outbound audit tables
audit_pdh_item_outbound.sql
pdh_item_outbound_failure
_chk.bat
pdh_item_outbound_failure
_chk.sql
util.create_batch_id
Figure 10 Process Diagram for Outbound Update Processing
Interfacing the Application with Master Product Database
31
Table 7 Outbound Update Processing
# Name Description Type Execution Mode Data Source Name
1
util.batch_id_seq The sequence will be
created in order to create
a unique batch id.
Sequence Automatic
2
util.pkg_item_inter
face_api.
update_item_outb
ound
This SQL procedure
updates the existing
record or create new
record in
util.update_item_outbou
nd table
PL/SQL
(Procedure)
3
util.update_item_o
utbound
This is the update
outbound staging table
which will contain the
user requests for update
item number
Table
4
util.audit_update_i
tem_outbound
This table similar in
structure to the
util.update_item_outbou
nd used to archive all the
processed records 30
days older from the
util.update_item_outbou
nd
Table
5
pdh_item_outboun
d_failure_chk.bat
The batch file will be
run daily to find the
failed records on the
create and update
outbound staging table
by executing the
pdh_item_outbound_fail
ure_chk.sql
Batch Automatic
6
pdh_item_outboun
d_failure_chk.sql
This procedure will
query create and update
outbound staging tables
for failed records and
send email to the
application owners.
SQL
7
audit_pdh_item_o
utbound.bat
The batch file will run
weekly to move the
processed records that
are 30 days older from
util.update_item_outbou
nd table to
util.audit_update_item_o
utbound and
util.create_item_outboun
d to
util.audit_create_item_o
utbound table.
Batch Automatic
Interfacing the Application with Master Product Database
32
# Name Description Type Execution Mode Data Source Name
8
audit_pdh_item_o
utbound.sql
This procedure will
check for
ITEM_ACCEPTED and
FAILURE_RESOLVED
records older than 30
days and move them
util.audit_create_item_o
utbound and
util.audit_update_item_o
utbound table
respectively.
PL/SQL Automatic
Interfacing the Application with Master Product Database
33
4. Test Plan
Test Cases:
Table 8 Test Plan 1
Test# Test Case Expected Results
Regressio
n/Positive
/
Negative
Results
1. Login to NOPC.
Only users having access to
application can login to the
application.
Positive
Pass
2.
NOPC -> Individual MHID Field
Change -> Next
A screen is displayed where
there are two sections.
1. To enter a MHID
2. To search for a MHID
based on a search criteria.
Positive
Pass
3.
NOPC -> Enter a MHID/ISBN in the
MHID/ISBN textbox.
The entered MHID/ISBN is
validated to check whether it
is available in PDH.
If not an error message is
displayed saying the ISBN
doesn’t not exist in PDH.
Positive Pass
4.
NOPC -> Enter a MHID/ISBN in the
MHID/ISBN textbox
If the user logged in does
not belong to the division in
which the ISBN is, then an
alert is displayed saying that
the MHID division is
different than that of the
user’s. The user will not be
able to make any changes.
Negative
Pass
5.
NOPC -> Individual MHID Field
Change -> NOPC Change screen
Only the fields for which the
change is possible should be
displayed based on the
division and user’s security
access group.
Positive
Pass
6.
NOPC -> Individual MHID Field
Change -> NOPC Change screen ->
Review NOPC change screen
Once the changes are made,
an intermediate screen is
displayed showing the old
value and new value of the
field that was changed
Positive Pass
7. NOPC -> NOPC Report
The report should display
the requests based on the
search criteria given in the
criteria screen.
Positive
Pass
Interfacing the Application with Master Product Database
34
8. PP.NOPC table
The table should contain
values that were updated in
the NOPC application for
the given ISBN
Positive
Pass
9.
NOPC Submitted -> Open the MHID
in LSPT.
After a change/cancel
request is submitted in
NOPC for a MHID/ISBN, in
LSPT for that MHID/ISBN,
the changes will not be
reflected unless the request
is approved in NOPC and as
well as in PDH.
Regression
Pass
10. NOPC
When a request is submitted
for a MHID/ISBN, if there is
already an existing request
for another field change for
the same MHID/ISBN, then
a separate row is created for
that field change.
Positive Pass
11. NOPC
When creating a
change/cancel request for a
MHID, if there is already an
existing request for the same
field, then an alert is
displayed saying that a
request for that field already
exists. The new request will
not be created.
Regression Pass
Interfacing the Application with Master Product Database
35
5. ANGULARJS
AngularJS is a very powerful JavaScript Framework. It is used in Single Page Application (SPA)
projects. AngularJS is a framework to build large scale and high performance web application
while keeping them as easy-to-maintain.
It extends HTML DOM with additional attributes and makes it more responsive to user actions.
5.1 Features
 AngularJS is a powerful JavaScript based development framework to create RICH Internet
Application (RIA).
 AngularJS provides developers options to write client side application (using JavaScript)
in a clean MVC (Model View Controller) way.
 Application written in AngularJS is cross-browser compliant. AngularJS automatically
handles JavaScript code suitable for each browser.
 AngularJS is open source, completely free, and used by thousands of developers around
the world. It is licensed under the Apache License version 2.0.
Interfacing the Application with Master Product Database
36
5.2 Core Features
Following are most important core features of AngularJS:
 Data-binding − It is the automatic synchronization of data between model and view
components.
 Scope − these are objects that refer to the model. They act as a glue between controller
and view.
 Controller − these are JavaScript functions that are bound to a particular scope.
 Services − AngularJS come with several built-in services for example $http to make
XMLHttpRequests. These are singleton objects which are instantiated only once in app.
 Filters − these select a subset of items from an array and returns a new array.
 Directives − Directives are markers on DOM elements (such as elements, attributes, css,
and more). These can be used to create custom HTML tags that serve as new, custom
widgets. AngularJS has built-in directives (ngBind, ngModel...)
 Templates − these are the rendered view with information from the controller and model.
These can be a single file (like index.html) or multiple views in one page using "partials".
 Routing − It is concept of switching views.
 Model View Whatever − MVC is a design pattern for dividing an application into
different parts (called Model, View and Controller), each with distinct responsibilities.
AngularJS does not implement MVC in the traditional sense, but rather something closer
to MVVM (Model-View-View Model). The Angular JS team refers it humorously as
Model View Whatever.
 Deep Linking − Deep linking allows you to encode the state of application in the URL so
that it can be bookmarked. The application can then be restored from the URL to the same
state.
 Dependency Injection − AngularJS has a built-in dependency injection subsystem that
helps the developer by making the application easier to develop, understand, and test.
Interfacing the Application with Master Product Database
37
5.3 Concepts in AngularJS
Below are some important concepts majorly used in web development:
Figure 11 Concepts in AngularJS
Interfacing the Application with Master Product Database
38
5.4 Advantages of using AngularJS
 AngularJS provides capability to create Single Page Application in a very clean and
maintainable way.
 AngularJS provides data binding capability to HTML thus giving user a rich and
responsive experience
 AngularJS code is unit testable.
 AngularJS uses dependency injection and make use of separation of concerns.
 AngularJS provides reusable components.
 With AngularJS, developer write less code and get more functionality.
 In AngularJS, views are pure html pages, and controllers written in JavaScript do the
business processing.
On top of everything, AngularJS applications can run on all major browsers and smart phones
including Android and iOS based phones/tablets.
One of major setback in AngularJS is that if the user decides to disables the JavaScript in the
browser, then the user will see just a basic page and nothing more.
Interfacing the Application with Master Product Database
39
5.5 AngularJS vs Apache Flex (prev. Adobe Flex)
Apache Flex, previously Adobe Flex, is also majorly used for development web resources.
It is used to build and develop Rich Internet Applications (RIA) based on Adobe Flash platform.
By using Flex, the developers have 100 percent control over the application and deploy them
using a browser.
It is fast, has a catchy look and a high performance.
But Apache Flex is getting less emphasis now-a-days since they don’t run on all devices.
Also, as many browsers has/will have abandoned Flash in a few years many applications running
Flex are searching for an alternative which can include most of the features from Flex and can
also offer much more.
AngularJS proved to be the better alternative as major concepts like data binding, a declarative
syntax, animations, etc., that are available in Flex can be carried over to AngularJS.
With AngularJS, however, you can build snappy single-page applications to feel much more like
desktop applications, but they have the added benefit of being able to run on tablets, phones, and
other devices.
Below is a comparison made between AngularJS and Apache Flex which shows that AngularJS
is a better alternative than other frameworks available in the market.
AngularJS vs Adobe Flex
Interfacing the Application with Master Product Database
40
6. Using AngularJS
AngularJS can be used with HTML pages by just adding a script tag as below:
<script src="http://ajax.googleapis.com/ajax/libs/angularjs/1.3.14/angular.min.js"></
script>
AngularJS extends HTML with ng-directives.
Ex: ng-model, ng-bind, ng-repeat, etc.
AngularJS modules define AngularJS applications.
ng-app.
AngularJS controllers control AngularJS applications
ng-controller.
A HTML report with Angular JS to display the products available in a project.
Figure 12 Sample AngularJS Report
This report displays the products in the project when a project/product is entered.
The html file uses Angular JS functions combined with ColdFusion elements to display the
above report.
Interfacing the Application with Master Product Database
41
6.1 Working of the report:
The user enters a project/product number in the text box. This text box is a required field and
cannot be left blank.
ng-required=”true” attribute is used to make it a required field.
The text field is limited to only eight digits with the following attribute:
ng-maxlength = 8
After entering the project/product number, on clicking the display button, the page refreshes and
the result is displayed below as shown in the picture above.
A <cfquery> is used to get the required data from the DB based on the number entered.
<cfquery name=”GetProject” datasource=”#db_instance#”>
…..
</cfquery>
AngularJS needs data in JSON format to display or format data. So we need to serialize the
above result set from cfquery and pass it to AngualrJS elements.
The above cfquery result set can be serialized i.e., (key: data) pair, in two ways.
1. We need to convert the result query to Array. Then we can use the
serializeJSON (result set) function to convert the query result set in to a key : value pair
data which can be received by AngularJS elements.
<cfscript>
a = createObject('component','angular');
getQuery = a.getQuery();
QueryArray = a.queryToArray(getQuery);
</cfscript>
where getQuery is the result set.
<script>
var Demo = angular.module("Demo", []);
Demo.controller("DemoController", function($scope){
$scope.project = <cfoutput>#serializeJSON(resultset)#</cfoutput>;
});
</script>
where $scope.project assigns the serialized data to element “project” which can be looped
to display the data.
Interfacing the Application with Master Product Database
42
2. We can use the wddx feature in ColdFusion to serialize the data from the query result set.
<cfset ProjectArray = ArrayNew(1)>
<cfloop query="GetProject">
<cfset node = structNew()>
<cfset StructInsert(node,"column_name",#GetProject.column_name#)>
…Repeat the above line for the columns you want in the result set.
<cfset ArrayAppend(ProjectArray, node)>
</cfloop>
The above query converts the query result set into an Array.
GetProject is the query name.
<script language="JavaScript" src="/CFIDE/scripts/wddx.js"></script>
<script>
<cfwddx action="CFML2JS" input="#ProjectArray#"
toplevelvariable="theProjectArray">
var Demo = angular.module("Demo", []);
Demo.controller("DemoController", function($scope){
$scope.project = theProjectArray;
});
</script>
The <cfwddx> tag converts the cf array into a js array which can be used to in AngularJS
elements.
Once the data is serialized using either of the above two ways, the angularJS element can now be
used to display the data in the way we want it to be displayed.
The above report uses the table format to display the data as below:
<table>
<thead>
<tr>
<td<Column heading</td>
….
</tr>
</thead>
<tbody>
<tr ng-repeat=”data in dataArray”>
<td>Column data</td>
….
</tr>
</tbody>
</table>
While displaying the data using the ng-repeat directive, the data can also be formatted/sorted
using Filters available.
Interfacing the Application with Master Product Database
43
For example, the product fetched in the report can be displayed in ascending order or descending
order using the sortBy filter as follows:
<tr ng-repeat=”data in dataArray | sortBy : ‘product_number’”>
For displaying a price data, currency filter can be used to display the value.
<td>{{data.column_name | currency}}</td>
While displaying the above retrieved, there can also be a requirement where the products need to
be grouped based on their status and then displayed.
As groupBy filter is not exclusively available, a script is written so that data can be grouped.
var uniqueItems = function (data, key) {
var result = [];
for (var i = 0; i < data.length; i++) {
var value = data[i][key];
if (result.indexOf(value) == -1) {
result.push(value);
}
}
return result;
};
The above code will store the unique values of the column in the data that we want it to be
grouped into a variable.
Demo.filter('groupBy',
function () {
return function (collection, key) {
if (collection === null) return;
return uniqueItems(collection, key);
};
});
The above function gets triggered when a filter named groupBy is used and it returns the values
that was stored in a variable in the previous script block.
Then the data is grouped and displayed in html as below:
<div ng-repeat="status in project | groupBy:’status'">
<b> {{team}} </b>
<li ng-repeat="products in project | filter: {status: status}">
{{products.column_name}}
……
</li>
</div>
Interfacing the Application with Master Product Database
44
6.2 Testing of the report:
Test Cases:
Table 9 Test Plan 2
Test# Test Case Expected Results
Regressi
on/Positi
ve/
Negative
Results
1.
Report home screen ->
Enter a number.
If a project number is
entered all the products
should be listed in a tabular
manner for that project.
OR
If a product number is
entered, all the products
(including the product
number entered) in the
project to which the product
entered belong to, should
be displayed.
Positive
Pass
2.
Report home screen ->
Enter a number.
If the number entered is
neither a project nor a
product, then an alert
should be displayed saying
that the number does not
exist.
Negative
Pass.
3.
Report home screen ->
Click on Display button without
entering a value in the product
number text field.
The form will not be
submitted and the text field
will show a popup saying it
is a required field.
Positive
Pass
4.
Report home screen ->
Project/Product number field.
Only numbers can be
entered in the field.
Alphabets and special
symbols cannot be entered.
Positive Pass
Interfacing the Application with Master Product Database
45
7. Conclusion
This dissertation topic implemented a reliable system to interface the front end application with
the master database Product Data Hub.
This change helped the data in the application and the master database to be in sync without the
problem of unsecured updates being done.
By routing the change request to different groups of users, the changes made are properly
communicated to all users who previously were unaware of it until they actually use them in the
application.
Also tracking the changes made was also made easier as all the change request are logged in the
local database as well as in master database.
A sample HTML report was also created using AngularJS to show that the Adobe Flex, which
was used for couple of reports, can be replaced with AngularJS which also has similar
functionalities and is majorly used for web development.
8. References
 http://www.w3schools.com/angular/default.asp
 http://www.tutorialspoint.com/angularjs/index.htm
Interfacing the Application with Master Product Database
46
Check List
 Is the Cover page in proper format? Yes
 Is the Title page in proper format? Yes
 Is the Certificate from the Supervisor in proper format? Has it been signed? Yes
 Is Abstract included in the Report? Is it properly written? Yes
 Does the Table of Contents’ page include chapter page numbers? Yes
 Is Introduction included in the report? Is it properly written? Yes
 Are the Pages numbered properly? Yes
 Are the Figures numbered properly? Yes
 Are the Tables numbered properly? Yes
 Are the Captions for the Figures and Tables proper? Yes
 Are the Appendices numbered? No
 Does the Report have Conclusions/ Recommendations of the work? Yes
 Are References/ Bibliography given in the Report? Yes
 Have the References been cited in the Report? Yes
 Is the citation of References/ Bibliography in proper format? Yes

More Related Content

What's hot

Internship report (1)
Internship report (1)Internship report (1)
Internship report (1)
brhne fitsum
 
Software Engineering Internship
Software Engineering InternshipSoftware Engineering Internship
Software Engineering Internship
Md. Shafiuzzaman Hira
 
Computer science/ IT Fianl attachment report
Computer science/ IT Fianl attachment reportComputer science/ IT Fianl attachment report
Computer science/ IT Fianl attachment report
Paullaster Okoth
 
Archimate Meta Model
Archimate   Meta ModelArchimate   Meta Model
Archimate Meta Model
Maganathin Veeraragaloo
 
Enterprise Architecture for Dummies - TOGAF 9 enterprise architecture overview
Enterprise Architecture for Dummies - TOGAF 9 enterprise architecture overviewEnterprise Architecture for Dummies - TOGAF 9 enterprise architecture overview
Enterprise Architecture for Dummies - TOGAF 9 enterprise architecture overview
Winton Winton
 
API Strategy in Cloud
API Strategy in CloudAPI Strategy in Cloud
API Strategy in Cloud
PavanPardeshi1
 
computer science internship report
computer science  internship reportcomputer science  internship report
computer science internship report
kaahwa Armstrong
 
DOD EA conference DoDAF in Action
DOD EA conference DoDAF in ActionDOD EA conference DoDAF in Action
DOD EA conference DoDAF in Action
Paul W. Johnson
 
Azure Design Review Checklist Availabilityの巻
Azure Design Review Checklist Availabilityの巻Azure Design Review Checklist Availabilityの巻
Azure Design Review Checklist Availabilityの巻
Toru Makabe
 
Security Modelling in ArchiMate
Security Modelling in ArchiMateSecurity Modelling in ArchiMate
Security Modelling in ArchiMate
PECB
 
Enterprise Architecture, Project Management & Digital Transformation
Enterprise Architecture, Project Management & Digital TransformationEnterprise Architecture, Project Management & Digital Transformation
Enterprise Architecture, Project Management & Digital Transformation
Riaz A. Khan, OpenCA, TOGAF
 
Modeling Big Data with the ArchiMate 3.0 Language
Modeling Big Data with the ArchiMate 3.0 LanguageModeling Big Data with the ArchiMate 3.0 Language
Modeling Big Data with the ArchiMate 3.0 Language
Iver Band
 
Training Report
Training ReportTraining Report
Training Report
Maninda Edirisooriya
 
Computer science internship report
Computer science internship reportComputer science internship report
Computer science internship report
surafelteshome3
 
Internship report writing_criteria_for_gmd
Internship report writing_criteria_for_gmdInternship report writing_criteria_for_gmd
Internship report writing_criteria_for_gmd
AjayPathak57
 
Togaf introduction and core concepts
Togaf introduction and core conceptsTogaf introduction and core concepts
Togaf introduction and core concepts
Paul Sullivan
 
The 4 Interfaces for the Business Model Canvas and Storyboard: How to THINK O...
The 4 Interfaces for the Business Model Canvas and Storyboard: How to THINK O...The 4 Interfaces for the Business Model Canvas and Storyboard: How to THINK O...
The 4 Interfaces for the Business Model Canvas and Storyboard: How to THINK O...
Rod King, Ph.D.
 
TOGAF 9.2 - the update
TOGAF 9.2 - the updateTOGAF 9.2 - the update
TOGAF 9.2 - the update
Danny Greefhorst
 
Archimate Overview
Archimate OverviewArchimate Overview
Archimate Overview
emergingpractices
 
Internship report on flutter lawyer app
Internship report  on flutter lawyer appInternship report  on flutter lawyer app
Internship report on flutter lawyer app
Independent University , Bangladesh
 

What's hot (20)

Internship report (1)
Internship report (1)Internship report (1)
Internship report (1)
 
Software Engineering Internship
Software Engineering InternshipSoftware Engineering Internship
Software Engineering Internship
 
Computer science/ IT Fianl attachment report
Computer science/ IT Fianl attachment reportComputer science/ IT Fianl attachment report
Computer science/ IT Fianl attachment report
 
Archimate Meta Model
Archimate   Meta ModelArchimate   Meta Model
Archimate Meta Model
 
Enterprise Architecture for Dummies - TOGAF 9 enterprise architecture overview
Enterprise Architecture for Dummies - TOGAF 9 enterprise architecture overviewEnterprise Architecture for Dummies - TOGAF 9 enterprise architecture overview
Enterprise Architecture for Dummies - TOGAF 9 enterprise architecture overview
 
API Strategy in Cloud
API Strategy in CloudAPI Strategy in Cloud
API Strategy in Cloud
 
computer science internship report
computer science  internship reportcomputer science  internship report
computer science internship report
 
DOD EA conference DoDAF in Action
DOD EA conference DoDAF in ActionDOD EA conference DoDAF in Action
DOD EA conference DoDAF in Action
 
Azure Design Review Checklist Availabilityの巻
Azure Design Review Checklist Availabilityの巻Azure Design Review Checklist Availabilityの巻
Azure Design Review Checklist Availabilityの巻
 
Security Modelling in ArchiMate
Security Modelling in ArchiMateSecurity Modelling in ArchiMate
Security Modelling in ArchiMate
 
Enterprise Architecture, Project Management & Digital Transformation
Enterprise Architecture, Project Management & Digital TransformationEnterprise Architecture, Project Management & Digital Transformation
Enterprise Architecture, Project Management & Digital Transformation
 
Modeling Big Data with the ArchiMate 3.0 Language
Modeling Big Data with the ArchiMate 3.0 LanguageModeling Big Data with the ArchiMate 3.0 Language
Modeling Big Data with the ArchiMate 3.0 Language
 
Training Report
Training ReportTraining Report
Training Report
 
Computer science internship report
Computer science internship reportComputer science internship report
Computer science internship report
 
Internship report writing_criteria_for_gmd
Internship report writing_criteria_for_gmdInternship report writing_criteria_for_gmd
Internship report writing_criteria_for_gmd
 
Togaf introduction and core concepts
Togaf introduction and core conceptsTogaf introduction and core concepts
Togaf introduction and core concepts
 
The 4 Interfaces for the Business Model Canvas and Storyboard: How to THINK O...
The 4 Interfaces for the Business Model Canvas and Storyboard: How to THINK O...The 4 Interfaces for the Business Model Canvas and Storyboard: How to THINK O...
The 4 Interfaces for the Business Model Canvas and Storyboard: How to THINK O...
 
TOGAF 9.2 - the update
TOGAF 9.2 - the updateTOGAF 9.2 - the update
TOGAF 9.2 - the update
 
Archimate Overview
Archimate OverviewArchimate Overview
Archimate Overview
 
Internship report on flutter lawyer app
Internship report  on flutter lawyer appInternship report  on flutter lawyer app
Internship report on flutter lawyer app
 

Similar to 2011HW69968-Dissertation Final Report

IndieLabs-FormsApp Using Spring Framework
IndieLabs-FormsApp Using Spring FrameworkIndieLabs-FormsApp Using Spring Framework
IndieLabs-FormsApp Using Spring FrameworkAbdulah Al Bahhar
 
online examination management system
online examination management systemonline examination management system
online examination management system
Praveen Patel
 
Istqb Agile-tester Extension
Istqb Agile-tester ExtensionIstqb Agile-tester Extension
Istqb Agile-tester Extension
Girish Goutam
 
D6.1 initial report-innovation-strategy-and-targeted-activities
D6.1 initial report-innovation-strategy-and-targeted-activitiesD6.1 initial report-innovation-strategy-and-targeted-activities
D6.1 initial report-innovation-strategy-and-targeted-activities
ariadnenetwork
 
A.R.C. Usability Evaluation
A.R.C. Usability EvaluationA.R.C. Usability Evaluation
A.R.C. Usability Evaluation
JPC Hanson
 
Software requirements specifications wp2
Software requirements specifications wp2Software requirements specifications wp2
Software requirements specifications wp2
ambitlick
 
Sample Report Format
Sample Report FormatSample Report Format
Sample Report Formatvikram singh
 
Book of-vaadin
Book of-vaadinBook of-vaadin
Book of-vaadin
VLASLOV
 
Bharat Electronics Limited (BEL) : Training Report
Bharat Electronics Limited (BEL) : Training ReportBharat Electronics Limited (BEL) : Training Report
Bharat Electronics Limited (BEL) : Training ReportAmber Bhaumik
 
Final fyp report template
Final fyp report templateFinal fyp report template
Final fyp report templateSil Fa
 
Food delivery application report
Food delivery application reportFood delivery application report
Food delivery application report
AshwinBicholiya
 
Oracl apps api usages
Oracl apps api usagesOracl apps api usages
Oracl apps api usages
rakhe_r
 
digiinfo website project report
digiinfo website project reportdigiinfo website project report
digiinfo website project report
ABHIJEET KHIRE
 
Net Development
Net DevelopmentNet Development
Net Development
daveparky
 
Student declaration, table of content, acknowledge
Student declaration, table of content, acknowledgeStudent declaration, table of content, acknowledge
Student declaration, table of content, acknowledge
Alok Chaudhary
 

Similar to 2011HW69968-Dissertation Final Report (20)

IndieLabs-FormsApp Using Spring Framework
IndieLabs-FormsApp Using Spring FrameworkIndieLabs-FormsApp Using Spring Framework
IndieLabs-FormsApp Using Spring Framework
 
Project Report - Damith Final
Project Report - Damith FinalProject Report - Damith Final
Project Report - Damith Final
 
online examination management system
online examination management systemonline examination management system
online examination management system
 
Istqb Agile-tester Extension
Istqb Agile-tester ExtensionIstqb Agile-tester Extension
Istqb Agile-tester Extension
 
E11063 01
E11063 01E11063 01
E11063 01
 
D6.1 initial report-innovation-strategy-and-targeted-activities
D6.1 initial report-innovation-strategy-and-targeted-activitiesD6.1 initial report-innovation-strategy-and-targeted-activities
D6.1 initial report-innovation-strategy-and-targeted-activities
 
A.R.C. Usability Evaluation
A.R.C. Usability EvaluationA.R.C. Usability Evaluation
A.R.C. Usability Evaluation
 
Software requirements specifications wp2
Software requirements specifications wp2Software requirements specifications wp2
Software requirements specifications wp2
 
Sample Report Format
Sample Report FormatSample Report Format
Sample Report Format
 
Book of-vaadin
Book of-vaadinBook of-vaadin
Book of-vaadin
 
J raven user guide
J raven user guideJ raven user guide
J raven user guide
 
Bharat Electronics Limited (BEL) : Training Report
Bharat Electronics Limited (BEL) : Training ReportBharat Electronics Limited (BEL) : Training Report
Bharat Electronics Limited (BEL) : Training Report
 
Final fyp report template
Final fyp report templateFinal fyp report template
Final fyp report template
 
Food delivery application report
Food delivery application reportFood delivery application report
Food delivery application report
 
Oracl apps api usages
Oracl apps api usagesOracl apps api usages
Oracl apps api usages
 
Plsql
PlsqlPlsql
Plsql
 
digiinfo website project report
digiinfo website project reportdigiinfo website project report
digiinfo website project report
 
Print
PrintPrint
Print
 
Net Development
Net DevelopmentNet Development
Net Development
 
Student declaration, table of content, acknowledge
Student declaration, table of content, acknowledgeStudent declaration, table of content, acknowledge
Student declaration, table of content, acknowledge
 

2011HW69968-Dissertation Final Report

  • 1. Interfacing the Application with Master Product Database 1 Interfacing the Application with Master Product Database SEWP ZG629T DISSERTATION By Swaminathan V BITS ID No: 2011HW69968 Dissertation Work carried out at Wipro Technologies, Hyderabad BIRLA INSTITUTE OF TECHNOLOGY AND SCIENCE Pilani (Rajasthan) India September, 2015
  • 2. Interfacing the Application with Master Product Database 2 SEWP ZG629T DISSERTATION Final Report Interfacing the Application with Master Product Database Submitted in complete fulfillment of the requirements of M.S. Degree Program By Swaminathan V ID No. 2011HW69968 Under the supervision of Agnel Vignesh, Consultant Dissertation work carried out at Wipro Technologies, Hyderabad BIRLA INSTITUTE OF TECHNOLOGY AND SCIENCE Pilani (Rajasthan) (September, 2015)
  • 3. Interfacing the Application with Master Product Database 3
  • 4. Interfacing the Application with Master Product Database 4
  • 5. Interfacing the Application with Master Product Database 5
  • 6. Interfacing the Application with Master Product Database 6
  • 7. Interfacing the Application with Master Product Database 7 ACKNOWLEDGEMENTS I wish to express my gratitude to Wipro Technologies for giving me an opportunity to purse the degree of M.S from BITS - Pilani through WASE (Wipro Academy of Software Excellence) program. I would like thank my supervisor, Mr. Agnel Vignesh and examiner Mr. Prashanth Raja for all their help and support in completing the dissertation. I would like to extend my thanks to all the professors, coordinators for all their support and guidance which made the learning smooth. Finally, my sincere thanks to my family, friends and colleagues for their support throughout my MS journey. Thanks.
  • 8. Interfacing the Application with Master Product Database 8 Table of Contents 1. Introduction ...........................................................................................................................................................10 1.1 Business Problem.............................................................................................................................................11 1.2 Proposed Solution............................................................................................................................................11 1.3 In Scope ............................................................................................................................................................11 1.4 Out Of Scope ....................................................................................................................................................11 2. Functional Overview .............................................................................................................................................12 2.1 Change Requests..............................................................................................................................................13 2.1.1 Functional Description:............................................................................................................................13 2.1.2 Process Flow Chart...................................................................................................................................14 2.2 Cancellation Requests .....................................................................................................................................15 2.2.1 Functional Description .............................................................................................................................15 2.2.2 Process Flow Chart...................................................................................................................................15 2.3 Approval/Routing ............................................................................................................................................16 2.3.1 Functional Description .............................................................................................................................16 2.3.2 Process Flowchart.....................................................................................................................................17 2.4 NOPC Report...................................................................................................................................................18 2.4.1 Functional Description .............................................................................................................................18 2.4.2 Process Flowchart.....................................................................................................................................19 3. Technical Overview ...............................................................................................................................................20 3.1 Individual MHID/ISBN field change: ............................................................................................................20 3.1.1 Technical Process Diagram......................................................................................................................22 3.2 Individual MHID Cancellation.......................................................................................................................23 3.2.1 Technical Process Diagram......................................................................................................................23 3.3 NOPC Report...................................................................................................................................................24 3.3.1 Technical Process Diagram......................................................................................................................25 3.4 Routing Workflow ...........................................................................................................................................26 3.4.1 Technical Process Diagram......................................................................................................................26 3.5 Outbound Update Processing:........................................................................................................................29 3.5.1 Technical Process Diagram......................................................................................................................30 4. Test Plan.................................................................................................................................................................33 5. ANGULARJS.........................................................................................................................................................35 5.1 Features ............................................................................................................................................................35 5.2 Core Features...................................................................................................................................................36 5.3 Concepts in AngularJS....................................................................................................................................37 5.4 Advantages of using AngularJS......................................................................................................................38 5.5 AngularJS vs Apache Flex (prev. Adobe Flex)..............................................................................................39 6. Using AngularJS....................................................................................................................................................40 6.1 Working of the report: ....................................................................................................................................41
  • 9. Interfacing the Application with Master Product Database 9 6.2 Testing of the report:.......................................................................................................................................44 7. Conclusion..............................................................................................................................................................45 8. References ..............................................................................................................................................................45 Acronyms Acronyms Definition LSPT Learning Solutions Project Tracking NOPC Notification of Product Change PDH Product Data Hub IDS Integrated Data Set SPA Single Page Application HTML Hyper Text Markup Language RIA Rich Internet Application DOM Data Object Model MVC Model View Controller DB Data Base JSON JavaScript Object Notation List of Figures Figure 1 Process Flowchart for change requests ....................................................................................................14 Figure 2 Process Flowchart for Cancellation requests ...........................................................................................15 Figure 3 Process Flowchart for Approval process 1...............................................................................................17 Figure 4 Process Flowchart for Approval Process 2...............................................................................................17 Figure 5 Process Flowchart for NOPC reports.......................................................................................................19 Figure 6 Process Diagram for Individual MHID field change...............................................................................22 Figure 7 Process Diagram for Individual MHID Cancellation..............................................................................23 Figure 8 Process Diagram for NOPC Reports ........................................................................................................25 Figure 9 Process Diagram for Routing Workflow ..................................................................................................27 Figure 10 Process Diagram for Outbound Update Processing ..............................................................................30 Figure 11 Concepts in AngularJS ............................................................................................................................37 Figure 12 Sample AngularJS Report.......................................................................................................................40
  • 10. Interfacing the Application with Master Product Database 10 1. Introduction The McGraw-Hill Education: The McGraw Hill Education is one of the leading media publishing companies in the world. At McGraw-Hill, the proven, research-based content is combined with the best emerging digital technologies to guide assessment, teaching and learning to achieve the best possible outcome for students, instructors and institutions. It publishes media in more than 65 languages. McGraw Hill is:  A global leader in education, and have been for nearly 125 years.  A leader in digital transformation of teaching and learning worldwide.  Renowned for instructional design, personalized learning and customized content.  A provider of positive learning outcomes for millions of students worldwide. About the Application Before actually publishing a product, it is first reviewed internally and the revenue, attributes, manufacturing information, scheduled dates are analyzed. These are done through an application. Learning Solutions Project Tracking: The Learning Solutions Project Tracking(LSPT) application tracks information for each custom project, including product attributes, estimated revenue, project school and customer(s), people contacts, manufacturing information, and schedule dates. Products go through various stages of approval before finally being printed/published. When a new product/project is created, it is assigned Open Lead/Proposed status. Depending on the approvals, the status changes to ‘Approved’, ‘In Production’, ‘Printing’, ‘Published’ and ‘Out of Print’. Each project/product is assigned a rep, who will be responsible for that product/project. Once a product is approved by the respective group, a 10-digit MHID is assigned to the product which will link the product in LSPT with the Product Data Hub (PDH). Various reports for financial details, manufacturing information, product attributes, people contacts assigned can be generated for different stages of the product.
  • 11. Interfacing the Application with Master Product Database 11 1.1 Business Problem After a product is created and approved by the respective groups, a 10 digit MHID is assigned which links the product to the Product Data Hub. Any updates made to the product in the application after a MHID is assigned should also be updated in Product Data Hub and vice versa. Previously the updates would directly flow into PDH without any validations from the application and from PDH as well. In that case, when one owner of the product changes an attribute and if that is not accepted by another owner of the product, then the change made should be reverted again which may cause inconsistency in the data. The reports in the application uses Adobe FLEX which is nearing its end. This should also be rewritten using a much consistent language. 1.2 Proposed Solution So a new system, Notification of Product Change (NOPC) or IDS (Integrated Data Set, a database), is to be created that would interface the application with the Product Data Hub and validate the updates flowing from PDH and LSPT respectively. Any changes in the application for a product with MHID would create an update request, this request will be sent to respective groups for approval. Once approved the values are updated in local copy of PDH i.e., IDS and the values from IDS flow to PDH. This interface helps in proper values updated and helps in data consistency and security by limiting the access to directly update the PDH. Also the reports generated for the product uses the Adobe Flex for the front end design. As the Adobe Flash is near to its death and few noted browsers and web sites are disabling Flash from running their services due to security reasons, the reports used in LSPT needs to be converted to use AngularJS for their front end designs. 1.3 In Scope  Create a system that will interface the application and IDS in turn PDH.  Integrate the system with the application.  Rewrite reports using AngularJS to enhance the usability of the existing reports. 1.4 Out Of Scope  The product cancellation request made through the interface will not cancel the product immediately in Learning Solutions Project Tracking. This will be done by a separate daily batch job in Learning Solutions Project Tracking.
  • 12. Interfacing the Application with Master Product Database 12 2. Functional Overview After a product has been assigned MHID, changes to key product attributes (such as edition, copyright, price, etc.,) must be submitted as a request and go through an approval process before the change is updated in PDH. Once the changes have been updated in PDH, the new values will flow down to IDS and will be reflected in Learning Solutions Project Tracking where the product originated from. Similarly, cancellation of the above products must also be submitted through requests. And after the approval, products are canceled in PDH. NOPC Requests can be generated through both the NOPC application and Learning Solutions Project Tracking applications. The NOPC application is used manage the approval workflow based on the business rules defined for the business divisions. Functional Area Overview: 1. On calling the NOPC application from LSPT requests can be created for:  Individual MHID Field Change – A change to one or more key attributes on one product  Individual MHID Cancellation – Cancel a single non-published product 2. LSPT application will programmatically create Requests for certain fields:  Individual MHID Field Change for Projected Warehouse Date when the Original or Revised Book Bound Date is changed. The Projected Warehouse Date will be requested as 7 days after the date entered for the Original or Revised Book Bound Date of the product.  Product Subject, Market Classification and Title of the product will be changed based on its components and if the product has an ISBN assigned, the change request is automatically created in NOPC.
  • 13. Interfacing the Application with Master Product Database 13 Business Process Logic: Table 1 Functional Overview # Name Description Type 1 NOPC Link (from Homepage) The user selects the NOPC application from the intranet page Manual 1.1 NOPC Opening Screen NOPC Opening screen is displayed. Automated 2 NOPC Link (from LSPT) User clicks on NOPC link within in the Learning Solutions Project Tracking application Manual 2.1 NOPC Change screen NOPC Change screen is displayed Automated 3 Cancel Link (from LSPT) User selects the Cancel function for a Project or Product from the Learning Solutions Project Tracking application Manual 3.1 NOPC Cancel screen NOPC Cancellation screen is displayed. Cancelation request will always direct the user to the Individual MHID Cancellation request screen from Learning Solutions Project Tracking Automated 2.1 Change Requests 2.1.1 Functional Description: Learning Solutions Contacts can request a change to a field at any time by clicking on the NOPC link next to the field in Project Tracking or using the NOPC application. All LSPT Custom product NOPC changes will use the Individual MHID Field Change request type. Mass Change and Mass Cancellation will be disabled for LSPT Custom product products. The NOPC request must be approved by the appropriate departments before the change will be made. Note: The NOPC application will be used by other applications like IPub which also deals with products but from different divisions.
  • 14. Interfacing the Application with Master Product Database 14 2.1.2 Process Flow Chart Individual ISBN Field Change/Mass Change SubmitNOPCRequestsfromNOPC Application SubmitNOPCRequestsfromiPubor LSPTApplication Start (1) Open Project/ Program/Product General Information or Sales/comp (2) Click on the NOPC link next to attribute fields (3.1.1) List all products with MHID of the Project/Program/Core Product (3.1) Mass Change (4) Stat Sponsor code or Product Group need to be changed? (4.1) Select list of Products need to be changed. No (4.2) All listed products of the Project/ Program/Core Product will be selected automatically and cannot be override. Yes (5) Enter new value of key attribute(s) (3.2) Individual ISBN Field Change (8) Generate NOPC Requests for changes in each attribute for each product, A (7) Submit Request Start (1) Click on ‘Create NOPC Request’ (2) Select NOPC Request Type (2.2.1) Search and Select the particular program ISBN to be changed (2.1.1) Search and Select the particular product to be changed (2.1) Individual ISBN Field Change (2.2) Mass Change (2.2.2) List all products with MHID of the program (2.2.3) Select list of Products need to be changed (3) Enter new value of key attribute(s) (4) Validate the entered values and show error message if any (5) Submit Request (6) Generate NOPC Requests for changes in each attribute for each product. A (6) Validate the entered values and show error message if any Figure 1Process Flowchart for change requests
  • 15. Interfacing the Application with Master Product Database 15 2.2 Cancellation Requests 2.2.1 Functional Description Learning Solutions users can cancel a Learning Solutions Project Tracking product at any time once an MHID is assigned until the product is published. The NOPC request must be approved by the appropriate routing workflow before the product will be cancelled. Final cancellation within Learning Solutions Project Tracking will be completed by a nightly batch job. This will ensure that the Learning Solutions Project Tracking main product is only cancelled if all other products in the project have also been cancelled. The mass cancellation option will not be used. Cancellation requests can be initiated from Learning Solution Project Tracking or NOPC. 2.2.2 Process Flow Chart Figure 2 Process Flowchart for Cancellation requests
  • 16. Interfacing the Application with Master Product Database 16 2.3 Approval/Routing 2.3.1 Functional Description When a Learning Solutions Contact submits a change request, it is automatically routed to the first security group in the workflow. If the first security group level is an approver, when a member of the security group approves the change request, it is then routed to the next security group defined in the approval workflow. This process will continue until the change request has been routed through all the security groups defined in the approval workflow. If the requestor had indicated that he/she would like to receive an email notification upon approval, then after the last approver has approved the request, an approval email notification will automatically be sent to the requestor. If at any time a change request is denied during the approval workflow routing, the change requestor and any approvers that had previously approved the change will be notified via an email. For change requests that need prior approval, a routing workflow is predefined for each field. Each field change has a predefined routing workflow based on defined security groups. Each security group defined in the routing workflow is assigned an action level of either approve or view. For an approve level, the request will be held and it must be approved by the security group before it can be processed by the next security group. If the type of level is view, the request can be processed by the next security group in the routing workflow (it will not be held). The security groups are comprised of the authorized people who can either approve or view a particular type of change request. Any person within the security group has the authority to process the change request. Processing Summary:  Approve NOPC Change request  Approve NOPC Cancellation request  Routing  Routing Workflow Report Note: Oracle EBS is another database that is in sync with PDH.
  • 17. Interfacing the Application with Master Product Database 17 2.3.2 Process Flowchart Individual MHID Field Change/Mass Change ApprovalprocessinNOPCApplication A (1) NOPC Request routed for approval (2) Request Approved? (2.1) Email notification sent to requester (2.4) Email notification sent to requester No Stop Yes, iPub (4) Updated value fed to Oracle EBS from PDH (5) PDH will feed the change(s) to IDS, then to iPub (2.3) For mass change, once all NOPC requests were approved, apply the changes to all products without MHID of the project/program/core product in iPub and update the project header and program header fields. Yes, PT (2.2) Product Source? Yes (3) Updated value fed to PDH from NOPC Figure 3 Process Flowchart for Approval process 1 Individual MHID Cancellation/Mass Cancellation ApprovalprocessinNOPCApplication B No Yes (1) NOPC Request routed for approval (6) Move Plant Budget = Yes? (2) Request Approved? Stop (2.1) Email notification sent to requester (2.2) Email notification sent to requester (6.1) Move Plant cost from cancelled product to “move to” ISBN in iPub (7) Zero out costs on cancelled product(s) in iPub (8) Once all product has been cancelled, cancel linked product without MHID in iPub/PT, update product/program/project pending cancelled flag and update project/ program statuses (4) Cancelled status is fed from PDH to Oracle EBS (5) PDH will feed the update to IDS, then to iPub(5.1) Product Source? iPub (3) Cancelled status is fed to PDH from iPub PT No Yes Figure 4 Process Flowchart for Approval Process 2
  • 18. Interfacing the Application with Master Product Database 18 2.4 NOPC Report 2.4.1 Functional Description The NOPC report will list NOPC requests for one or more ISBNs. You can enter any combination of the report criteria to limit the report to contain only the change requests that meet the entered criteria. The report has two formats, an HTML format and an Excel format. The HTML format has two sub formats, a summary format and a detailed format. The default HTML format is the summary format. The difference between the two HTML formats is that the detailed format displays the routing workflow grid and, if the request has been cancelled, the denial reason. The Excel version of the report will always display the equivalent of the HTML detail report format. There is a link in the top left of the HTML report that will generate the report in Excel format. There is a button in the top right of the screen that will toggle the screen display between summary format and detail format. Security Groups for Default Marketing Manager and Editorial Director and Editorial Managing Director:  50,124,125,126,127,523,951,955 Processing Summary:  NOPC Report Selection screen  NOPC Summary Report  NOPC Detail Report  NOPC Detail Excel Report
  • 19. Interfacing the Application with Master Product Database 19 2.4.2 Process Flowchart NOPC Report Editorial,Marketing,Finance,Inventory Management (1) User Clicks on NOPCReport frfom the nav menu (1.1) Selection Screen is displayed (1.4) User Clicks on Show Detailed Format link to see Detailed Report (1.2) Summary Report is displayed (1.3) Detailed Excel Report is generated Figure 5 Process Flowchart for NOPC reports
  • 20. Interfacing the Application with Master Product Database 20 3. Technical Overview 3.1 Individual MHID/ISBN field change: In order to create a change request in NOPC for a product, the user must be having the security access to log in to NOPC application and also access to the product’s division security groups. This is defined in the table dbo.div_user_group_xref table. Basically if the user is able to access LSPT application and is a member of the one of the security groups given above, then the user will be able to create a NOPC. Once user is logged in, either an MHID can be entered or a search can be used to get the required MHID. Once the entered MHID is validated, then a screen is displayed with basic header information about the product and all the fields that can be updated for the product. The field list that can be changed for a product will based on the division of the product. For a LSPT product, the following fields can be changed: Table 2 Individual MHID Field Change 1 Field Business Rules Field Type Stat Sponsor  Will be displayed for Learning Solutions Project Tracking products.  Ensure proper hierarchy combination with Product Group and Sub Division, Sponsor Area and Sponsor Discipline. Sponsor Area  Will be read-only for Learning Solutions Project Tracking products.  Will be based upon the value of stat sponsor code selected above. Sponsor Discipline  Will be read-only for Learning Solutions Project Tracking products.  Will be based upon the value of stat sponsor code selected above. Product Group  Will be read-only for Learning Solutions Project Tracking products.  Will be based upon the value of stat sponsor code selected above. Lead Contributor  Available for update. Marketing Title  Available for update. Limit entry to 1000 Characters Product Subject  Available for update. Dropdown Edition  Available for update. Copyright Year  Available for update Prior Edition MHID  Tis field will be a text field which will display the current previous edition MHID of the product if one exists. The field can be updated with an entered MHID. Validation needs performed on the entered MHID to ensure it exists in the system similar to the lookup done on the search screen. Text
  • 21. Interfacing the Application with Master Product Database 21 If successfully validated the new MHID value will be used for NOPC creation.  Error Message: ‘Prior Edition MHID 9999999999 was not found in PDH’  Validation should not allow prior edition to be set to the current product, to an MHID that is already the prior edition of another product, or an MHID that is not within the same division of the current product.  Inventory will be the only approval group on routing. Net Price  Available for update.  List price will be calculated based on this value. Projected Warehouse Date  Available for update. Actual Warehouse Dt  In addition to the list of title types used to display Actual Warehouse date, logic to also check LSPT Delivery Medium of Web is used. If the product only exists in the PDH, check for a PDH Delivery Format of Web. Price Type  Price type dropdown is part of the NOPC submission for the List Price or Net Price.  It will have the values of “Estimated” and “Actual”.  It will default to select Actual for MHHE and MHP.  A price change cannot be submitted without a Price Indicator being selected. Dropdown Discount Class  PrePack LSPT Custom products can only use US-CG (net to list price markup 1.3333)  Non-Package LSPT Custom product can use 4 possible values:  US-CG (net to list price markup 1.3333)  US-GP (net to list price markup 1.3333)  US-CP (net to list price markup 1)  US-FL (net to list price markup 1) Selling Rights  Available for update Dropdown Delivery Medium  A list of all active Learning Solutions Project Tracking Delivery Mediums  If a change is made to the Delivery Medium, a single NOPC submission will be made for Delivery Medium and Production/Media Type Dropdown Production/Media Type  A list of all active Learning Solutions Project Tracking Production/Media Types  It’s values will be controlled by the selected Delivery Medium  If a change is made to the Production/Media type, a single NOPC submission will be made for Delivery Medium and Production/Media Type Dropdown
  • 22. Interfacing the Application with Master Product Database 22 3.1.1 Technical Process Diagram Start iPub application NOPC application CreateNOPCForm ISBNChange.cfm CreateNOPC.cfm CreateNOPCProd uctSearch.cfm Database PP.NOPC PP.NOPC_FIELD_ROUTING_MASTER PP.NOPC_GROUP_ROUTING_MASTER SP PP.create_NOPC Figure 6 Process Diagram for Individual MHID field change Table 3 Individual MHID field change 2 # Name Description Type Execution Mode Data Source Name 1 CreateNOPC.cfm NOPC Selection screen. Option to choose Individual MHID Field Change. .cfm Real time 2 CreateNOPCProduct Search.cfm NOPC Search screen to search for product to be changed. .cfm Real time 3 CreateNOPCFormIS BNChange.cfm File through which changes to the fields are made and NOPC’s submitted. .cfm Real time 4 PP.NOPC Table with the data of the change requested for the ISBN/MHID Table Real Time 5 PP.NOPC_FIELD_RO UTING_MASTER Table with the data for security access over a field. Table Real Time 6 PP.NOPC_GROUP_R OUTING_MASTER Table with the data on which group can approve/deny the requests. Table Real Time
  • 23. Interfacing the Application with Master Product Database 23 # Name Description Type Execution Mode Data Source Name 7 PP.CREATE_NOPC Stored procedure which when called inserts the data about the change in pp.nopc table. Stored procedure Real Time 8 PP.NOPC_ROUTING Table with the data on which groups are to be involved in the routing workflow of the change request that was created. Table Real Time 3.2 Individual MHID Cancellation Once an ISBN/MHID is entered, it is validated to check whether it is eligible for cancellation. Once it is validated, a request for cancellation is raised in a similar way as for a field change. Comments need to be entered for the cancellation of the product. 3.2.1 Technical Process Diagram Start iPub application NOPC application CreateNOPCForm ISBNCancel.cfm CreateNOPC.cfm CreateNOPCProd uctSearch.cfm Database PP.NOPC PP.NOPC_FIELD_ROUTING_MASTER PP.NOPC_GROUP_ROUTING_MASTER SP PP.create_NOPC Figure 7 Process Diagram for Individual MHID Cancellation Table 4 Individual MHID cancellation # Name Description Type Execution Mode Data Source Name 1 CreateNOPCFormIS BNCancel.cfm File through which Cancellation NOPC is submitted. .cfm Real time
  • 24. Interfacing the Application with Master Product Database 24 3.3 NOPC Report In the NOPC application, user can get all the requests that are Approved, In Routing Workflow, Denied based on certain search criteria. This report will give the overall picture of how many change/cancel requests are being created, per user, per field, per product. Following are the search criteria fields that will be available in the Search screen:  Division  Pub Number (Project Number, Program Number of MHID  Include Only NOPCs Submitted by Me Checkbox  Request Date Range  Sub Division  Publishing Group  Lead Contributor  Copyright  Stat Sponsor Code  Editorial Manager  Marketing Manager  NOPC Status/PDH Update Status:  Update Ready to be Sent  Update In Process  Update Business Rules Failed  Update System Validation Error  Update Received  Update Completed  Changes Types if Limiting to Certain Fields and/or to Cancellations:  Lead Contributor  Marketing Title  Long Title  Edition  Prior Edition MHID (MHHE Only)  Copyright  Stat Sponsor Code  Sponsor Area  Sponsor Discipline  Product Subject  Project Warehouse Date  Actual Warehouse Date  Net/List Price  List Price  Discount Class  Product Group  Selling Rights  Finish Width  Finish Height  Thickness
  • 25. Interfacing the Application with Master Product Database 25  Comments  Cancellation  Move Product  Delivery Medium and Production/Media Type (this selection will also cause the report to report upon the old individual NOPC types of Delivery Medium and Production Media 3.3.1 Technical Process Diagram Start NOPC Application NOPCReport.cfm NOPCReportResults.cfm Calls custom tag GetNOPCs.cfm Database PP.NOPC PP.NOPC_FIELD_ROUTING_MASTER PP.NOPC_GROUP_ROUTING_MASTER SP PP.create_NOPC NOPCReportResultsExcel.cfm Uses custom tag GetNOPCs.cfm Figure 8 Process Diagram for NOPC Reports
  • 26. Interfacing the Application with Master Product Database 26 Table 5 NOPC Reports # Name Description Type Execution Mode Data Source Name 1 NOPCReport.cfm Search screen for NOPC report .cfm Real time 2 NOPCReportResults. cfm Displays the report results. .cfm Real time 3 GetNOPCs.cfm File which fetches the NOPCs based on the search criteria .cfm Real time 4 NOPCReportResults Excel.cfm Displays the detailed report in Excel format. .cfm Real time 3.4 Routing Workflow This screen displays the division and sub division wise routings for the fields and also the groups that are responsible for the approval/denial of the requests for the fields. 3.4.1 Technical Process Diagram
  • 27. Interfacing the Application with Master Product Database 27 User Logs in to the NOPC application Start Application.cfm is called, The user uses the application and creates NOPCs. SetControlVariables.cfm is called. The user clicks on the Routing Workflow Report, RoutingWorkflowReport.cfm is called Database PP.NOPC PP.NOPC_FIELD_ROUTING_MASTER PP.NOPC_GROUP_ROUTING_MASTER SP PP.create_NOPC Figure 9 Process Diagram for Routing Workflow
  • 28. Interfacing the Application with Master Product Database 28 Table 6 Routing Workflow Name Description Type Execution Mode Data Source Name Application.cfm Gets executed before every page call. Stores application level information. .cfm Real time SetControlVariables. cfm Gets executed when the mass change, mass cancel, individual change, individual cancellation screens are accessed. Sets various control variables for the application. .cfm Real time RoutingWorkflowRe port.cfm Displays the routing by division and then sub division .cfm Real time
  • 29. Interfacing the Application with Master Product Database 29 3.5 Outbound Update Processing: Once a change/cancel request is created and approved in NOPC, the details of the change for the isbn is sent to update outbound staging table. This part of the interface is designed to expose a procedure to the source applications and the update outbound staging table to the PDH service. Following will be created intermediate interface before sending the details to PDH:  Create Update Outbound Staging Table and Audit Update Outbound Staging tables  Procedures to do update or insert into the update outbound staging table The staging tables created in the database will be shared by the source applications. The audit table for the staging tables will be created in order to archive the processed records of the staging table. A procedure is created which will update or create records in the staging tables. Before inserting into the staging tables, the column/field changed in NOPC is to be validated against the column name in util.update_item_outbound_xref table so that the PDH recognises the field name and accepts the changes. Also based on the column name and the MHID/ISBN value, if there are update records for the same ISBN for the same field, then a dynamic merge statement is created so that instead of creating a new row in the staging table, the new value is updated in the same row. The records are created or updated with ITEM_STATUS = ‘READY’.
  • 30. Interfacing the Application with Master Product Database 30 3.5.1 Technical Process Diagram Batch Components API DB update out bound tables util.pkg_utilities_api.create_email util.create_item_outbound util.pkg_pdh_api.update_item_ou tbound util.pkg_pdh_api.create_item_ outbound PDH PDH Service Application iPub LSPT PrePack Combo NOPC audit_pdh_item_outbound.bat util.audit_create_item_outbou nd Update outbound audit tables audit_pdh_item_outbound.sql pdh_item_outbound_failure _chk.bat pdh_item_outbound_failure _chk.sql util.create_batch_id Figure 10 Process Diagram for Outbound Update Processing
  • 31. Interfacing the Application with Master Product Database 31 Table 7 Outbound Update Processing # Name Description Type Execution Mode Data Source Name 1 util.batch_id_seq The sequence will be created in order to create a unique batch id. Sequence Automatic 2 util.pkg_item_inter face_api. update_item_outb ound This SQL procedure updates the existing record or create new record in util.update_item_outbou nd table PL/SQL (Procedure) 3 util.update_item_o utbound This is the update outbound staging table which will contain the user requests for update item number Table 4 util.audit_update_i tem_outbound This table similar in structure to the util.update_item_outbou nd used to archive all the processed records 30 days older from the util.update_item_outbou nd Table 5 pdh_item_outboun d_failure_chk.bat The batch file will be run daily to find the failed records on the create and update outbound staging table by executing the pdh_item_outbound_fail ure_chk.sql Batch Automatic 6 pdh_item_outboun d_failure_chk.sql This procedure will query create and update outbound staging tables for failed records and send email to the application owners. SQL 7 audit_pdh_item_o utbound.bat The batch file will run weekly to move the processed records that are 30 days older from util.update_item_outbou nd table to util.audit_update_item_o utbound and util.create_item_outboun d to util.audit_create_item_o utbound table. Batch Automatic
  • 32. Interfacing the Application with Master Product Database 32 # Name Description Type Execution Mode Data Source Name 8 audit_pdh_item_o utbound.sql This procedure will check for ITEM_ACCEPTED and FAILURE_RESOLVED records older than 30 days and move them util.audit_create_item_o utbound and util.audit_update_item_o utbound table respectively. PL/SQL Automatic
  • 33. Interfacing the Application with Master Product Database 33 4. Test Plan Test Cases: Table 8 Test Plan 1 Test# Test Case Expected Results Regressio n/Positive / Negative Results 1. Login to NOPC. Only users having access to application can login to the application. Positive Pass 2. NOPC -> Individual MHID Field Change -> Next A screen is displayed where there are two sections. 1. To enter a MHID 2. To search for a MHID based on a search criteria. Positive Pass 3. NOPC -> Enter a MHID/ISBN in the MHID/ISBN textbox. The entered MHID/ISBN is validated to check whether it is available in PDH. If not an error message is displayed saying the ISBN doesn’t not exist in PDH. Positive Pass 4. NOPC -> Enter a MHID/ISBN in the MHID/ISBN textbox If the user logged in does not belong to the division in which the ISBN is, then an alert is displayed saying that the MHID division is different than that of the user’s. The user will not be able to make any changes. Negative Pass 5. NOPC -> Individual MHID Field Change -> NOPC Change screen Only the fields for which the change is possible should be displayed based on the division and user’s security access group. Positive Pass 6. NOPC -> Individual MHID Field Change -> NOPC Change screen -> Review NOPC change screen Once the changes are made, an intermediate screen is displayed showing the old value and new value of the field that was changed Positive Pass 7. NOPC -> NOPC Report The report should display the requests based on the search criteria given in the criteria screen. Positive Pass
  • 34. Interfacing the Application with Master Product Database 34 8. PP.NOPC table The table should contain values that were updated in the NOPC application for the given ISBN Positive Pass 9. NOPC Submitted -> Open the MHID in LSPT. After a change/cancel request is submitted in NOPC for a MHID/ISBN, in LSPT for that MHID/ISBN, the changes will not be reflected unless the request is approved in NOPC and as well as in PDH. Regression Pass 10. NOPC When a request is submitted for a MHID/ISBN, if there is already an existing request for another field change for the same MHID/ISBN, then a separate row is created for that field change. Positive Pass 11. NOPC When creating a change/cancel request for a MHID, if there is already an existing request for the same field, then an alert is displayed saying that a request for that field already exists. The new request will not be created. Regression Pass
  • 35. Interfacing the Application with Master Product Database 35 5. ANGULARJS AngularJS is a very powerful JavaScript Framework. It is used in Single Page Application (SPA) projects. AngularJS is a framework to build large scale and high performance web application while keeping them as easy-to-maintain. It extends HTML DOM with additional attributes and makes it more responsive to user actions. 5.1 Features  AngularJS is a powerful JavaScript based development framework to create RICH Internet Application (RIA).  AngularJS provides developers options to write client side application (using JavaScript) in a clean MVC (Model View Controller) way.  Application written in AngularJS is cross-browser compliant. AngularJS automatically handles JavaScript code suitable for each browser.  AngularJS is open source, completely free, and used by thousands of developers around the world. It is licensed under the Apache License version 2.0.
  • 36. Interfacing the Application with Master Product Database 36 5.2 Core Features Following are most important core features of AngularJS:  Data-binding − It is the automatic synchronization of data between model and view components.  Scope − these are objects that refer to the model. They act as a glue between controller and view.  Controller − these are JavaScript functions that are bound to a particular scope.  Services − AngularJS come with several built-in services for example $http to make XMLHttpRequests. These are singleton objects which are instantiated only once in app.  Filters − these select a subset of items from an array and returns a new array.  Directives − Directives are markers on DOM elements (such as elements, attributes, css, and more). These can be used to create custom HTML tags that serve as new, custom widgets. AngularJS has built-in directives (ngBind, ngModel...)  Templates − these are the rendered view with information from the controller and model. These can be a single file (like index.html) or multiple views in one page using "partials".  Routing − It is concept of switching views.  Model View Whatever − MVC is a design pattern for dividing an application into different parts (called Model, View and Controller), each with distinct responsibilities. AngularJS does not implement MVC in the traditional sense, but rather something closer to MVVM (Model-View-View Model). The Angular JS team refers it humorously as Model View Whatever.  Deep Linking − Deep linking allows you to encode the state of application in the URL so that it can be bookmarked. The application can then be restored from the URL to the same state.  Dependency Injection − AngularJS has a built-in dependency injection subsystem that helps the developer by making the application easier to develop, understand, and test.
  • 37. Interfacing the Application with Master Product Database 37 5.3 Concepts in AngularJS Below are some important concepts majorly used in web development: Figure 11 Concepts in AngularJS
  • 38. Interfacing the Application with Master Product Database 38 5.4 Advantages of using AngularJS  AngularJS provides capability to create Single Page Application in a very clean and maintainable way.  AngularJS provides data binding capability to HTML thus giving user a rich and responsive experience  AngularJS code is unit testable.  AngularJS uses dependency injection and make use of separation of concerns.  AngularJS provides reusable components.  With AngularJS, developer write less code and get more functionality.  In AngularJS, views are pure html pages, and controllers written in JavaScript do the business processing. On top of everything, AngularJS applications can run on all major browsers and smart phones including Android and iOS based phones/tablets. One of major setback in AngularJS is that if the user decides to disables the JavaScript in the browser, then the user will see just a basic page and nothing more.
  • 39. Interfacing the Application with Master Product Database 39 5.5 AngularJS vs Apache Flex (prev. Adobe Flex) Apache Flex, previously Adobe Flex, is also majorly used for development web resources. It is used to build and develop Rich Internet Applications (RIA) based on Adobe Flash platform. By using Flex, the developers have 100 percent control over the application and deploy them using a browser. It is fast, has a catchy look and a high performance. But Apache Flex is getting less emphasis now-a-days since they don’t run on all devices. Also, as many browsers has/will have abandoned Flash in a few years many applications running Flex are searching for an alternative which can include most of the features from Flex and can also offer much more. AngularJS proved to be the better alternative as major concepts like data binding, a declarative syntax, animations, etc., that are available in Flex can be carried over to AngularJS. With AngularJS, however, you can build snappy single-page applications to feel much more like desktop applications, but they have the added benefit of being able to run on tablets, phones, and other devices. Below is a comparison made between AngularJS and Apache Flex which shows that AngularJS is a better alternative than other frameworks available in the market. AngularJS vs Adobe Flex
  • 40. Interfacing the Application with Master Product Database 40 6. Using AngularJS AngularJS can be used with HTML pages by just adding a script tag as below: <script src="http://ajax.googleapis.com/ajax/libs/angularjs/1.3.14/angular.min.js"></ script> AngularJS extends HTML with ng-directives. Ex: ng-model, ng-bind, ng-repeat, etc. AngularJS modules define AngularJS applications. ng-app. AngularJS controllers control AngularJS applications ng-controller. A HTML report with Angular JS to display the products available in a project. Figure 12 Sample AngularJS Report This report displays the products in the project when a project/product is entered. The html file uses Angular JS functions combined with ColdFusion elements to display the above report.
  • 41. Interfacing the Application with Master Product Database 41 6.1 Working of the report: The user enters a project/product number in the text box. This text box is a required field and cannot be left blank. ng-required=”true” attribute is used to make it a required field. The text field is limited to only eight digits with the following attribute: ng-maxlength = 8 After entering the project/product number, on clicking the display button, the page refreshes and the result is displayed below as shown in the picture above. A <cfquery> is used to get the required data from the DB based on the number entered. <cfquery name=”GetProject” datasource=”#db_instance#”> ….. </cfquery> AngularJS needs data in JSON format to display or format data. So we need to serialize the above result set from cfquery and pass it to AngualrJS elements. The above cfquery result set can be serialized i.e., (key: data) pair, in two ways. 1. We need to convert the result query to Array. Then we can use the serializeJSON (result set) function to convert the query result set in to a key : value pair data which can be received by AngularJS elements. <cfscript> a = createObject('component','angular'); getQuery = a.getQuery(); QueryArray = a.queryToArray(getQuery); </cfscript> where getQuery is the result set. <script> var Demo = angular.module("Demo", []); Demo.controller("DemoController", function($scope){ $scope.project = <cfoutput>#serializeJSON(resultset)#</cfoutput>; }); </script> where $scope.project assigns the serialized data to element “project” which can be looped to display the data.
  • 42. Interfacing the Application with Master Product Database 42 2. We can use the wddx feature in ColdFusion to serialize the data from the query result set. <cfset ProjectArray = ArrayNew(1)> <cfloop query="GetProject"> <cfset node = structNew()> <cfset StructInsert(node,"column_name",#GetProject.column_name#)> …Repeat the above line for the columns you want in the result set. <cfset ArrayAppend(ProjectArray, node)> </cfloop> The above query converts the query result set into an Array. GetProject is the query name. <script language="JavaScript" src="/CFIDE/scripts/wddx.js"></script> <script> <cfwddx action="CFML2JS" input="#ProjectArray#" toplevelvariable="theProjectArray"> var Demo = angular.module("Demo", []); Demo.controller("DemoController", function($scope){ $scope.project = theProjectArray; }); </script> The <cfwddx> tag converts the cf array into a js array which can be used to in AngularJS elements. Once the data is serialized using either of the above two ways, the angularJS element can now be used to display the data in the way we want it to be displayed. The above report uses the table format to display the data as below: <table> <thead> <tr> <td<Column heading</td> …. </tr> </thead> <tbody> <tr ng-repeat=”data in dataArray”> <td>Column data</td> …. </tr> </tbody> </table> While displaying the data using the ng-repeat directive, the data can also be formatted/sorted using Filters available.
  • 43. Interfacing the Application with Master Product Database 43 For example, the product fetched in the report can be displayed in ascending order or descending order using the sortBy filter as follows: <tr ng-repeat=”data in dataArray | sortBy : ‘product_number’”> For displaying a price data, currency filter can be used to display the value. <td>{{data.column_name | currency}}</td> While displaying the above retrieved, there can also be a requirement where the products need to be grouped based on their status and then displayed. As groupBy filter is not exclusively available, a script is written so that data can be grouped. var uniqueItems = function (data, key) { var result = []; for (var i = 0; i < data.length; i++) { var value = data[i][key]; if (result.indexOf(value) == -1) { result.push(value); } } return result; }; The above code will store the unique values of the column in the data that we want it to be grouped into a variable. Demo.filter('groupBy', function () { return function (collection, key) { if (collection === null) return; return uniqueItems(collection, key); }; }); The above function gets triggered when a filter named groupBy is used and it returns the values that was stored in a variable in the previous script block. Then the data is grouped and displayed in html as below: <div ng-repeat="status in project | groupBy:’status'"> <b> {{team}} </b> <li ng-repeat="products in project | filter: {status: status}"> {{products.column_name}} …… </li> </div>
  • 44. Interfacing the Application with Master Product Database 44 6.2 Testing of the report: Test Cases: Table 9 Test Plan 2 Test# Test Case Expected Results Regressi on/Positi ve/ Negative Results 1. Report home screen -> Enter a number. If a project number is entered all the products should be listed in a tabular manner for that project. OR If a product number is entered, all the products (including the product number entered) in the project to which the product entered belong to, should be displayed. Positive Pass 2. Report home screen -> Enter a number. If the number entered is neither a project nor a product, then an alert should be displayed saying that the number does not exist. Negative Pass. 3. Report home screen -> Click on Display button without entering a value in the product number text field. The form will not be submitted and the text field will show a popup saying it is a required field. Positive Pass 4. Report home screen -> Project/Product number field. Only numbers can be entered in the field. Alphabets and special symbols cannot be entered. Positive Pass
  • 45. Interfacing the Application with Master Product Database 45 7. Conclusion This dissertation topic implemented a reliable system to interface the front end application with the master database Product Data Hub. This change helped the data in the application and the master database to be in sync without the problem of unsecured updates being done. By routing the change request to different groups of users, the changes made are properly communicated to all users who previously were unaware of it until they actually use them in the application. Also tracking the changes made was also made easier as all the change request are logged in the local database as well as in master database. A sample HTML report was also created using AngularJS to show that the Adobe Flex, which was used for couple of reports, can be replaced with AngularJS which also has similar functionalities and is majorly used for web development. 8. References  http://www.w3schools.com/angular/default.asp  http://www.tutorialspoint.com/angularjs/index.htm
  • 46. Interfacing the Application with Master Product Database 46 Check List  Is the Cover page in proper format? Yes  Is the Title page in proper format? Yes  Is the Certificate from the Supervisor in proper format? Has it been signed? Yes  Is Abstract included in the Report? Is it properly written? Yes  Does the Table of Contents’ page include chapter page numbers? Yes  Is Introduction included in the report? Is it properly written? Yes  Are the Pages numbered properly? Yes  Are the Figures numbered properly? Yes  Are the Tables numbered properly? Yes  Are the Captions for the Figures and Tables proper? Yes  Are the Appendices numbered? No  Does the Report have Conclusions/ Recommendations of the work? Yes  Are References/ Bibliography given in the Report? Yes  Have the References been cited in the Report? Yes  Is the citation of References/ Bibliography in proper format? Yes