This document describes a project to interface an application with a master product database. It discusses functional and technical overviews of change requests, cancellation requests, approval/routing processes, and generating NOPC reports. It also covers testing plans and provides information on using AngularJS to develop a single page application for the NOPC report. Diagrams illustrate the technical processes and flowcharts depict the functional workflows. The project aims to integrate an application with a centralized product database to support change management.
Simultaneously edit Capella models with Team for CapellaObeo
Discover how several users working on a MBSE project can simultaneously edit the same Capella model without conflicts.
Automatic fine-grained locking
Thanks to a fine-grained locking mechanism, users automatically lock the model elements they are modifying. Modifications are performed on the shared model, and visible to other users as soon as they are saved.
Team for Capella is a Capella add-on to simply share your models on the same server.
>> This webinar was driven by Stéphane Lacrampe (Obeo Canada):
Co-founder of Obeo, Stéphane Lacrampe is director the North American subsidiary of Obeo in Vancouver, Canada. MBSE enthusiast, Arcadia/Capella evangelist and Open Source advocate, Stéphane is also an active INCOSE member.
Structured Approach to Solution ArchitectureAlan McSweeney
The role of solution architecture is to identify answer to a business problem and set of solution options and their components. There will be many potential solutions to a problem with varying degrees of suitability to the underlying business need. Solution options are derived from a combination of Solution Architecture Dimensions/Views which describe characteristics, features, qualities, requirements and Solution Design Factors, Limitations And Boundaries which delineate limitations. Use of structured approach can assist with solution design to create consistency. The TOGAF approach to enterprise architecture can be adapted to perform some of the analysis and design for elements of Solution Architecture Dimensions/Views.
Enterprise and multi-tier Power BI deployments with Azure DevOps.Marc Lelijveld
In Power BI we are used to create reports and dashboards really quickly, but in most cases we forget to think about governance, development and maintenance at an enterprise wide scale.
During this session I share some best practices about applying DTAP (Development, Production, Acceptance and Production), or better known as multi-tier deployment.
By using Azure DevOps for deployment we bring back the structure and use a self-service tool in an enterprise environment. Beside deployment there is also version control and enterprise roll-out of your content in a managed structure.
In this session:
- Azure DevOps
- PowerShell
- Power BI REST API
Process Mining In Today’s Platforms Economy: Opportunities and Challenges (WI...Wil van der Aalst
Process mining is rapidly becoming a standard way to analyze performance and compliance problems based on event data. Currently, there are more than 30 commercial process-mining tools based on the research by prof. Van der Aalst and his team. The primary enabler for process mining is the increasing digitization of society and business. Tech companies such as Uber, Airbnb, Amazon, Booking, and Alibaba and were able to grow extremely fast due to the digital platforms they provide. Smart homes, production facilities, and energy networks also build on platforms recording the actual behavior or people and machines. All digital platforms have in common that they record event data at an unprecedented level. This allows for all forms of process mining (process discovery, conformance checking, prediction, etc.). Particularly interesting are comparative process mining techniques, i.e., comparing variants of the same process for different groups of customers, periods, locations, etc. However, there are also challenges related to confidentiality and other aspects of responsible data science. In his talk, Wil van der Aalst (“the godfather of process mining”) reflects on the capabilities and limitations of today’s process mining tools and the opportunities and challenges provided by digital platforms.
Simultaneously edit Capella models with Team for CapellaObeo
Discover how several users working on a MBSE project can simultaneously edit the same Capella model without conflicts.
Automatic fine-grained locking
Thanks to a fine-grained locking mechanism, users automatically lock the model elements they are modifying. Modifications are performed on the shared model, and visible to other users as soon as they are saved.
Team for Capella is a Capella add-on to simply share your models on the same server.
>> This webinar was driven by Stéphane Lacrampe (Obeo Canada):
Co-founder of Obeo, Stéphane Lacrampe is director the North American subsidiary of Obeo in Vancouver, Canada. MBSE enthusiast, Arcadia/Capella evangelist and Open Source advocate, Stéphane is also an active INCOSE member.
Structured Approach to Solution ArchitectureAlan McSweeney
The role of solution architecture is to identify answer to a business problem and set of solution options and their components. There will be many potential solutions to a problem with varying degrees of suitability to the underlying business need. Solution options are derived from a combination of Solution Architecture Dimensions/Views which describe characteristics, features, qualities, requirements and Solution Design Factors, Limitations And Boundaries which delineate limitations. Use of structured approach can assist with solution design to create consistency. The TOGAF approach to enterprise architecture can be adapted to perform some of the analysis and design for elements of Solution Architecture Dimensions/Views.
Enterprise and multi-tier Power BI deployments with Azure DevOps.Marc Lelijveld
In Power BI we are used to create reports and dashboards really quickly, but in most cases we forget to think about governance, development and maintenance at an enterprise wide scale.
During this session I share some best practices about applying DTAP (Development, Production, Acceptance and Production), or better known as multi-tier deployment.
By using Azure DevOps for deployment we bring back the structure and use a self-service tool in an enterprise environment. Beside deployment there is also version control and enterprise roll-out of your content in a managed structure.
In this session:
- Azure DevOps
- PowerShell
- Power BI REST API
Process Mining In Today’s Platforms Economy: Opportunities and Challenges (WI...Wil van der Aalst
Process mining is rapidly becoming a standard way to analyze performance and compliance problems based on event data. Currently, there are more than 30 commercial process-mining tools based on the research by prof. Van der Aalst and his team. The primary enabler for process mining is the increasing digitization of society and business. Tech companies such as Uber, Airbnb, Amazon, Booking, and Alibaba and were able to grow extremely fast due to the digital platforms they provide. Smart homes, production facilities, and energy networks also build on platforms recording the actual behavior or people and machines. All digital platforms have in common that they record event data at an unprecedented level. This allows for all forms of process mining (process discovery, conformance checking, prediction, etc.). Particularly interesting are comparative process mining techniques, i.e., comparing variants of the same process for different groups of customers, periods, locations, etc. However, there are also challenges related to confidentiality and other aspects of responsible data science. In his talk, Wil van der Aalst (“the godfather of process mining”) reflects on the capabilities and limitations of today’s process mining tools and the opportunities and challenges provided by digital platforms.
The Internship was an excellent opportunity for me to relate my academic knowledge with the industry trend. I am really grateful to Institute of Information Technology, University of Dhaka for providing me this opportunity. Here is the report based on my experiences and learnings during my internship at Orion Informatics Ltd., starting from January 01 to June 30, 2014.
Designed a framework for “API Strategy in the cloud” which explains challenges of API,
current trending API management platforms and the role of API management in delivering successful API programs. The report provides the strategy for building API which mainly focuses on the API maturity models, business values, business strategy: Alignment and Usefulness, engagement and usability, scalability and evolvability, manageability and security of APIs.
DoDAF architecture example using a functional “thread” of Search and Rescue (SAR) concept
Provides an architectural example of DoDAF 2.0 in Action using a real world construct
Shows how architectural analysis can answer SAR Program Management questions.
Main points covered:
- the case for adopting a model -driven approach: the drivers & benefits of integrating security into EA models;
- the techniques / design patterns for expressing security within ArchiMate's notational & grammar constraints;
- a short demonstration of how these models can be used in practice
Presenter:
Steven is an independent consultant with 25+ years in IT. Based in Brussels, where he has undertaken major assignments for clients in the public sector, agencies, finance, telecoms and utilities and also lends his support to local cyber-security initiatives. Much of his work in recent years has been in the field of developing tools, processes and models to support security analysis.
Steven holds numerous security, architecture and privacy certifications including SABSA Chartered Practitioner and ArchiMate 3.0.
Date: August 28, 2019
Recorded webinar: https://www.youtube.com/watch?v=Bt1xRZQ5T58&t=3s
It is well known that an effective PMO is key to successful and efficient program and project execution. In other words, doing things “right”. Enterprise Architecture is the discipline that plans and monitors enterprise transformation and aligns the business strategy with information technology capabilities. In other words, doing the “right things” to support the business.
Why is it organizations despite having both of these disciplines still struggle with effective enterprise transformation? What can we done to use these disciplines more effectively to effect better business outcomes? What are the roles of each discipline and how do they work together to create business value?
In this presentation, Riaz will address these questions and will provide real life examples that can help build a strong relationship between the PMO and Enterprise Architecture.
Learning Objectives:
• How to build a strong relationship between the PMO and Enterprise Architecture (EA) to deliver positive outcomes for your organization
• Identify the different roles and functions of the PMO and EA as well as their similarities
Modeling Big Data with the ArchiMate 3.0 LanguageIver Band
Health care enterprises use big data methods and technologies to gain insights for improving the efficacy, efficiency, and accessibility of their services. Effective big data initiatives require shared understanding among diverse stakeholders of business challenges and the often complex architectures required to address them. Enterprise and solution architects can use the ArchiMate language to build this understanding with compelling visual models.
This presentation introduces the ArchiMate 3.0 language, and uses it to explore the US National Institute of Standards and Technology (NIST) Big Data Reference Architecture (NBDRA), and to present a health care case study based on the NBDRA. Participants will learn how to use the ArchiMate 3.0 language, in alignment with the TOGAF framework, to propose, justify and plan big data initiatives, and to guide their successful implementation.
The 4 Interfaces for the Business Model Canvas and Storyboard: How to THINK O...Rod King, Ph.D.
If you are looking for ways to improve your creativity and productivity especially in Business Model Innovation, then explore the 4 ways of organizing and presenting information for systems.
Presentation given by Wilbert Kraan at the second JISC Emerging Practices workshop (2012/07/03). Provides a basic overview of ArchiMate.
http://emergingpractices.jiscinvolve.org/wp/doing-ea-workshop-2/
The Internship was an excellent opportunity for me to relate my academic knowledge with the industry trend. I am really grateful to Institute of Information Technology, University of Dhaka for providing me this opportunity. Here is the report based on my experiences and learnings during my internship at Orion Informatics Ltd., starting from January 01 to June 30, 2014.
Designed a framework for “API Strategy in the cloud” which explains challenges of API,
current trending API management platforms and the role of API management in delivering successful API programs. The report provides the strategy for building API which mainly focuses on the API maturity models, business values, business strategy: Alignment and Usefulness, engagement and usability, scalability and evolvability, manageability and security of APIs.
DoDAF architecture example using a functional “thread” of Search and Rescue (SAR) concept
Provides an architectural example of DoDAF 2.0 in Action using a real world construct
Shows how architectural analysis can answer SAR Program Management questions.
Main points covered:
- the case for adopting a model -driven approach: the drivers & benefits of integrating security into EA models;
- the techniques / design patterns for expressing security within ArchiMate's notational & grammar constraints;
- a short demonstration of how these models can be used in practice
Presenter:
Steven is an independent consultant with 25+ years in IT. Based in Brussels, where he has undertaken major assignments for clients in the public sector, agencies, finance, telecoms and utilities and also lends his support to local cyber-security initiatives. Much of his work in recent years has been in the field of developing tools, processes and models to support security analysis.
Steven holds numerous security, architecture and privacy certifications including SABSA Chartered Practitioner and ArchiMate 3.0.
Date: August 28, 2019
Recorded webinar: https://www.youtube.com/watch?v=Bt1xRZQ5T58&t=3s
It is well known that an effective PMO is key to successful and efficient program and project execution. In other words, doing things “right”. Enterprise Architecture is the discipline that plans and monitors enterprise transformation and aligns the business strategy with information technology capabilities. In other words, doing the “right things” to support the business.
Why is it organizations despite having both of these disciplines still struggle with effective enterprise transformation? What can we done to use these disciplines more effectively to effect better business outcomes? What are the roles of each discipline and how do they work together to create business value?
In this presentation, Riaz will address these questions and will provide real life examples that can help build a strong relationship between the PMO and Enterprise Architecture.
Learning Objectives:
• How to build a strong relationship between the PMO and Enterprise Architecture (EA) to deliver positive outcomes for your organization
• Identify the different roles and functions of the PMO and EA as well as their similarities
Modeling Big Data with the ArchiMate 3.0 LanguageIver Band
Health care enterprises use big data methods and technologies to gain insights for improving the efficacy, efficiency, and accessibility of their services. Effective big data initiatives require shared understanding among diverse stakeholders of business challenges and the often complex architectures required to address them. Enterprise and solution architects can use the ArchiMate language to build this understanding with compelling visual models.
This presentation introduces the ArchiMate 3.0 language, and uses it to explore the US National Institute of Standards and Technology (NIST) Big Data Reference Architecture (NBDRA), and to present a health care case study based on the NBDRA. Participants will learn how to use the ArchiMate 3.0 language, in alignment with the TOGAF framework, to propose, justify and plan big data initiatives, and to guide their successful implementation.
The 4 Interfaces for the Business Model Canvas and Storyboard: How to THINK O...Rod King, Ph.D.
If you are looking for ways to improve your creativity and productivity especially in Business Model Innovation, then explore the 4 ways of organizing and presenting information for systems.
Presentation given by Wilbert Kraan at the second JISC Emerging Practices workshop (2012/07/03). Provides a basic overview of ArchiMate.
http://emergingpractices.jiscinvolve.org/wp/doing-ea-workshop-2/
full project report on online examination management system , Project contains quiz type questions answer type platform where a user can examine himself.
The Innovation Strategy and Targeted activities report presents the ARIADNEplus innovation strategy, addressing its different dimensions and how each of these will approached.
The main dimensions of the strategy are:
Research policies: Alignment with the European research policies on FAIR data, Open Science practices, and the European Open Science Cloud (EOSC) initiative.
Data integration: Increase of the ARIADNE data pool through incorporation of datasets from more archaeological research domains.
Data infrastructure: Implementation and operation of a Cloud-based platform for data aggregation, integration, discovery, access and use across across institutional and national, as well as disciplinary boundaries.
Service portfolio: Provision of enhanced and new services for digital archaeology on the Cloud-based platform.
Stakeholder and user base: Extension of the stakeholder and user base in Europe and beyond, taking account of user needs regarding data, technical services and training.
The report concludes with the methodology that is being used to evaluate the impact of ARIADNEplus on the wider archaeological community.
A Usability Evaluation carried out on my second year Brunel Group project.
A.R.C. (Augmented Reality Communicator), is an augmented reality social networking application , designed and built for my second year group project at Brunel University.
FOOD DELIVERY APP is a application designed primarily for use in the food delivery industry. This application will allow hotels, café, street food vendors and restaurants to increase scope of business by reducing the labor cost involved. Application presents an interactive and up-to-date menu with all available options in an easy to use manner. Customer can choose one or more items to place an order which will land in the cart before checking out. At the end customer can gets order confirmation details. Once the order is placed it is entered in the database and retrieved in pretty much real time.
Objective -
Develop a application that will allow customers to place their food order online and provide them with feedback, a generic image of the meal, a list of side dishes, main course ingredients, and cost information.
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)
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