SlideShare a Scribd company logo
It is great pleasure to present this report on the project title “CUSTOMER
CARE ADMINISTRATION ” For Customer Care Administration (CTS)
undertaken by me as part of my MCA curriculum. I am thankful to my
university for offering me such a wonderful challenging opportunity and I
express my deepest thanks to all coordinators, for providing all the possible help
and assistance and their constant encouragement.
I would like thanking my project Guide for Md. Alauddin(MCA) his comments
and suggestions that have been helpful in developing this project. Thanks for all
over completion of this project, I get one years experience in development field
develop this project.
It is with great sense of satisfaction that I present my real venture in practical
computing in the form of project work. I wish to express my heart felt thanks to
all who assisted me during this project.
AKNOWLDGEMENT
 ACKNOWLEDGEMENT…………………………………………..…….. …
 TITLE OF THE PROJECT…………….………………..…………… ……
 INTRODUCTION…………….……………………………………..…………
 OBJECTIVE……………………….………………………………………….
 PROPOSED SYSTEM…………………………………………..…………..
 PROJECT CATAGORY…………………….………………………………
 SYSTEM ANALYSIS………………………..……………………………….
IDENTIFICATION OF THE NEED
PRELIMINARY INVESTIGATION
FEASIBILITY STUDY
TECHNICAL FEASIBILITY
ECONOMICAL FEASIBILITY
OPERATIONAL FEASIBILITY
 SOFTWARE ENGINEERING PARADIGM APPLIED……………….
 SOFTWARE & HARDWARE REQUIREMENT SPECIFI………….
 SOFTWARE REQUIREMENT SPECIFICATIONS………………….
 SYSTEM DESIGN…………………….…………………………………
DATA FLOW DIAGRAM
ENTITY RELATION DIAGRAM
TABLE OF CONTENTS
DATA STRUCTURE
PROCESS LOGIC
RUNTIME SCREEN
 CODING……………………….…………………………..………………
 CODE EFFECIENCY……………….……………………………………
 OPTIMIZATION OF CODE….…………………………………………
 VALIDATION CHECKS……….………….……………….……………
 TESTING……………………….………..………………………………
 IMPLEMENTATION & MAINTENANCE ……………………………
 SYSTEM SECURITY MEASURES……………………..……………
 COST ESTIMATION OF THE PROJECT……………………………
 REPORTS………………………..……………………………………..…
 PERT CHART, GANTT CHART………………………………………
 FUTURE ENHANCEMENT……….……………………..……………
 BIBLIOGRAPHIC REFERENCES……………………………………
 GLOSSARY ………………………………………………………………
Title of this project is “CUSTOMER CARE ADMINISTRATION” FOR CUSTOMER
CARE ADMINISTRATION (CTS); Objective of this project is to deal with all the
aspect of CRM (Customer Relationship Management) starting from Customer’s
Problem entry , complaint resolution , tracking of complaints as well as report
generation. We have used Developer 2000 (Form 6i, Report 6i) as Front End and
Oracle 9i as a Backend Database.
In current competitive scenario every business establishment needs quality
processes to increase their efficiency as well as improve their productivity. It is
of vital importance that manual, time consuming & monotonous operations be
automated so as to streamline the working of an organization. It is keeping in
mind this business philosophy (mantra) that we propose a Customer Care
Administration (CCA) for ReLIANCe CARE. Our system will deal all the aspects
of CRM (Customer Relationship Management) starting from Customer’s Problem
entry, processing, complaint resolution, tracking of complaints as well as report
generation.
INTRODUCTION TO THE PROBLEM
The Objectives of developing the CCA are as given below: -
(1) To store data of all the customers who are registered in the organization.
(2) To solve the customer’s problem in time efficient manner.
(3) To facilitate easy and efficient retrieval of data as and when required for
study by the senior officials.
(4) To generate and print out the various reports. The online MIS reports are
generated for the concerned senior officers of ReLIANCe CARE to monitor
the progress of complaint attendance.
(5) As the problem on part of customer can be regarding enhancement of the
services, thus it will help in the tracking the calls and after studying the
various problems with each track number, the company can upgrade it’s
quality of services.
(6) The tracking of previous customers calls can also make the company
(organization) aware of the changing needs of the customers.
(7) Data security is maintained to relatively high level by implementing it at
database level, so as to ensure that only authorized users have access to
confidential client information.
OBJECTIVE
Customer Care Administration System is developed to deal with all the aspects of Customer
Relationship Management. The proposed system of this project are: -
• This is a application intended to provide automated solution to customer’s
problem/complaint.
• The customer can book the problem/complaint round the clock.
• Problem/complaint can be registered in two ways :
* From any computer connected to Internet
* Through telephone
In the first way the customer can log on to the system via Internet.
In this case the customer enters in the system after the authentication of the
customer_id. After the authentication he/she
Enters his/her problem and submit it.
While in the second way, the customer does not interact directly to
the system but he/she makes a telephonic call and the End-user (Data Entry
Operator) in the organization authentication his customer_id and then asks
for the problem description (complaint). The End-user here submits the
customer’s problem description along with the customer details.
• When the customer/subscriber loges his /her problem and if he/she is
valid customer then the system automatically generates a Call Track
Number (CTN).
PROPOSED SYSTEM
The Supervisor assigns problem/complaint to the Problem-solver on
his/.her user-id. The Supervisor will check each lodged
problem/complaint.
Supervisor can reopen, reassign, close the call and keep the records of
reopened, reassigned calls with Date and Time. He will be able to locate all
logged calls. He generates various reports. Finally Supervisor has the following
information: -
 What problem assigned to whom i.e. Problem-solver.
 Customer details.
 What action taken in a particular problem/complaint.
 Call is solved or not and by whom.
 Who closed the call?
 At the time of final closing check information send or not to the customer.
 Status from solved to close.
The Problem-solver solves the problem/complaint assigned to him by the
Supervisor. He sends solved information to the customer on his email-id
and changes the status from unsolved to solved.
• Status of complaints can be known at any time using the CTN.
• The system provides various reports for the concerned senior officers of
ReLIANCe CARE that helps in decision-making.
• Nobody have right to delete the logged calls.
In today’s competitive environment, where everybody wants to be on
the top, Information plays very crucial role. As fast as information is accessed
and processed, it can give good results.
Computerized system helps to fulfill these goals. Computerization of the System
will help in doing lot of manual work quickly.
RDBMS (Relational Database Management System):A Relational data model
was invented by E.F. Codd and is based on one simple concept i.e. Table. A
RDBMS is a computer program for managing table. It has three major parts:
 Data that is presented as tables.
 Operators for manipulating tables.
Integrity rules on tables.
This is an Application Project, we are using Developer 2000 (D2K) as a Front
end & Oracle 9i as a Back end. This project can be categorized as a Relational
Database Management System (RDBMS) Project.
PROJECT CATEGORY
System Analysis by definition is a process of systematic investigation for the
purpose of gathering data, interpreting the facts, diagnosing the problem and
using this information to either build a completely new system or to recommend
the improvements to the existing system.
System analysis is the detailed study of the various operations performed by
a system and their relationships within and outside the system. This is the
phase of the system development where the user requirements are defined.
Present system is studied. Problem is verified and the performance expected
by the proposed system is calculated.
The first step in the system development process is the initial
investigation. Verification of the user request and is requirements, identification
of the problem, determining the feasibility of the request etc, are the major aims
to be kept in mind in this phase.
Fact-finding is the first step in the initial investigation. It includes a
review of the written documents, on side observations, interviews etc. The next
step is the fact analysis, which evaluates the elements of the input and the
SYSTEM ANALYSIS
output of the given system. Data flow evaluates and flow charts are prepared in
this phase. The outcome of the initial investigation is to determine whether the
alternative system is feasible in the present circumstance.
Approval of the document, detailing the findings of the initial investigations,
initiates the feasibility study, which leads to the selection of the best candidate
system.
A satisfactory system analysis involves the process of examining a business
situation with the intent of improving it through better methods and
procedures. In its core sense, the analysis phase defines the requirements of the
system and the problems which user is trying to solve irrespective of how the
requirements would be accomplished.
There are two methods to perform System Requirement Analysis:
Structured Analysis:
Structured Analysis is an analysis method that provides a basis for developing a
model of software to be developed. The objective of structured analysis is to
identify the customer requirements and establish a basis to create a software
model.
The components of a Structured Analysis are
• Data Dictionary
• Entity Relationship Diagram
• Data Flow Diagram
• Process Specification
• Control Specification
Object Oriented Analysis:
It refers to a detailed study of the various objects involved in a system and the
relationship of these objects with each other. While performing an object-
oriented analysis, the focus of the system analyst is on the availability of the
objects that are relevant to software development.
First and foremost we have to identify the need for development of such a
System for CCA.
IDENTIFICATION OF NEED:
There is no efficient method to handle the problem of Customers; it is more time
consuming to know the status. The operator has to search in so many registers
for that. The requirements are identified from the study of the existing system,
interview with the officials, on site observation etc.
Almost all the banks and bigger organizations are in today scenario have
computerized systems. Where as many of the middle level and small
organization still continue to work on manual system for maintaining data,
accounting etc. The reason being that many of the organization do not have
infrastructure to get the software and use the software.
The basic purpose behind Preliminary Investigation is to first clarify,
understand and evaluate the Project Request.
PRELIMINARY INVESTIGATION:
Preliminary Investigation basically refers to the collection of information those
guides the management of an organization to evaluate the merits and demerits
of the project request and make an informed judgment about the feasibility of
the proposed system. This sort of investigation provides us with a through
picture of the kind of software and hardware requirements which are most
feasible for the system, plus the environment in which the entire project has to
be installed and made operational.
The purpose of preliminary investigation is to evaluate system requirements. It
objective includes clarification and understanding of system requirements,
determine the size of project, assess cost and benefit, and determine the
technical and operational feasibility. I adopted on-site observation, reviewing
organization documents and interviewing as fact-finding techniques during
preliminary investigation.
Overview of Preliminary Investigation
The next step I had done in system analysis is on-site observation. Through this
I got a better understanding of the system and various persons involved in the
system.
I finally conducted interviews with the persons related to the present system. It
helped me to get the user’s view about the system and suggestions about the
proposed system. I got idea about the responsibilities of various assistant. After
conducting the system analysis, I got a understanding of requests and idea
about the size of the project.
A feasibility study is conducted to select the best system that meets
performance requirement. This entails an identification description, an
evaluation of candidate system and the selection of best system for he jobs. The
system required a statement of constraints, the identification of specific system
objective and a description of outputs define performance.
The feasibility study for a project should be undertaken in the following order:
1. Economic feasibility
2. Operational feasibility
3. Technical feasibility
Overview of Feasibility
FEASIBILITY STUDY
Many feasibility studies are disillusioning for both users and analysts. If the
feasibility study is to serve as decision document, it must answer three key
questions.
1. Is there a new and better way to do the job that will benefit the user?
2. What are the costs and savings of the alternatives?
3. What is recommended?
The key considerations are involved in the feasibility analysis:
1. ECONOMIC FEASIBILITY :
Economic analysis is the most frequently used method for evaluating the
effectiveness of a candidate system. Most commonly known as cost benefits
analysis, the procedure is to determine the benefits and savings that are
expected from a candidate system and compare them with costs.
As the part of Economic feasibility for Customer Care Administration, followings
are the advantages:-
At present 3 persons are employed
Employee Designation Salary
1. Supervisor 10,000/=
2. Assistance Accountant 7,500/=
3. Part time Assistant 3,500/=
Total 21,000/=
For computerized system the following staff is being utilized
Employee Designation Salary
1. Part time Solver cum Accountant 3,500/=
2. Supervisor cum Computer Operator 6,000/=
3. Operator cum Assistant 3,500/=
Total 13,000/=
Total saving will be 8000/= per month and per year saving is 96,000/=
Total cost of the CRM Package for CTS will be recovered with in two years.
Apart from this the huge sum will have been saving per year. So at this point it
can observe that this package is Economic Feasible.
2. OPERATIONAL FEASIBILITY :
A proposed system will be used effectively after it has been developed
Operational feasibility depends on several issues i.e.,
* Does management/users support the project?
* Do users see the need for change?
* Will the new system require training for user?
Customer Care Administration covers all the above aspects. One is a technical
performance aspect and other is acceptance within the organization.
Operational feasibility must determine how the purposed system will fit in with
the current operations and what, if any, job restructuring and retraining may be
needed to implement the system. The proposed software shall be GUI based and
very user friendly with minimum Operation handicaps so that persons can be
easily trained to use the software and also maintain it.
3. TECHNICAL FEASIBILITY :
Technically feasibility is concerned with the specifying equipment and
software that will successfully satisfy the user requirement. The technical needs
of the system may vary considerably, but might include:
 The facility to provide the outputs in a given time.
 The response time under certain conditions.
 Ability to process certain volume of transactions at a particular
speed.
 Facility to communicate data to distinct locations.
In examining the technical feasibility, configuration of the system may
give more importance than the actual make of the hardware. The configuration
should give the complete picture about the system requirements: how many
workstations are required, how these units are interconnected so that they
could operate and communicate smoothly.
As a front end we can use a Developer 2000.
A computer with standard Pentium 3 configuration would be sufficient.
Being a small system it is possible to build the system on the available software.
(In this case as already discussed Developer 2000 as Front End and Oracle 9i as
Back End has been decided)
Software Engineering is a planned and systematic approach to the development
of software. It is a discipline that consists of methods, tools and techniques used
for developing and maintaining software.
To solve actual problems in an industry setting, software engineer or a team of
engineers must incorporate a development strategy that encompasses the
process, methods and tool layers and generic phases. This strategy is often
referred to as a process model or Software Engineering paradigm.
I have applied Linear Sequential Paradigm also called
Classic Life Cycle or the Waterfall Model to develop this software
that begins at the system level and progress through analysis,
design, coding, testing, and support. Following figure illustrates
the linear sequential model for software engineering. Modeled
after a conventional engineering and cycle, the linear sequential
model encompasses the following activities:
The Linear Sequential Model
SOFTWARE ENGINEERING PARADIGM
The Software Requirements Specifications basically states the
goals and objectives of the software. It provides a detailed
description of the functionality that software must perform.
The Customer Care Administration deals with the processing of
problem’s details in order to generate a Call Track Number,
which dentifies every customer.
In our Customer Care Administration Project the software
requirements specifications are as follows:
• The system should demand only valid users (Users present
in the user master database) who can gain entry into the
Customer Care Administration.
Analysis
Analysis
Design
Design
Code
Code
Test
Test
System/Information
Engineering
SOFTWARE REQUIREMENT SPECIFICATION
• The client requires the Auto generation concept to
be used in all the master forms.
• For the users logging into the system, performing
updates, inserts, deletions,
• A new entry should be automatically created in the Master
Table, which gives the administrator visibility to all the users
handling the system.
• Since our application is on a client server based concept ,
• It is required that the application should reside on a server
and various clients should be able to access it.
Hardware Specification
• Pentium IV 1.7 GHz
• 256 MB DDRAM
• 40 GB HDD
Software Specification
• Windows Xp
• Oracle 9i
• Developer 2000 (Form9i & Report 9i)
SOFTWARE AND HARDWRE SPECIFICATION
BENIFITS OF ORACLE 9i
The Oracle 8i is an industry leading database system designed
for mission critical data storage and retrieval. The RDBMS is
responsible for accurately storing data and efficiently retrieving
that data in response to user queries.
Its Popularity is owned to a number of factors like its ability to
support dozens to thousands of simultaneous users, its ability to
handle high transaction rates and its ability to access databases
that ranges in size from several hundred megabytes to many
gigabytes. The Oracle Corporation also supplies interface tools to
access data stored in an Oracle database. Two of these tools are
known as SQL*Plus, a command line interface, and Developer 6i
(now called simply Developer), a collection of forms, reports and
graphic interfaces. This technical working paper introduces the
features of the SQL*Plus tool and provides a tutorial that
demonstrates its salient features.
Many Concurrent Database Performances
It supports large no of concurrent users executing a variety of
database Applications operation on the same data. It minimizes
data connection & guarantees data concurrency.
High Transaction Processing Performance
Oracle maintains the processing features with a high degree of
overall system performance. Database user doesn’t suffer from
slow processing performance.
High Availability
At some sets Oracle works 24 Hours per day with no downtime or
limit database throughput. Normal system operation such as
database backup & partial completion system failure don’t
interrupt database use.
Controlled Availability
Oracle can selectively control the availability of data at the
database level & sub Database level. e.g. an administrator can
disallow use of a specific application. Data can be reloaded
without affecting other application.
Industry Accepted Standards
Oracle adheres to industry accepted standards for the data
access language operating system, user interface & network
communication protocols. It is open system that protocols a
customer invention.
Manageable Security
To protect against unauthorized database aspects & users,
Oracle provides failsafe security features to limit & monitor the
data area. The system make it easy to manage even the most
completed designs for data assets.
Database Enforced Integrity
Oracle enforces data integrity “Business rules” that indictates the
standards for applicable data. As result the cost of coding &
managing checks in many database applications are eliminated.
Distributed Database System
For community environment that are connected via networks,
Oracle combines the data physically located on the different
computers in one logical database that can be accessed by all the
network users. Distributed systems have same degree of user
transparency & data consistency as non-distributed systems. Yet
receives the advantages of local database management.
Portability
Oracle software is compatible to work under different operating
system & same on all system. Application developed on Oracle
can be used on virtually any system with little or no more
modification.
Compatibility
Oracle software is compatible with industry standards, including
most industry standards operating systems. Application
developed on Oracle can be used on virtually any system with
little or no modification.
Connectivity
Oracle software allows different types of computers & operating
system to share information networks.
Typical Development Environments
Developing applications using an Oracle database requires
access to a copy of the Oracle RDBMS (or a central Oracle
RDBMS server), and one or more of the development tools.
Muli-user development in a shared environment can be
accomplished using an Oracle RDBMS server running on a
server machine. Distributed client PCs can develop the
applications using any of the tools mentioned above.
Regardless of the development environment used, the Oracle
SQL*Plus utility is a convenient and capable tool for
manipulating data in an Oracle database. In the following
section, the SQL*Plus tool is introduced.
SQL*Plus commands allow a user to manipulate and submit SQL
statements. Specifically, they enable a user to:
• Enter, edit, store, retrieve, and run SQL statements
• List the column definitions for any table
• Format, perform calculations, store, and print query
results in the form of reports
• Access and copy data between SQL databases
There are many other features of Oracle 9i
• Improved Scalability: The maximum size of an Oracle
database has been increased to support hundreds of
terabytes depending on the operating system on which it
resides.
• Security Management: Oracle 9i provides a controlled to
data to users by providing a combination of privileges.
• Backup and Recovery: Oracle 9i provide sophisticated
security backup and recovery routines.
• Open connectivity: Oracle 9i provides open connectivity
to and from other vendor’s software such as Microsoft.
• Also Oracle 9i database can be accessed by various front-
end software’s such as Developer 2000,Visual Basic, C
• Space Management: In Oracle 9i one can flexibly allocate
disk spaces for data storage and can control them
subsequently.
• Oracle 8i is designed with special feature of data
warehousing.
• Import/export support is provided for domain indexes.
Indexes (including domain indexes) are exported by
exporting the index definitions, namely the DELETE INDEX
statements.
• Because domain index data stored in database objects,
such as tables, is exported, there is a fast rebuild of
domain indexes at import time.
BENEFITS OF DEVLOPER 9i
Developer 9i is comprised of several powerful tools enabling
Developers to create robust, highly scalable client server
applications more quickly than would be possible using a
programming language such as C, Java. With Developer 6i,
developers can use tools to create the different parts of the
applications such as :
Enhanced Productivity:
For individual developers, Developer 6i speeds applications
design by employing object orientation, (RAD) technique, a
unified Client-Server architecture and online computer based
training modules.
It also allows components to be reused and to be grouped into
classes whose characteristics can be inherited by subclasses.
For team development, Developer2000 project builder
can manage all of D2K components, as well as the third party
sources, such as documentation or multimedia files
Scalability:
Oracle Developer2000 is designed to accommodate multithread
client-server architecture. It helps on application for scale up to
handle large quantities of data.
At the server, it provides array data manipulation such as
insert and delete. It improve the application performances
because the application sends inserts, deletes, updates to
server in a batch.
The benefit is that it reduces the network traffic, so the server
can accommodate a number of users.
Openness:
D2k provides a rich set of features for interacting
with other applications.
Usability:
The user can build the followings by using D2k.
• Intuitive drag and drop user interface.
• Incorporate image and sound files that are
stored either within the database or as
individual files.
Visualization:
D2k provides a feature called “Dynamic
Visualization”, which allows to create features such
as Runtime chat editing, Seamless web editing
Graphical drill-down from overview to line item
details. Visual selection of data based on the
context of the data within it.
Web deployment:
D2K helps in deploying application on the Internet
or an Intranet with a minimum effort. Data entry
forms, graphics and reports can all utilize a web
browser as the client portion of a client-server
system.
OPERATING SYSTEM:
Windows XP is easier to manage & configure because it is very
user-friendly and is GUI based operating system. The Front-End-
Tool Developer 2000 as a GUI application and required the O.S.
who gives the platform as GUI environment.
Design is a meaningful engineering representation of something
that is to be built. It can be traced to a customer's requirements
SYSTEM DESIGN
and at the same time assessed for quality against a set of
predefined criteria for good design.
It focuses on four major areas of concern:
• Data
• Architecture
• Interfaces
• Components
Beginning once software requirements have been analyzed and
specified, software design is the first of three technical activities -
design, code generation, and test - that are required to build and
verify the software. Each activity transforms information in a
manner that ultimately results in validated computer software.
The data design transform the information domain model
created during analysis into data structures that will be required
to implement the software.
The architectural design defines the relationship between
major structural elements of the software, the “design pattern"
that can be used to achieve the requirements that have been
defined for the system, and the constraints that affect the way in
which architectural design patterns can be applied.
The interface design describes how the software
communications within itself, with systems that interoperate
with it, and with humans who use it.
The component- level design transforms structural elements of
the software architecture into a procedural description of
software components.
The importance of software design can be stated with a
single word - quality. Design is the place where quality is
fostered. Design provides us with representations of software that
can be assessed for quality. Design is the only way that we can
accurately translate a customer's requirements into a finished
software product or a system.
The primary objective of the system design is to deliver the
requirements specified in the feasibility report. The main design
objective I give significance are
Practicality
This system will be user-friendly so user with average skills
can easily operate.
Efficiency
This system will produce output in time with accuracy.
Cost
The system is to design with a minimum cost to satisfy the
requirements.
Flexibility
The system will be a modifiable one depending on future
needs.
Security
The system should be reliable, secure one.
Mainly following parts have been included in the system
design process:
(i) Output design: the starting point of the design
process is the proper knowledge of system
requirements, which will normally be converted in terms
of output.
(ii) Input design: once the output requirements have
been finalized, the next step is to find out what data to
be made available to the system to produce the desired
outputs. The basic documents in which these data are
available need to be identified.
(iii)Database design: once the data is captured in the
system, these have to be preserved for long period.
These data is will generally stored in files in a logical
manner
(iv)Procedure design: this step involves specifications of
how processing will be performed.
(v)Control design: it indicates necessary procedures
which will ensure correctness of processing, accuracy of
data, timely output etc.
Input Design:
The goal of designing makes data entry easy and error free. The
input screens of this system clearly give the length of data fields.
It follows the same field sequence of the source documents/forms
of the organization.
The system follows the same data formats as the user follows.
Example: ‘dd/mm/yyyy’ for date values.
Every input screen is designed for this system requires only
limited amount of input data. So it avoids delays and improves
the data entry speed as well as the overall speed of the system.
Necessary input validation checks are provided at every data
entry screens, so it reduces the possibility of erroneous input.
The input screens are made as simple as possible by avoiding
extra steps to make it comfortable to the users.
This system uses the menu convention to display the options the
user can choose from. All input screen are provided with help to
retrieve previous records of key fields. User will get error message
when they carry out unacceptable actions.
Output Design:-
The output design should be in an attractive and useful form
because success and acceptance of a system to some extent
depends on good presentation. There are three main reasons why
outputs from computer are required. They are:
 For communicating to the persons concerned
 For re-input to the computer for being connected
with other data and further processing
 For permanent storage.
In this system there are reports, displays on screen, and printed
forms comes as outputs. Output devices used in this system are
monitor and printer. The main design considerations that I have
made in designing this system are:
 No data are excluded in the output
 The format of the output is similar to the
presently existing one.
 The sequence of reports printed is in a useful
way, which is similar to that of the present system.
 The outputs generated are having good
quality in appearance, contents, and accuracy.
 The output screens are provided with necessary
screen heading and labels for various fields. Buttons are
provided for actions like displaying, printing etc.
Menu Design:
The menu of this system is designed in a hierarchical manner.
Activities of similar nature are grouped under one menu. Menus
are designed in form that the user can work with more than one
form at a time.
Form design:
Form is a tool with message; it is the physical carrier of data .it
provides information for making decisions and improving
operations. The size of the forms are convenient for easy
handling and easy to identify and filling up.
Customer interacts with Computer Operator or Login directly to the System
Customer
Computer Operator takes details from Customer
System automatically generates CTN
PROCESS LOGIC
Master DB
No
Yes
No
Yes
Computer Operator stores details with CTN
Supervisor
Supervisor assigns problem to Problem-solver
Problem-solver
Problem-solver opens his Id for assigned problems
Problem-solver solves the problem
Send information to the customer
Close the Call
& And store
date & time
Stores the solved details in Database
Info.
Send
Supervisor checks the
Problem status from
Database
Reopen call & store
date & time
Reope
n
Reassign problem
Information to customer
Generates various reports
Dataflow Diagram (DFDs)
Send Information
Submit Solve,
CuD & PD & Store
CTN CuD &
PD
CuD CTN
&
PD
Submit
CuD Monitor All
& PD CTN Assign, Complaints
Status Check,
Close, Reopen, etc.
(CONTEXT LEVEL DFD)
Abbreviation used in all DFDs
CTN : Call Track Number
CuD : Customer Details
PD : Problem/Complaint Details
Pwd : Password
COMPLETE STRUCTURE OF THE PROGRAM
Customer
Computer Operator Supervisor
Problem Solver
CUSTOMER
CARE
ADMINISTR
-TION
Various
Reports
Send
Information
Phone
Valid
To User
PD
Store Date
Invalid Invalid
& Time
User-id
CTN & Pwd
D1 Master database
Store Date/Time
Valid cust
Valid user Assign
to
Customer
Login
Invalid
User-id
Assigns
Valid & Pwd
CuD
User_id
& Pwd
Valid
Invalid
Supervisor
Store
Details
Generate
Check
Closes
Store Date/Time
D1 Master Database
Closed
Customer
Supervisor
Problem
Solver
Computer
Operator
Problem
Entry &
CTN
Generation
User
Login
Reports
Proble
m
Status
Call
Closing
Problem
Assignment
Solve
& Send
Custome
r
Login
Check from
Print
Details of Customers & Problems
Various report
(FIRST LEVEL DFD)
(1) Complaint Entry Process
Valid Customer
Valid Store
Computer
Operator
D1
Master DataBase
Store
Call Track No.
Customer,
Problem
Details entry
&
Submit
CTN
Generatio
n
Second Level
DFD
Customer
(2) Problem Assignment Process
Valid Assign to
Supervisor
Assigned Take Details
of Customer& D1
Master DataBase
Problems
Update
(3) Problem Solving Process
Assigned Take Problem
Details
Problem
Solution D1
Master DataBase
Information
Change Prior Status
Mail to
Assigns
Problem
s
Problem-solver
Store
Date
&
Time
Problem
Solving
Sending
InformationCustomer
(4) Problem/complaint Status checking process: -
Solved and send
Checking status
Not solved/send
Solved but
Not Send
Status
Detail To To
Not
Assigned
To
Store Date
D1 Master Database & Time
Store Reassign-Date & Time
Store Reopen-Date & Time
Store Closing-Date & Time
Problem/
Complaint
status
Close
s
Reassign
Reope
n
Assig
n
Problem Solver
Sending
Reminde
r
(5) Report Generation
Report 1
Report 2
Rep
ort 3
Valid
Supervisor
Report 4
Report 5
Repo
rt 6
Take various Report 7
Details
D1 Master DataBase
Report 1: Report on different Customers
Report 2: Report on Problem/Complaint
Report 3: Report on Time to resolve
Report 4: on time taken from start to close the
complaints/Problems
Report 5: Report on total complaints allotted to each Problem
Solver
Report 6: Report on different type of Problem/complaint
Report 7: Graphical representation of complaints solved/on
hold/unsolved per
Report
Generation
Problem Solver
Problem Solver
Supervisor
End UserCustomer Interacts
Send
Informati
on
Reports
Generat
es
Problem/complaint
Reope
n
Stor
e
Assig
n
Reassi
gn
Clos
e
Solv
e
ER-Diagram
One of the most important factors is building a well executing
application and the design of the database tables. For a good
database design, good understanding of the normalization
concept is needed.
Normalization:
One purpose of the normalization is to find and isolate time
independent properties. Such isolation can save space.
Another purpose is to remove redundant information. Redundant
information is thus extra copies stored in several places.
Redundancy is removed from logical design to reduce storage
requirements and simplify maintenance. At the same time,
paradoxically, an optimum design may require reintroduction.
The reintroduction information may provide a straightforward
way to organize and query the database. Redundancy often saves
I/O operations and increases performance.
A third purpose of normalization is to provide unique
identification for the individual records that is it ensures the
existence of the Primary Key.
Essential skills to normalize a table are
 Common Sense
 Knowledge of the meaning of the data with which one is
working. Normalization is thus largely semantic analysis.
Database Design:
 Knowledge of which process takes and data are actually
significant to the company that owns the database.
 Allowing the data structure to accommodate real world uses
rather than limiting uses to those readily permitted by the
data structure.
 The ability to handle changes.
Normal Forms:
There are six normal forms:
1. First Normal Form(1 NF)
2. Second Normal Form(2 NF)
3. Third Normal Form(3 NF)
4. BCNF
A database normalized to 3NF will be usually being an optimized
structure.
First Normal Form (1 NF):
For a table to in the first normal form it must satisfy two
requirements.
 There must be a primary key.
 All data values must come from sets (domains) consisting of
atomic values.
Primary Key:
The first requirement of table to be in first normal form is that it
must have a primary key. A primary key is a field or combination
of fields that satisfies a record uniquely.
The primary is an attribute or combination of attributes that
satisfies the following requirements:
 The value of primary key is not NULL i.e. no attribute that is
pat of primary key may be null.
 The value of primary key is unique. A table must never have
two identical values of the primary key. This is also
Functional Independence between the primary key and non-
Key attributes.
 No subset of the primary may be a primary key itself. This is
also refereed to as minimally requirement
General rule for selecting a primary key is:
 Select one that can always act as a primary key, not just for
the current data.
 Select one that involve as few fields as possible, both to make
it easy to work with, and to meet the minimally requirements.
Atomic Value:
The second environment for a Normalized (1 NF) table is that all
data values must come from domains with only atomic values. If
there are repeating groups then it will increase the storage
requirements. The extra storage means that it takes longer to
locate a record because of the need for more disk transfers. It
also slows both log and archival routines, because they must
record more data.
Second Normal Form (2NF):
A table to be in second normal form it must be:
 In 1 NF
 Have all non-key attributes are fully functionally dependent
on primary key.
“ Fully functionally dependent” means that the non-key
attributes must be uniquely identifiable from subset of the
primary key.”
The purpose of converting a table from 1 NF to 2 NF is first to
solve the insertion and deletion problems occurred in 1 NF.
Second, to isolate time-independent attributes that might
otherwise hide among the time-dependent once is the source of
the problems in the 1 NF table structure.
Third Normal Form (3 NF):
1 NF is concerned with the primary key and 2 NF with the
relationship between it and non-key attributes. 3 NF deals with
the internal relationship among non-key attributes. It says that
all of them must be mutually independent.
The requirement for a table to be in 3 NF is:
A table is in 3 NF if and only if it is in 2 NF and all non-key
attributes are “non-transitively dependent on primary key”. Or a
non-key attribute must be solely dependent on the primary key,
not by any thing else.
BCNF:
BCNF is an independent normal form but rather than
reinforcement of 3NF. BCNF operates on the result of 3NF but
has a basis in the unnormalized structure.
It does refer to primary and non-key attributes, but instead uses
the concept of “determinant” and “candidate key “. A candidate
key is a attribute that can function as a primary key.
Following Tables are used in CRM Package for CTS :
1. Customer Details Master: -
Field Name Field Type Size Description
Cust_Id Character 10 Identification of Customer
Cust_pwd Character 10 Customer Password
Cust_Name Character 25 Name of the Customer
Database
Cust_Add Character 30 Address of the Customer
C_Phone_No Numeric 11 Phone No. of Customer
C_Email_Id Character 50 Email_Id of the Customer
2. User Details Master: -
Field Name Field Type Size Description
User_Id Character 10 Identification of User
User_pwd Character 10 User Password
User_Name Character 25 Name of the User
User_Add Character 30 Address of the User
U_Phone_No Numeric 11 Phone No. of User
U_Email_Id Character 50 Email_Id of the User
3. Problem Entry :-
Field Name Field Type Size Description
CallTrackNo Numeric 10 Identify the Complaint
Cust_Id Character 10 Identification of Customer
ProblemType Character 30 Type of the Problem
CallDate Date 10 Date of receiving Complain
CallTime Character 10 Time of receiving Complain
4. Problem Master: -
Field Name Field Type Size Description
CallTrackNo Numeric 10 Identify the Complaint
Cust_Id Character 10 Identification of Customer
ProblemType Character 30 Type of the Problem
ProblemDescriptio
n
Character 50 Description of the problem
ActionTaken Character 50 Action taken by Problem-Solv
User_id Character 10 Identification of User
CallDate Date 10 Date of receiving Complaint
CallTime Character 10 Time of receiving Complaint
AssignDate Date 10 Date of assigning Complaint
AssignTime Character 15 Time of assigning Complaint
ReopenDate Date 10 Date of reopen Complaint
ReopenTime Character 10 Time of reopen Complaint
ReassignDate Date 10 Date of reassign Complaint
ReassignTime Character 10 Time of reassign Complaint
5. Problem-solver Details Master:-
Field Name Field
Type
Size Description
User_Id Character 10 Identification of the User
SolverName Character 25 Name of the Problem-Solver
TotalCalls Numeric 3 Total No. of Problems Allotted
CallTrackNo Numeric 10 Identify the Complaint
ProblemType Character 30 Type of the Problem
ActionTaken Character 50 Action taken by Problem-Solver
SolvingDate Date 10 Date of Problem Solving
SolvingTime Character 10 Time of Problem Solving
ProblemStatus Character 10 Problem Solved or Not
InformationStatus Character 10 Information Send or Not
6. Problem Status Master: -
Field Name Field Type Size Description
CallTrackNo Numeric 10 Identify the Complaint
ProblemStatus Character 10 Problem Solved or Not
AssignStatus Character 10 Problem Assigned or Not
ClosingStatus Character 10 Problem Closed or Not
InformationStatus Character 10 Information Send or Not
CloseDate Date 10 Date of Closing Complaint
CloseTime Character 10 Time of Closing Complaint
7. Problem Assignment Table: -
Field Name Field Type Size Description
CallTrackNo Numeric 10 Identify the Complaint
Cust_Id Character 10 Identification of Customer
ProblemType Character 10 Type of the Problem
AssignStatus Character 10 Assign or skip
User_Id Character 10 Identification of the User
SolverName Character 25 Name of the Problem-Solver
AssignDate Date 10 Date of assigning Complaint
AssignTime Character 10 Time of assigning Complaint
8. User Login Table: -
Field Name Field Type Size Description
User_Id Character 10 Identification of the User
User_pwd Character 20 User Password
==============FIRST SCREEN==========================
FORM NAME: WELCOME FORM
Utility: To show welcome window of the application entitled ‘CUSTOMER
CARE ADMINISTRATION’.
User choose button to login in the application and
choose button to exit from the application.
OUTPUT SCREEN & DESCRIPTION FOR CCA
FORM NAME: USER TYPE FORM
Utility: This Form allow user to choose his User Type, either he or she is user
of
application or is a customer, who want to describe his problem.
User choose button after giving his account type.
User Choose button exit from the application
FORM NAME: USER LOGIN FORM
Utility: To protect the application from unauthorized access.
The above Form comes, when user choose User as his/her account type.
It is the most important user interface/screen, which is utilized
to preserve the application by unauthorized user. If the user
trying to access the application is not an authorized user then
they can’t be used the facility of the application.
When the user enters his/her ID & Password, it is verified from the
database table. If the ID & Password is valid then the user logged on &
gets the Menu Options to utilize the application.
In case, User miss his ID, then there is a LOV(list of values) associated
with it, to facilitates user to choose his ID. Form given below describe it,
After inserting User id and Valid Password, User get message
Along with running process bar.
Now depending upon entered User Id ,different Menu are display, For Example :
For id start with ‘OP’ i.e OPERATOR ,OP_MENU is display. Similarly,
For id start with ‘SU’ i.e SUPERVISOR ,SU_MENU is display and
For id start with ‘SO’ i.e SOLVER ,SO_MENU is display..
FORM NAME: OPERATOR MENU FORM
Utility: This Form allow Operator to perform his function using Menu attach to
Form. Main Function are Problem entry, Customer entry, User entry.
FORM NAME: USER MASTER FORM
Utility: To manage the personal details of a user.
This screen appears when a user click on the submenu ‘User Detail’ in
menu ‘Operator Menu’ in the Operator Form.
Works on the screen: In this Form I use Toolbar Canvas to hold Different
Button.
FORM NAME: CUSTOMER MASTER FORM
Utility: To manage the personal details of a customer.This screen appears when
a user click on the submenu ‘Cutomser Detail’ in menu ‘Operator Menu’ in the
Operator Form.
Works on the screen: In this Form I use Toolbar Canvas to hold Different
Button.
For Inserting Exit To Search
For Modifying To View all record Save
For Deletion To clear
For Navigation
FORM NAME: PROBLEM ENTRY FORM
Utility: To enter Problems of customer, either directly or through telephone.
This screen appears when a user click on the submenu ‘Problem Entry’ from
Operator Menu’ in the Operator Form.
Works on the screen: Customer enters his own problem regarding Reliance set.
Problem are defined in two category:
1. Software Problem
2. Hardware Problem
User select Customer Id and Problem type from list box, list box contains
List of all Customer and Type of predefined problem.
In this Interface, System generates CTN automatically. Whenever User enters
the Problem description Field, an Editor is called automatically to make easily
description.
After Describing Problem, System automatically filled Call Date and Call time
with
System date and Syatem time.
If User press Exit button from toolbar canvas after performing some operation,
then
An Alert will generated to ask user for Save the Changes he made.
Pressing button make the changes permanent,
And pressing button does not save the changes.
FORM NAME: SUPERVISOR MENU FORM
Utility: This Form allow Supervisor to perform his function using Menu attach
to Form. Main Function are to Supervise all the operation i.e Assigning
problem to problem Solver, Checking various Problem Status,
Reassigning Problem depend upon different situation and generating
Various Reports. Supervisor is the Person, who has total command on
each and every operation , So This module is very important for this
application. Through this Module one can see All the data used in the
system.
CUSTOMER CARE ADMINISTRATION-developer-2000 and oracle 9i
CUSTOMER CARE ADMINISTRATION-developer-2000 and oracle 9i
FORM NAME: PROBLEM ASSIGNMENT FORM
Utility: This Form is used to Assign Problems to Problem Solver.
This screen appears when a user click on the menu ‘Assignment’ from
submenu ‘Problem Master’ of the main menu ‘Supervisor Menu’.
FORM NAME: REASSIGNMENT FORM
Utility: This Form is used to Resssign Problems to same or different Problem
Solver.This screen appears when a user click on the menu ‘Reassignment’ from
submenu ‘Problem Master’ of the main menu ‘Supervisor Menu’.
Works on the screen: On entering CTN , Supervisor has got all the
record of Customer ‘s Problem, who has allotted that CTN.
Whenever Supervisor assign same CTN to another User, reassign date
and time will automatically enters in the system and record is updated in
the database.
If user Choose CTN, whose records are not exist , then system generates
a message:
CUSTOMER CARE ADMINISTRATION-developer-2000 and oracle 9i
FORM NAME: STATUS CHECKING FORM
Utility: This Form is used to Check Status of Problems ,i.e whether it solved or
not, assign or not, send or not .This screen appears when a user click on the
menu ‘Status Checking’
from the main menu ‘Supervisor Menu’.
Works on the screen: On entering CTN , Supervisor has got all the
Status Of Particular Complaint of any Customer.
This Interface is only used for information purpose, but this information
is very crucial for application because Supervisor take decision of
reassignment of problem only on the basis of this Status.
CUSTOMER CARE ADMINISTRATION-developer-2000 and oracle 9i
FORM NAME: SOLVER MENU FORM
Utility: This Form allow Problem Solver to perform his function using Menu
attach to Form. Main. Functions are solving the Problem/complaint
assigned by Supervisor and send information to Customer about his
Complaint.
FORM NAME: PROBLEM SOLVER FORM
Utility: This Form is used by Problem Solver to maintain the record of
Complaint .This screen appears when a user click on the menu ‘Problem
Solver’ from the main menu ‘Solver Menu’.
Works on the screen: Apart from Facility given in the previous form, User can
select various operations using Pop-UP Menu attach with Canvas of the Solver
Form.
FORM NAME: CUSTOMER LOGIN FORM
Utility: To protect the application from unauthorized access.
The above Form comes, when user choose Customer as his/her account type.
Works on the screen:
any area is blank then it displays the For inputting the ID & Password two
inputting boxes are utilized as text. After providing the appropriate value click
on the Login button to get the next screen. Before getting the screen the click
event of proceed command checks whether the inputting password is valid or
not.
If all areas are filled then check whether the ID & Password is valid or not. If it
is not valid then application prompt the user a error message “Password Does
Not Matched, Try Again”
If the user re-enter the ID/Password the prompted message will disappear.
When the inputted ID & Password is valid then the progress bar is filled
and Main Menu Screen is appeared.
Button allow customer to use application for
entering his complaint directly.
Button to exit from the application.
REPORT CALLING FORM:
FORM NAME: SUPERVISOR MENU FORM
Utility: To call report at runtime.
OUTPUT SCREEN OF SOME OF THE IMPORTANT
CUSTOMER DAILY REPORT:
PARAMETER FORM:
CUSTOMER MONTHLY REPORT:
PARAMETER FORM:
CUSTOMER CARE ADMINISTRATION-developer-2000 and oracle 9i
COMPLAINT WEEKLY REPORT:
PARAMETER FORM:
COMPLAINT MONTHLY REPORT:
PARAMETER FORM:
COMPLAINT STATUS REPORT:
DIFFERENT USER REPORT:
CUSTOMER CARE ADMINISTRATION-developer-2000 and oracle 9i
WELCOME FORM:
Trigger Name : WHEN-NEW-FORM-INSTANCE Form : Welcome
Block : Item :
Trigger Focus : To maximize the window during runtime.
Trigger Level : Form Level
Trigger Text :
set_window_property(forms_mdi_window,window_state,maximize);
set_window_property('welcome_win',window_state,maximize);
Trigger Name : WHEN-BUTTON-PRESSED Form : Welcome
Block : Welcome_blk Item : pb_login
Trigger Focus : To login in the software.
Trigger Level : Item Level
Trigger Text :
Call_form('C:FINALUSER_TYPE.FMX');
Trigger Name : WHEN-BUTTON-PRESSED Form : Welcome
Block : Welcome_blk Item : pb_exit
Trigger Focus : To exit from the software.
Trigger Level : Item Level
Trigger Text :
begin
Exit_form;
CODING
End;
USER TYPE FORM:
Trigger Name : WHEN-NEW-FORM-INSTANCE Form : User_Type
Block : Item :
Trigger Focus : To maximize the window during runtime.
Trigger Level : Form Level
Trigger Text :
elsif :rg_type='C' then
call_form('C:FINALCUSTOMER_LOGIN.FMX');
end if;
end;
Trigger Name : WHEN-BUTTON-PRESSED Form : User_Type
Block : Type Item : pb_cancel
Trigger Focus : To exit from Form.
Trigger Level : Item Level
Trigger Text :
begin
exit_form;
end if;
USER LOGIN FORM:
Trigger Name : WHEN-NEW-FORM-INSTANCE Form : User_Login
Block : Item :
Trigger Focus : To maximize the window during runtime.
Trigger Level : Form Level
Trigger Text :
set_window_property(forms_mdi_window,window_state,maximize);
Trigger Name : WHEN-TIMER_EXPIRED Form : User_Login
Block : Item :
Trigger Focus : To perform operation, when timer will expired.
Trigger Level : Form Level
Trigger Text :
DECLARE
BEGIN
IF GET_ITEM_PROPERTY('AD',WIDTH)<310
THEN
:PARAMETER.P1:=:PARAMETER.P1+10;
SET_ITEM_PROPERTY('AD',WIDTH,:PARAMETER.P1);
ELSE
DELETE_TIMER('PROGRESS_TIMER');
IF :USER_ID LIKE 'OP%' THEN
OPEN_FORM('C:FINALOP_MOD.FMX');
ELSIF :USER_ID LIKE 'SO%' THEN
OPEN_FORM('C:FINALSO_MOD.FMX');
ELSIF :USER_ID LIKE 'SU%' THEN
OPEN_FORM('C:FINALSU_MOD.FMX');
END IF;
END IF;
END;
Trigger Name : WHEN-VALIDATE-ITEM Form : User_login
Block : User_Master Item : user_id
Trigger Focus : To check primary key.
Trigger Level : Item Level
Trigger Text :
:user_id:=upper(:user_id);
declare
ctr number :=0;
begin
select count(user_id) into ctr from user_details_master
where user_id=:user_id;
if ctr=0 then
message('Invalid User Id,Press F9 to see list of User Id');
message(' ');
raise form_trigger_failure;
end if;
end;
Trigger Name : WHEN-BUTTON-PRESSED Form : User_login
Block : Button Item : login
Trigger Focus : To login in user account.
Trigger Level : Item Level
Trigger Text :
:USER_PWD:=UPPER(:USER_PWD);
DECLARE
TIMER_ID TIMER;
V_COUNT NUMBER;
V_SEC NUMBER :=300;
BEGIN
SELECT COUNT(USER_PWD) INTO V_COUNT FROM
USER_DETAILS_MASTER
WHERE USER_PWD =:USER_MASTER.USER_PWD;
IF V_COUNT>0 THEN
SET_ITEM_PROPERTY('USER_VERIFICATION',VISIBLE,PROPERTY_T
RUE);
SET_ITEM_PROPERTY('ERRMSG',VISIBLE,PROPERTY_FALSE);
:USER_MASTER.USER_VERIFICATION:='PASSWARD IS BEING
VERIFIED';
TIMER_ID:=CREATE_TIMER('PROGRESS_TIMER',V_SEC,REPEAT);
ELSE
SET_ITEM_PROPERTY('USER_VERIFICATION',VISIBLE,PROPERTY_F
ALSE);
SET_ITEM_PROPERTY('ERRMSG',VISIBLE,PROPERTY_TRUE);
:USER_MASTER.ERRMSG:='PASSWARD DOES NOT MATCH,TRY
AGAIN !!';
RAISE FORM_TRIGGER_FAILURE;
END IF;
END;
Trigger Name : WHEN-BUTTON-PRESSED Form : User_login
Block : Button Item : cancel
Trigger Focus : To exit from Form.
Trigger Level : Item Level
Trigger Text :
Begin
Exit_form;
End;
Another Objects used in User Login Form :
1. LOV :
Title : User_Lov
Record Group Name : RG_USER_ID
Used for : user_id
2. Record Group :
Name : RG_USER_ID
Record Group Type : Query
3. Parameter :
Name : P1
Date Type : Number
CUSTOMER LOGIN FORM:
Trigger Name : WHEN-NEW-FORM-INSTANCE Form : Customer_Login
Block : Item :
Trigger Focus : To maximize the window during runtime.
Trigger Level : Form Level
Trigger Text :
set_window_property(forms_mdi_window,window_state,maximize);
Trigger Name : WHEN-TIMER_EXPIRED Form : Customer_Login
Block : Item :
Trigger Focus : To perform operation, when timer will expired.
Trigger Level : Form Level
Trigger Text :
DECLARE
BEGIN
IF GET_ITEM_PROPERTY('AD',WIDTH)<310
THEN
:PARAMETER.P1:=:PARAMETER.P1+10;
SET_ITEM_PROPERTY('AD',WIDTH,:PARAMETER.P1);
ELSE
DELETE_TIMER('PROGRESS_TIMER');
OPEN_FORM('C:FINALPROBLEM_ENTRY.FMX');
END IF;
END;
Trigger Name : WHEN-VALIDATE-ITEM Form : Customser_login
Block : Customer_Master Item : customer_id
Trigger Focus : To check primary key.
Trigger Level : Item Level
Trigger Text :
:cust_id:=upper(:cust_id);
declare
ctr number :=0;
begin
select count(cust_id) into ctr from customer_details_master
where cust_id=:cust_id;
if ctr=0 then
message('Invalid Customer Id,Press F9 to see list of Customer Id');
message(' ');
raise form_trigger_failure;
end if;
end;
Trigger Name : WHEN-BUTTON-PRESSED Form : Customer_login
Block : Button Item : login
Trigger Focus : To login in customer account.
Trigger Level : Item Level
Trigger Text :
DECLARE
TIMER_ID TIMER;
V_COUNT NUMBER;
V_SEC NUMBER :=300;
BEGIN
SELECT COUNT(CUST_PWD) INTO V_COUNT FROM
CUSTOMER_DETAILS_MASTER
WHERE CUST_PWD =:CUSTOMER_MASTER.CUST_PWD;
IF V_COUNT>0 THEN
SET_ITEM_PROPERTY('CUSTOMER_VERIFICATION',VISIBLE,PROPER
TY_TRUE);
SET_ITEM_PROPERTY('ERRMSG',VISIBLE,PROPERTY_FALSE);
:CUSTOMER_MASTER.CUSTOMER_VERIFICATION:='PASSWARD IS
BEING VERIFIED';
TIMER_ID:=CREATE_TIMER('PROGRESS_TIMER',V_SEC,REPEAT);
ELSE
SET_ITEM_PROPERTY('CUSTOMER_VERIFICATION',VISIBLE,PROPER
TY_FALSE);
SET_ITEM_PROPERTY('ERRMSG',VISIBLE,PROPERTY_TRUE);
:CUSTOMER_MASTER.ERRMSG:='PASSWARD DOES NOT
MATCH,TRY AGAIN !!';
RAISE FORM_TRIGGER_FAILURE;
GO_ITEM(:CUSTOMER_MASTER.CUST_PWD);
END IF;
END;
Trigger Name : WHEN-BUTTON-PRESSED Form : Customer_login
Block : Button Item : cancel
Trigger Focus : To exit from Form.
Trigger Level : Item Level
Trigger Text :
Begin
Exit_form;
End;
Another Objects used in Customer Login Form :
4. LOV :
Title : Customer_Lov
Record Group Name : RG_CUST_ID
Used for : cust_id
5. Record Group :
Name : RG_CUST_ID
Record Group Type : Query
6. Parameter :
Name : P1
Date Type : Number
OPERATOR MENU FORM:
Important Property :
In property of OP_MOD Form set ,
‘Menu module = C:FINALOP_MENU.MMX’
Trigger Name : WHEN-NEW-FORM-INSTANCE Form : Op_mod
Block : Item :
Trigger Focus : To maximize the window during runtime.
Trigger Level : Form Level
Trigger Text :
set_window_property(forms_mdi_window,window_state,maximize);
set_window_property('window1',window_state,maximize);
Trigger Name : WHEN-BUTTON-PRESSED Form : Op_mod
Block : Op_blk Item : logo
Trigger Focus : To exit from Form.
Trigger Level : Item Level
Trigger Text :
Begin
Exit_form;
End;
SUPERVISOR MENU FORM:
Important Property :
In property of SU_MOD Form set ,
‘Menu module = C:FINALPROJECT_MENU.MMX’
Trigger Name : WHEN-NEW-FORM-INSTANCE Form : Su_mod
Block : Item :
Trigger Focus : To maximize the window during runtime.
Trigger Level : Form Level
Trigger Text :
SOLVER MENU FORM:
Important Property :
In property of SO_MOD Form set ,
‘Menu module = C:FINALSO_MENU.MMX’
Trigger Name : WHEN-NEW-FORM-INSTANCE Form : So_mod
Block : Item :
Trigger Focus : To maximize the window during runtime.
Trigger Level : Form Level
Trigger Text :
set_window_property(forms_mdi_window,window_state,maximize);
set_window_property('window1',window_state,maximize);
Trigger Name : WHEN-BUTTON-PRESSED Form : So_mod
Block : So_blk Item : logo
Trigger Focus : To exit from Form.
Trigger Level : Item Level
Trigger Text :
Begin
Exit_form;
End;
CUSTOMER MASTER FORM:
Trigger Name : WHEN-NEW-FORM-INSTANCE Form : Customer_master
Block : Item :
Trigger Focus : To maximize the window during runtime.
Trigger Level : Form Level
Trigger Text :
begin
set_window_property(forms_mdi_window,window_state,maximize);
set_window_property('cust_win',window_state,maximize);
end;
Trigger Name : ON-ERROR Form : Customer_master
Block : Item :
Trigger Focus : NOT NULL check handling.
Trigger Level : Form Level
Trigger Text :
declare
error_item varchar2(50);
current_item_label varchar2(100);
begin
if error_type='FRM' and error_code=40202 then
error_item:=:system.trigger_item;
current_item_label:=get_item_property(error_item,prompt_text);
message(current_item_label||'cannot be left blank');
message(' ');
else
message(error_text);
end if;
end;
Trigger Name : WHEN-VALIDATE-ITEM Form : Customer_master
Block : Customer Item : cust_id
Trigger Focus : Primary key check handling.
Trigger Level : Item Level
Trigger Text :
:cust_id:=upper(:cust_id);
declare
ctr number:=0;
len number;
id char(2);
str varchar2(5);
begin
select count(cust_id) into ctr from customer_details_master
where cust_id=:cust_id;
if ctr > 0 then
message('Customer Id already exist,Please reenter!!');
message(' ');
raise form_trigger_failure;
end if;
len:=length(:cust_id);
if len=5 then
id:=substr(:cust_id,1,1);
id:=upper(id);
if id='C' or id='c' then
str:=substr(:cust_id,2);
if str not between '0001' AND '9999' THEN
message('Enter Cust Id between C0001 to C9999!!!');
message(' ');
raise form_trigger_failure;
end if;
else
message('Cust Id start with C like C0001 !!');
message(' ');
raise form_trigger_failure;
end if;
else
message('Cust Id must be of five character !!');
message(' ');
raise form_trigger_failure;
end if;
end;
Trigger Name : WHEN-VALIDATE-ITEM Form : Customer_master
Block : Customer Item : cust_name
Trigger Focus : To allow only character value.
Trigger Level : Item Level
Trigger Text :
DECLARE
CT NUMBER;
VAL NUMBER;
BEGIN
:CUST_NAME:=UPPER(:CUST_NAME);
CT:=LENGTH(:CUST_NAME);
FOR I IN 1..CT
LOOP
VAL:=ASCII(SUBSTR(:CUST_NAME,I,1));
IF VAL < 65 OR VAL > 90 THEN
IF VAL<>32 THEN
MESSAGE('Number/Special character are not allowed');
MESSAGE(' ');
:CUST_NAME:='';
RAISE FORM_TRIGGER_FAILURE;
END IF;
END IF;
END LOOP;
END ;
Trigger Name : POST-TEXT-ITEM Form : Customer_master
Block : Customer Item : cust_add
Trigger Focus : To insert address in Capital format.
Trigger Level : Item Level
Trigger Text :
:cust_add:=upper(:cust_add);
Trigger Name : WHEN-VALIDATE-ITEM Form : Customer_master
Block : Customer Item : c_phone_no
Trigger Focus : To allow only valid phone no.
Trigger Level : Item Level
Trigger Text :
declare
len number;
begin
len:=length(:c_phone_no);
if len<6 then
message('Enter Phone No in atleast six digit');
message(' ');
raise form_trigger_failure;
end if;
end;
Trigger Name : ON_ERROR Form : Customer_master
Block : Customer Item : c_phone_no
Trigger Focus : To give custom error message .
Trigger Level : Item Level
Trigger Text :
message('Please Enter Valid Phone Number!!!');
message(' ');
Trigger Name : WHEN-VALIDATE-ITEM Form : Customer_master
Block : Customer Item : c_email_id
Trigger Focus : To allow only valid email id.
Trigger Level : Item Level
Trigger Text :
declare
ch1 number;
ch2 number;
ch3 char(1);
begin
ch1:=instr(:c_email_id,'@',1,2);
if ch1 > 0 then
message('Cannot Enter more then one @!!');
message(' ');
raise form_trigger_failure;
end if;
ch2:=instr(:c_email_id,'@',1);
if ch2=0 then
message('Invalid Email Id,Please reenter !!');
message(' ');
raise form_trigger_failure;
end if;
ch3:=substr(:c_email_id,-1,1);
if ch3='@' then
message('Invalid Email Id,Please reenter !!');
message(' ');
raise form_trigger_failure;
end if;
end;
Trigger Name : POST-TEXT-ITEM Form : Customer_master
Block : Customer Item : c_email_id
Trigger Focus : To generate customer passward.
Trigger Level : Item Level
Trigger Text :
DECLARE
CTR NUMBER:=0;
BEGIN
:CUST_PWD:=SUBSTR(:CUST_ID,1,1)||SUBSTR(:CUST_ID,-1,1)||
SUBSTR(:CUST_NAME,1,1)||SUBSTR(:C_PHONE_NO,-2,2);
END;
Trigger Name : WHEN-BUTTON-PRESSED Form : Customer_master
Block : Button Item : pb_add
Trigger Focus : To insert a record.
Trigger Level : Item Level
Trigger Text :
declare
ctr number :=0;
begin
go_block('customer');
select count(cust_id)into ctr from customer_details_master
where cust_id=:cust_id;
if ctr > 0 then
message('Customer Id already assigned!!');
message(' ');
raise form_trigger_failure;
else
create_record;
commit;
end if;
end;
Trigger Name : WHEN-BUTTON-PRESSED Form : Customer_master
Block : Button Item : pb_modify
Trigger Focus : To modify a record.
Trigger Level : Item Level
Trigger Text :
go_block('customer');
update customer_details_master
set cust_name=:cust_name,cust_add=:cust_add,
c_phone_no=:c_phone_no,c_email_id=:c_email_id
where cust_id=:cust_id;
Trigger Name : WHEN-BUTTON-PRESSED Form : Customer_master
Block : Button Item : pb_delete
Trigger Focus : To delete a record.
Trigger Level : Item Level
Trigger Text :
declare
ans number;
ctr number:=0;
begin
select count(cust_id) into ctr from customer_details_master
where cust_id=:cust_id;
if ctr > 0 then
ans:=show_alert('my_alert');
if ans=88 then
go_block('customer');
delete_record;
commit;
end if;
else
message('Record does not exist !!');
message(' ');
raise form_trigger_failure;
end if;
end ;
Trigger Name : WHEN-BUTTON-PRESSED Form : Customer_master
Block : Button Item : pb_clear
Trigger Focus : To clear a record.
Trigger Level : Item Level
Trigger Text :
begin
go_block('customer');
clear_record;
end;
Trigger Name : WHEN-BUTTON-PRESSED Form : Customer_master
Block : Button Item : pb_save
Trigger Focus : To save a record.
Trigger Level : Item Level
Trigger Text :
begin
go_block('customer');
commit;
end;
Trigger Name : WHEN-BUTTON-PRESSED Form : Customer_master
Block : Button Item : pb_exit
Trigger Focus : To exit from a Form.
Trigger Level : Item Level
Trigger Text :
declare
ans number;
begin
if :system.form_status='CHANGED' then
set_alert_property('my_alert',title,'Save Changes');
set_alert_property('my_alert',alert_message_text,'Would yoy like
to make Changes Permanent?');
ans:=show_alert('my_alert');
if ans=88 then
go_block('customer');
commit;
end if;
end if;
exit_form(no_commit);
end;
Trigger Name : WHEN-BUTTON-PRESSED Form : Customer_master
Block : Button Item : pb_last
Trigger Focus : Go to last record.
Trigger Level : Item Level
Trigger Text :
begin
go_block('customer');
last_record;
end;
Trigger Name : WHEN-BUTTON-PRESSED Form : Customer_master
Block : Button Item : pb_next
Trigger Focus : Go to next record.
Trigger Level : Item Level
Trigger Text :
begin
go_block('customer');
next_record;
end;
Trigger Name : WHEN-BUTTON-PRESSED Form : Customer_master
Block : Button Item : pb_prev
Trigger Focus : Go to previous record.
Trigger Level : Item Level
Trigger Text :
begin
go_block('customer');
previous_record;
end;
Trigger Name : WHEN-BUTTON-PRESSED Form : Customer_master
Block : Button Item : pb_first
Trigger Focus : Go to first record.
Trigger Level : Item Level
Trigger Text :
begin
go_block('customer');
first_record;
end;
Trigger Name : WHEN-BUTTON-PRESSED Form : Customer_master
Block : Button Item : pb_view
Trigger Focus : Retrieve all record and Go to first record.
Trigger Level : Item Level
Trigger Text :
begin
go_block('customer');
execute_query;
end;
Trigger Name : WHEN-BUTTON-PRESSED Form : Customer_master
Block : Button Item : pb_search
Trigger Focus : To search for a specific record.
Trigger Level : Item Level
Trigger Text :
begin
go_block('customer');
enter_record;
end;
Another Objects used in Customer Master Form :
1. Alert :
Name : My_Alert
Alert Style : Stop
No. of Button : 2
Used for : pb_save,pb_exit
2. Popup-Menu :
Name : Shortcut
User for : Cust_can
4. Property-Class :
Name : PC_canvas
Background-Color : r100g100b75
User for : Cust_can
USER MASTER FORM:
Trigger Name : WHEN-NEW-FORM-INSTANCE Form : User_master
Block : Item :
Trigger Focus : To maximize the window during runtime.
Trigger Level : Form Level
Trigger Text :
begin
set_window_property(forms_mdi_window,window_state,maximize);
set_window_property('user_win',window_state,maximize);
end;
Trigger Name : ON-ERROR Form : User_master
Block : Item :
Trigger Focus : NOT NULL check handling.
Trigger Level : Form Level
Trigger Text :
declare
error_item varchar2(50);
current_item_label varchar2(100);
begin
if error_type='FRM' and error_code=40202 then
error_item:=:system.trigger_item;
current_item_label:=get_item_property(error_item,prompt_text);
message(current_item_label||'cannot be left blank');
message(' ');
else
message(error_text);
end if;
end;
Trigger Name : WHEN-VALIDATE-ITEM Form : User_master
Block : User Item : user_id
Trigger Focus : Primary key check handling.
Trigger Level : Item Level
Trigger Text :
:USER_ID:=UPPER(:USER_ID);
declare
ctr number:=0;
len number;
id char(2);
str varchar2(5);
begin
select count(user_id) into ctr from user_details_master
where user_id=:user_id;
if ctr > 0 then
message('User Id already exist,Please reenter!!');
message(' ');
raise form_trigger_failure;
end if;
len:=length(:user_id);
if len=6 then
id:=substr(:user_id,1,2);
id:=upper(id);
if id='OP' or id='SU' or id='SO' then
str:=substr(:user_id,3);
if str not between '0001' AND '9999' THEN
message('Enter User Id like
OP0001,SU0001,SO0001!!!');
message(' ');
raise form_trigger_failure;
end if;
else
message('User Id start with OP or SU or SO !!');
message(' ');
raise form_trigger_failure;
end if;
else
message('User Id must be of six character !!');
message(' ');
raise form_trigger_failure;
end if;
end;
Trigger Name : WHEN-VALIDATE-ITEM Form : User_master
Block : User Item : user_name
Trigger Focus : To allow only character value.
Trigger Level : Item Level
Trigger Text :
DECLARE
LEN NUMBER;
VAL NUMBER;
BEGIN
LOOP
VAL:=ASCII(SUBSTR(:USER_NAME,I,1));
IF VAL < 65 OR VAL > 90 THEN
IF VAL<>32 THEN
MESSAGE('Number/Special character are not allowed');
MESSAGE(' ');
:USER_NAME:='';
RAISE FORM_TRIGGER_FAILURE;
END IF;
END IF;
END LOOP;
END ;
Trigger Name : POST-TEXT-ITEM Form : User_master
Block : User Item : user_add
Trigger Focus : To insert address in Capital format.
Trigger Level : Item Level
Trigger Text :
:user_add:=upper(:user_add);
Trigger Name : WHEN-VALIDATE-ITEM Form : Userr_master
Block : User Item : u_phone_no
Trigger Focus : To allow only valid phone no.
Trigger Level : Item Level
Trigger Text :
declare
len number;
begin
len:=length(:u_phone_no);
if len<6 then
message('Enter Phone No in atleast six digit');
message(' ');
raise form_trigger_failure;
end if;
end;
Trigger Name : ON_ERROR Form : User_master
Block : User Item : u_phone_no
Trigger Focus : To give custom error message .
Trigger Level : Item Level
Trigger Text :
message('Please Enter Valid Phone Number!!!');
message(' ');
Trigger Name : WHEN-VALIDATE-ITEM Form : User_master
Block : User Item : u_email_id
Trigger Focus : To allow only valid email id.
Trigger Level : Item Level
Trigger Text :
declare
ch1 number;
ch2 number;
ch3 char(1);
begin
ch1:=instr(:u_email_id,'@',1,2);
if ch1 > 0 then
message('Cannot Enter more then one @!!');
message(' ');
raise form_trigger_failure;
end if;
ch2:=instr(:u_email_id,'@',1);
if ch2=0 then
message('Invalid Email Id,Please reenter !!');
message(' ');
raise form_trigger_failure;
end if;
ch3:=substr(:u_email_id,-1,1);
if ch3='@' then
message('Invalid Email Id,Please reenter !!');
message(' ');
raise form_trigger_failure;
end if;
end;
Trigger Name : POST-TEXT-ITEM Form : User_master
Block : User Item : u_email_id
Trigger Focus : To generate User passward.
Trigger Level : Item Level
Trigger Text :
:USER_PWD:=SUBSTR(:USER_ID,1,2)||SUBSTR(:USER_NAME,1,1)||
SUBSTR(:U_PHONE_NO,-2,2);
Trigger Name : WHEN-BUTTON-PRESSED Form : User_master
Block : Button Item : pb_add
Trigger Focus : To insert a record.
Trigger Level : Item Level
Trigger Text :
declare
ctr number :=0;
begin
go_block('user');
select count(user_id)into ctr from user_details_master
where user_id=: user_id;
if ctr > 0 then
message(' User Id already assigned!!');
message(' ');
raise form_trigger_failure;
else
create_record;
commit;
end if;
end;
Trigger Name : WHEN-BUTTON-PRESSED Form : User_master
Block : Button Item : pb_modify
Trigger Focus : To modify a record.
Trigger Level : Item Level
Trigger Text :
go_block(' user ');
update user_details_master
set user_name=: user_name, user_add=: user_add,
u_phone_no=:u_phone_no,u_email_id=:u_email_id
where user_id=: user_id;
Trigger Name : WHEN-BUTTON-PRESSED Form : User_master
Block : Button Item : pb_delete
Trigger Focus : To delete a record.
Trigger Level : Item Level
Trigger Text :
declare
ans number;
ctr number:=0;
begin
select count(user_id) into ctr from user_details_master
where user_id=: user_id;
if ctr > 0 then
ans:=show_alert('my_alert');
if ans=88 then
go_block(' user ');
delete_record;
commit;
end if;
else
message('Record does not exist !!');
message(' ');
raise form_trigger_failure;
end if;
end ;
Trigger Name : WHEN-BUTTON-PRESSED Form : User_master
Block : Button Item : pb_clear
Trigger Focus : To clear a record.
Trigger Level : Item Level
Trigger Text :
begin
go_block(' user ');
clear_record;
end;
Trigger Name : WHEN-BUTTON-PRESSED Form : User_master
Block : Button Item : pb_save
Trigger Focus : To save a record.
Trigger Level : Item Level
Trigger Text :
begin
go_block(' user ');
commit;
end;
Trigger Name : WHEN-BUTTON-PRESSED Form : User_master
Block : Button Item : pb_exit
Trigger Focus : To exit from a Form.
Trigger Level : Item Level
Trigger Text :
declare
ans number;
begin
if :system.form_status='CHANGED' then
set_alert_property('my_alert',title,'Save Changes');
set_alert_property('my_alert',alert_message_text,'Would yoy
like to make Changes Permanent?');
ans:=show_alert('my_alert');
if ans=88 then
go_block(' user ');
commit;
end if;
end if;
exit_form(no_commit);
end;
Trigger Name : WHEN-BUTTON-PRESSED Form : User _master
Block : Button Item : pb_last
Trigger Focus : Go to last record.
Trigger Level : Item Level
Trigger Text :
begin
go_block(' user ');
last_record;
end;
Trigger Name : WHEN-BUTTON-PRESSED Form : User_master
Block : Button Item : pb_next
Trigger Focus : Go to next record.
Trigger Level : Item Level
Trigger Text :
begin
go_block(' user ');
next_record;
end;
Trigger Name : WHEN-BUTTON-PRESSED Form : User_master
Block : Button Item : pb_prev
Trigger Focus : Go to previous record.
Trigger Level : Item Level
Trigger Text :
begin
go_block(' user ');
previous_record;
end;
Trigger Name : WHEN-BUTTON-PRESSED Form : User _master
Block : Button Item : pb_first
Trigger Focus : Go to first record.
Trigger Level : Item Level
Trigger Text :
begin
go_block(' user ');
first_record;
end;
Trigger Name : WHEN-BUTTON-PRESSED Form : User_master
Block : Button Item : pb_view
Trigger Focus : Retrieve all record and Go to first record.
Trigger Level : Item Level
Trigger Text :
begin
go_block(' user ');
execute_query;
end;
Trigger Name : WHEN-BUTTON-PRESSED Form : User_master
Block : Button Item : pb_search
Trigger Focus : To search for a specific record.
Trigger Level : Item Level
Trigger Text :
begin
go_block(' user ');
enter_record;
end;
Another Objects used in User Master Form :
3. Alert :
Name : My_Alert
Alert Style : Stop
No. of Button : 2
Used for : pb_save,pb_exit
4. Popup-Menu :
Name : Shortcut
User for : User_can
4. Property-Class :
Name : PC_canvas
Background-Color : r100g100b75
User for : User_can
PROBLEM ENTRY FORM:
Trigger Name : WHEN-NEW-FORM-INSTANCE Form : Problem_Entry
Block : Item :
Trigger Focus : To maximize the window during runtime.
Trigger Level : Form Level
Trigger Text :
begin
set_window_property(forms_mdi_window,window_state,maximize);
set_window_property('pr_entry_win',window_state,maximize);
end;
Trigger Name : ON-ERROR Form : Problem_Entry
Block : Item :
Trigger Focus : NOT NULL check handling.
Trigger Level : Form Level
Trigger Text :
declare
error_item varchar2(50);
current_item_label varchar2(100);
begin
if error_type='FRM' and error_code=40202 then
error_item:=:system.trigger_item;
current_item_label:=get_item_property(error_item,prompt_text);
message(current_item_label||'cannot be left blank');
message(' ');
else
message(error_text);
end if;
end;
Trigger Name : WHEN-NEW-BLOCK-INSTANCE Form : Problem_Entry
Block : Entry Item :
Trigger Focus : To add value in List item.
Trigger Level : Block Level
Trigger Text :
declare
pos number:=0;
begin
for i in (select cust_id from customer_details_master)
loop
pos:=pos+1;
add_list_element('cust_id',pos,i.cust_id,i.cust_id);
end loop;
end;
Trigger Name : WHEN-NEW-ITEM-INSTANCE Form : Problem_Entry
Block : Entry Item
: problem_desc
Trigger Focus : To call Editor at runtime.
Trigger Level : Item Level
Trigger Text :
declare
b boolean;
begin
show_editor('my_editor',:problem_desc,200,150,:problem_desc,b);
:problem_desc:=upper(:problem_desc);
if :problem_desc not between 'A' and 'Z' then
message('Problem desc must be in character!!');
message(' ');
raise form_trigger_failure;
end if;
end;
:CALL_DATE:=SYSDATE;
:CALL_TIME:=TO_CHAR(SYSDATE,'HH24:MI:SS');
Trigger Name : POST-TEXT-ITEM Form : Problem_Entry
Block : Entry Item : call_time
Trigger Focus : To generate Call Track No.
Trigger Level : Item Level
Trigger Text :
DECLARE
CTR NUMBER:=0;
BEGIN
SELECT COUNT(CTN) INTO CTR FROM PROBLEM_ENTRY;
CTR:=CTR+1;
:CTN:=CTR;
END;
Trigger Name : WHEN-BUTTON-PRESSED Form : Problem_entry
Block : Button Item : pb_add
Trigger Focus : To insert a record.
Trigger Level : Item Level
Trigger Text :
declare
ctr number :=0;
begin
go_block('entry');
select count(ctn)into ctr from problem_entry
where ctn=:ctn;
if ctr > 0 then
message('Call Track No already assigned!!');
message(' ');
raise form_trigger_failure;
else
create_record;
commit;
end if;
end;
Trigger Name : WHEN-BUTTON-PRESSED Form : Problem_entry
Block : Button Item : pb_modify
Trigger Focus : To modify a record.
Trigger Level : Item Level
Trigger Text :
go_block('entry');
update problem_entry
set
cust_id=:cust_id,problem_type=:problem_type,problem_desc=:problem_desc,
call_date=:call_date,call_time=:call_time
where ctn=:ctn;
Trigger Name : WHEN-BUTTON-PRESSED Form : Problem_entry
Block : Button Item : pb_clear
Trigger Focus : To clear a record.
Trigger Level : Item Level
Trigger Text :
begin
go_block('entry');
clear_record;
end;
Trigger Name : WHEN-BUTTON-PRESSED Form : Problem_ entry
Block : Button Item : pb_save
Trigger Focus : To save a record.
Trigger Level : Item Level
Trigger Text :
begin
go_block(' entry ');
commit;
end;
Trigger Name : WHEN-BUTTON-PRESSED Form : Problem_ entry
Block : Button Item : pb_exit
Trigger Focus : To exit from a Form.
Trigger Level : Item Level
Trigger Text :
declare
ans number;
begin
if :system.form_status='CHANGED' then
set_alert_property('my_alert',title,'Save Changes');
set_alert_property('my_alert',alert_message_text,'Would yoy like
to make Changes Permanent?');
ans:=show_alert('my_alert');
if ans=88 then
go_block(' entry ');
commit;
end if;
end if;
exit_form(no_commit);
end;
Trigger Name : WHEN-BUTTON-PRESSED Form : Problem_ entry
Block : Button Item : pb_last
Trigger Focus : Go to last record.
Trigger Level : Item Level
Trigger Text :
begin
go_block(' entry ');
last_record;
end;
Trigger Name : WHEN-BUTTON-PRESSED Form : Problem_ entry
Block : Button Item : pb_next
Trigger Focus : Go to next record.
Trigger Level : Item Level
Trigger Text :
begin
go_block(' entry ');
next_record;
end;
Trigger Name : WHEN-BUTTON-PRESSED Form : Problem_ entry
Block : Button Item : pb_prev
Trigger Focus : Go to previous record.
Trigger Level : Item Level
Trigger Text :
begin
go_block(' entry ');
previous_record;
end;
Trigger Name : WHEN-BUTTON-PRESSED Form : Problem_entry
Block : Button Item : pb_first
Trigger Focus : Go to first record.
Trigger Level : Item Level
Trigger Text :
begin
go_block(' entry ');
first_record;
end;
Trigger Name : WHEN-BUTTON-PRESSED Form : Problem_ entry
Block : Button Item : pb_view
Trigger Focus : Retrieve all record and Go to first record.
Trigger Level : Item Level
Trigger Text :
begin
go_block(' entry ');
execute_query;
end;
Trigger Name : WHEN-BUTTON-PRESSED Form : Problem_entry
Block : Button Item : pb_search
Trigger Focus : To search for a specific record.
Trigger Level : Item Level
Trigger Text :
begin
go_block(' entry ');
enter_record;
end;
Another Objects used in Problem Entry Form :
1. Alert :
Name : My_Alert
Alert Style : Stop
No. of Button : 2
Used for : pb_save,pb_exit
2. Editor :
Name : My_Editor
Title : Problem_Description……
Used for : problem_desc
3. Popup-Menu :
Name : Shortcut
User for : Pr_entry_can
4. Property-Class :
Name : PC_canvas
Background-Color : r100g100b75
User for : Pr_Entry_can
PROBLEM ASSIGNMENT FORM:
Trigger Name : WHEN-NEW-FORM-INSTANCE Form : Problem_Assignment
Block : Item :
Trigger Focus : To maximize the window during runtime.
Trigger Level : Form Level
Trigger Text :
begin
set_window_property(forms_mdi_window,window_state,maximize);
set_window_property('assignment_win',window_state,maximize);
end;
Trigger Name : ON-ERROR Form : Problem_ Assignment
Block : Item :
Trigger Focus : NOT NULL check handling.
Trigger Level : Form Level
Trigger Text :
declare
error_item varchar2(50);
current_item_label varchar2(100);
begin
if error_type='FRM' and error_code=40202 then
error_item:=:system.trigger_item;
current_item_label:=get_item_property(error_item,prompt_text);
message(current_item_label||'cannot be left blank');
message(' ');
else
message(error_text);
end if;
end;
Trigger Name : WHEN-NEW-BLOCK-INSTANCE Form : Problem_ Assignment
Block : Assignment Item :
Trigger Focus : To add value in List item.
Trigger Level : Block Level
Trigger Text :
declare
pos number:=0;
begin
for i in (select ctn from problem_entry)
loop
pos:=pos+1;
add_list_element('ctn',pos,i.ctn,i.ctn);
end loop;
for i in (select distinct user_id from user_details_master)
loop
pos:=pos+1;
add_list_element('user_id',pos,i.user_id,i.user_id);
end loop;
end;
Trigger Name : WHEN-LIST-CHANGED Form : Problem_Assignment
Block : Assignment Item : ctn
Trigger Focus : To populate value based on ctn.
Trigger Level : Item Level
Trigger Text :
select cust_id,problem_type into :cust_id,:problem_type from problem_entry
where ctn=:ctn;
Trigger Name : WHEN-LIST-CHANGED Form : Problem_Assignment
Block : Assignment Item : user_id
Trigger Focus : To populate value based on user id.
Trigger Level : Item Level
Trigger Text :
begin
select user_name into :solver_name from user_details_master
where user_id=:user_id;
:assign_date:=sysdate;
:assign_time:=to_char(sysdate,'hh24:mi:ss');
end;
Trigger Name : WHEN-BUTTON-PRESSED Form : Problem_Assignment
Block : Button Item : pb_add
Trigger Focus : To insert a record.
Trigger Level : Item Level
Trigger Text :
declare
ctr number :=0;
begin
go_block('assignment');
select count(ctn)into ctr from problem_assignment
where ctn=:ctn;
if ctr > 0 then
message('Call Track No already assigned!!');
message(' ');
raise form_trigger_failure;
else
create_record;
commit;
end if;
end;
Trigger Name : WHEN-BUTTON-PRESSED Form : Problem_ Assignment
Block : Button Item : pb_modify
Trigger Focus : To modify a record.
Trigger Level : Item Level
Trigger Text :
go_block('assignment');
update problem_assignment
set cust_id=:cust_id,problem_type=:problem_type,assign_status=:assign_status,
user_id=:user_id,solver_name=:solver_name,assign_date=:assign_date,assign_t
ime=:assign_time
where ctn=:ctn;
Trigger Name : WHEN-BUTTON-PRESSED Form : Problem_Assignment
Block : Button Item : pb_clear
Trigger Focus : To clear a record.
Trigger Level : Item Level
Trigger Text :
begin
go_block('assignment');
clear_record;
end;
Trigger Name : WHEN-BUTTON-PRESSED Form : Problem_ assignment
Block : Button Item : pb_save
Trigger Focus : To save a record.
Trigger Level : Item Level
Trigger Text :
begin
go_block(' assignment ');
commit;
end;
Trigger Name : WHEN-BUTTON-PRESSED Form : Problem_ assignment
Block : Button Item : pb_exit
Trigger Focus : To exit from a Form.
Trigger Level : Item Level
Trigger Text :
declare
ans number;
begin
if :system.form_status='CHANGED' then
set_alert_property('my_alert',title,'Save Changes');
set_alert_property('my_alert',alert_message_text,'Would yoy like
to make Changes Permanent?');
ans:=show_alert('my_alert');
if ans=88 then
go_block(' assignment ');
commit;
end if;
end if;
exit_form(no_commit);
end;
Trigger Name : WHEN-BUTTON-PRESSED Form : Problem_ assignment
Block : Button Item : pb_last
Trigger Focus : Go to last record.
Trigger Level : Item Level
Trigger Text :
begin
go_block(' assignment ');
last_record;
end;
Trigger Name : WHEN-BUTTON-PRESSED Form : Problem_ assignment
Block : Button Item : pb_next
Trigger Focus : Go to next record.
Trigger Level : Item Level
Trigger Text :
begin
go_block(' assignment ');
next_record;
end;
Trigger Name : WHEN-BUTTON-PRESSED Form : Problem_ assignment
Block : Button Item : pb_prev
Trigger Focus : Go to previous record.
Trigger Level : Item Level
Trigger Text :
begin
go_block(' assignment ');
previous_record;
end;
Trigger Name : WHEN-BUTTON-PRESSED Form : Problem_ assignment
Block : Button Item : pb_first
Trigger Focus : Go to first record.
Trigger Level : Item Level
Trigger Text :
begin
go_block(' assignment ');
first_record;
end;
Trigger Name : WHEN-BUTTON-PRESSED Form : Problem_ assignment
Block : Button Item : pb_view
Trigger Focus : Retrieve all record and Go to first record.
Trigger Level : Item Level
Trigger Text :
begin
go_block(' assignment ');
execute_query;
end;
Trigger Name : WHEN-BUTTON-PRESSED Form : Problem_ assignment
Block : Button Item : pb_search
Trigger Focus : To search for a specific record.
Trigger Level : Item Level
Trigger Text :
begin
go_block(' assignment ');
enter_record;
end;
Another Objects used in Problem Assignment Form :
1. Alert :
Name : My_Alert
Alert Style : Stop
No. of Button : 2
Used for : pb_save,pb_exit
2. Popup-Menu :
Name : Shortcut
User for : Assignment_can
3. Property-Class :
Name : PC_canvas
Background-Color : r100g100b75
User for : Assignment_can
PROBLEM SOLVER FORM:
Trigger Name : WHEN-NEW-FORM-INSTANCE Form : Problem_Solver
Block : Item :
Trigger Focus : To maximize the window during runtime.
Trigger Level : Form Level
Trigger Text :
begin
set_window_property(forms_mdi_window,window_state,maximize);
set_window_property('solver_win',window_state,maximize);
end;
Trigger Name : ON-ERROR Form : Problem_ Solver
Block : Item :
Trigger Focus : NOT NULL check handling.
Trigger Level : Form Level
Trigger Text :
declare
error_item varchar2(50);
current_item_label varchar2(100);
begin
if error_type='FRM' and error_code=40202 then
error_item:=:system.trigger_item;
current_item_label:=get_item_property(error_item,prompt_text);
message(current_item_label||'cannot be left blank');
message(' ');
else
message(error_text);
end if;
end;
Trigger Name : WHEN-NEW-BLOCK-INSTANCE Form : Problem_ Solver
Block : Solver Item :
Trigger Focus : To add value in List item.
Trigger Level : Block Level
Trigger Text :
declare
pos number:=0;
begin
for i in (select user_id from user_details_master where user_id like 'SO
%')
loop
pos:=pos+1;
add_list_element('user_id',pos,i.user_id,i.user_id);
end loop;
for j in (select ctn from problem_entry)
loop
pos:=pos+1;
add_list_element('ctn',pos,j.ctn,j.ctn);
end loop;
end;
Trigger Name : WHEN-LIST-CHANGED Form : Problem_Solver
Block : Solver Item :
user_id
Trigger Focus : To populate value based on user id.
Trigger Level : Item Level
Trigger Text :
select user_name into :solver_name from user_details_master
where user_id=:user_id;
select count(user_id) into :total_calls from problem_assignment
where user_id=:user_id;
Trigger Name : WHEN-LIST-CHANGED Form : Problem_Solver
Block : Solver Item : ctn
Trigger Focus : To populate value based on ctn.
Trigger Level : Item Level
Trigger Text :
BEGIN
SELECT PROBLEM_TYPE INTO :PROBLEM_TYPE FROM
PROBLEM_ENTRY
WHERE CTN=:CTN;
EXCEPTION WHEN NO_DATA_FOUND THEN
MESSAGE('RECORD DOES NOT EXIST!!!');
MESSAGE(' ');
END;
Trigger Name : WHEN-NEW-ITEM-INSTANCE Form : Problem_Solver
Block : Solver Item :
action_taken
Trigger Focus : To call Editor at runtime.
Trigger Level : Item Level
Trigger Text :
declare
b boolean;
begin
show_editor('my_editor',:action_taken,200,150,:action_taken,b);
:action_taken:=upper(:action_taken);
if :action_taken not between 'A' and 'Z' then
message('Action Taken must be in character!!');
message(' ');
raise form_trigger_failure;
end if;
end;
Trigger Name : WHEN-LIST-CHANGED Form : Problem_Solver
Block : Solver Item :
problem_status
Trigger Focus : To populate value based on problem status.
Trigger Level : Item Level
Trigger Text :
BEGIN
IF :PROBLEM_STATUS='SOLVED' THEN
:SOLVING_DATE:=SYSDATE;
:SOLVING_TIME:=TO_CHAR(SYSDATE,'HH24:MI:SS');
ELSE
:SOLVING_DATE:=NULL;
:SOLVING_TIME:=NULL;
END IF;
END;
Trigger Name : WHEN-BUTTON-PRESSED Form : Problem_Solver
Block : Button Item : pb_add
Trigger Focus : To insert a record.
Trigger Level : Item Level
Trigger Text :
declare
ctr number :=0;
begin
go_block('solver');
select count(ctn)into ctr from problem_solver_details_master
where ctn=:ctn;
if ctr > 0 then
message('Call Track No already assigned!!');
message(' ');
raise form_trigger_failure;
else
create_record;
commit;
end if;
end;
Trigger Name : WHEN-BUTTON-PRESSED Form : Problem_ Solver
Block : Button Item : pb_modify
Trigger Focus : To modify a record.
Trigger Level : Item Level
Trigger Text :
go_block('solver');
update problem_solver_details_master
set user_id=:user_id,solver_name=:solver_name,total_calls=:total_calls,
problem_type=:problem_type,action_taken=:action_taken,
solving_date=:solving_date,solving_time=:solving_time,
problem_status=:problem_status,information_status=:information_status
where ctn=:ctn;
Trigger Name : WHEN-BUTTON-PRESSED Form : Problem_Solver
Block : Button Item : pb_clear
Trigger Focus : To clear a record.
Trigger Level : Item Level
Trigger Text :
begin
go_block('solver');
clear_record;
end;
Trigger Name : WHEN-BUTTON-PRESSED Form : Problem_ solver
Block : Button Item : pb_save
Trigger Focus : To save a record.
Trigger Level : Item Level
Trigger Text :
begin
go_block(' solver ');
commit;
end;
Trigger Name : WHEN-BUTTON-PRESSED Form : Problem_ solver
Block : Button Item : pb_exit
Trigger Focus : To exit from a Form.
Trigger Level : Item Level
Trigger Text :
declare
ans number;
begin
if :system.form_status='CHANGED' then
set_alert_property('my_alert',title,'Save Changes');
set_alert_property('my_alert',alert_message_text,'Would yoy like
to make Changes Permanent?');
ans:=show_alert('my_alert');
if ans=88 then
go_block(' solver ');
commit;
end if;
end if;
exit_form(no_commit);
end;
Trigger Name : WHEN-BUTTON-PRESSED Form : Problem_ solver
Block : Button Item : pb_last
Trigger Focus : Go to last record.
Trigger Level : Item Level
Trigger Text :
begin
go_block(' solver ');
last_record;
end;
Trigger Name : WHEN-BUTTON-PRESSED Form : Problem_ solver
Block : Button Item : pb_next
Trigger Focus : Go to next record.
Trigger Level : Item Level
Trigger Text :
begin
go_block(' solver ');
next_record;
end;
Trigger Name : WHEN-BUTTON-PRESSED Form : Problem_ solver
Block : Button Item : pb_prev
Trigger Focus : Go to previous record.
Trigger Level : Item Level
Trigger Text :
begin
go_block(' solver ');
previous_record;
end;
Trigger Name : WHEN-BUTTON-PRESSED Form : Problem_ solver
Block : Button Item : pb_first
Trigger Focus : Go to first record.
Trigger Level : Item Level
Trigger Text :
begin
go_block(' solver ');
first_record;
end;
Trigger Name : WHEN-BUTTON-PRESSED Form : Problem_ solver
Block : Button Item : pb_view
Trigger Focus : Retrieve all record and Go to first record.
Trigger Level : Item Level
Trigger Text :
begin
go_block(' solver ');
execute_query;
end;
Trigger Name : WHEN-BUTTON-PRESSED Form : Problem_ solver
Block : Button Item : pb_search
Trigger Focus : To search for a specific record.
Trigger Level : Item Level
Trigger Text :
begin
go_block(' solver ');
enter_record;
end;
Another Objects used in Problem Solver Form :
1. Alert :
Name : My_Alert
Alert Style : Stop
No. of Button : 2
Used for : pb_save,pb_exit
2. Editor :
Name : My_Editor
Title : Action Taken
Used for : action_taken
3. Popup-Menu :
Name : Shortcut
User for : Solver_can
3. Property-Class :
Name : PC_canvas
Background-Color : r100g100b75
User for : Solver_can
PROBLEM STATUS FORM:
Trigger Name : WHEN-NEW-FORM-INSTANCE Form : Problem_Status
Block : Item :
Trigger Focus : To maximize the window during runtime.
Trigger Level : Form Level
Trigger Text :
begin
set_window_property(forms_mdi_window,window_state,maximize);
set_window_property(' Status_win',window_state,maximize);
end;
Trigger Name : ON-ERROR Form : Problem_ Status
Block : Item :
Trigger Focus : NOT NULL check handling.
Trigger Level : Form Level
Trigger Text :
declare
error_item varchar2(50);
current_item_label varchar2(100);
begin
if error_type='FRM' and error_code=40202 then
error_item:=:system.trigger_item;
current_item_label:=get_item_property(error_item,prompt_text);
message(current_item_label||'cannot be left blank');
message(' ');
else
message(error_text);
end if;
end;
Trigger Name : WHEN-NEW-BLOCK-INSTANCE Form : Problem_ Status
Block : Status Item :
Trigger Focus : To add value in List item.
Trigger Level : Block Level
Trigger Text :
DECLARE
POS NUMBER :=0;
BEGIN
FOR I IN (SELECT CTN FROM PROBLEM_ENTRY)
LOOP
POS:=POS+1;
ADD_LIST_ELEMENT('CTN',POS,I.CTN,I.CTN);
END LOOP;
END;
Trigger Name : WHEN-LIST-CHANGED Form : Problem_Status
Block : Status Item : ctn
Trigger Focus : To populate value based on ctn.
Trigger Level : Item Level
Trigger Text :
BEGIN
SELECT PROBLEM_STATUS,INFORMATION_STATUS INTO
:PROBLEM_STATUS,:INFORMATION_STATUS
FROM PROBLEM_SOLVER_DETAILS_MASTER
WHERE CTN=:CTN;
SELECT ASSIGN_STATUS INTO :ASSIGN_STATUS
FROM PROBLEM_ASSIGNMENT
WHERE CTN=:CTN;
IF :INFORMATION_STATUS='SEND' THEN
:CLOSING_STATUS:='CLOSED';
:CLOSE_DATE:=SYSDATE;
:CLOSE_TIME:=TO_CHAR(SYSDATE,'HH24:MI:SS');
ELSE
:CLOSING_STATUS:='NOT CLOSED';
:CLOSE_DATE:=null;
:CLOSE_TIME:=null;
END IF;
EXCEPTION
WHEN NO_DATA_FOUND THEN
MESSAGE('Record does not exist!!!');
message(' ');
raise form_trigger_failure;
end ;
Trigger Name : WHEN-BUTTON-PRESSED Form : Problem_Status
Block : Button Item : pb_add
Trigger Focus : To insert a record.
Trigger Level : Item Level
Trigger Text :
declare
ctr number :=0;
begin
go_block('status');
select count(ctn)into ctr from problem_status_master
where ctn=:ctn;
if ctr > 0 then
message('Call Track No already assigned!!');
message(' ');
raise form_trigger_failure;
else
create_record;
commit;
end if;
end;
Trigger Name : WHEN-BUTTON-PRESSED Form : Problem_ Status
Block : Button Item : pb_modify
Trigger Focus : To modify a record.
Trigger Level : Item Level
Trigger Text :
go_block('status');
update problem_status_master
set problem_status=:problem_status,assign_status=:assign_status,
closing_status=:closing_status,information_status=:information_status,
close_date=:close_date,close_time=:close_time
where ctn=:ctn;
Trigger Name : WHEN-BUTTON-PRESSED Form : Problem_Status
Block : Button Item : pb_delete
Trigger Focus : To clear a record.
Trigger Level : Item Level
Trigger Text :
declare
ans number;
ctr number:=0;
begin
select count(ctn) into ctr from problem_status_master
where ctn=:ctn;
if ctr > 0 then
ans:=show_alert('my_alert');
if ans=88 then
go_block('status');
delete_record;
commit;
end if;
else
message('Record does not exist !!');
message(' ');
raise form_trigger_failure;
end if;
end ;
Trigger Name : WHEN-BUTTON-PRESSED Form : Problem_Status
Block : Button Item : pb_clear
Trigger Focus : To clear a record.
Trigger Level : Item Level
Trigger Text :
begin
go_block('status');
clear_record;
end;
Trigger Name : WHEN-BUTTON-PRESSED Form : Problem_ status
Block : Button Item : pb_save
Trigger Focus : To save a record.
Trigger Level : Item Level
Trigger Text :
begin
go_block(' status ');
commit;
end;
Trigger Name : WHEN-BUTTON-PRESSED Form : Problem_ status
Block : Button Item : pb_exit
Trigger Focus : To exit from a Form.
Trigger Level : Item Level
Trigger Text :
declare
ans number;
begin
if :system.form_status='CHANGED' then
set_alert_property('my_alert',title,'Save Changes');
set_alert_property('my_alert',alert_message_text,'Would yoy like
to make Changes Permanent?');
ans:=show_alert('my_alert');
if ans=88 then
go_block(' status ');
commit;
end if;
end if;
exit_form(no_commit);
end;
Trigger Name : WHEN-BUTTON-PRESSED Form : Problem_ status
Block : Button Item : pb_last
Trigger Focus : Go to last record.
Trigger Level : Item Level
Trigger Text :
begin
go_block(' status ');
last_record;
end;
Trigger Name : WHEN-BUTTON-PRESSED Form : Problem_ status
Block : Button Item : pb_next
Trigger Focus : Go to next record.
Trigger Level : Item Level
Trigger Text :
begin
go_block(' status ');
next_record;
end;
Trigger Name : WHEN-BUTTON-PRESSED Form : Problem_ status
Block : Button Item : pb_prev
Trigger Focus : Go to previous record.
Trigger Level : Item Level
Trigger Text :
begin
go_block(' status ');
previous_record;
end;
Trigger Name : WHEN-BUTTON-PRESSED Form : Problem_ status
Block : Button Item : pb_first
Trigger Focus : Go to first record.
Trigger Level : Item Level
Trigger Text :
begin
go_block(' status ');
first_record;
end;
Trigger Name : WHEN-BUTTON-PRESSED Form : Problem_ status
Block : Button Item : pb_view
Trigger Focus : Retrieve all record and Go to first record.
Trigger Level : Item Level
Trigger Text :
begin
go_block(' status ');
execute_query;
end;
Trigger Name : WHEN-BUTTON-PRESSED Form : Problem_ status
Block : Button Item : pb_search
Trigger Focus : To search for a specific record.
Trigger Level : Item Level
Trigger Text :
begin
go_block(' status ');
enter_record;
end;
Another Objects used in Problem Status Form :
1. Alert :
Name : My_Alert
Alert Style : Stop
No. of Button : 2
Used for : pb_save,pb_exit
4. Popup-Menu :
Name : Shortcut
User for : Status_can
3. Property-Class :
Name : PC_canvas
Background-Color : r100g100b75
User for : Status_can
REASSIGNMENT FORM:
Trigger Name : WHEN-NEW-FORM-INSTANCE Form : Problem_master
Block : Item :
Trigger Focus : To maximize the window during runtime.
Trigger Level : Form Level
Trigger Text :
begin
set_window_property(forms_mdi_window,window_state,maximize);
set_window_property('problem_win',window_state,maximize);
end;
Trigger Name : ON-ERROR Form : Problem_master
Block : Item :
Trigger Focus : NOT NULL check handling.
Trigger Level : Form Level
Trigger Text :
declare
error_item varchar2(50);
current_item_label varchar2(100);
begin
if error_type='FRM' and error_code=40202 then
error_item:=:system.trigger_item;
current_item_label:=get_item_property(error_item,prompt_text);
message(current_item_label||'cannot be left blank');
message(' ');
else
message(error_text);
end if;
end;
Trigger Name : WHEN-NEW-BLOCK-INSTANCE Form : Problem_master
Block : Problem Item :
Trigger Focus : To add value in List item.
Trigger Level : Block Level
Trigger Text :
declare
pos number :=0;
begin
for J in (select ctn from problem_entry)
loop
pos:=pos+1;
add_list_element('ctn',pos,J.ctn,J.ctn);
end loop;
for J in (select user_id from user_details_master)
loop
pos:=pos+1;
add_list_element('user_id',pos,J.user_id,J.user_id);
end loop;
end;
Trigger Name : WHEN-LIST-CHANGED Form : Problem_master
Block : Problem Item : ctn
Trigger Focus : To populate value based on ctn.
Trigger Level : Item Level
Trigger Text :
BEGIN
SELECT
PRO.CUST_ID,PRO.PROBLEM_TYPE,PRO.PROBLEM_DESC,PRO.CALL_DATE,PRO.C
ALL_TIME,
SOL.ACTION_TAKEN,SOL.USER_ID,ASS.ASSIGN_DATE,ASS.ASSIGN_TIME,SYSDA
TE,TO_CHAR(SYSDATE,'HH24:MI:SS')
INTO :CUST_ID,:PROBLEM_TYPE,:PROBLEM_DESC,:CALL_DATE,:CALL_TIME,
:
ACTION_TAKEN,:USER_ID,:ASSIGN_DATE,:ASSIGN_TIME,:REOPEN_DATE,:REOPE
N_TIME
FROM PROBLEM_ENTRY PRO,PROBLEM_SOLVER_DETAILS_MASTER
SOL,PROBLEM_ASSIGNMENT ASS
WHERE PRO.CUST_ID=ASS.CUST_ID
AND PRO.CTN=SOL.CTN
AND PRO.CTN=:CTN;
EXCEPTION
WHEN NO_DATA_FOUND THEN
MESSAGE('Record does not exist!!!');
message(' ');
raise form_trigger_failure;
WHEN too_many_rows THEN
MESSAGE('Record exist with too many rows!!!');
message(' ');
raise form_trigger_failure;
WHEN dup_val_on_index THEN
MESSAGE('Record has duplicate value!!!');
message(' ');
raise form_trigger_failure;
WHEN value_error THEN
MESSAGE('Record has larger value!!!');
message(' ');
raise form_trigger_failure;
WHEN others THEN
MESSAGE('You are getting error!!!');
message(' ');
raise form_trigger_failure;
end;
Trigger Name : WHEN-LIST-CHANGED Form : Problem_master
Block : Problem Item :
user_id
Trigger Focus : To populate value based on user id.
Trigger Level : Item Level
Trigger Text :
:reassign_date:=sysdate;
:reassign_time:=to_char(sysdate,'hh24:mi:ss');
update problem_solver_details_master
set user_id=:user_id,solver_name=(select user_name from user_details_master
where user_id=:user_id)
where ctn=:ctn;
Trigger Name : WHEN-BUTTON-PRESSED Form : Problem_master
Block : Button Item : pb_add
Trigger Focus : To insert a record.
Trigger Level : Item Level
Trigger Text :
declare
ctr number :=0;
begin
go_block('problem');
select count(ctn)into ctr from problem_master
where ctn=:ctn;
if ctr > 0 then
message('Call Track No already assigned!!');
message(' ');
raise form_trigger_failure;
else
create_record;
commit;
end if;
end;
Trigger Name : WHEN-BUTTON-PRESSED Form : Problem_ master
Block : Button Item : pb_modify
Trigger Focus : To modify a record.
Trigger Level : Item Level
Trigger Text :
go_block('problem');
update problem_master
set
cust_id=:cust_id,problem_type=:problem_type,problem_desc=:problem_desc,
action_taken=:action_taken,user_id=:user_id,call_date=:call_date,call_time=:ca
ll_time,
assign_date=:assign_date,assign_time=:assign_time,reopen_date=:reopen_date,
reopen_time=:reopen_time,reassign_date=:reassign_date,reassign_time=:reassi
gn_time
where ctn=:ctn;
Trigger Name : WHEN-BUTTON-PRESSED Form : Problem_Status
Block : Button Item : pb_delete
Trigger Focus : To clear a record.
Trigger Level : Item Level
Trigger Text :
declare
ans number;
ctr number:=0;
begin
select count(ctn) into ctr from problem_master
where ctn=:ctn;
if ctr > 0 then
ans:=show_alert('my_alert');
if ans=88 then
go_block('problem');
delete_record;
commit;
end if;
else
message('Record does not exist !!');
message(' ');
raise form_trigger_failure;
end if;
end ;
Trigger Name : WHEN-BUTTON-PRESSED Form : Problem_master
Block : Button Item : pb_clear
Trigger Focus : To clear a record.
Trigger Level : Item Level
Trigger Text :
begin
go_block('problem');
clear_record;
end;
Trigger Name : WHEN-BUTTON-PRESSED Form : Problem_master
Block : Button Item : pb_save
Trigger Focus : To save a record.
Trigger Level : Item Level
Trigger Text :
begin
go_block(' problem ');
commit;
end;
Trigger Name : WHEN-BUTTON-PRESSED Form : Problem_master
Block : Button Item : pb_exit
Trigger Focus : To exit from a Form.
Trigger Level : Item Level
Trigger Text :
declare
ans number;
begin
if :system.form_status='CHANGED' then
set_alert_property('my_alert',title,'Save Changes');
set_alert_property('my_alert',alert_message_text,'Would yoy like
to make Changes Permanent?');
ans:=show_alert('my_alert');
if ans=88 then
go_block(' problem ');
commit;
end if;
end if;
exit_form(no_commit);
end;
Trigger Name : WHEN-BUTTON-PRESSED Form : Problem_master
Block : Button Item : pb_last
Trigger Focus : Go to last record.
Trigger Level : Item Level
Trigger Text :
begin
go_block(' problem ');
last_record;
end;
Trigger Name : WHEN-BUTTON-PRESSED Form : Problem_master
Block : Button Item : pb_next
Trigger Focus : Go to next record.
Trigger Level : Item Level
Trigger Text :
begin
go_block(' problem ');
next_record;
end;
Trigger Name : WHEN-BUTTON-PRESSED Form : Problem_master
Block : Button Item : pb_prev
Trigger Focus : Go to previous record.
Trigger Level : Item Level
Trigger Text :
begin
go_block(' problem ');
previous_record;
end;
Trigger Name : WHEN-BUTTON-PRESSED Form : Problem_ master
Block : Button Item : pb_first
Trigger Focus : Go to first record.
Trigger Level : Item Level
Trigger Text :
begin
go_block(' problem ');
first_record;
end;
Trigger Name : WHEN-BUTTON-PRESSED Form : Problem_master
Block : Button Item : pb_view
Trigger Focus : Retrieve all record and Go to first record.
Trigger Level : Item Level
Trigger Text :
begin
go_block(' problem ');
execute_query;
end;
Trigger Name : WHEN-BUTTON-PRESSED Form : Problem_master
Block : Button Item : pb_search
Trigger Focus : To search for a specific record.
Trigger Level : Item Level
Trigger Text :
begin
go_block(' problem ');
enter_record;
end;
Another Objects used in Reassignment Form :
1. Alert :
Name : My_Alert
Alert Style : Stop
No. of Button : 2
Used for : pb_save,pb_exit
5. Popup-Menu :
Name : Shortcut
User for : problem _can
3. Property-Class :
Name : PC_canvas
Background-Color : r100g100b75
User for : problem _can
CODING OF VARIOUS ITEM’S OF DIFFERENT MENUCODING OF VARIOUS ITEM’S OF DIFFERENT MENU
PROJECT MENU :
EXIT :
Exit_form;
CUSTOMER DETAILS :
OPEN_FORM('C:FINALCUSTOMER_MASTER.FMX');
USER DETAILS :
OPEN_FORM('C:FINALUSER_MASTER.FMX');
PROBLEM ENTRY :
OPEN_FORM('C:FINALPROBLEM_ENTRY.FMX');
ASSIGNMENT :
OPEN_FORM('C:FINALPROBLEM_ASSIGNMENT.FMX');
REASSIGNMENT :
OPEN_FORM('C:FINALPROBLEM_MASTER.FMX');
CHECKING :
OPEN_FORM('C:FINALPROBLEM_STATUS.FMX');
SOLVER DETAILS :
OPEN_FORM('C:FINALPROBLEM_SOLVER.FMX');
CUSTOMER DAILY REPORT :
Run_product(reports,'c:finalcust_daily_report.rep',s
ynchronous,runtime,filesystem,' ');
CUSTOMER WEEKLY REPORT :
Run_product(reports,'c:finalcust_weekly_report.rep',
synchronous,runtime,filesystem,' ');
CUSTOMER MONTHLY REPORT :
Run_product(reports,'c:finalcust_monthly_report.re
p',synchronous,runtime,filesystem,' ');
COMPLAINT DAILY REPORT :
Run_product(reports,'c:finalcomplaint_daily.rep',syn
chronous,runtime,filesystem,' ');
COMPLAINT WEEKLY REPORT :
Run_product(reports,'c:finalcomplaint_weekly.rep',s
ynchronous,runtime,filesystem,' ');
COMPLAINT MONTHLY REPORT :
Run_product(reports,'c:finalcomplaint_monthly.rep',
synchronous,runtime,filesystem,' ');
SOLVING TIME REPORT :
Run_product(reports,'c:finalsolving_time.rep',synchr
onous,runtime,filesystem,' ');
PROCESSING TIME REPORT :
Run_product(reports,'c:finalprocessing_time.rep',sy
nchronous,runtime,filesystem,' ');
TOTAL COMPLAINT REPORT :
Run_product(reports,'c:finaltotal_complaint.rep',syn
chronous,runtime,filesystem,' ');
PROBLEM DAILY REPORT :
Run_product(reports,'c:finaltotal_type_daily.rep',syn
chronous,runtime,filesystem,' ');
PROBLEM WEEKLY REPORT :
Run_product(reports,'c:finaltotal_type_weekly.rep',s
ynchronous,runtime,filesystem,' ');
PROBLEM MONTHLY REPORT :
Run_product(reports,'c:finaltotal_type_monthly.rep',
synchronous,runtime,filesystem,' ');
USER DETAILS REPORT :
Run_product(reports,'c:finaluser_details.rep',synchronous,runtime,filesystem,'
');
COMPLAINT STATUS REPORT :
Run_product(reports,'c:finalcomplaint_status.rep',synchronous,runtime,file
system,' ');
PROJECT SUB MENU :
SAVE :
Begin
Commit;
End;
EXIT :
Exit_form;
VIEW ALL :
Execute_query;
SEARCH :
Enter_query;
INSERT :
begin
create_record;
end;
UPDATE :
declare
blk_name varchar2(50);
form_name varchar2(50);
str_base_table varchar2(50);
begin
form_name:=get_application_property(current_form_name);
blk_name:=get_form_property(form_name,first_block);
str_base_table:=get_block_property(blk_name,DML_DATA_TARGE
T_NAME);
if str_base_table is not null then
go_block(blk_name);
end if;
end;
DELETE :
declare
blk_name varchar2(50);
form_name varchar2(50);
begin
form_name:=get_application_property(current_form_name);
blk_name:=get_form_property(form_name,first_block);
if blk_name ='ENTRY' THEN
message('Deletion not Allowed !!');
message(' ');
else
delete_record;
end if;
end;
FIRST :
First_record;
NEXT :
Next_record;
PREV :
Previous_record;
LAST :
Last_record;
Code of a program will be said efficient when it uses appropriate
algorithm in domain of problem. By using such an algorithm in
coding enables the program to run faster and take least memory
spaces during execution. I have try my best effort in coding of
this software to make its program more efficient from each angle,
such as timing complexity and space complexity by choosing
suitable algorithm for each particular problem. Perhaps I cannot
say that all coding of my programs are well efficient.
CODE EFFICIENCY
The code is called efficient when it is easy to understand,
tested and maintained works properly. The code in this software
is easy to understand, tested and maintained. Each module is
separately coded in order to be simple and easily understood by
other programmer. It is less error prone. It can be easily
maintained.
The care has been taken to trap the most common error
message to make the code efficient. A code walk-through is an
informal technique for analysis of the code. A code walk-through
of a module is undertaken after the coding of the module is
complete. In this technique, after a module has been coded,
members of the development team select some test cases and
simulate execution of the code by hand making the coding of the
module efficient.
Optimization of code is a process of shrinking the size of codes in
a program without affecting the output of program consequently
when code size reduces it takes less space in storage and also
OPTIMIZATION OF CODE
take less memory after loading during program execution and so
program runs faster. Another benefit by reducing the size of code
is that it becomes easy to coding so less prone to error and also
optimize codes are easy to read and understand so it requires
less effort in debugging. Here I have also try to optimize codes of
my software by modularizing the problem using function and
subroutine calls. I have also used inbuilt function and
subroutines provided by the D2K.
The project is Divided into different modules as under :-
• Customer/User Login Module: - This module is for login
by the customer and various users. The Customer can
directly login through this module. The User can be a
Customer Operator, Supervisor and Problem Solver. This
module is integrated with restriction of unauthorized
access module. Each user can only access those data,
which are required for his/her work.
• Problem,/Complaint Entry and CTN generation
Module :- This module is for Customer and the Computer
Operator for entry of Problem/complaint. The system
automatically generates the Call Track No through this
module.
• Assignment Module: -This module is for the Supervisor.
The Supervisor assigns the Problem/complaint to the
Problem Solver and the stores assign_date, assign_time in
the Master database.
• Problem/Complaint Solving Module: - This module is for
the Problem Solver. The Problem-solver solves the assigned
problem/complaint and mails the solved information to the
customer. He/she also stores date and time of solving a
problem/complaint.
• Problem/Complaint Status Checking Module: - This
module is for Supervisor. The Supervisor continually check
the various status of Problem/complaint such as assigned
or not, solved or not.
• Reassignment or Reopen Module:- If the complaint is not
assigned then he assigns it. If the complaint is not solved
then he reassigns it or sends reminder to the Problem
Solver. The Supervisor can reopen/reassign a particular
complaint and stores date and time of reopen and reassign.
• Restriction of Unauthorized accesses Module:-
Unauthorized Customer/Users are restricted to access in
the system.
• Change of privileges Module: - Privileges will be granted
on the basis of groups created by Supervisor. They can
also be revoked in case the granted privileges are misused.
• Report generation Module :- This module generates
various reports.
Validation refers to the process of using software in a live
environment using real data. . Validation is successful when
software functions in a manner that can be reasonably expected
by the customer.
Suitable validation checks have been put wherever need was
felt so as to avoid wrong data input. Coding has been done so as
to avoid wrong entries in the tables. For example Numeric
character are not allowed in the Customer’s name. Various
modules have different process logic, which involves sorting of
data on different attributes and selection of required attribute
depending upon conditions have been decided.
VERIFICATION: This checks if we are building the product right
(i.e. does it meet the requirements specification?)
VALIDATION CHECKS
VALIDATION: This determines if we are building the right
product? (i.e. does the requirement specification describe
what the customer wants?)
The various kinds of Validations performed in our system are as
follows:
1) Date Validation: The validation on date data type has been
specified to be of the format DD/MM/YY. Any other format is
unacceptable.
2) Time Validation: The validation on time data type has been
specified to be of the format hours-minutes-seconds. Any other
format is unacceptable.
3) From-Date to To-Date: The “From Date” always has to be less
than the “To Date”, e.g. From 01 Jan, 2010 to 27 April , 2010 is
correct and it cannot be other way round.
4) From-Time to To-Time: The “From Time” always has to be
less than the “To Time”, e.g. From 5-30-05 to 10-35-30 is correct
and it cannot be other way round.
5) Number Field Validation: The field specified with Number as
then their data-type will not accept Character or any other data
type.
6) Character Field Validation: The field specified with
Character, as then their data-type will not accept Number.
7) User Authentication: When a Customer/User logs on to the
system to access data from table and database, the Id &
password needs to be checked for their authentication.
8) Password change Validation: Only authorized users are
allowed to change the password and the process requires asking
the old password before changing it to the new one.
9) Phone & Email field Validation: Only valid values are
allowed for these fields.
10) Unique Call Track No: The Call Track No. Should not be
edited. It must be unique.
11) Unique Customer/User id: The Customer-id and User-id
must be unique.
IMPLEMENTATION
Implementation means to take into practice. A crucial phase in
the system life cycle is the successful implementation of the new
system design. Implementation includes all those activities that
take place to convert from the old system to the new one. The
IMPLEMENTATION AND MAINTENANCE
new system may be completely new, replacing an existing
manual or automated system.
The proposed system is completely new system i.e. the
existing system is manual.
The Main Aspects of Implementation are as follows: -
 Training Personnel
 Conversion Procedure
 Demonstration
Training Personnel:
Even well designed system can succeed or fail because of the way
they are operated and used. Therefore the quality of training
received by the person involved with the system in various
capacities helps in successful implementation of Proposed
System.
Conversion Procedure:
Conversion is the process of changing from the old system to the
new one. It must be properly planned and executed.
Four methods are common in use, they are
 Parallel System
 Direct Conversion
 Pilot System
 Systems Phase-in
For the proposed system Parallel System will be beneficial. Under
this approach, users continue to operate the old system in usual
manner but they will also start using the new system. This
method is safest one because it ensures that in case of any
problems in using the new system, the organization can still fall
back to the old system without loss of time and money.
Demonstration:
After the system is implemented and conversion is
complete, demonstration of the system is given to persons
directly or indirectly related with the system.
MAINTENANCE
It has been estimated that maintenance of any software product
usually requires much more effort than the effort necessary to
develop the product. Many studies indicate that the relative effort
of development of a typical system to its maintenance effort is
roughly in the 40:60 ratios. Maintenance involves performing any
one or more of the following three kinds of activities:
 Correcting errors that were not discovered during the
product development phase. This is called Corrective
maintenance.
 Improving the implementation of the system and
enhancing the Functionality of the system according to
the customer’s requirements. This is called Perfective
maintenance.
 Porting the software to a new environment, e.g. to a new
computer or to a new operating system. This is called
Adaptive maintenance.
In the proposed Customer care administration had done
Corrective maintenance and Adaptive maintenance.
The importance of software testing and its limitations with
respect to software quality cannot be overemphasized. Because of
this importance and the large amount of project effort associated
with system development, It becomes quite necessary to become
well planned and through testing. Independent testing and non-
adequate testing leads to error that may be costly when they
appear month’s letters. Effective testing translates into cost
saving from reduced errors and saves a lot of project effort. It
follows major factors that decide the occurrence of errors in a
new design from the very early stage of the development.
 Communication between User and Designer: This factor is
handled by frequently communicating with the security
officers.
 Time factor for the design: This factor is handled by giving
comparatively more time to designing of the system.
Objective of System Testing:
Once a system has been designed, it is necessary to undergo
an exhaustive testing before installing the system. This is
important because in some cases a small system error, not
detected and corrected early before installation, may explode
in to a much larger problem later on. Testing is being
performed when user is asked to assist in identifying all
possible situations. That might arise as regards the factor
SYSTEM TESTING
that effort was put to tackle the problem under
consideration. A plan was decided to be followed for testing
the system. The complete testing procedure was divided in to
several procedures, to be performed in different stages. Test
was to be done as follows.
WHITE BOX TESTING:
Transaction Path Testing:
In this phase each and every condition within a unit program
were tested. As and when a loop or conditional statement were
incorporated into a unit that loops were tested for correctness,
for foundry conditions and for not getting into infinite execution
cycle. The data used was whatever necessary at that instance.
The path of each transaction from origin to destination was
tested for reliable results.
Module Testing:
This was carried out during the programming stage itself.
Individual programs were tested at the time of coding and
necessary changes are made there on to make sure that the
modules in the form program, is working satisfactory as regards
the excepted output from the modules. AI, aspects of program
viz., all choices available was properly tested.
String Testing:
After loading all individual programs, string testing was
performed for each chain of programs where the output
generated by one program used as input by another program.
This step was completed after making necessary change
wherever required.
BLACK BOX TESTING:
System testing:
After module and string testing, the systems were tested as whole
system tests were undertaken to check bundled modules for
errors. The errors found in the couple system as wholes were
corrected. This was followed by a testing on actual data of the
company. During this phase the existing system and this
package was running in parallel to enable us to verify and
compare the result sets. The following criteria were to be used
while testing the system.
Output Testing: No systems could be useful if it does not
produce the required output. For the matter asking the users
about the format required by them tested output in the required
format the outputs granted or displayed by the system under
consideration.
User Acceptance Testing: User Acceptance of a system is a key
factor for the success of any system. The system under
consideration was tested for user acceptance by constantly
keeping in touch with the prospected system users at the time of
developing and making changes wherever required. This was
done in regard to the user satisfaction.
Testing Procedure
Different types of checks like duplicate checks, completeness
check, validity checks etc are incorporated in this system, as the
data has to be entered in different cards.
The user is not familiar with the new system data entry screens
are designed in such a way that they are
 Consistent
 Compatible
 Easy to use
 Hard quick response
The following conventions are used while designing of the various
screens to make the system user friendly
 All the items that are logically related are placed together.
 Whenever possible list of values is provided to display all valid
options to the user.
 For a particular card, query has been provided.
 Error and validation messages are provided wherever
required.
 System testing is against its initial objectives, it is done either
in a simulated environment.
Test Review:
The review is the process, which ensures that testing is carried
out, as planned test review decides whether or not the program is
ready to ship out for the implementation.
For each data entry screen, we prepared test data with extreme
values and under all relevant conditions. After my own
satisfaction, I invited concern user to test the relevant
data-entry screen against real, this process helped in
rectifying the module time.
The following action carried out as part of testing
NAME
Prepared By Md. Alauddin
This test plan contains all possible test cases related to the working of CRM
Package.
Customer Administration Care for Customer Care Administration
S.No Test Case
Action /
Input
Expected Result
Actual
Result
Pass /
Fail
1.
The Login windows is
displayed once the CRM
Package is run
click on the
login button
of MDI form
Login windows
should be
displayed
Login
windows is
displayed
Pass
User Login Form
S.No Test Case Action / Input Expected Result
Actual
Result
Pass /
Fail
1.
Authenticate the user
Type user name
and password
and click on OK
The user name and
password are
checked in the
database and if they
match the user is
allowed to login
The user is
allowed to
access the
package
Pass
2. Provide invalid user
code / Password
Type an invalid
user code /
password and
click OK
Error message
should be displayed
and the user be
redirected to the
login window
The user is
redirected
Pass
3. Canceling the login
window
Click cancel for
not to run the
package
Login Screen of
CRM Package
should close
The
Package is
close
Pass
4. Provide the right
User code and
password
Type a valid
user code and
password
The MDI windows
should be displayed
The MDI
window is
displayed
Pass
User Master Form
S.No Test Case Action / Input Expected Result Actual Result
Pass /
Fail
1.
For Valid User
Name and
belonging User
data
After pressing
Save Button
If any erroneous
data is there in
form, The message
with details of error
should show
After putting
erroneous
data, message
showed
Pass
2.
Duplicate User id
After entering
existing user id
If entered user id is
already in the
database then it
prompt an error
message
On the entry
of duplicate
member code
error message
displayed
properly
Pass
3. Modify User
Data
After selecting
the user code
,data of user is
appear in
respective control
The User Id should
not be changed .
Yes, for edit
the details of
user, the all
details of the
member is
being changed
except the
user id
Pass
Customer master Form
S.No Test Case Action / Input Expected Result
Actual
Result
Pass /
Fail
1.
Verify that all the
customer’s records
are displayed
Check whether all
the All data are
displayed or not
data are displayed
Data are
displayed
Pass
2.
Verify that search
criteria is working
e.g.
cust_id,cust_name
Enter cust_name to
Searched
Data control
pointer should go
to matching
record in database
Data
pointer is
moving to
respective
record
Pass
Problem Assignment Form
S.No Test Case
Action /
Input
Expected Result
Actual
Result
Pass /
Fail
1.
Verify that all the CTN
displayed in the CTN
ComboBox
Check
whether all
the CTN are
displayed or
not
CTN are display
in the combo box
CTN
displayed
Pass
2.
Verify that blank cust
name and id are not
saved
After
pressing the
save button
If cust name or
cust id is blank
then it should
Message
“Cust id and
Cust name
Pass
prompt the
message not to
save
should not
be blank”
displayed in
case of
letting name
or code
textbox
blank
3. Verify that no Cust id is
duplicated in database
Enter any
Duplicate id
Error message
will be displayed
after entering a
duplicate id
Error
Message is
displayed
Pass
Testing Strategies:
Test Type Description
Unit Test Each independent piece of code works correctly.
Integration Test All units work together without errors.
Interface Test Usually done at integration stage when modules or sub-
systems are combined. Objective is to detect errors or
invalid assumptions about interfaces between
modules. Reason these are not shown up in unit
testing is that test case may perpetuate same
incorrect assumption made by module designer.
Particularly important when OO development has
been used.
Regression Test Newly Added features do not introduce errors to other
features that are already working.
Load Test (also
called Stress Test)
The product continues to work under extreme usage. Test
system's ability to cope with a specified load (e.g.
transactions per second). Plan tests to increase load
incrementally. Go beyond design limit until system fails
(this test particularly important for distributed systems).
Platform Test The product works on all the target hardware and
software platforms.
Top Down Test This approach tests high levels of system before detailed
components. This is appropriate when developing the
system top-down, as it is likely to show up structural
design errors early. Validation (as distinct from
verification) can begin early. Its disadvantage is that
stubs needs to be generated (extra effort) and might be
impractical if component is complex (e.g. converting an
array into a linked list; unrealistic to generate random
list; therefore end up implementing unit anyway). Test
output may be difficult to observe (needs creation of
artificial environment). This is not appropriate for OO
systems (except within a class).
Bottom Up Test This is opposite of top-down testing. This testing test low-
level unit then works up hierarchy. Its advantages
and disadvantages of bottom-up mirror those of top-
down. In this testing there is need to write test drivers
for each unit. These are as reusable as the unit itself.
Combining top-down development with bottom-up
testing means that all parts of system must be
implemented before testing can begin, therefore does
not accord with incremental approach discussed
above.
Back To Back
Test
Comparison of test results from different versions of the
system (e.g. comparing the prototype with previous
version or different configuration). The process
involves running the first system, saving test case
results. Then running the second system, also saving
its results. Finally comparing the result files. It is
important to note that no difference does imply any
bugs. Both systems may have made the same
mistake.
MAINTENANCE
Authentication is the process of identifying users. Authorization
is the process of granting access to users based on identity.
Together, authentication and authorization provide the means to
keep your application secure from intruders.
The kinds of security measures used in our System are as
follows:
User Authentication
Only the Valid users, who are present in the pre-defined list of
Users stored in User Master table, are granted permissions to
enter the System. Any user apart from Record of Users is denied
access.
User Authorization
A privilege is a right to execute a particular type of SQL
statement or to access another user’s object. Some examples of
privileges include the right to
 Connect to the database (create a session)
 Create a table
 Select rows from another user’s table
 Execute another user’s stored procedure
Privileges are granted to users so that they can accomplish tasks
required for their jobs. A privilege should be granted only to a
SYSTEM SECURITY MEASURES
user who absolutely requires it to accomplish necessary task.
Excessive granting can compromise security.
Data Manipulation Language Operations
We can grant privileges to use the various DML statements like
DELETE, INSERT, SELECT, and UPDATE to perform operations
on a table or view. We grant these privileges only to users and
roles that need to query or manipulate a table’s data.
With selective INSERT, a privileged user can insert a row with
values for the Selected columns. All other columns receive NULL
or the column’s default value.
With selective UPDATE, a user can update only specific column
values of a row.
Selective INSERT and UPDATE privileges are used to restrict a
user’s access to sensitive data.
Data Definition Language Operations
In our system we have used DDL operations to maintain the
table level security. We have a system, which keeps a track of
each and every user gaining access into the system at any time
to perform any changes on the various tables. The administrator
can see the listing of these users along with the access dates.
For security measure I have taken ‘Password’ as ‘Varchar2’ data
type, so that a user can use in this field both integer and
alphabets.
The cost estimation depends upon the following:
• Project complexity
• Project size
• Degree of structural uncertainty
• Human, technical, environmental, political – can affect
the ultimate cost of software and effort applied to
develop it.
• Delay estimation until late in the project.
• Base estimates on similar projects that have already
been completed.
• Use relatively simple decomposition techniques to
generate project cost and effort estimates.
COST ESTIMATION
• Use one or more empirical models for software cost and
effort estimation.
Project complexity, project size and the degree of structural
uncertainty all affects the reliability of estimates. For complex,
custom systems, a large cost estimation error can make the
difference between profit and loss. A model is based on
experience and takes the form:
D = f (Vi)
Where D is one of a number of estimated values (e.g. effort, cost,
project duration) and (Vi) are selected independent parameters
(e.g. estimated LOC (Line of Code) or FP (Functional parameters))
New Hardware & Software:
Intel Pentium – IV Processor
Windows Xp
Oracle 9i
Developer 2000(Form 9i,Report 9i)
DIFFERENT PHASES OF PROPOSED SOFTWARE
DEVELOPMENT
System Study :
1. SRS (System Requirement Study) Documents and approval
2. Advance Amount (50% of develop charges+full cost of the
SW)
3. Starting Of development (Interface Design and Approval)
4. Development
5. Presentation of New System
5.1 2nd
partial development charges (Rest 50%).
6. User training.
7. Implementation.
8. Support.
10. Support for the futuristic changes.
Price Quotation
• The process will start after the system study and with
an advance amount of 50% from the corporate as
advance. The rest in at the time of implementation.
• The project will approximately require 8 man months (8
people for 1 month) to be completed.
• The development cost for this proposed software will be
Rs 11,500 (per man month) * 8 (man months) = Rs
92,000/-
• Cost of original software (Oracle 9i) Rs 80,000 (approx.),
(Developer 9i) Rs 28,000 (approx.) excluding 4% LST.
Total: Rs 1,90,000 (Excluding LST on
Software)
The system provides various reports for the concerned senior
officers of RELIANCE CARE that helps in decision-making.
Supervisor is the person who is responsible for generating
various reports, these are following: -
(1) Daily Customer Report: - This report contains total
number of Customers, daily log in the system.
REPORTS
(2) Weekly Customer Report: - This report contains total
number of Customer, weekly log in the system.
(3) Monthly Customer Report: - This report contains total
number of Customer, monthly log in the system.
(4) Complaint daily Report: - This report contains how many
problems, daily entered in the system.
(5) Complaint weekly Report: - This report contains how
many problems, weekly entered in the system.
(6) Complaint monthly Report: - This report contains how
many problems, monthly entered in the system.
(7) Report on Time to resolve: - This report contains the
time taken in rectification of a particular
problem/complaint.
(8) Report on Time taken from Start to Close the
Complaints :- This report contains the time taken
between entry and closing of a complaint.
(9) Report on Total Complaints allotted to each Problem
Solver :- This report contains how many
Problem/Complaint has been allotted to Problem Solver.
(10) Type of Problem Daily Report :- This report
contains total number of complaints of a particular type,
daily logged in the system.
(11) Type of Problem Weekly Report :- This report
contains total number of complaints of a particular type,
weekly logged in the system.
(12) Type of Problem Monthly Report :- This report
contains total number of complaints of a particular type,
monthly logged in the system.
(13) Report on different Users : This report contains
total number of Users working in a organization.
(14) Complaint Status Report :- This report contains
status of all problem logged in a system.
(15) Report on Graphical Representation of Complaints :-
This report contains the graphical representation of
complaints (such as colorful bar graph) solved/on
hold/unsolved per Problem Solver.
PERT CHART
PERT (Project Evaluation and Review Technique) charts consist
of a network of boxes and arrows. The boxes represent activities
and the arrows represent task dependencies.
PERT is organized by events and activities or tasks. PERT have
more advantages and they are likely to be used for more complex
projects.
Through PERT chart the various task paths are defined. PERT
enables the calculation of critical path. Each path consists of
combination of tasks, which must be completed. The time and
the cost associated with each task along a path are calculated,
and the path that requires the greatest amount of elapsed time is
the critical path. Calculation of the critical path enables project
manager to monitor this series of task more closely than others
to shift resources to it, if it begins to fall behind schedule.
PERT controls time and cost during the project and also
facilitate finding the right balance between completing a project
on time and completing it within the budget.
There are thus not one but many critical paths, depending on the
permutations of the estimates for each task. This makes analysis
of critical path in PERT charts very complex. The PERT chart
PERT / GANTT CHART
representation of CRM PACKAGE FOR CTS problem is shown
below.
GANTT CHART
Gantt charts (developed by Henry L. Gantt) are a project control
technique that can be used for several purposes including
scheduling, budgeting and resource planning. A Gantt chart is a
bar chart with each bar representing an activity. The bars are
drawn against a time line. The length of each bar is proportional
to the length of time planned for the activity.
Gantt chart can take different form depending on their
intended use. The Gantt chart of CRM PACKAGE FOR CTS is
drawn for the time management and is given as :
4th
Sep – 15th
Mar
24th
Dec-25th
Feb28th
Oct-24th
Feb
10th
Oct-15th
Jan18th
Sep-Octth
April
10th
Oct-20th
Jan
28th
Oct-25th
Jan
24th
Jan-25th
Feb 10th
Oct-10th
Mar
Code
Database
Part
Design GUI
Part
Finish
Integrate
and Test
Design
Database
Part
Start
Report
Generation PartCode GUI
Part
Write
User
Manual
Analysis
Part
4th
Sep-15th
Mar
Stage GANTT CHART
Stage 1.
Stage 2.
Stage 3.
Stage 4.
Stage 5.
DAYS
30
Days
40
Days
45
Days
15
Days
10
Days
System
Analysi
System
Design
Coding
Testin
g
Imple
mentat
(1) Enhancement of our proposed system would be in terms of
connectivity with the rest of the departments so that
information is made available throughout the organization,
which leads to efficiency and speeding up, of a number of
processes in the organization.
(2) After successfully implementing the system, it can be added
in the system that automatically display the Customer
details when the customer make a call after identifying the
customer’s phone number.
(3) When the developed system runs successfully, it can also be
used in other areas with certain changes according to the
requirements of that area.
(4) Online Customer register facility and can see the solution in
the system itself by entering Call Tracking No. thus reducing
the workload on the Problem-Solvers.
(5) Integration of IVRS (Integrated Voice Recognition System) for
automated telephonic Problem/Complaint entry system can
be incorporated to minimize the workload on the Computer
FUTURE SCOPE
Operator. After entering the complaint the system can
automatically assign the Complaint to the Problem-Solver on
the basis of Problem/Complaint type, thus reducing the
workload on the Supervisor.
BOOK:
 Oracle 9i Handbook by Ivan Bayross
 Oracle 9i Complete Reference from Oracle Press
 Mastering Oracle SQL by Sanjay mishra
 Oracle Developer 2000 (FORMS 5.0) by Ivan
Bayross
 Oracle Developer / 2000 forma by Albert Lulushi.
 Developer 2000 – Forms 6.0, STG Materials
 Element of System Analysis and Design by
IGNOU Course Material
 Software Engineering By Ian Sommeville Or
IGNOU Materials.
BIBLIOGRAPHY
WEBSITES:
 www.Goggle.com
 www.ddj.com
 www.otn.oracle.com
Data base A store of integrated data capable of being directly
addressed for multiple uses; it is organized so that various files
can be accessed through a single reference based on the
relationship among records in the file rather than the physical
location.
Data base management system, the software that determines
that how data must be structured to produce the user’s view;
manages, stores, and retrieves data and enforces procedures.
Data dictionary A structured repository of data about data; a
list of terms and their definitions for all data items and data
stores of a system.
GLOSSARY
Data flow Movement of data in a system from a point of origin to
a specific destination – Indicated by a line and arrow.
Data flow diagram Graphic representation of data movement,
processes, and files (data stores) used in support of an
information system.
Data security Protection of data from loss, disclosure,
modification, or destruction.
Design Process of developing the technical and operational
specification of a candidate system for implementation.
DFD See data flow diagram.
Documentation A means of communication; a written record of
a phase of a specific project; it establishes design and
performance criteria for phases of the project.
Entity Also called a data aggregate; something of interest to the
user about which to collect or store data; represents a number of
data elements.
Form A physical carrier of data, of information.
Form design Evaluating present document and creating new or
improved forms that offer useful information for action.
Functionality A definition of the facilities, performance, and
other factors that the user requires in the finished product.
Information A meaningful set of data that tells something about
the data relationships.
Initial investigation An exploratory activity that determines
whether a user request is valid and feasible before a course of
action is recommended.
Password Identify authenticator; a key that allows access to a
program, system, or procedure.
PERT See program evaluation and review techniques.
Phase A set of tasks or activities that, when completed, brings a
project to a critical milestone.
Physical design A design that produces the working system by
design specifications that tell programmers exactly what the
candidate system must do.
Physical record The way data are physically recorded on a
storage medium.
Process A procedure that transforms input into useful output; in
a data flow diagram – indicated by a bubble or a circle.
Project evaluation and review technique (PERT) A flow system
model used to manipulate various values as a basis for
determining the critical path, to interpret these relationships and
to relate them back to the real world as a control technique.
Prototyping A working system to explore implementation or
processing alternatives and evaluate results.
Record A collection of aggregates or related items of data treated
as a unit.
Relation Two – dimensional table.
Security The protection of data or hardware against accidental
or intentional damage from a defined threat.
Source code A procedure or format that allows enhancement on
a software package.
System A regular or orderly arrangement of components or parts
in a connected and interrelated series or whole; a series or group
of components necessary to some operation.
System design Detailed concentration on the technical and
other specifications that will make the new system operational.
System security See security.
Systems testing Tests the whole system by the user after major
programs and subsystems have been tested.
Unit testing Changes made in an existing or new program.

More Related Content

DOCX
Online auction system srs riport
DOCX
Cake shop billing system
DOCX
TY CS Black book Construction - Dinesh48
DOC
Synopsis on billing system
PPTX
Furniture Management System
DOCX
Super marketbillingsystemproject
DOC
167543812 a-study-on-smart-card-doc
DOCX
Final Msm black book Final
Online auction system srs riport
Cake shop billing system
TY CS Black book Construction - Dinesh48
Synopsis on billing system
Furniture Management System
Super marketbillingsystemproject
167543812 a-study-on-smart-card-doc
Final Msm black book Final

What's hot (20)

PDF
Software (requirement) analysis using uml
PDF
The main purpose of the project is to manage the supermarket efficiently (rep...
PDF
C++ Program Auto workshop service system
DOC
Bank Database Project
PPTX
Project Super market billing system
PPT
C++ super market
DOC
SYNOPSIS ON BANK MANAGEMENT SYSTEM
DOCX
A computer shop management system
PPTX
Mobile Bill Management System - Project Proposal
DOC
Medical store management system
DOCX
CTTS Case Study
DOCX
Mobile shopping
PDF
SE_Lec 03_Requirements Analysis and Specification
PDF
Project black book TYIT
PPTX
Sydney water customer information & billing system
DOCX
Hospital Management System Network Diagram
PDF
Systems request
DOCX
Kamal report file
PDF
SE18_Lec 09_UML Use Cases
PDF
SE2018_Lec 16_ Architectural Design
Software (requirement) analysis using uml
The main purpose of the project is to manage the supermarket efficiently (rep...
C++ Program Auto workshop service system
Bank Database Project
Project Super market billing system
C++ super market
SYNOPSIS ON BANK MANAGEMENT SYSTEM
A computer shop management system
Mobile Bill Management System - Project Proposal
Medical store management system
CTTS Case Study
Mobile shopping
SE_Lec 03_Requirements Analysis and Specification
Project black book TYIT
Sydney water customer information & billing system
Hospital Management System Network Diagram
Systems request
Kamal report file
SE18_Lec 09_UML Use Cases
SE2018_Lec 16_ Architectural Design
Ad

Similar to CUSTOMER CARE ADMINISTRATION-developer-2000 and oracle 9i (20)

PPTX
Call Report management
DOC
E messanger
DOC
Project scheduler doc
PDF
Mca titles
PDF
Mca titles
PDF
Mca titles
PDF
Mca titles
PDF
Mca titles
PDF
Mca titles
PDF
Mca titles
PDF
Mca titles
PDF
Mca titles
PDF
Mca titles
PDF
FINAL PROJECT REPORT1
PDF
Mis project report on DELHI INFO.COM MANAGEMENT INFORMATION SYSTEM
DOCX
RUNNING HEAD Customer Care Website Implementation1Customer .docx
PDF
Online compliant response system for corporation
PDF
IRJET - Android Application Service Call Management System
PDF
Introduction American Video Game Company is accepting propos.pdf
PDF
IRJET- Special Organization through Entity Ruling for Handling E-Grievance
Call Report management
E messanger
Project scheduler doc
Mca titles
Mca titles
Mca titles
Mca titles
Mca titles
Mca titles
Mca titles
Mca titles
Mca titles
Mca titles
FINAL PROJECT REPORT1
Mis project report on DELHI INFO.COM MANAGEMENT INFORMATION SYSTEM
RUNNING HEAD Customer Care Website Implementation1Customer .docx
Online compliant response system for corporation
IRJET - Android Application Service Call Management System
Introduction American Video Game Company is accepting propos.pdf
IRJET- Special Organization through Entity Ruling for Handling E-Grievance
Ad

CUSTOMER CARE ADMINISTRATION-developer-2000 and oracle 9i

  • 1. It is great pleasure to present this report on the project title “CUSTOMER CARE ADMINISTRATION ” For Customer Care Administration (CTS) undertaken by me as part of my MCA curriculum. I am thankful to my university for offering me such a wonderful challenging opportunity and I express my deepest thanks to all coordinators, for providing all the possible help and assistance and their constant encouragement. I would like thanking my project Guide for Md. Alauddin(MCA) his comments and suggestions that have been helpful in developing this project. Thanks for all over completion of this project, I get one years experience in development field develop this project. It is with great sense of satisfaction that I present my real venture in practical computing in the form of project work. I wish to express my heart felt thanks to all who assisted me during this project. AKNOWLDGEMENT
  • 2.  ACKNOWLEDGEMENT…………………………………………..…….. …  TITLE OF THE PROJECT…………….………………..…………… ……  INTRODUCTION…………….……………………………………..…………  OBJECTIVE……………………….………………………………………….  PROPOSED SYSTEM…………………………………………..…………..  PROJECT CATAGORY…………………….………………………………  SYSTEM ANALYSIS………………………..………………………………. IDENTIFICATION OF THE NEED PRELIMINARY INVESTIGATION FEASIBILITY STUDY TECHNICAL FEASIBILITY ECONOMICAL FEASIBILITY OPERATIONAL FEASIBILITY  SOFTWARE ENGINEERING PARADIGM APPLIED……………….  SOFTWARE & HARDWARE REQUIREMENT SPECIFI………….  SOFTWARE REQUIREMENT SPECIFICATIONS………………….  SYSTEM DESIGN…………………….………………………………… DATA FLOW DIAGRAM ENTITY RELATION DIAGRAM TABLE OF CONTENTS
  • 3. DATA STRUCTURE PROCESS LOGIC RUNTIME SCREEN  CODING……………………….…………………………..………………  CODE EFFECIENCY……………….……………………………………  OPTIMIZATION OF CODE….…………………………………………  VALIDATION CHECKS……….………….……………….……………  TESTING……………………….………..………………………………  IMPLEMENTATION & MAINTENANCE ……………………………  SYSTEM SECURITY MEASURES……………………..……………  COST ESTIMATION OF THE PROJECT……………………………  REPORTS………………………..……………………………………..…  PERT CHART, GANTT CHART………………………………………  FUTURE ENHANCEMENT……….……………………..……………  BIBLIOGRAPHIC REFERENCES……………………………………  GLOSSARY ………………………………………………………………
  • 4. Title of this project is “CUSTOMER CARE ADMINISTRATION” FOR CUSTOMER CARE ADMINISTRATION (CTS); Objective of this project is to deal with all the aspect of CRM (Customer Relationship Management) starting from Customer’s Problem entry , complaint resolution , tracking of complaints as well as report generation. We have used Developer 2000 (Form 6i, Report 6i) as Front End and Oracle 9i as a Backend Database. In current competitive scenario every business establishment needs quality processes to increase their efficiency as well as improve their productivity. It is of vital importance that manual, time consuming & monotonous operations be automated so as to streamline the working of an organization. It is keeping in mind this business philosophy (mantra) that we propose a Customer Care Administration (CCA) for ReLIANCe CARE. Our system will deal all the aspects of CRM (Customer Relationship Management) starting from Customer’s Problem entry, processing, complaint resolution, tracking of complaints as well as report generation. INTRODUCTION TO THE PROBLEM
  • 5. The Objectives of developing the CCA are as given below: - (1) To store data of all the customers who are registered in the organization. (2) To solve the customer’s problem in time efficient manner. (3) To facilitate easy and efficient retrieval of data as and when required for study by the senior officials. (4) To generate and print out the various reports. The online MIS reports are generated for the concerned senior officers of ReLIANCe CARE to monitor the progress of complaint attendance. (5) As the problem on part of customer can be regarding enhancement of the services, thus it will help in the tracking the calls and after studying the various problems with each track number, the company can upgrade it’s quality of services. (6) The tracking of previous customers calls can also make the company (organization) aware of the changing needs of the customers. (7) Data security is maintained to relatively high level by implementing it at database level, so as to ensure that only authorized users have access to confidential client information. OBJECTIVE
  • 6. Customer Care Administration System is developed to deal with all the aspects of Customer Relationship Management. The proposed system of this project are: - • This is a application intended to provide automated solution to customer’s problem/complaint. • The customer can book the problem/complaint round the clock. • Problem/complaint can be registered in two ways : * From any computer connected to Internet * Through telephone In the first way the customer can log on to the system via Internet. In this case the customer enters in the system after the authentication of the customer_id. After the authentication he/she Enters his/her problem and submit it. While in the second way, the customer does not interact directly to the system but he/she makes a telephonic call and the End-user (Data Entry Operator) in the organization authentication his customer_id and then asks for the problem description (complaint). The End-user here submits the customer’s problem description along with the customer details. • When the customer/subscriber loges his /her problem and if he/she is valid customer then the system automatically generates a Call Track Number (CTN). PROPOSED SYSTEM
  • 7. The Supervisor assigns problem/complaint to the Problem-solver on his/.her user-id. The Supervisor will check each lodged problem/complaint. Supervisor can reopen, reassign, close the call and keep the records of reopened, reassigned calls with Date and Time. He will be able to locate all logged calls. He generates various reports. Finally Supervisor has the following information: -  What problem assigned to whom i.e. Problem-solver.  Customer details.  What action taken in a particular problem/complaint.  Call is solved or not and by whom.  Who closed the call?  At the time of final closing check information send or not to the customer.  Status from solved to close. The Problem-solver solves the problem/complaint assigned to him by the Supervisor. He sends solved information to the customer on his email-id and changes the status from unsolved to solved. • Status of complaints can be known at any time using the CTN. • The system provides various reports for the concerned senior officers of ReLIANCe CARE that helps in decision-making. • Nobody have right to delete the logged calls.
  • 8. In today’s competitive environment, where everybody wants to be on the top, Information plays very crucial role. As fast as information is accessed and processed, it can give good results. Computerized system helps to fulfill these goals. Computerization of the System will help in doing lot of manual work quickly. RDBMS (Relational Database Management System):A Relational data model was invented by E.F. Codd and is based on one simple concept i.e. Table. A RDBMS is a computer program for managing table. It has three major parts:  Data that is presented as tables.  Operators for manipulating tables. Integrity rules on tables. This is an Application Project, we are using Developer 2000 (D2K) as a Front end & Oracle 9i as a Back end. This project can be categorized as a Relational Database Management System (RDBMS) Project. PROJECT CATEGORY
  • 9. System Analysis by definition is a process of systematic investigation for the purpose of gathering data, interpreting the facts, diagnosing the problem and using this information to either build a completely new system or to recommend the improvements to the existing system. System analysis is the detailed study of the various operations performed by a system and their relationships within and outside the system. This is the phase of the system development where the user requirements are defined. Present system is studied. Problem is verified and the performance expected by the proposed system is calculated. The first step in the system development process is the initial investigation. Verification of the user request and is requirements, identification of the problem, determining the feasibility of the request etc, are the major aims to be kept in mind in this phase. Fact-finding is the first step in the initial investigation. It includes a review of the written documents, on side observations, interviews etc. The next step is the fact analysis, which evaluates the elements of the input and the SYSTEM ANALYSIS
  • 10. output of the given system. Data flow evaluates and flow charts are prepared in this phase. The outcome of the initial investigation is to determine whether the alternative system is feasible in the present circumstance. Approval of the document, detailing the findings of the initial investigations, initiates the feasibility study, which leads to the selection of the best candidate system. A satisfactory system analysis involves the process of examining a business situation with the intent of improving it through better methods and procedures. In its core sense, the analysis phase defines the requirements of the system and the problems which user is trying to solve irrespective of how the requirements would be accomplished. There are two methods to perform System Requirement Analysis: Structured Analysis: Structured Analysis is an analysis method that provides a basis for developing a model of software to be developed. The objective of structured analysis is to identify the customer requirements and establish a basis to create a software model. The components of a Structured Analysis are • Data Dictionary • Entity Relationship Diagram • Data Flow Diagram • Process Specification • Control Specification Object Oriented Analysis:
  • 11. It refers to a detailed study of the various objects involved in a system and the relationship of these objects with each other. While performing an object- oriented analysis, the focus of the system analyst is on the availability of the objects that are relevant to software development. First and foremost we have to identify the need for development of such a System for CCA. IDENTIFICATION OF NEED: There is no efficient method to handle the problem of Customers; it is more time consuming to know the status. The operator has to search in so many registers for that. The requirements are identified from the study of the existing system, interview with the officials, on site observation etc. Almost all the banks and bigger organizations are in today scenario have computerized systems. Where as many of the middle level and small organization still continue to work on manual system for maintaining data, accounting etc. The reason being that many of the organization do not have infrastructure to get the software and use the software.
  • 12. The basic purpose behind Preliminary Investigation is to first clarify, understand and evaluate the Project Request. PRELIMINARY INVESTIGATION: Preliminary Investigation basically refers to the collection of information those guides the management of an organization to evaluate the merits and demerits of the project request and make an informed judgment about the feasibility of the proposed system. This sort of investigation provides us with a through picture of the kind of software and hardware requirements which are most feasible for the system, plus the environment in which the entire project has to be installed and made operational. The purpose of preliminary investigation is to evaluate system requirements. It objective includes clarification and understanding of system requirements, determine the size of project, assess cost and benefit, and determine the technical and operational feasibility. I adopted on-site observation, reviewing organization documents and interviewing as fact-finding techniques during preliminary investigation. Overview of Preliminary Investigation
  • 13. The next step I had done in system analysis is on-site observation. Through this I got a better understanding of the system and various persons involved in the system. I finally conducted interviews with the persons related to the present system. It helped me to get the user’s view about the system and suggestions about the proposed system. I got idea about the responsibilities of various assistant. After conducting the system analysis, I got a understanding of requests and idea about the size of the project.
  • 14. A feasibility study is conducted to select the best system that meets performance requirement. This entails an identification description, an evaluation of candidate system and the selection of best system for he jobs. The system required a statement of constraints, the identification of specific system objective and a description of outputs define performance. The feasibility study for a project should be undertaken in the following order: 1. Economic feasibility 2. Operational feasibility 3. Technical feasibility Overview of Feasibility FEASIBILITY STUDY
  • 15. Many feasibility studies are disillusioning for both users and analysts. If the feasibility study is to serve as decision document, it must answer three key questions. 1. Is there a new and better way to do the job that will benefit the user? 2. What are the costs and savings of the alternatives? 3. What is recommended? The key considerations are involved in the feasibility analysis: 1. ECONOMIC FEASIBILITY : Economic analysis is the most frequently used method for evaluating the effectiveness of a candidate system. Most commonly known as cost benefits analysis, the procedure is to determine the benefits and savings that are expected from a candidate system and compare them with costs. As the part of Economic feasibility for Customer Care Administration, followings are the advantages:- At present 3 persons are employed Employee Designation Salary 1. Supervisor 10,000/=
  • 16. 2. Assistance Accountant 7,500/= 3. Part time Assistant 3,500/= Total 21,000/= For computerized system the following staff is being utilized Employee Designation Salary 1. Part time Solver cum Accountant 3,500/= 2. Supervisor cum Computer Operator 6,000/= 3. Operator cum Assistant 3,500/= Total 13,000/= Total saving will be 8000/= per month and per year saving is 96,000/= Total cost of the CRM Package for CTS will be recovered with in two years. Apart from this the huge sum will have been saving per year. So at this point it can observe that this package is Economic Feasible. 2. OPERATIONAL FEASIBILITY : A proposed system will be used effectively after it has been developed Operational feasibility depends on several issues i.e., * Does management/users support the project? * Do users see the need for change? * Will the new system require training for user? Customer Care Administration covers all the above aspects. One is a technical performance aspect and other is acceptance within the organization.
  • 17. Operational feasibility must determine how the purposed system will fit in with the current operations and what, if any, job restructuring and retraining may be needed to implement the system. The proposed software shall be GUI based and very user friendly with minimum Operation handicaps so that persons can be easily trained to use the software and also maintain it. 3. TECHNICAL FEASIBILITY : Technically feasibility is concerned with the specifying equipment and software that will successfully satisfy the user requirement. The technical needs of the system may vary considerably, but might include:  The facility to provide the outputs in a given time.  The response time under certain conditions.  Ability to process certain volume of transactions at a particular speed.  Facility to communicate data to distinct locations. In examining the technical feasibility, configuration of the system may give more importance than the actual make of the hardware. The configuration should give the complete picture about the system requirements: how many workstations are required, how these units are interconnected so that they could operate and communicate smoothly. As a front end we can use a Developer 2000. A computer with standard Pentium 3 configuration would be sufficient. Being a small system it is possible to build the system on the available software.
  • 18. (In this case as already discussed Developer 2000 as Front End and Oracle 9i as Back End has been decided) Software Engineering is a planned and systematic approach to the development of software. It is a discipline that consists of methods, tools and techniques used for developing and maintaining software. To solve actual problems in an industry setting, software engineer or a team of engineers must incorporate a development strategy that encompasses the process, methods and tool layers and generic phases. This strategy is often referred to as a process model or Software Engineering paradigm. I have applied Linear Sequential Paradigm also called Classic Life Cycle or the Waterfall Model to develop this software that begins at the system level and progress through analysis, design, coding, testing, and support. Following figure illustrates the linear sequential model for software engineering. Modeled after a conventional engineering and cycle, the linear sequential model encompasses the following activities: The Linear Sequential Model SOFTWARE ENGINEERING PARADIGM
  • 19. The Software Requirements Specifications basically states the goals and objectives of the software. It provides a detailed description of the functionality that software must perform. The Customer Care Administration deals with the processing of problem’s details in order to generate a Call Track Number, which dentifies every customer. In our Customer Care Administration Project the software requirements specifications are as follows: • The system should demand only valid users (Users present in the user master database) who can gain entry into the Customer Care Administration. Analysis Analysis Design Design Code Code Test Test System/Information Engineering SOFTWARE REQUIREMENT SPECIFICATION
  • 20. • The client requires the Auto generation concept to be used in all the master forms. • For the users logging into the system, performing updates, inserts, deletions, • A new entry should be automatically created in the Master Table, which gives the administrator visibility to all the users handling the system. • Since our application is on a client server based concept , • It is required that the application should reside on a server and various clients should be able to access it. Hardware Specification • Pentium IV 1.7 GHz • 256 MB DDRAM • 40 GB HDD Software Specification • Windows Xp • Oracle 9i • Developer 2000 (Form9i & Report 9i) SOFTWARE AND HARDWRE SPECIFICATION
  • 21. BENIFITS OF ORACLE 9i The Oracle 8i is an industry leading database system designed for mission critical data storage and retrieval. The RDBMS is responsible for accurately storing data and efficiently retrieving that data in response to user queries. Its Popularity is owned to a number of factors like its ability to support dozens to thousands of simultaneous users, its ability to handle high transaction rates and its ability to access databases that ranges in size from several hundred megabytes to many gigabytes. The Oracle Corporation also supplies interface tools to access data stored in an Oracle database. Two of these tools are known as SQL*Plus, a command line interface, and Developer 6i (now called simply Developer), a collection of forms, reports and graphic interfaces. This technical working paper introduces the features of the SQL*Plus tool and provides a tutorial that demonstrates its salient features. Many Concurrent Database Performances It supports large no of concurrent users executing a variety of database Applications operation on the same data. It minimizes data connection & guarantees data concurrency.
  • 22. High Transaction Processing Performance Oracle maintains the processing features with a high degree of overall system performance. Database user doesn’t suffer from slow processing performance. High Availability At some sets Oracle works 24 Hours per day with no downtime or limit database throughput. Normal system operation such as database backup & partial completion system failure don’t interrupt database use. Controlled Availability Oracle can selectively control the availability of data at the database level & sub Database level. e.g. an administrator can disallow use of a specific application. Data can be reloaded without affecting other application. Industry Accepted Standards Oracle adheres to industry accepted standards for the data access language operating system, user interface & network communication protocols. It is open system that protocols a customer invention. Manageable Security To protect against unauthorized database aspects & users, Oracle provides failsafe security features to limit & monitor the data area. The system make it easy to manage even the most completed designs for data assets.
  • 23. Database Enforced Integrity Oracle enforces data integrity “Business rules” that indictates the standards for applicable data. As result the cost of coding & managing checks in many database applications are eliminated. Distributed Database System For community environment that are connected via networks, Oracle combines the data physically located on the different computers in one logical database that can be accessed by all the network users. Distributed systems have same degree of user transparency & data consistency as non-distributed systems. Yet receives the advantages of local database management. Portability Oracle software is compatible to work under different operating system & same on all system. Application developed on Oracle can be used on virtually any system with little or no more modification. Compatibility Oracle software is compatible with industry standards, including most industry standards operating systems. Application developed on Oracle can be used on virtually any system with little or no modification. Connectivity Oracle software allows different types of computers & operating system to share information networks.
  • 24. Typical Development Environments Developing applications using an Oracle database requires access to a copy of the Oracle RDBMS (or a central Oracle RDBMS server), and one or more of the development tools. Muli-user development in a shared environment can be accomplished using an Oracle RDBMS server running on a server machine. Distributed client PCs can develop the applications using any of the tools mentioned above. Regardless of the development environment used, the Oracle SQL*Plus utility is a convenient and capable tool for manipulating data in an Oracle database. In the following section, the SQL*Plus tool is introduced. SQL*Plus commands allow a user to manipulate and submit SQL statements. Specifically, they enable a user to: • Enter, edit, store, retrieve, and run SQL statements • List the column definitions for any table • Format, perform calculations, store, and print query results in the form of reports • Access and copy data between SQL databases There are many other features of Oracle 9i
  • 25. • Improved Scalability: The maximum size of an Oracle database has been increased to support hundreds of terabytes depending on the operating system on which it resides. • Security Management: Oracle 9i provides a controlled to data to users by providing a combination of privileges. • Backup and Recovery: Oracle 9i provide sophisticated security backup and recovery routines. • Open connectivity: Oracle 9i provides open connectivity to and from other vendor’s software such as Microsoft. • Also Oracle 9i database can be accessed by various front- end software’s such as Developer 2000,Visual Basic, C • Space Management: In Oracle 9i one can flexibly allocate disk spaces for data storage and can control them subsequently. • Oracle 8i is designed with special feature of data warehousing. • Import/export support is provided for domain indexes. Indexes (including domain indexes) are exported by
  • 26. exporting the index definitions, namely the DELETE INDEX statements. • Because domain index data stored in database objects, such as tables, is exported, there is a fast rebuild of domain indexes at import time. BENEFITS OF DEVLOPER 9i Developer 9i is comprised of several powerful tools enabling Developers to create robust, highly scalable client server applications more quickly than would be possible using a programming language such as C, Java. With Developer 6i, developers can use tools to create the different parts of the applications such as : Enhanced Productivity: For individual developers, Developer 6i speeds applications design by employing object orientation, (RAD) technique, a unified Client-Server architecture and online computer based training modules.
  • 27. It also allows components to be reused and to be grouped into classes whose characteristics can be inherited by subclasses. For team development, Developer2000 project builder can manage all of D2K components, as well as the third party sources, such as documentation or multimedia files Scalability: Oracle Developer2000 is designed to accommodate multithread client-server architecture. It helps on application for scale up to handle large quantities of data. At the server, it provides array data manipulation such as insert and delete. It improve the application performances because the application sends inserts, deletes, updates to server in a batch. The benefit is that it reduces the network traffic, so the server can accommodate a number of users. Openness: D2k provides a rich set of features for interacting with other applications. Usability: The user can build the followings by using D2k. • Intuitive drag and drop user interface. • Incorporate image and sound files that are stored either within the database or as individual files.
  • 28. Visualization: D2k provides a feature called “Dynamic Visualization”, which allows to create features such as Runtime chat editing, Seamless web editing Graphical drill-down from overview to line item details. Visual selection of data based on the context of the data within it. Web deployment: D2K helps in deploying application on the Internet or an Intranet with a minimum effort. Data entry forms, graphics and reports can all utilize a web browser as the client portion of a client-server system. OPERATING SYSTEM: Windows XP is easier to manage & configure because it is very user-friendly and is GUI based operating system. The Front-End- Tool Developer 2000 as a GUI application and required the O.S. who gives the platform as GUI environment. Design is a meaningful engineering representation of something that is to be built. It can be traced to a customer's requirements SYSTEM DESIGN
  • 29. and at the same time assessed for quality against a set of predefined criteria for good design. It focuses on four major areas of concern: • Data • Architecture • Interfaces • Components Beginning once software requirements have been analyzed and specified, software design is the first of three technical activities - design, code generation, and test - that are required to build and verify the software. Each activity transforms information in a manner that ultimately results in validated computer software. The data design transform the information domain model created during analysis into data structures that will be required to implement the software. The architectural design defines the relationship between major structural elements of the software, the “design pattern" that can be used to achieve the requirements that have been defined for the system, and the constraints that affect the way in which architectural design patterns can be applied. The interface design describes how the software communications within itself, with systems that interoperate with it, and with humans who use it.
  • 30. The component- level design transforms structural elements of the software architecture into a procedural description of software components. The importance of software design can be stated with a single word - quality. Design is the place where quality is fostered. Design provides us with representations of software that can be assessed for quality. Design is the only way that we can accurately translate a customer's requirements into a finished software product or a system. The primary objective of the system design is to deliver the requirements specified in the feasibility report. The main design objective I give significance are Practicality This system will be user-friendly so user with average skills can easily operate. Efficiency This system will produce output in time with accuracy. Cost The system is to design with a minimum cost to satisfy the requirements. Flexibility The system will be a modifiable one depending on future needs.
  • 31. Security The system should be reliable, secure one. Mainly following parts have been included in the system design process: (i) Output design: the starting point of the design process is the proper knowledge of system requirements, which will normally be converted in terms of output. (ii) Input design: once the output requirements have been finalized, the next step is to find out what data to be made available to the system to produce the desired outputs. The basic documents in which these data are available need to be identified. (iii)Database design: once the data is captured in the system, these have to be preserved for long period. These data is will generally stored in files in a logical manner (iv)Procedure design: this step involves specifications of how processing will be performed. (v)Control design: it indicates necessary procedures which will ensure correctness of processing, accuracy of data, timely output etc.
  • 32. Input Design: The goal of designing makes data entry easy and error free. The input screens of this system clearly give the length of data fields. It follows the same field sequence of the source documents/forms of the organization. The system follows the same data formats as the user follows. Example: ‘dd/mm/yyyy’ for date values. Every input screen is designed for this system requires only limited amount of input data. So it avoids delays and improves the data entry speed as well as the overall speed of the system. Necessary input validation checks are provided at every data entry screens, so it reduces the possibility of erroneous input. The input screens are made as simple as possible by avoiding extra steps to make it comfortable to the users. This system uses the menu convention to display the options the user can choose from. All input screen are provided with help to retrieve previous records of key fields. User will get error message when they carry out unacceptable actions. Output Design:- The output design should be in an attractive and useful form because success and acceptance of a system to some extent depends on good presentation. There are three main reasons why outputs from computer are required. They are:
  • 33.  For communicating to the persons concerned  For re-input to the computer for being connected with other data and further processing  For permanent storage. In this system there are reports, displays on screen, and printed forms comes as outputs. Output devices used in this system are monitor and printer. The main design considerations that I have made in designing this system are:  No data are excluded in the output  The format of the output is similar to the presently existing one.  The sequence of reports printed is in a useful way, which is similar to that of the present system.  The outputs generated are having good quality in appearance, contents, and accuracy.  The output screens are provided with necessary screen heading and labels for various fields. Buttons are provided for actions like displaying, printing etc.
  • 34. Menu Design: The menu of this system is designed in a hierarchical manner. Activities of similar nature are grouped under one menu. Menus are designed in form that the user can work with more than one form at a time. Form design: Form is a tool with message; it is the physical carrier of data .it provides information for making decisions and improving operations. The size of the forms are convenient for easy handling and easy to identify and filling up. Customer interacts with Computer Operator or Login directly to the System Customer Computer Operator takes details from Customer System automatically generates CTN PROCESS LOGIC
  • 35. Master DB No Yes No Yes Computer Operator stores details with CTN Supervisor Supervisor assigns problem to Problem-solver Problem-solver Problem-solver opens his Id for assigned problems Problem-solver solves the problem Send information to the customer Close the Call & And store date & time Stores the solved details in Database Info. Send Supervisor checks the Problem status from Database Reopen call & store date & time Reope n Reassign problem Information to customer Generates various reports
  • 36. Dataflow Diagram (DFDs) Send Information Submit Solve, CuD & PD & Store CTN CuD & PD CuD CTN & PD Submit CuD Monitor All & PD CTN Assign, Complaints Status Check, Close, Reopen, etc. (CONTEXT LEVEL DFD) Abbreviation used in all DFDs CTN : Call Track Number CuD : Customer Details PD : Problem/Complaint Details Pwd : Password COMPLETE STRUCTURE OF THE PROGRAM Customer Computer Operator Supervisor Problem Solver CUSTOMER CARE ADMINISTR -TION Various Reports
  • 37. Send Information Phone Valid To User PD Store Date Invalid Invalid & Time User-id CTN & Pwd D1 Master database Store Date/Time Valid cust Valid user Assign to Customer Login Invalid User-id Assigns Valid & Pwd CuD User_id & Pwd Valid Invalid Supervisor Store Details Generate Check Closes Store Date/Time D1 Master Database Closed Customer Supervisor Problem Solver Computer Operator Problem Entry & CTN Generation User Login Reports Proble m Status Call Closing Problem Assignment Solve & Send Custome r Login
  • 38. Check from Print Details of Customers & Problems Various report (FIRST LEVEL DFD) (1) Complaint Entry Process Valid Customer Valid Store Computer Operator D1 Master DataBase Store Call Track No. Customer, Problem Details entry & Submit CTN Generatio n Second Level DFD
  • 40. (2) Problem Assignment Process Valid Assign to Supervisor Assigned Take Details of Customer& D1 Master DataBase Problems Update (3) Problem Solving Process Assigned Take Problem Details Problem Solution D1 Master DataBase Information Change Prior Status Mail to Assigns Problem s Problem-solver Store Date & Time Problem Solving Sending InformationCustomer
  • 41. (4) Problem/complaint Status checking process: - Solved and send Checking status Not solved/send Solved but Not Send Status Detail To To Not Assigned To Store Date D1 Master Database & Time Store Reassign-Date & Time Store Reopen-Date & Time Store Closing-Date & Time Problem/ Complaint status Close s Reassign Reope n Assig n Problem Solver Sending Reminde r
  • 42. (5) Report Generation Report 1 Report 2 Rep ort 3 Valid Supervisor Report 4 Report 5 Repo rt 6 Take various Report 7 Details D1 Master DataBase Report 1: Report on different Customers Report 2: Report on Problem/Complaint Report 3: Report on Time to resolve Report 4: on time taken from start to close the complaints/Problems Report 5: Report on total complaints allotted to each Problem Solver Report 6: Report on different type of Problem/complaint Report 7: Graphical representation of complaints solved/on hold/unsolved per Report Generation
  • 44. Problem Solver Supervisor End UserCustomer Interacts Send Informati on Reports Generat es Problem/complaint Reope n Stor e Assig n Reassi gn Clos e Solv e ER-Diagram
  • 45. One of the most important factors is building a well executing application and the design of the database tables. For a good database design, good understanding of the normalization concept is needed. Normalization: One purpose of the normalization is to find and isolate time independent properties. Such isolation can save space. Another purpose is to remove redundant information. Redundant information is thus extra copies stored in several places. Redundancy is removed from logical design to reduce storage requirements and simplify maintenance. At the same time, paradoxically, an optimum design may require reintroduction. The reintroduction information may provide a straightforward way to organize and query the database. Redundancy often saves I/O operations and increases performance. A third purpose of normalization is to provide unique identification for the individual records that is it ensures the existence of the Primary Key. Essential skills to normalize a table are  Common Sense  Knowledge of the meaning of the data with which one is working. Normalization is thus largely semantic analysis. Database Design:
  • 46.  Knowledge of which process takes and data are actually significant to the company that owns the database.  Allowing the data structure to accommodate real world uses rather than limiting uses to those readily permitted by the data structure.  The ability to handle changes. Normal Forms: There are six normal forms: 1. First Normal Form(1 NF) 2. Second Normal Form(2 NF) 3. Third Normal Form(3 NF) 4. BCNF A database normalized to 3NF will be usually being an optimized structure. First Normal Form (1 NF): For a table to in the first normal form it must satisfy two requirements.  There must be a primary key.  All data values must come from sets (domains) consisting of atomic values. Primary Key: The first requirement of table to be in first normal form is that it must have a primary key. A primary key is a field or combination of fields that satisfies a record uniquely.
  • 47. The primary is an attribute or combination of attributes that satisfies the following requirements:  The value of primary key is not NULL i.e. no attribute that is pat of primary key may be null.  The value of primary key is unique. A table must never have two identical values of the primary key. This is also Functional Independence between the primary key and non- Key attributes.  No subset of the primary may be a primary key itself. This is also refereed to as minimally requirement General rule for selecting a primary key is:  Select one that can always act as a primary key, not just for the current data.  Select one that involve as few fields as possible, both to make it easy to work with, and to meet the minimally requirements. Atomic Value: The second environment for a Normalized (1 NF) table is that all data values must come from domains with only atomic values. If there are repeating groups then it will increase the storage requirements. The extra storage means that it takes longer to locate a record because of the need for more disk transfers. It also slows both log and archival routines, because they must record more data. Second Normal Form (2NF):
  • 48. A table to be in second normal form it must be:  In 1 NF  Have all non-key attributes are fully functionally dependent on primary key. “ Fully functionally dependent” means that the non-key attributes must be uniquely identifiable from subset of the primary key.” The purpose of converting a table from 1 NF to 2 NF is first to solve the insertion and deletion problems occurred in 1 NF. Second, to isolate time-independent attributes that might otherwise hide among the time-dependent once is the source of the problems in the 1 NF table structure. Third Normal Form (3 NF): 1 NF is concerned with the primary key and 2 NF with the relationship between it and non-key attributes. 3 NF deals with the internal relationship among non-key attributes. It says that all of them must be mutually independent. The requirement for a table to be in 3 NF is: A table is in 3 NF if and only if it is in 2 NF and all non-key attributes are “non-transitively dependent on primary key”. Or a non-key attribute must be solely dependent on the primary key, not by any thing else.
  • 49. BCNF: BCNF is an independent normal form but rather than reinforcement of 3NF. BCNF operates on the result of 3NF but has a basis in the unnormalized structure. It does refer to primary and non-key attributes, but instead uses the concept of “determinant” and “candidate key “. A candidate key is a attribute that can function as a primary key. Following Tables are used in CRM Package for CTS : 1. Customer Details Master: - Field Name Field Type Size Description Cust_Id Character 10 Identification of Customer Cust_pwd Character 10 Customer Password Cust_Name Character 25 Name of the Customer Database
  • 50. Cust_Add Character 30 Address of the Customer C_Phone_No Numeric 11 Phone No. of Customer C_Email_Id Character 50 Email_Id of the Customer 2. User Details Master: - Field Name Field Type Size Description User_Id Character 10 Identification of User User_pwd Character 10 User Password User_Name Character 25 Name of the User User_Add Character 30 Address of the User U_Phone_No Numeric 11 Phone No. of User U_Email_Id Character 50 Email_Id of the User 3. Problem Entry :- Field Name Field Type Size Description CallTrackNo Numeric 10 Identify the Complaint Cust_Id Character 10 Identification of Customer ProblemType Character 30 Type of the Problem CallDate Date 10 Date of receiving Complain CallTime Character 10 Time of receiving Complain 4. Problem Master: - Field Name Field Type Size Description CallTrackNo Numeric 10 Identify the Complaint Cust_Id Character 10 Identification of Customer ProblemType Character 30 Type of the Problem ProblemDescriptio n Character 50 Description of the problem ActionTaken Character 50 Action taken by Problem-Solv User_id Character 10 Identification of User CallDate Date 10 Date of receiving Complaint CallTime Character 10 Time of receiving Complaint AssignDate Date 10 Date of assigning Complaint AssignTime Character 15 Time of assigning Complaint ReopenDate Date 10 Date of reopen Complaint ReopenTime Character 10 Time of reopen Complaint
  • 51. ReassignDate Date 10 Date of reassign Complaint ReassignTime Character 10 Time of reassign Complaint 5. Problem-solver Details Master:- Field Name Field Type Size Description User_Id Character 10 Identification of the User SolverName Character 25 Name of the Problem-Solver TotalCalls Numeric 3 Total No. of Problems Allotted CallTrackNo Numeric 10 Identify the Complaint ProblemType Character 30 Type of the Problem ActionTaken Character 50 Action taken by Problem-Solver SolvingDate Date 10 Date of Problem Solving SolvingTime Character 10 Time of Problem Solving ProblemStatus Character 10 Problem Solved or Not InformationStatus Character 10 Information Send or Not 6. Problem Status Master: - Field Name Field Type Size Description CallTrackNo Numeric 10 Identify the Complaint ProblemStatus Character 10 Problem Solved or Not AssignStatus Character 10 Problem Assigned or Not ClosingStatus Character 10 Problem Closed or Not InformationStatus Character 10 Information Send or Not CloseDate Date 10 Date of Closing Complaint CloseTime Character 10 Time of Closing Complaint 7. Problem Assignment Table: - Field Name Field Type Size Description CallTrackNo Numeric 10 Identify the Complaint Cust_Id Character 10 Identification of Customer ProblemType Character 10 Type of the Problem AssignStatus Character 10 Assign or skip User_Id Character 10 Identification of the User SolverName Character 25 Name of the Problem-Solver AssignDate Date 10 Date of assigning Complaint AssignTime Character 10 Time of assigning Complaint
  • 52. 8. User Login Table: - Field Name Field Type Size Description User_Id Character 10 Identification of the User User_pwd Character 20 User Password ==============FIRST SCREEN========================== FORM NAME: WELCOME FORM Utility: To show welcome window of the application entitled ‘CUSTOMER CARE ADMINISTRATION’. User choose button to login in the application and choose button to exit from the application. OUTPUT SCREEN & DESCRIPTION FOR CCA
  • 53. FORM NAME: USER TYPE FORM Utility: This Form allow user to choose his User Type, either he or she is user of application or is a customer, who want to describe his problem. User choose button after giving his account type. User Choose button exit from the application
  • 54. FORM NAME: USER LOGIN FORM Utility: To protect the application from unauthorized access. The above Form comes, when user choose User as his/her account type. It is the most important user interface/screen, which is utilized to preserve the application by unauthorized user. If the user trying to access the application is not an authorized user then they can’t be used the facility of the application. When the user enters his/her ID & Password, it is verified from the database table. If the ID & Password is valid then the user logged on & gets the Menu Options to utilize the application. In case, User miss his ID, then there is a LOV(list of values) associated with it, to facilitates user to choose his ID. Form given below describe it,
  • 55. After inserting User id and Valid Password, User get message Along with running process bar. Now depending upon entered User Id ,different Menu are display, For Example : For id start with ‘OP’ i.e OPERATOR ,OP_MENU is display. Similarly, For id start with ‘SU’ i.e SUPERVISOR ,SU_MENU is display and For id start with ‘SO’ i.e SOLVER ,SO_MENU is display..
  • 56. FORM NAME: OPERATOR MENU FORM Utility: This Form allow Operator to perform his function using Menu attach to Form. Main Function are Problem entry, Customer entry, User entry.
  • 57. FORM NAME: USER MASTER FORM Utility: To manage the personal details of a user. This screen appears when a user click on the submenu ‘User Detail’ in menu ‘Operator Menu’ in the Operator Form. Works on the screen: In this Form I use Toolbar Canvas to hold Different Button.
  • 58. FORM NAME: CUSTOMER MASTER FORM Utility: To manage the personal details of a customer.This screen appears when a user click on the submenu ‘Cutomser Detail’ in menu ‘Operator Menu’ in the Operator Form. Works on the screen: In this Form I use Toolbar Canvas to hold Different Button. For Inserting Exit To Search For Modifying To View all record Save For Deletion To clear For Navigation
  • 59. FORM NAME: PROBLEM ENTRY FORM Utility: To enter Problems of customer, either directly or through telephone. This screen appears when a user click on the submenu ‘Problem Entry’ from Operator Menu’ in the Operator Form. Works on the screen: Customer enters his own problem regarding Reliance set. Problem are defined in two category: 1. Software Problem 2. Hardware Problem User select Customer Id and Problem type from list box, list box contains List of all Customer and Type of predefined problem.
  • 60. In this Interface, System generates CTN automatically. Whenever User enters the Problem description Field, an Editor is called automatically to make easily description. After Describing Problem, System automatically filled Call Date and Call time with System date and Syatem time. If User press Exit button from toolbar canvas after performing some operation, then An Alert will generated to ask user for Save the Changes he made. Pressing button make the changes permanent, And pressing button does not save the changes.
  • 61. FORM NAME: SUPERVISOR MENU FORM Utility: This Form allow Supervisor to perform his function using Menu attach to Form. Main Function are to Supervise all the operation i.e Assigning problem to problem Solver, Checking various Problem Status, Reassigning Problem depend upon different situation and generating Various Reports. Supervisor is the Person, who has total command on each and every operation , So This module is very important for this application. Through this Module one can see All the data used in the system.
  • 64. FORM NAME: PROBLEM ASSIGNMENT FORM Utility: This Form is used to Assign Problems to Problem Solver. This screen appears when a user click on the menu ‘Assignment’ from submenu ‘Problem Master’ of the main menu ‘Supervisor Menu’. FORM NAME: REASSIGNMENT FORM Utility: This Form is used to Resssign Problems to same or different Problem Solver.This screen appears when a user click on the menu ‘Reassignment’ from submenu ‘Problem Master’ of the main menu ‘Supervisor Menu’. Works on the screen: On entering CTN , Supervisor has got all the
  • 65. record of Customer ‘s Problem, who has allotted that CTN. Whenever Supervisor assign same CTN to another User, reassign date and time will automatically enters in the system and record is updated in the database. If user Choose CTN, whose records are not exist , then system generates a message:
  • 67. FORM NAME: STATUS CHECKING FORM Utility: This Form is used to Check Status of Problems ,i.e whether it solved or not, assign or not, send or not .This screen appears when a user click on the menu ‘Status Checking’ from the main menu ‘Supervisor Menu’. Works on the screen: On entering CTN , Supervisor has got all the Status Of Particular Complaint of any Customer. This Interface is only used for information purpose, but this information is very crucial for application because Supervisor take decision of reassignment of problem only on the basis of this Status.
  • 69. FORM NAME: SOLVER MENU FORM Utility: This Form allow Problem Solver to perform his function using Menu attach to Form. Main. Functions are solving the Problem/complaint assigned by Supervisor and send information to Customer about his Complaint. FORM NAME: PROBLEM SOLVER FORM Utility: This Form is used by Problem Solver to maintain the record of Complaint .This screen appears when a user click on the menu ‘Problem Solver’ from the main menu ‘Solver Menu’.
  • 70. Works on the screen: Apart from Facility given in the previous form, User can select various operations using Pop-UP Menu attach with Canvas of the Solver Form. FORM NAME: CUSTOMER LOGIN FORM Utility: To protect the application from unauthorized access. The above Form comes, when user choose Customer as his/her account type. Works on the screen: any area is blank then it displays the For inputting the ID & Password two inputting boxes are utilized as text. After providing the appropriate value click on the Login button to get the next screen. Before getting the screen the click
  • 71. event of proceed command checks whether the inputting password is valid or not. If all areas are filled then check whether the ID & Password is valid or not. If it is not valid then application prompt the user a error message “Password Does Not Matched, Try Again” If the user re-enter the ID/Password the prompted message will disappear. When the inputted ID & Password is valid then the progress bar is filled and Main Menu Screen is appeared. Button allow customer to use application for entering his complaint directly. Button to exit from the application.
  • 72. REPORT CALLING FORM: FORM NAME: SUPERVISOR MENU FORM Utility: To call report at runtime. OUTPUT SCREEN OF SOME OF THE IMPORTANT
  • 81. WELCOME FORM: Trigger Name : WHEN-NEW-FORM-INSTANCE Form : Welcome Block : Item : Trigger Focus : To maximize the window during runtime. Trigger Level : Form Level Trigger Text : set_window_property(forms_mdi_window,window_state,maximize); set_window_property('welcome_win',window_state,maximize); Trigger Name : WHEN-BUTTON-PRESSED Form : Welcome Block : Welcome_blk Item : pb_login Trigger Focus : To login in the software. Trigger Level : Item Level Trigger Text : Call_form('C:FINALUSER_TYPE.FMX'); Trigger Name : WHEN-BUTTON-PRESSED Form : Welcome Block : Welcome_blk Item : pb_exit Trigger Focus : To exit from the software. Trigger Level : Item Level Trigger Text : begin Exit_form; CODING
  • 82. End; USER TYPE FORM: Trigger Name : WHEN-NEW-FORM-INSTANCE Form : User_Type Block : Item : Trigger Focus : To maximize the window during runtime. Trigger Level : Form Level Trigger Text : elsif :rg_type='C' then call_form('C:FINALCUSTOMER_LOGIN.FMX'); end if; end; Trigger Name : WHEN-BUTTON-PRESSED Form : User_Type Block : Type Item : pb_cancel Trigger Focus : To exit from Form. Trigger Level : Item Level Trigger Text : begin exit_form; end if; USER LOGIN FORM: Trigger Name : WHEN-NEW-FORM-INSTANCE Form : User_Login Block : Item :
  • 83. Trigger Focus : To maximize the window during runtime. Trigger Level : Form Level Trigger Text : set_window_property(forms_mdi_window,window_state,maximize); Trigger Name : WHEN-TIMER_EXPIRED Form : User_Login Block : Item : Trigger Focus : To perform operation, when timer will expired. Trigger Level : Form Level Trigger Text : DECLARE BEGIN IF GET_ITEM_PROPERTY('AD',WIDTH)<310 THEN :PARAMETER.P1:=:PARAMETER.P1+10; SET_ITEM_PROPERTY('AD',WIDTH,:PARAMETER.P1); ELSE DELETE_TIMER('PROGRESS_TIMER'); IF :USER_ID LIKE 'OP%' THEN OPEN_FORM('C:FINALOP_MOD.FMX'); ELSIF :USER_ID LIKE 'SO%' THEN OPEN_FORM('C:FINALSO_MOD.FMX'); ELSIF :USER_ID LIKE 'SU%' THEN OPEN_FORM('C:FINALSU_MOD.FMX'); END IF;
  • 84. END IF; END; Trigger Name : WHEN-VALIDATE-ITEM Form : User_login Block : User_Master Item : user_id Trigger Focus : To check primary key. Trigger Level : Item Level Trigger Text : :user_id:=upper(:user_id); declare ctr number :=0; begin select count(user_id) into ctr from user_details_master where user_id=:user_id; if ctr=0 then message('Invalid User Id,Press F9 to see list of User Id'); message(' '); raise form_trigger_failure; end if; end; Trigger Name : WHEN-BUTTON-PRESSED Form : User_login Block : Button Item : login Trigger Focus : To login in user account. Trigger Level : Item Level Trigger Text :
  • 85. :USER_PWD:=UPPER(:USER_PWD); DECLARE TIMER_ID TIMER; V_COUNT NUMBER; V_SEC NUMBER :=300; BEGIN SELECT COUNT(USER_PWD) INTO V_COUNT FROM USER_DETAILS_MASTER WHERE USER_PWD =:USER_MASTER.USER_PWD; IF V_COUNT>0 THEN SET_ITEM_PROPERTY('USER_VERIFICATION',VISIBLE,PROPERTY_T RUE); SET_ITEM_PROPERTY('ERRMSG',VISIBLE,PROPERTY_FALSE); :USER_MASTER.USER_VERIFICATION:='PASSWARD IS BEING VERIFIED'; TIMER_ID:=CREATE_TIMER('PROGRESS_TIMER',V_SEC,REPEAT); ELSE SET_ITEM_PROPERTY('USER_VERIFICATION',VISIBLE,PROPERTY_F ALSE); SET_ITEM_PROPERTY('ERRMSG',VISIBLE,PROPERTY_TRUE); :USER_MASTER.ERRMSG:='PASSWARD DOES NOT MATCH,TRY AGAIN !!'; RAISE FORM_TRIGGER_FAILURE; END IF;
  • 86. END; Trigger Name : WHEN-BUTTON-PRESSED Form : User_login Block : Button Item : cancel Trigger Focus : To exit from Form. Trigger Level : Item Level Trigger Text : Begin Exit_form; End; Another Objects used in User Login Form : 1. LOV : Title : User_Lov Record Group Name : RG_USER_ID Used for : user_id 2. Record Group : Name : RG_USER_ID Record Group Type : Query 3. Parameter : Name : P1 Date Type : Number
  • 87. CUSTOMER LOGIN FORM: Trigger Name : WHEN-NEW-FORM-INSTANCE Form : Customer_Login Block : Item : Trigger Focus : To maximize the window during runtime. Trigger Level : Form Level Trigger Text : set_window_property(forms_mdi_window,window_state,maximize); Trigger Name : WHEN-TIMER_EXPIRED Form : Customer_Login Block : Item : Trigger Focus : To perform operation, when timer will expired. Trigger Level : Form Level Trigger Text : DECLARE BEGIN IF GET_ITEM_PROPERTY('AD',WIDTH)<310 THEN :PARAMETER.P1:=:PARAMETER.P1+10; SET_ITEM_PROPERTY('AD',WIDTH,:PARAMETER.P1); ELSE DELETE_TIMER('PROGRESS_TIMER'); OPEN_FORM('C:FINALPROBLEM_ENTRY.FMX'); END IF; END;
  • 88. Trigger Name : WHEN-VALIDATE-ITEM Form : Customser_login Block : Customer_Master Item : customer_id Trigger Focus : To check primary key. Trigger Level : Item Level Trigger Text : :cust_id:=upper(:cust_id); declare ctr number :=0; begin select count(cust_id) into ctr from customer_details_master where cust_id=:cust_id; if ctr=0 then message('Invalid Customer Id,Press F9 to see list of Customer Id'); message(' '); raise form_trigger_failure; end if; end; Trigger Name : WHEN-BUTTON-PRESSED Form : Customer_login Block : Button Item : login Trigger Focus : To login in customer account. Trigger Level : Item Level Trigger Text : DECLARE
  • 89. TIMER_ID TIMER; V_COUNT NUMBER; V_SEC NUMBER :=300; BEGIN SELECT COUNT(CUST_PWD) INTO V_COUNT FROM CUSTOMER_DETAILS_MASTER WHERE CUST_PWD =:CUSTOMER_MASTER.CUST_PWD; IF V_COUNT>0 THEN SET_ITEM_PROPERTY('CUSTOMER_VERIFICATION',VISIBLE,PROPER TY_TRUE); SET_ITEM_PROPERTY('ERRMSG',VISIBLE,PROPERTY_FALSE); :CUSTOMER_MASTER.CUSTOMER_VERIFICATION:='PASSWARD IS BEING VERIFIED'; TIMER_ID:=CREATE_TIMER('PROGRESS_TIMER',V_SEC,REPEAT); ELSE SET_ITEM_PROPERTY('CUSTOMER_VERIFICATION',VISIBLE,PROPER TY_FALSE); SET_ITEM_PROPERTY('ERRMSG',VISIBLE,PROPERTY_TRUE); :CUSTOMER_MASTER.ERRMSG:='PASSWARD DOES NOT MATCH,TRY AGAIN !!'; RAISE FORM_TRIGGER_FAILURE; GO_ITEM(:CUSTOMER_MASTER.CUST_PWD); END IF; END;
  • 90. Trigger Name : WHEN-BUTTON-PRESSED Form : Customer_login Block : Button Item : cancel Trigger Focus : To exit from Form. Trigger Level : Item Level Trigger Text : Begin Exit_form; End; Another Objects used in Customer Login Form : 4. LOV : Title : Customer_Lov Record Group Name : RG_CUST_ID Used for : cust_id 5. Record Group : Name : RG_CUST_ID Record Group Type : Query 6. Parameter : Name : P1 Date Type : Number OPERATOR MENU FORM:
  • 91. Important Property : In property of OP_MOD Form set , ‘Menu module = C:FINALOP_MENU.MMX’ Trigger Name : WHEN-NEW-FORM-INSTANCE Form : Op_mod Block : Item : Trigger Focus : To maximize the window during runtime. Trigger Level : Form Level Trigger Text : set_window_property(forms_mdi_window,window_state,maximize); set_window_property('window1',window_state,maximize); Trigger Name : WHEN-BUTTON-PRESSED Form : Op_mod Block : Op_blk Item : logo Trigger Focus : To exit from Form. Trigger Level : Item Level Trigger Text : Begin Exit_form; End; SUPERVISOR MENU FORM: Important Property :
  • 92. In property of SU_MOD Form set , ‘Menu module = C:FINALPROJECT_MENU.MMX’ Trigger Name : WHEN-NEW-FORM-INSTANCE Form : Su_mod Block : Item : Trigger Focus : To maximize the window during runtime. Trigger Level : Form Level Trigger Text : SOLVER MENU FORM: Important Property : In property of SO_MOD Form set , ‘Menu module = C:FINALSO_MENU.MMX’ Trigger Name : WHEN-NEW-FORM-INSTANCE Form : So_mod Block : Item : Trigger Focus : To maximize the window during runtime. Trigger Level : Form Level Trigger Text : set_window_property(forms_mdi_window,window_state,maximize); set_window_property('window1',window_state,maximize); Trigger Name : WHEN-BUTTON-PRESSED Form : So_mod Block : So_blk Item : logo Trigger Focus : To exit from Form.
  • 93. Trigger Level : Item Level Trigger Text : Begin Exit_form; End; CUSTOMER MASTER FORM: Trigger Name : WHEN-NEW-FORM-INSTANCE Form : Customer_master Block : Item : Trigger Focus : To maximize the window during runtime. Trigger Level : Form Level Trigger Text : begin set_window_property(forms_mdi_window,window_state,maximize); set_window_property('cust_win',window_state,maximize); end; Trigger Name : ON-ERROR Form : Customer_master Block : Item : Trigger Focus : NOT NULL check handling. Trigger Level : Form Level Trigger Text : declare error_item varchar2(50);
  • 94. current_item_label varchar2(100); begin if error_type='FRM' and error_code=40202 then error_item:=:system.trigger_item; current_item_label:=get_item_property(error_item,prompt_text); message(current_item_label||'cannot be left blank'); message(' '); else message(error_text); end if; end; Trigger Name : WHEN-VALIDATE-ITEM Form : Customer_master Block : Customer Item : cust_id Trigger Focus : Primary key check handling. Trigger Level : Item Level Trigger Text : :cust_id:=upper(:cust_id); declare ctr number:=0; len number; id char(2); str varchar2(5); begin
  • 95. select count(cust_id) into ctr from customer_details_master where cust_id=:cust_id; if ctr > 0 then message('Customer Id already exist,Please reenter!!'); message(' '); raise form_trigger_failure; end if; len:=length(:cust_id); if len=5 then id:=substr(:cust_id,1,1); id:=upper(id); if id='C' or id='c' then str:=substr(:cust_id,2); if str not between '0001' AND '9999' THEN message('Enter Cust Id between C0001 to C9999!!!'); message(' '); raise form_trigger_failure; end if; else message('Cust Id start with C like C0001 !!'); message(' '); raise form_trigger_failure; end if; else message('Cust Id must be of five character !!');
  • 96. message(' '); raise form_trigger_failure; end if; end; Trigger Name : WHEN-VALIDATE-ITEM Form : Customer_master Block : Customer Item : cust_name Trigger Focus : To allow only character value. Trigger Level : Item Level Trigger Text : DECLARE CT NUMBER; VAL NUMBER; BEGIN :CUST_NAME:=UPPER(:CUST_NAME); CT:=LENGTH(:CUST_NAME); FOR I IN 1..CT LOOP VAL:=ASCII(SUBSTR(:CUST_NAME,I,1)); IF VAL < 65 OR VAL > 90 THEN IF VAL<>32 THEN MESSAGE('Number/Special character are not allowed'); MESSAGE(' '); :CUST_NAME:=''; RAISE FORM_TRIGGER_FAILURE;
  • 97. END IF; END IF; END LOOP; END ; Trigger Name : POST-TEXT-ITEM Form : Customer_master Block : Customer Item : cust_add Trigger Focus : To insert address in Capital format. Trigger Level : Item Level Trigger Text : :cust_add:=upper(:cust_add); Trigger Name : WHEN-VALIDATE-ITEM Form : Customer_master Block : Customer Item : c_phone_no Trigger Focus : To allow only valid phone no. Trigger Level : Item Level Trigger Text : declare len number; begin len:=length(:c_phone_no); if len<6 then message('Enter Phone No in atleast six digit'); message(' '); raise form_trigger_failure;
  • 98. end if; end; Trigger Name : ON_ERROR Form : Customer_master Block : Customer Item : c_phone_no Trigger Focus : To give custom error message . Trigger Level : Item Level Trigger Text : message('Please Enter Valid Phone Number!!!'); message(' '); Trigger Name : WHEN-VALIDATE-ITEM Form : Customer_master Block : Customer Item : c_email_id Trigger Focus : To allow only valid email id. Trigger Level : Item Level Trigger Text : declare ch1 number; ch2 number; ch3 char(1); begin ch1:=instr(:c_email_id,'@',1,2); if ch1 > 0 then message('Cannot Enter more then one @!!'); message(' ');
  • 99. raise form_trigger_failure; end if; ch2:=instr(:c_email_id,'@',1); if ch2=0 then message('Invalid Email Id,Please reenter !!'); message(' '); raise form_trigger_failure; end if; ch3:=substr(:c_email_id,-1,1); if ch3='@' then message('Invalid Email Id,Please reenter !!'); message(' '); raise form_trigger_failure; end if; end; Trigger Name : POST-TEXT-ITEM Form : Customer_master Block : Customer Item : c_email_id Trigger Focus : To generate customer passward. Trigger Level : Item Level Trigger Text : DECLARE CTR NUMBER:=0; BEGIN :CUST_PWD:=SUBSTR(:CUST_ID,1,1)||SUBSTR(:CUST_ID,-1,1)||
  • 100. SUBSTR(:CUST_NAME,1,1)||SUBSTR(:C_PHONE_NO,-2,2); END; Trigger Name : WHEN-BUTTON-PRESSED Form : Customer_master Block : Button Item : pb_add Trigger Focus : To insert a record. Trigger Level : Item Level Trigger Text : declare ctr number :=0; begin go_block('customer'); select count(cust_id)into ctr from customer_details_master where cust_id=:cust_id; if ctr > 0 then message('Customer Id already assigned!!'); message(' '); raise form_trigger_failure; else create_record; commit; end if; end; Trigger Name : WHEN-BUTTON-PRESSED Form : Customer_master
  • 101. Block : Button Item : pb_modify Trigger Focus : To modify a record. Trigger Level : Item Level Trigger Text : go_block('customer'); update customer_details_master set cust_name=:cust_name,cust_add=:cust_add, c_phone_no=:c_phone_no,c_email_id=:c_email_id where cust_id=:cust_id; Trigger Name : WHEN-BUTTON-PRESSED Form : Customer_master Block : Button Item : pb_delete Trigger Focus : To delete a record. Trigger Level : Item Level Trigger Text : declare ans number; ctr number:=0; begin select count(cust_id) into ctr from customer_details_master where cust_id=:cust_id; if ctr > 0 then ans:=show_alert('my_alert'); if ans=88 then go_block('customer');
  • 102. delete_record; commit; end if; else message('Record does not exist !!'); message(' '); raise form_trigger_failure; end if; end ; Trigger Name : WHEN-BUTTON-PRESSED Form : Customer_master Block : Button Item : pb_clear Trigger Focus : To clear a record. Trigger Level : Item Level Trigger Text : begin go_block('customer'); clear_record; end; Trigger Name : WHEN-BUTTON-PRESSED Form : Customer_master Block : Button Item : pb_save Trigger Focus : To save a record. Trigger Level : Item Level Trigger Text :
  • 103. begin go_block('customer'); commit; end; Trigger Name : WHEN-BUTTON-PRESSED Form : Customer_master Block : Button Item : pb_exit Trigger Focus : To exit from a Form. Trigger Level : Item Level Trigger Text : declare ans number; begin if :system.form_status='CHANGED' then set_alert_property('my_alert',title,'Save Changes'); set_alert_property('my_alert',alert_message_text,'Would yoy like to make Changes Permanent?'); ans:=show_alert('my_alert'); if ans=88 then go_block('customer'); commit; end if; end if; exit_form(no_commit); end;
  • 104. Trigger Name : WHEN-BUTTON-PRESSED Form : Customer_master Block : Button Item : pb_last Trigger Focus : Go to last record. Trigger Level : Item Level Trigger Text : begin go_block('customer'); last_record; end; Trigger Name : WHEN-BUTTON-PRESSED Form : Customer_master Block : Button Item : pb_next Trigger Focus : Go to next record. Trigger Level : Item Level Trigger Text : begin go_block('customer'); next_record; end; Trigger Name : WHEN-BUTTON-PRESSED Form : Customer_master Block : Button Item : pb_prev Trigger Focus : Go to previous record. Trigger Level : Item Level
  • 105. Trigger Text : begin go_block('customer'); previous_record; end; Trigger Name : WHEN-BUTTON-PRESSED Form : Customer_master Block : Button Item : pb_first Trigger Focus : Go to first record. Trigger Level : Item Level Trigger Text : begin go_block('customer'); first_record; end; Trigger Name : WHEN-BUTTON-PRESSED Form : Customer_master Block : Button Item : pb_view Trigger Focus : Retrieve all record and Go to first record. Trigger Level : Item Level Trigger Text : begin go_block('customer'); execute_query; end;
  • 106. Trigger Name : WHEN-BUTTON-PRESSED Form : Customer_master Block : Button Item : pb_search Trigger Focus : To search for a specific record. Trigger Level : Item Level Trigger Text : begin go_block('customer'); enter_record; end; Another Objects used in Customer Master Form : 1. Alert : Name : My_Alert Alert Style : Stop No. of Button : 2 Used for : pb_save,pb_exit 2. Popup-Menu : Name : Shortcut User for : Cust_can 4. Property-Class : Name : PC_canvas Background-Color : r100g100b75
  • 107. User for : Cust_can USER MASTER FORM: Trigger Name : WHEN-NEW-FORM-INSTANCE Form : User_master Block : Item : Trigger Focus : To maximize the window during runtime. Trigger Level : Form Level Trigger Text : begin set_window_property(forms_mdi_window,window_state,maximize); set_window_property('user_win',window_state,maximize); end; Trigger Name : ON-ERROR Form : User_master Block : Item : Trigger Focus : NOT NULL check handling. Trigger Level : Form Level Trigger Text : declare error_item varchar2(50); current_item_label varchar2(100); begin if error_type='FRM' and error_code=40202 then error_item:=:system.trigger_item;
  • 108. current_item_label:=get_item_property(error_item,prompt_text); message(current_item_label||'cannot be left blank'); message(' '); else message(error_text); end if; end; Trigger Name : WHEN-VALIDATE-ITEM Form : User_master Block : User Item : user_id Trigger Focus : Primary key check handling. Trigger Level : Item Level Trigger Text : :USER_ID:=UPPER(:USER_ID); declare ctr number:=0; len number; id char(2); str varchar2(5); begin select count(user_id) into ctr from user_details_master where user_id=:user_id; if ctr > 0 then message('User Id already exist,Please reenter!!');
  • 109. message(' '); raise form_trigger_failure; end if; len:=length(:user_id); if len=6 then id:=substr(:user_id,1,2); id:=upper(id); if id='OP' or id='SU' or id='SO' then str:=substr(:user_id,3); if str not between '0001' AND '9999' THEN message('Enter User Id like OP0001,SU0001,SO0001!!!'); message(' '); raise form_trigger_failure; end if; else message('User Id start with OP or SU or SO !!'); message(' '); raise form_trigger_failure; end if; else message('User Id must be of six character !!'); message(' '); raise form_trigger_failure; end if;
  • 110. end; Trigger Name : WHEN-VALIDATE-ITEM Form : User_master Block : User Item : user_name Trigger Focus : To allow only character value. Trigger Level : Item Level Trigger Text : DECLARE LEN NUMBER; VAL NUMBER; BEGIN LOOP VAL:=ASCII(SUBSTR(:USER_NAME,I,1)); IF VAL < 65 OR VAL > 90 THEN IF VAL<>32 THEN MESSAGE('Number/Special character are not allowed'); MESSAGE(' '); :USER_NAME:=''; RAISE FORM_TRIGGER_FAILURE; END IF; END IF; END LOOP; END ; Trigger Name : POST-TEXT-ITEM Form : User_master
  • 111. Block : User Item : user_add Trigger Focus : To insert address in Capital format. Trigger Level : Item Level Trigger Text : :user_add:=upper(:user_add); Trigger Name : WHEN-VALIDATE-ITEM Form : Userr_master Block : User Item : u_phone_no Trigger Focus : To allow only valid phone no. Trigger Level : Item Level Trigger Text : declare len number; begin len:=length(:u_phone_no); if len<6 then message('Enter Phone No in atleast six digit'); message(' '); raise form_trigger_failure; end if; end; Trigger Name : ON_ERROR Form : User_master Block : User Item : u_phone_no Trigger Focus : To give custom error message .
  • 112. Trigger Level : Item Level Trigger Text : message('Please Enter Valid Phone Number!!!'); message(' '); Trigger Name : WHEN-VALIDATE-ITEM Form : User_master Block : User Item : u_email_id Trigger Focus : To allow only valid email id. Trigger Level : Item Level Trigger Text : declare ch1 number; ch2 number; ch3 char(1); begin ch1:=instr(:u_email_id,'@',1,2); if ch1 > 0 then message('Cannot Enter more then one @!!'); message(' '); raise form_trigger_failure; end if; ch2:=instr(:u_email_id,'@',1); if ch2=0 then message('Invalid Email Id,Please reenter !!'); message(' ');
  • 113. raise form_trigger_failure; end if; ch3:=substr(:u_email_id,-1,1); if ch3='@' then message('Invalid Email Id,Please reenter !!'); message(' '); raise form_trigger_failure; end if; end; Trigger Name : POST-TEXT-ITEM Form : User_master Block : User Item : u_email_id Trigger Focus : To generate User passward. Trigger Level : Item Level Trigger Text : :USER_PWD:=SUBSTR(:USER_ID,1,2)||SUBSTR(:USER_NAME,1,1)|| SUBSTR(:U_PHONE_NO,-2,2); Trigger Name : WHEN-BUTTON-PRESSED Form : User_master Block : Button Item : pb_add Trigger Focus : To insert a record. Trigger Level : Item Level Trigger Text : declare ctr number :=0;
  • 114. begin go_block('user'); select count(user_id)into ctr from user_details_master where user_id=: user_id; if ctr > 0 then message(' User Id already assigned!!'); message(' '); raise form_trigger_failure; else create_record; commit; end if; end; Trigger Name : WHEN-BUTTON-PRESSED Form : User_master Block : Button Item : pb_modify Trigger Focus : To modify a record. Trigger Level : Item Level Trigger Text : go_block(' user '); update user_details_master set user_name=: user_name, user_add=: user_add, u_phone_no=:u_phone_no,u_email_id=:u_email_id where user_id=: user_id;
  • 115. Trigger Name : WHEN-BUTTON-PRESSED Form : User_master Block : Button Item : pb_delete Trigger Focus : To delete a record. Trigger Level : Item Level Trigger Text : declare ans number; ctr number:=0; begin select count(user_id) into ctr from user_details_master where user_id=: user_id; if ctr > 0 then ans:=show_alert('my_alert'); if ans=88 then go_block(' user '); delete_record; commit; end if; else message('Record does not exist !!'); message(' '); raise form_trigger_failure; end if; end ;
  • 116. Trigger Name : WHEN-BUTTON-PRESSED Form : User_master Block : Button Item : pb_clear Trigger Focus : To clear a record. Trigger Level : Item Level Trigger Text : begin go_block(' user '); clear_record; end; Trigger Name : WHEN-BUTTON-PRESSED Form : User_master Block : Button Item : pb_save Trigger Focus : To save a record. Trigger Level : Item Level Trigger Text : begin go_block(' user '); commit; end; Trigger Name : WHEN-BUTTON-PRESSED Form : User_master Block : Button Item : pb_exit Trigger Focus : To exit from a Form. Trigger Level : Item Level Trigger Text :
  • 117. declare ans number; begin if :system.form_status='CHANGED' then set_alert_property('my_alert',title,'Save Changes'); set_alert_property('my_alert',alert_message_text,'Would yoy like to make Changes Permanent?'); ans:=show_alert('my_alert'); if ans=88 then go_block(' user '); commit; end if; end if; exit_form(no_commit); end; Trigger Name : WHEN-BUTTON-PRESSED Form : User _master Block : Button Item : pb_last Trigger Focus : Go to last record. Trigger Level : Item Level Trigger Text : begin go_block(' user '); last_record; end;
  • 118. Trigger Name : WHEN-BUTTON-PRESSED Form : User_master Block : Button Item : pb_next Trigger Focus : Go to next record. Trigger Level : Item Level Trigger Text : begin go_block(' user '); next_record; end; Trigger Name : WHEN-BUTTON-PRESSED Form : User_master Block : Button Item : pb_prev Trigger Focus : Go to previous record. Trigger Level : Item Level Trigger Text : begin go_block(' user '); previous_record; end; Trigger Name : WHEN-BUTTON-PRESSED Form : User _master Block : Button Item : pb_first Trigger Focus : Go to first record. Trigger Level : Item Level
  • 119. Trigger Text : begin go_block(' user '); first_record; end; Trigger Name : WHEN-BUTTON-PRESSED Form : User_master Block : Button Item : pb_view Trigger Focus : Retrieve all record and Go to first record. Trigger Level : Item Level Trigger Text : begin go_block(' user '); execute_query; end; Trigger Name : WHEN-BUTTON-PRESSED Form : User_master Block : Button Item : pb_search Trigger Focus : To search for a specific record. Trigger Level : Item Level Trigger Text : begin go_block(' user '); enter_record; end;
  • 120. Another Objects used in User Master Form : 3. Alert : Name : My_Alert Alert Style : Stop No. of Button : 2 Used for : pb_save,pb_exit 4. Popup-Menu : Name : Shortcut User for : User_can 4. Property-Class : Name : PC_canvas Background-Color : r100g100b75 User for : User_can PROBLEM ENTRY FORM: Trigger Name : WHEN-NEW-FORM-INSTANCE Form : Problem_Entry Block : Item : Trigger Focus : To maximize the window during runtime. Trigger Level : Form Level Trigger Text : begin
  • 121. set_window_property(forms_mdi_window,window_state,maximize); set_window_property('pr_entry_win',window_state,maximize); end; Trigger Name : ON-ERROR Form : Problem_Entry Block : Item : Trigger Focus : NOT NULL check handling. Trigger Level : Form Level Trigger Text : declare error_item varchar2(50); current_item_label varchar2(100); begin if error_type='FRM' and error_code=40202 then error_item:=:system.trigger_item; current_item_label:=get_item_property(error_item,prompt_text); message(current_item_label||'cannot be left blank'); message(' '); else message(error_text); end if; end; Trigger Name : WHEN-NEW-BLOCK-INSTANCE Form : Problem_Entry
  • 122. Block : Entry Item : Trigger Focus : To add value in List item. Trigger Level : Block Level Trigger Text : declare pos number:=0; begin for i in (select cust_id from customer_details_master) loop pos:=pos+1; add_list_element('cust_id',pos,i.cust_id,i.cust_id); end loop; end; Trigger Name : WHEN-NEW-ITEM-INSTANCE Form : Problem_Entry Block : Entry Item : problem_desc Trigger Focus : To call Editor at runtime. Trigger Level : Item Level Trigger Text : declare b boolean; begin show_editor('my_editor',:problem_desc,200,150,:problem_desc,b); :problem_desc:=upper(:problem_desc);
  • 123. if :problem_desc not between 'A' and 'Z' then message('Problem desc must be in character!!'); message(' '); raise form_trigger_failure; end if; end; :CALL_DATE:=SYSDATE; :CALL_TIME:=TO_CHAR(SYSDATE,'HH24:MI:SS'); Trigger Name : POST-TEXT-ITEM Form : Problem_Entry Block : Entry Item : call_time Trigger Focus : To generate Call Track No. Trigger Level : Item Level Trigger Text : DECLARE CTR NUMBER:=0; BEGIN SELECT COUNT(CTN) INTO CTR FROM PROBLEM_ENTRY; CTR:=CTR+1; :CTN:=CTR; END; Trigger Name : WHEN-BUTTON-PRESSED Form : Problem_entry Block : Button Item : pb_add Trigger Focus : To insert a record.
  • 124. Trigger Level : Item Level Trigger Text : declare ctr number :=0; begin go_block('entry'); select count(ctn)into ctr from problem_entry where ctn=:ctn; if ctr > 0 then message('Call Track No already assigned!!'); message(' '); raise form_trigger_failure; else create_record; commit; end if; end; Trigger Name : WHEN-BUTTON-PRESSED Form : Problem_entry Block : Button Item : pb_modify Trigger Focus : To modify a record. Trigger Level : Item Level Trigger Text : go_block('entry'); update problem_entry
  • 125. set cust_id=:cust_id,problem_type=:problem_type,problem_desc=:problem_desc, call_date=:call_date,call_time=:call_time where ctn=:ctn; Trigger Name : WHEN-BUTTON-PRESSED Form : Problem_entry Block : Button Item : pb_clear Trigger Focus : To clear a record. Trigger Level : Item Level Trigger Text : begin go_block('entry'); clear_record; end; Trigger Name : WHEN-BUTTON-PRESSED Form : Problem_ entry Block : Button Item : pb_save Trigger Focus : To save a record. Trigger Level : Item Level Trigger Text : begin go_block(' entry '); commit; end;
  • 126. Trigger Name : WHEN-BUTTON-PRESSED Form : Problem_ entry Block : Button Item : pb_exit Trigger Focus : To exit from a Form. Trigger Level : Item Level Trigger Text : declare ans number; begin if :system.form_status='CHANGED' then set_alert_property('my_alert',title,'Save Changes'); set_alert_property('my_alert',alert_message_text,'Would yoy like to make Changes Permanent?'); ans:=show_alert('my_alert'); if ans=88 then go_block(' entry '); commit; end if; end if; exit_form(no_commit); end; Trigger Name : WHEN-BUTTON-PRESSED Form : Problem_ entry Block : Button Item : pb_last Trigger Focus : Go to last record. Trigger Level : Item Level
  • 127. Trigger Text : begin go_block(' entry '); last_record; end; Trigger Name : WHEN-BUTTON-PRESSED Form : Problem_ entry Block : Button Item : pb_next Trigger Focus : Go to next record. Trigger Level : Item Level Trigger Text : begin go_block(' entry '); next_record; end; Trigger Name : WHEN-BUTTON-PRESSED Form : Problem_ entry Block : Button Item : pb_prev Trigger Focus : Go to previous record. Trigger Level : Item Level Trigger Text : begin go_block(' entry '); previous_record; end;
  • 128. Trigger Name : WHEN-BUTTON-PRESSED Form : Problem_entry Block : Button Item : pb_first Trigger Focus : Go to first record. Trigger Level : Item Level Trigger Text : begin go_block(' entry '); first_record; end; Trigger Name : WHEN-BUTTON-PRESSED Form : Problem_ entry Block : Button Item : pb_view Trigger Focus : Retrieve all record and Go to first record. Trigger Level : Item Level Trigger Text : begin go_block(' entry '); execute_query; end; Trigger Name : WHEN-BUTTON-PRESSED Form : Problem_entry Block : Button Item : pb_search Trigger Focus : To search for a specific record. Trigger Level : Item Level Trigger Text :
  • 129. begin go_block(' entry '); enter_record; end; Another Objects used in Problem Entry Form : 1. Alert : Name : My_Alert Alert Style : Stop No. of Button : 2 Used for : pb_save,pb_exit 2. Editor : Name : My_Editor Title : Problem_Description…… Used for : problem_desc 3. Popup-Menu : Name : Shortcut User for : Pr_entry_can 4. Property-Class : Name : PC_canvas Background-Color : r100g100b75 User for : Pr_Entry_can
  • 130. PROBLEM ASSIGNMENT FORM: Trigger Name : WHEN-NEW-FORM-INSTANCE Form : Problem_Assignment Block : Item : Trigger Focus : To maximize the window during runtime. Trigger Level : Form Level Trigger Text : begin set_window_property(forms_mdi_window,window_state,maximize); set_window_property('assignment_win',window_state,maximize); end; Trigger Name : ON-ERROR Form : Problem_ Assignment Block : Item : Trigger Focus : NOT NULL check handling. Trigger Level : Form Level Trigger Text : declare error_item varchar2(50); current_item_label varchar2(100); begin if error_type='FRM' and error_code=40202 then error_item:=:system.trigger_item;
  • 131. current_item_label:=get_item_property(error_item,prompt_text); message(current_item_label||'cannot be left blank'); message(' '); else message(error_text); end if; end; Trigger Name : WHEN-NEW-BLOCK-INSTANCE Form : Problem_ Assignment Block : Assignment Item : Trigger Focus : To add value in List item. Trigger Level : Block Level Trigger Text : declare pos number:=0; begin for i in (select ctn from problem_entry) loop pos:=pos+1; add_list_element('ctn',pos,i.ctn,i.ctn); end loop; for i in (select distinct user_id from user_details_master) loop pos:=pos+1;
  • 132. add_list_element('user_id',pos,i.user_id,i.user_id); end loop; end; Trigger Name : WHEN-LIST-CHANGED Form : Problem_Assignment Block : Assignment Item : ctn Trigger Focus : To populate value based on ctn. Trigger Level : Item Level Trigger Text : select cust_id,problem_type into :cust_id,:problem_type from problem_entry where ctn=:ctn; Trigger Name : WHEN-LIST-CHANGED Form : Problem_Assignment Block : Assignment Item : user_id Trigger Focus : To populate value based on user id. Trigger Level : Item Level Trigger Text : begin select user_name into :solver_name from user_details_master where user_id=:user_id; :assign_date:=sysdate; :assign_time:=to_char(sysdate,'hh24:mi:ss'); end; Trigger Name : WHEN-BUTTON-PRESSED Form : Problem_Assignment
  • 133. Block : Button Item : pb_add Trigger Focus : To insert a record. Trigger Level : Item Level Trigger Text : declare ctr number :=0; begin go_block('assignment'); select count(ctn)into ctr from problem_assignment where ctn=:ctn; if ctr > 0 then message('Call Track No already assigned!!'); message(' '); raise form_trigger_failure; else create_record; commit; end if; end; Trigger Name : WHEN-BUTTON-PRESSED Form : Problem_ Assignment Block : Button Item : pb_modify Trigger Focus : To modify a record. Trigger Level : Item Level Trigger Text :
  • 134. go_block('assignment'); update problem_assignment set cust_id=:cust_id,problem_type=:problem_type,assign_status=:assign_status, user_id=:user_id,solver_name=:solver_name,assign_date=:assign_date,assign_t ime=:assign_time where ctn=:ctn; Trigger Name : WHEN-BUTTON-PRESSED Form : Problem_Assignment Block : Button Item : pb_clear Trigger Focus : To clear a record. Trigger Level : Item Level Trigger Text : begin go_block('assignment'); clear_record; end; Trigger Name : WHEN-BUTTON-PRESSED Form : Problem_ assignment Block : Button Item : pb_save Trigger Focus : To save a record. Trigger Level : Item Level Trigger Text : begin go_block(' assignment ');
  • 135. commit; end; Trigger Name : WHEN-BUTTON-PRESSED Form : Problem_ assignment Block : Button Item : pb_exit Trigger Focus : To exit from a Form. Trigger Level : Item Level Trigger Text : declare ans number; begin if :system.form_status='CHANGED' then set_alert_property('my_alert',title,'Save Changes'); set_alert_property('my_alert',alert_message_text,'Would yoy like to make Changes Permanent?'); ans:=show_alert('my_alert'); if ans=88 then go_block(' assignment '); commit; end if; end if; exit_form(no_commit); end; Trigger Name : WHEN-BUTTON-PRESSED Form : Problem_ assignment
  • 136. Block : Button Item : pb_last Trigger Focus : Go to last record. Trigger Level : Item Level Trigger Text : begin go_block(' assignment '); last_record; end; Trigger Name : WHEN-BUTTON-PRESSED Form : Problem_ assignment Block : Button Item : pb_next Trigger Focus : Go to next record. Trigger Level : Item Level Trigger Text : begin go_block(' assignment '); next_record; end; Trigger Name : WHEN-BUTTON-PRESSED Form : Problem_ assignment Block : Button Item : pb_prev Trigger Focus : Go to previous record. Trigger Level : Item Level Trigger Text : begin
  • 137. go_block(' assignment '); previous_record; end; Trigger Name : WHEN-BUTTON-PRESSED Form : Problem_ assignment Block : Button Item : pb_first Trigger Focus : Go to first record. Trigger Level : Item Level Trigger Text : begin go_block(' assignment '); first_record; end; Trigger Name : WHEN-BUTTON-PRESSED Form : Problem_ assignment Block : Button Item : pb_view Trigger Focus : Retrieve all record and Go to first record. Trigger Level : Item Level Trigger Text : begin go_block(' assignment '); execute_query; end; Trigger Name : WHEN-BUTTON-PRESSED Form : Problem_ assignment
  • 138. Block : Button Item : pb_search Trigger Focus : To search for a specific record. Trigger Level : Item Level Trigger Text : begin go_block(' assignment '); enter_record; end; Another Objects used in Problem Assignment Form : 1. Alert : Name : My_Alert Alert Style : Stop No. of Button : 2 Used for : pb_save,pb_exit 2. Popup-Menu : Name : Shortcut User for : Assignment_can 3. Property-Class : Name : PC_canvas Background-Color : r100g100b75 User for : Assignment_can
  • 139. PROBLEM SOLVER FORM: Trigger Name : WHEN-NEW-FORM-INSTANCE Form : Problem_Solver Block : Item : Trigger Focus : To maximize the window during runtime. Trigger Level : Form Level Trigger Text : begin set_window_property(forms_mdi_window,window_state,maximize); set_window_property('solver_win',window_state,maximize); end; Trigger Name : ON-ERROR Form : Problem_ Solver Block : Item : Trigger Focus : NOT NULL check handling. Trigger Level : Form Level Trigger Text : declare error_item varchar2(50); current_item_label varchar2(100); begin if error_type='FRM' and error_code=40202 then error_item:=:system.trigger_item;
  • 140. current_item_label:=get_item_property(error_item,prompt_text); message(current_item_label||'cannot be left blank'); message(' '); else message(error_text); end if; end; Trigger Name : WHEN-NEW-BLOCK-INSTANCE Form : Problem_ Solver Block : Solver Item : Trigger Focus : To add value in List item. Trigger Level : Block Level Trigger Text : declare pos number:=0; begin for i in (select user_id from user_details_master where user_id like 'SO %') loop pos:=pos+1; add_list_element('user_id',pos,i.user_id,i.user_id); end loop; for j in (select ctn from problem_entry) loop
  • 141. pos:=pos+1; add_list_element('ctn',pos,j.ctn,j.ctn); end loop; end; Trigger Name : WHEN-LIST-CHANGED Form : Problem_Solver Block : Solver Item : user_id Trigger Focus : To populate value based on user id. Trigger Level : Item Level Trigger Text : select user_name into :solver_name from user_details_master where user_id=:user_id; select count(user_id) into :total_calls from problem_assignment where user_id=:user_id; Trigger Name : WHEN-LIST-CHANGED Form : Problem_Solver Block : Solver Item : ctn Trigger Focus : To populate value based on ctn. Trigger Level : Item Level Trigger Text : BEGIN SELECT PROBLEM_TYPE INTO :PROBLEM_TYPE FROM PROBLEM_ENTRY WHERE CTN=:CTN;
  • 142. EXCEPTION WHEN NO_DATA_FOUND THEN MESSAGE('RECORD DOES NOT EXIST!!!'); MESSAGE(' '); END; Trigger Name : WHEN-NEW-ITEM-INSTANCE Form : Problem_Solver Block : Solver Item : action_taken Trigger Focus : To call Editor at runtime. Trigger Level : Item Level Trigger Text : declare b boolean; begin show_editor('my_editor',:action_taken,200,150,:action_taken,b); :action_taken:=upper(:action_taken); if :action_taken not between 'A' and 'Z' then message('Action Taken must be in character!!'); message(' '); raise form_trigger_failure; end if; end; Trigger Name : WHEN-LIST-CHANGED Form : Problem_Solver
  • 143. Block : Solver Item : problem_status Trigger Focus : To populate value based on problem status. Trigger Level : Item Level Trigger Text : BEGIN IF :PROBLEM_STATUS='SOLVED' THEN :SOLVING_DATE:=SYSDATE; :SOLVING_TIME:=TO_CHAR(SYSDATE,'HH24:MI:SS'); ELSE :SOLVING_DATE:=NULL; :SOLVING_TIME:=NULL; END IF; END; Trigger Name : WHEN-BUTTON-PRESSED Form : Problem_Solver Block : Button Item : pb_add Trigger Focus : To insert a record. Trigger Level : Item Level Trigger Text : declare ctr number :=0; begin go_block('solver'); select count(ctn)into ctr from problem_solver_details_master
  • 144. where ctn=:ctn; if ctr > 0 then message('Call Track No already assigned!!'); message(' '); raise form_trigger_failure; else create_record; commit; end if; end; Trigger Name : WHEN-BUTTON-PRESSED Form : Problem_ Solver Block : Button Item : pb_modify Trigger Focus : To modify a record. Trigger Level : Item Level Trigger Text : go_block('solver'); update problem_solver_details_master set user_id=:user_id,solver_name=:solver_name,total_calls=:total_calls, problem_type=:problem_type,action_taken=:action_taken, solving_date=:solving_date,solving_time=:solving_time, problem_status=:problem_status,information_status=:information_status where ctn=:ctn; Trigger Name : WHEN-BUTTON-PRESSED Form : Problem_Solver
  • 145. Block : Button Item : pb_clear Trigger Focus : To clear a record. Trigger Level : Item Level Trigger Text : begin go_block('solver'); clear_record; end; Trigger Name : WHEN-BUTTON-PRESSED Form : Problem_ solver Block : Button Item : pb_save Trigger Focus : To save a record. Trigger Level : Item Level Trigger Text : begin go_block(' solver '); commit; end; Trigger Name : WHEN-BUTTON-PRESSED Form : Problem_ solver Block : Button Item : pb_exit Trigger Focus : To exit from a Form. Trigger Level : Item Level Trigger Text : declare
  • 146. ans number; begin if :system.form_status='CHANGED' then set_alert_property('my_alert',title,'Save Changes'); set_alert_property('my_alert',alert_message_text,'Would yoy like to make Changes Permanent?'); ans:=show_alert('my_alert'); if ans=88 then go_block(' solver '); commit; end if; end if; exit_form(no_commit); end; Trigger Name : WHEN-BUTTON-PRESSED Form : Problem_ solver Block : Button Item : pb_last Trigger Focus : Go to last record. Trigger Level : Item Level Trigger Text : begin go_block(' solver '); last_record; end;
  • 147. Trigger Name : WHEN-BUTTON-PRESSED Form : Problem_ solver Block : Button Item : pb_next Trigger Focus : Go to next record. Trigger Level : Item Level Trigger Text : begin go_block(' solver '); next_record; end; Trigger Name : WHEN-BUTTON-PRESSED Form : Problem_ solver Block : Button Item : pb_prev Trigger Focus : Go to previous record. Trigger Level : Item Level Trigger Text : begin go_block(' solver '); previous_record; end; Trigger Name : WHEN-BUTTON-PRESSED Form : Problem_ solver Block : Button Item : pb_first Trigger Focus : Go to first record. Trigger Level : Item Level Trigger Text :
  • 148. begin go_block(' solver '); first_record; end; Trigger Name : WHEN-BUTTON-PRESSED Form : Problem_ solver Block : Button Item : pb_view Trigger Focus : Retrieve all record and Go to first record. Trigger Level : Item Level Trigger Text : begin go_block(' solver '); execute_query; end; Trigger Name : WHEN-BUTTON-PRESSED Form : Problem_ solver Block : Button Item : pb_search Trigger Focus : To search for a specific record. Trigger Level : Item Level Trigger Text : begin go_block(' solver '); enter_record; end;
  • 149. Another Objects used in Problem Solver Form : 1. Alert : Name : My_Alert Alert Style : Stop No. of Button : 2 Used for : pb_save,pb_exit 2. Editor : Name : My_Editor Title : Action Taken Used for : action_taken 3. Popup-Menu : Name : Shortcut User for : Solver_can 3. Property-Class : Name : PC_canvas Background-Color : r100g100b75 User for : Solver_can PROBLEM STATUS FORM: Trigger Name : WHEN-NEW-FORM-INSTANCE Form : Problem_Status Block : Item :
  • 150. Trigger Focus : To maximize the window during runtime. Trigger Level : Form Level Trigger Text : begin set_window_property(forms_mdi_window,window_state,maximize); set_window_property(' Status_win',window_state,maximize); end; Trigger Name : ON-ERROR Form : Problem_ Status Block : Item : Trigger Focus : NOT NULL check handling. Trigger Level : Form Level Trigger Text : declare error_item varchar2(50); current_item_label varchar2(100); begin if error_type='FRM' and error_code=40202 then error_item:=:system.trigger_item; current_item_label:=get_item_property(error_item,prompt_text); message(current_item_label||'cannot be left blank'); message(' '); else message(error_text);
  • 151. end if; end; Trigger Name : WHEN-NEW-BLOCK-INSTANCE Form : Problem_ Status Block : Status Item : Trigger Focus : To add value in List item. Trigger Level : Block Level Trigger Text : DECLARE POS NUMBER :=0; BEGIN FOR I IN (SELECT CTN FROM PROBLEM_ENTRY) LOOP POS:=POS+1; ADD_LIST_ELEMENT('CTN',POS,I.CTN,I.CTN); END LOOP; END; Trigger Name : WHEN-LIST-CHANGED Form : Problem_Status Block : Status Item : ctn Trigger Focus : To populate value based on ctn. Trigger Level : Item Level Trigger Text : BEGIN
  • 152. SELECT PROBLEM_STATUS,INFORMATION_STATUS INTO :PROBLEM_STATUS,:INFORMATION_STATUS FROM PROBLEM_SOLVER_DETAILS_MASTER WHERE CTN=:CTN; SELECT ASSIGN_STATUS INTO :ASSIGN_STATUS FROM PROBLEM_ASSIGNMENT WHERE CTN=:CTN; IF :INFORMATION_STATUS='SEND' THEN :CLOSING_STATUS:='CLOSED'; :CLOSE_DATE:=SYSDATE; :CLOSE_TIME:=TO_CHAR(SYSDATE,'HH24:MI:SS'); ELSE :CLOSING_STATUS:='NOT CLOSED'; :CLOSE_DATE:=null; :CLOSE_TIME:=null; END IF; EXCEPTION WHEN NO_DATA_FOUND THEN MESSAGE('Record does not exist!!!'); message(' '); raise form_trigger_failure; end ; Trigger Name : WHEN-BUTTON-PRESSED Form : Problem_Status Block : Button Item : pb_add
  • 153. Trigger Focus : To insert a record. Trigger Level : Item Level Trigger Text : declare ctr number :=0; begin go_block('status'); select count(ctn)into ctr from problem_status_master where ctn=:ctn; if ctr > 0 then message('Call Track No already assigned!!'); message(' '); raise form_trigger_failure; else create_record; commit; end if; end; Trigger Name : WHEN-BUTTON-PRESSED Form : Problem_ Status Block : Button Item : pb_modify Trigger Focus : To modify a record. Trigger Level : Item Level Trigger Text : go_block('status');
  • 154. update problem_status_master set problem_status=:problem_status,assign_status=:assign_status, closing_status=:closing_status,information_status=:information_status, close_date=:close_date,close_time=:close_time where ctn=:ctn; Trigger Name : WHEN-BUTTON-PRESSED Form : Problem_Status Block : Button Item : pb_delete Trigger Focus : To clear a record. Trigger Level : Item Level Trigger Text : declare ans number; ctr number:=0; begin select count(ctn) into ctr from problem_status_master where ctn=:ctn; if ctr > 0 then ans:=show_alert('my_alert'); if ans=88 then go_block('status'); delete_record; commit; end if; else
  • 155. message('Record does not exist !!'); message(' '); raise form_trigger_failure; end if; end ; Trigger Name : WHEN-BUTTON-PRESSED Form : Problem_Status Block : Button Item : pb_clear Trigger Focus : To clear a record. Trigger Level : Item Level Trigger Text : begin go_block('status'); clear_record; end; Trigger Name : WHEN-BUTTON-PRESSED Form : Problem_ status Block : Button Item : pb_save Trigger Focus : To save a record. Trigger Level : Item Level Trigger Text : begin go_block(' status '); commit; end;
  • 156. Trigger Name : WHEN-BUTTON-PRESSED Form : Problem_ status Block : Button Item : pb_exit Trigger Focus : To exit from a Form. Trigger Level : Item Level Trigger Text : declare ans number; begin if :system.form_status='CHANGED' then set_alert_property('my_alert',title,'Save Changes'); set_alert_property('my_alert',alert_message_text,'Would yoy like to make Changes Permanent?'); ans:=show_alert('my_alert'); if ans=88 then go_block(' status '); commit; end if; end if; exit_form(no_commit); end; Trigger Name : WHEN-BUTTON-PRESSED Form : Problem_ status Block : Button Item : pb_last Trigger Focus : Go to last record.
  • 157. Trigger Level : Item Level Trigger Text : begin go_block(' status '); last_record; end; Trigger Name : WHEN-BUTTON-PRESSED Form : Problem_ status Block : Button Item : pb_next Trigger Focus : Go to next record. Trigger Level : Item Level Trigger Text : begin go_block(' status '); next_record; end; Trigger Name : WHEN-BUTTON-PRESSED Form : Problem_ status Block : Button Item : pb_prev Trigger Focus : Go to previous record. Trigger Level : Item Level Trigger Text : begin go_block(' status '); previous_record;
  • 158. end; Trigger Name : WHEN-BUTTON-PRESSED Form : Problem_ status Block : Button Item : pb_first Trigger Focus : Go to first record. Trigger Level : Item Level Trigger Text : begin go_block(' status '); first_record; end; Trigger Name : WHEN-BUTTON-PRESSED Form : Problem_ status Block : Button Item : pb_view Trigger Focus : Retrieve all record and Go to first record. Trigger Level : Item Level Trigger Text : begin go_block(' status '); execute_query; end; Trigger Name : WHEN-BUTTON-PRESSED Form : Problem_ status Block : Button Item : pb_search Trigger Focus : To search for a specific record.
  • 159. Trigger Level : Item Level Trigger Text : begin go_block(' status '); enter_record; end; Another Objects used in Problem Status Form : 1. Alert : Name : My_Alert Alert Style : Stop No. of Button : 2 Used for : pb_save,pb_exit 4. Popup-Menu : Name : Shortcut User for : Status_can 3. Property-Class : Name : PC_canvas Background-Color : r100g100b75 User for : Status_can REASSIGNMENT FORM:
  • 160. Trigger Name : WHEN-NEW-FORM-INSTANCE Form : Problem_master Block : Item : Trigger Focus : To maximize the window during runtime. Trigger Level : Form Level Trigger Text : begin set_window_property(forms_mdi_window,window_state,maximize); set_window_property('problem_win',window_state,maximize); end; Trigger Name : ON-ERROR Form : Problem_master Block : Item : Trigger Focus : NOT NULL check handling. Trigger Level : Form Level Trigger Text : declare error_item varchar2(50); current_item_label varchar2(100); begin if error_type='FRM' and error_code=40202 then error_item:=:system.trigger_item; current_item_label:=get_item_property(error_item,prompt_text); message(current_item_label||'cannot be left blank'); message(' ');
  • 161. else message(error_text); end if; end; Trigger Name : WHEN-NEW-BLOCK-INSTANCE Form : Problem_master Block : Problem Item : Trigger Focus : To add value in List item. Trigger Level : Block Level Trigger Text : declare pos number :=0; begin for J in (select ctn from problem_entry) loop pos:=pos+1; add_list_element('ctn',pos,J.ctn,J.ctn); end loop; for J in (select user_id from user_details_master) loop pos:=pos+1; add_list_element('user_id',pos,J.user_id,J.user_id); end loop; end;
  • 162. Trigger Name : WHEN-LIST-CHANGED Form : Problem_master Block : Problem Item : ctn Trigger Focus : To populate value based on ctn. Trigger Level : Item Level Trigger Text : BEGIN SELECT PRO.CUST_ID,PRO.PROBLEM_TYPE,PRO.PROBLEM_DESC,PRO.CALL_DATE,PRO.C ALL_TIME, SOL.ACTION_TAKEN,SOL.USER_ID,ASS.ASSIGN_DATE,ASS.ASSIGN_TIME,SYSDA TE,TO_CHAR(SYSDATE,'HH24:MI:SS') INTO :CUST_ID,:PROBLEM_TYPE,:PROBLEM_DESC,:CALL_DATE,:CALL_TIME, : ACTION_TAKEN,:USER_ID,:ASSIGN_DATE,:ASSIGN_TIME,:REOPEN_DATE,:REOPE N_TIME FROM PROBLEM_ENTRY PRO,PROBLEM_SOLVER_DETAILS_MASTER SOL,PROBLEM_ASSIGNMENT ASS WHERE PRO.CUST_ID=ASS.CUST_ID AND PRO.CTN=SOL.CTN AND PRO.CTN=:CTN; EXCEPTION WHEN NO_DATA_FOUND THEN MESSAGE('Record does not exist!!!'); message(' '); raise form_trigger_failure;
  • 163. WHEN too_many_rows THEN MESSAGE('Record exist with too many rows!!!'); message(' '); raise form_trigger_failure; WHEN dup_val_on_index THEN MESSAGE('Record has duplicate value!!!'); message(' '); raise form_trigger_failure; WHEN value_error THEN MESSAGE('Record has larger value!!!'); message(' '); raise form_trigger_failure; WHEN others THEN MESSAGE('You are getting error!!!'); message(' '); raise form_trigger_failure; end; Trigger Name : WHEN-LIST-CHANGED Form : Problem_master Block : Problem Item : user_id Trigger Focus : To populate value based on user id. Trigger Level : Item Level Trigger Text : :reassign_date:=sysdate;
  • 164. :reassign_time:=to_char(sysdate,'hh24:mi:ss'); update problem_solver_details_master set user_id=:user_id,solver_name=(select user_name from user_details_master where user_id=:user_id) where ctn=:ctn; Trigger Name : WHEN-BUTTON-PRESSED Form : Problem_master Block : Button Item : pb_add Trigger Focus : To insert a record. Trigger Level : Item Level Trigger Text : declare ctr number :=0; begin go_block('problem'); select count(ctn)into ctr from problem_master where ctn=:ctn; if ctr > 0 then message('Call Track No already assigned!!'); message(' '); raise form_trigger_failure; else create_record; commit; end if;
  • 165. end; Trigger Name : WHEN-BUTTON-PRESSED Form : Problem_ master Block : Button Item : pb_modify Trigger Focus : To modify a record. Trigger Level : Item Level Trigger Text : go_block('problem'); update problem_master set cust_id=:cust_id,problem_type=:problem_type,problem_desc=:problem_desc, action_taken=:action_taken,user_id=:user_id,call_date=:call_date,call_time=:ca ll_time, assign_date=:assign_date,assign_time=:assign_time,reopen_date=:reopen_date, reopen_time=:reopen_time,reassign_date=:reassign_date,reassign_time=:reassi gn_time where ctn=:ctn; Trigger Name : WHEN-BUTTON-PRESSED Form : Problem_Status Block : Button Item : pb_delete Trigger Focus : To clear a record. Trigger Level : Item Level Trigger Text : declare ans number;
  • 166. ctr number:=0; begin select count(ctn) into ctr from problem_master where ctn=:ctn; if ctr > 0 then ans:=show_alert('my_alert'); if ans=88 then go_block('problem'); delete_record; commit; end if; else message('Record does not exist !!'); message(' '); raise form_trigger_failure; end if; end ; Trigger Name : WHEN-BUTTON-PRESSED Form : Problem_master Block : Button Item : pb_clear Trigger Focus : To clear a record. Trigger Level : Item Level Trigger Text : begin go_block('problem');
  • 167. clear_record; end; Trigger Name : WHEN-BUTTON-PRESSED Form : Problem_master Block : Button Item : pb_save Trigger Focus : To save a record. Trigger Level : Item Level Trigger Text : begin go_block(' problem '); commit; end; Trigger Name : WHEN-BUTTON-PRESSED Form : Problem_master Block : Button Item : pb_exit Trigger Focus : To exit from a Form. Trigger Level : Item Level Trigger Text : declare ans number; begin if :system.form_status='CHANGED' then set_alert_property('my_alert',title,'Save Changes'); set_alert_property('my_alert',alert_message_text,'Would yoy like to make Changes Permanent?');
  • 168. ans:=show_alert('my_alert'); if ans=88 then go_block(' problem '); commit; end if; end if; exit_form(no_commit); end; Trigger Name : WHEN-BUTTON-PRESSED Form : Problem_master Block : Button Item : pb_last Trigger Focus : Go to last record. Trigger Level : Item Level Trigger Text : begin go_block(' problem '); last_record; end; Trigger Name : WHEN-BUTTON-PRESSED Form : Problem_master Block : Button Item : pb_next Trigger Focus : Go to next record. Trigger Level : Item Level Trigger Text : begin
  • 169. go_block(' problem '); next_record; end; Trigger Name : WHEN-BUTTON-PRESSED Form : Problem_master Block : Button Item : pb_prev Trigger Focus : Go to previous record. Trigger Level : Item Level Trigger Text : begin go_block(' problem '); previous_record; end; Trigger Name : WHEN-BUTTON-PRESSED Form : Problem_ master Block : Button Item : pb_first Trigger Focus : Go to first record. Trigger Level : Item Level Trigger Text : begin go_block(' problem '); first_record; end; Trigger Name : WHEN-BUTTON-PRESSED Form : Problem_master
  • 170. Block : Button Item : pb_view Trigger Focus : Retrieve all record and Go to first record. Trigger Level : Item Level Trigger Text : begin go_block(' problem '); execute_query; end; Trigger Name : WHEN-BUTTON-PRESSED Form : Problem_master Block : Button Item : pb_search Trigger Focus : To search for a specific record. Trigger Level : Item Level Trigger Text : begin go_block(' problem '); enter_record; end; Another Objects used in Reassignment Form : 1. Alert : Name : My_Alert Alert Style : Stop No. of Button : 2 Used for : pb_save,pb_exit
  • 171. 5. Popup-Menu : Name : Shortcut User for : problem _can 3. Property-Class : Name : PC_canvas Background-Color : r100g100b75 User for : problem _can CODING OF VARIOUS ITEM’S OF DIFFERENT MENUCODING OF VARIOUS ITEM’S OF DIFFERENT MENU PROJECT MENU : EXIT : Exit_form; CUSTOMER DETAILS : OPEN_FORM('C:FINALCUSTOMER_MASTER.FMX'); USER DETAILS : OPEN_FORM('C:FINALUSER_MASTER.FMX'); PROBLEM ENTRY : OPEN_FORM('C:FINALPROBLEM_ENTRY.FMX'); ASSIGNMENT : OPEN_FORM('C:FINALPROBLEM_ASSIGNMENT.FMX'); REASSIGNMENT : OPEN_FORM('C:FINALPROBLEM_MASTER.FMX');
  • 172. CHECKING : OPEN_FORM('C:FINALPROBLEM_STATUS.FMX'); SOLVER DETAILS : OPEN_FORM('C:FINALPROBLEM_SOLVER.FMX'); CUSTOMER DAILY REPORT : Run_product(reports,'c:finalcust_daily_report.rep',s ynchronous,runtime,filesystem,' '); CUSTOMER WEEKLY REPORT : Run_product(reports,'c:finalcust_weekly_report.rep', synchronous,runtime,filesystem,' '); CUSTOMER MONTHLY REPORT : Run_product(reports,'c:finalcust_monthly_report.re p',synchronous,runtime,filesystem,' '); COMPLAINT DAILY REPORT : Run_product(reports,'c:finalcomplaint_daily.rep',syn chronous,runtime,filesystem,' '); COMPLAINT WEEKLY REPORT : Run_product(reports,'c:finalcomplaint_weekly.rep',s ynchronous,runtime,filesystem,' '); COMPLAINT MONTHLY REPORT : Run_product(reports,'c:finalcomplaint_monthly.rep', synchronous,runtime,filesystem,' '); SOLVING TIME REPORT :
  • 173. Run_product(reports,'c:finalsolving_time.rep',synchr onous,runtime,filesystem,' '); PROCESSING TIME REPORT : Run_product(reports,'c:finalprocessing_time.rep',sy nchronous,runtime,filesystem,' '); TOTAL COMPLAINT REPORT : Run_product(reports,'c:finaltotal_complaint.rep',syn chronous,runtime,filesystem,' '); PROBLEM DAILY REPORT : Run_product(reports,'c:finaltotal_type_daily.rep',syn chronous,runtime,filesystem,' '); PROBLEM WEEKLY REPORT : Run_product(reports,'c:finaltotal_type_weekly.rep',s ynchronous,runtime,filesystem,' '); PROBLEM MONTHLY REPORT : Run_product(reports,'c:finaltotal_type_monthly.rep', synchronous,runtime,filesystem,' '); USER DETAILS REPORT : Run_product(reports,'c:finaluser_details.rep',synchronous,runtime,filesystem,' '); COMPLAINT STATUS REPORT : Run_product(reports,'c:finalcomplaint_status.rep',synchronous,runtime,file system,' ');
  • 174. PROJECT SUB MENU : SAVE : Begin Commit; End; EXIT : Exit_form; VIEW ALL : Execute_query; SEARCH : Enter_query; INSERT : begin create_record; end; UPDATE : declare blk_name varchar2(50); form_name varchar2(50); str_base_table varchar2(50); begin form_name:=get_application_property(current_form_name); blk_name:=get_form_property(form_name,first_block); str_base_table:=get_block_property(blk_name,DML_DATA_TARGE T_NAME);
  • 175. if str_base_table is not null then go_block(blk_name); end if; end; DELETE : declare blk_name varchar2(50); form_name varchar2(50); begin form_name:=get_application_property(current_form_name); blk_name:=get_form_property(form_name,first_block); if blk_name ='ENTRY' THEN message('Deletion not Allowed !!'); message(' '); else delete_record; end if; end; FIRST : First_record; NEXT : Next_record; PREV : Previous_record; LAST :
  • 176. Last_record; Code of a program will be said efficient when it uses appropriate algorithm in domain of problem. By using such an algorithm in coding enables the program to run faster and take least memory spaces during execution. I have try my best effort in coding of this software to make its program more efficient from each angle, such as timing complexity and space complexity by choosing suitable algorithm for each particular problem. Perhaps I cannot say that all coding of my programs are well efficient. CODE EFFICIENCY
  • 177. The code is called efficient when it is easy to understand, tested and maintained works properly. The code in this software is easy to understand, tested and maintained. Each module is separately coded in order to be simple and easily understood by other programmer. It is less error prone. It can be easily maintained. The care has been taken to trap the most common error message to make the code efficient. A code walk-through is an informal technique for analysis of the code. A code walk-through of a module is undertaken after the coding of the module is complete. In this technique, after a module has been coded, members of the development team select some test cases and simulate execution of the code by hand making the coding of the module efficient. Optimization of code is a process of shrinking the size of codes in a program without affecting the output of program consequently when code size reduces it takes less space in storage and also OPTIMIZATION OF CODE
  • 178. take less memory after loading during program execution and so program runs faster. Another benefit by reducing the size of code is that it becomes easy to coding so less prone to error and also optimize codes are easy to read and understand so it requires less effort in debugging. Here I have also try to optimize codes of my software by modularizing the problem using function and subroutine calls. I have also used inbuilt function and subroutines provided by the D2K. The project is Divided into different modules as under :- • Customer/User Login Module: - This module is for login by the customer and various users. The Customer can directly login through this module. The User can be a Customer Operator, Supervisor and Problem Solver. This module is integrated with restriction of unauthorized access module. Each user can only access those data, which are required for his/her work. • Problem,/Complaint Entry and CTN generation Module :- This module is for Customer and the Computer Operator for entry of Problem/complaint. The system automatically generates the Call Track No through this module. • Assignment Module: -This module is for the Supervisor. The Supervisor assigns the Problem/complaint to the
  • 179. Problem Solver and the stores assign_date, assign_time in the Master database. • Problem/Complaint Solving Module: - This module is for the Problem Solver. The Problem-solver solves the assigned problem/complaint and mails the solved information to the customer. He/she also stores date and time of solving a problem/complaint. • Problem/Complaint Status Checking Module: - This module is for Supervisor. The Supervisor continually check the various status of Problem/complaint such as assigned or not, solved or not. • Reassignment or Reopen Module:- If the complaint is not assigned then he assigns it. If the complaint is not solved then he reassigns it or sends reminder to the Problem Solver. The Supervisor can reopen/reassign a particular complaint and stores date and time of reopen and reassign. • Restriction of Unauthorized accesses Module:- Unauthorized Customer/Users are restricted to access in the system. • Change of privileges Module: - Privileges will be granted on the basis of groups created by Supervisor. They can also be revoked in case the granted privileges are misused.
  • 180. • Report generation Module :- This module generates various reports. Validation refers to the process of using software in a live environment using real data. . Validation is successful when software functions in a manner that can be reasonably expected by the customer. Suitable validation checks have been put wherever need was felt so as to avoid wrong data input. Coding has been done so as to avoid wrong entries in the tables. For example Numeric character are not allowed in the Customer’s name. Various modules have different process logic, which involves sorting of data on different attributes and selection of required attribute depending upon conditions have been decided. VERIFICATION: This checks if we are building the product right (i.e. does it meet the requirements specification?) VALIDATION CHECKS
  • 181. VALIDATION: This determines if we are building the right product? (i.e. does the requirement specification describe what the customer wants?) The various kinds of Validations performed in our system are as follows: 1) Date Validation: The validation on date data type has been specified to be of the format DD/MM/YY. Any other format is unacceptable. 2) Time Validation: The validation on time data type has been specified to be of the format hours-minutes-seconds. Any other format is unacceptable. 3) From-Date to To-Date: The “From Date” always has to be less than the “To Date”, e.g. From 01 Jan, 2010 to 27 April , 2010 is correct and it cannot be other way round. 4) From-Time to To-Time: The “From Time” always has to be less than the “To Time”, e.g. From 5-30-05 to 10-35-30 is correct and it cannot be other way round. 5) Number Field Validation: The field specified with Number as then their data-type will not accept Character or any other data type. 6) Character Field Validation: The field specified with Character, as then their data-type will not accept Number.
  • 182. 7) User Authentication: When a Customer/User logs on to the system to access data from table and database, the Id & password needs to be checked for their authentication. 8) Password change Validation: Only authorized users are allowed to change the password and the process requires asking the old password before changing it to the new one. 9) Phone & Email field Validation: Only valid values are allowed for these fields. 10) Unique Call Track No: The Call Track No. Should not be edited. It must be unique. 11) Unique Customer/User id: The Customer-id and User-id must be unique. IMPLEMENTATION Implementation means to take into practice. A crucial phase in the system life cycle is the successful implementation of the new system design. Implementation includes all those activities that take place to convert from the old system to the new one. The IMPLEMENTATION AND MAINTENANCE
  • 183. new system may be completely new, replacing an existing manual or automated system. The proposed system is completely new system i.e. the existing system is manual. The Main Aspects of Implementation are as follows: -  Training Personnel  Conversion Procedure  Demonstration Training Personnel: Even well designed system can succeed or fail because of the way they are operated and used. Therefore the quality of training received by the person involved with the system in various capacities helps in successful implementation of Proposed System. Conversion Procedure: Conversion is the process of changing from the old system to the new one. It must be properly planned and executed. Four methods are common in use, they are  Parallel System  Direct Conversion  Pilot System  Systems Phase-in
  • 184. For the proposed system Parallel System will be beneficial. Under this approach, users continue to operate the old system in usual manner but they will also start using the new system. This method is safest one because it ensures that in case of any problems in using the new system, the organization can still fall back to the old system without loss of time and money. Demonstration: After the system is implemented and conversion is complete, demonstration of the system is given to persons directly or indirectly related with the system. MAINTENANCE It has been estimated that maintenance of any software product usually requires much more effort than the effort necessary to develop the product. Many studies indicate that the relative effort
  • 185. of development of a typical system to its maintenance effort is roughly in the 40:60 ratios. Maintenance involves performing any one or more of the following three kinds of activities:  Correcting errors that were not discovered during the product development phase. This is called Corrective maintenance.  Improving the implementation of the system and enhancing the Functionality of the system according to the customer’s requirements. This is called Perfective maintenance.  Porting the software to a new environment, e.g. to a new computer or to a new operating system. This is called Adaptive maintenance. In the proposed Customer care administration had done Corrective maintenance and Adaptive maintenance.
  • 186. The importance of software testing and its limitations with respect to software quality cannot be overemphasized. Because of this importance and the large amount of project effort associated with system development, It becomes quite necessary to become well planned and through testing. Independent testing and non- adequate testing leads to error that may be costly when they appear month’s letters. Effective testing translates into cost saving from reduced errors and saves a lot of project effort. It follows major factors that decide the occurrence of errors in a new design from the very early stage of the development.  Communication between User and Designer: This factor is handled by frequently communicating with the security officers.  Time factor for the design: This factor is handled by giving comparatively more time to designing of the system. Objective of System Testing: Once a system has been designed, it is necessary to undergo an exhaustive testing before installing the system. This is important because in some cases a small system error, not detected and corrected early before installation, may explode in to a much larger problem later on. Testing is being performed when user is asked to assist in identifying all possible situations. That might arise as regards the factor SYSTEM TESTING
  • 187. that effort was put to tackle the problem under consideration. A plan was decided to be followed for testing the system. The complete testing procedure was divided in to several procedures, to be performed in different stages. Test was to be done as follows. WHITE BOX TESTING: Transaction Path Testing: In this phase each and every condition within a unit program were tested. As and when a loop or conditional statement were incorporated into a unit that loops were tested for correctness, for foundry conditions and for not getting into infinite execution cycle. The data used was whatever necessary at that instance. The path of each transaction from origin to destination was tested for reliable results. Module Testing: This was carried out during the programming stage itself. Individual programs were tested at the time of coding and necessary changes are made there on to make sure that the modules in the form program, is working satisfactory as regards the excepted output from the modules. AI, aspects of program viz., all choices available was properly tested.
  • 188. String Testing: After loading all individual programs, string testing was performed for each chain of programs where the output generated by one program used as input by another program. This step was completed after making necessary change wherever required. BLACK BOX TESTING: System testing: After module and string testing, the systems were tested as whole system tests were undertaken to check bundled modules for errors. The errors found in the couple system as wholes were corrected. This was followed by a testing on actual data of the company. During this phase the existing system and this package was running in parallel to enable us to verify and compare the result sets. The following criteria were to be used while testing the system. Output Testing: No systems could be useful if it does not produce the required output. For the matter asking the users about the format required by them tested output in the required
  • 189. format the outputs granted or displayed by the system under consideration. User Acceptance Testing: User Acceptance of a system is a key factor for the success of any system. The system under consideration was tested for user acceptance by constantly keeping in touch with the prospected system users at the time of developing and making changes wherever required. This was done in regard to the user satisfaction. Testing Procedure Different types of checks like duplicate checks, completeness check, validity checks etc are incorporated in this system, as the data has to be entered in different cards. The user is not familiar with the new system data entry screens are designed in such a way that they are  Consistent  Compatible  Easy to use  Hard quick response
  • 190. The following conventions are used while designing of the various screens to make the system user friendly  All the items that are logically related are placed together.  Whenever possible list of values is provided to display all valid options to the user.  For a particular card, query has been provided.  Error and validation messages are provided wherever required.  System testing is against its initial objectives, it is done either in a simulated environment. Test Review: The review is the process, which ensures that testing is carried out, as planned test review decides whether or not the program is ready to ship out for the implementation. For each data entry screen, we prepared test data with extreme values and under all relevant conditions. After my own satisfaction, I invited concern user to test the relevant data-entry screen against real, this process helped in rectifying the module time. The following action carried out as part of testing NAME
  • 191. Prepared By Md. Alauddin This test plan contains all possible test cases related to the working of CRM Package. Customer Administration Care for Customer Care Administration S.No Test Case Action / Input Expected Result Actual Result Pass / Fail 1. The Login windows is displayed once the CRM Package is run click on the login button of MDI form Login windows should be displayed Login windows is displayed Pass User Login Form S.No Test Case Action / Input Expected Result Actual Result Pass / Fail 1. Authenticate the user Type user name and password and click on OK The user name and password are checked in the database and if they match the user is allowed to login The user is allowed to access the package Pass
  • 192. 2. Provide invalid user code / Password Type an invalid user code / password and click OK Error message should be displayed and the user be redirected to the login window The user is redirected Pass 3. Canceling the login window Click cancel for not to run the package Login Screen of CRM Package should close The Package is close Pass 4. Provide the right User code and password Type a valid user code and password The MDI windows should be displayed The MDI window is displayed Pass User Master Form S.No Test Case Action / Input Expected Result Actual Result Pass / Fail 1. For Valid User Name and belonging User data After pressing Save Button If any erroneous data is there in form, The message with details of error should show After putting erroneous data, message showed Pass 2. Duplicate User id After entering existing user id If entered user id is already in the database then it prompt an error message On the entry of duplicate member code error message displayed properly Pass 3. Modify User Data After selecting the user code ,data of user is appear in respective control The User Id should not be changed . Yes, for edit the details of user, the all details of the member is being changed except the user id Pass
  • 193. Customer master Form S.No Test Case Action / Input Expected Result Actual Result Pass / Fail 1. Verify that all the customer’s records are displayed Check whether all the All data are displayed or not data are displayed Data are displayed Pass 2. Verify that search criteria is working e.g. cust_id,cust_name Enter cust_name to Searched Data control pointer should go to matching record in database Data pointer is moving to respective record Pass Problem Assignment Form S.No Test Case Action / Input Expected Result Actual Result Pass / Fail 1. Verify that all the CTN displayed in the CTN ComboBox Check whether all the CTN are displayed or not CTN are display in the combo box CTN displayed Pass 2. Verify that blank cust name and id are not saved After pressing the save button If cust name or cust id is blank then it should Message “Cust id and Cust name Pass
  • 194. prompt the message not to save should not be blank” displayed in case of letting name or code textbox blank 3. Verify that no Cust id is duplicated in database Enter any Duplicate id Error message will be displayed after entering a duplicate id Error Message is displayed Pass Testing Strategies:
  • 195. Test Type Description Unit Test Each independent piece of code works correctly. Integration Test All units work together without errors. Interface Test Usually done at integration stage when modules or sub- systems are combined. Objective is to detect errors or invalid assumptions about interfaces between modules. Reason these are not shown up in unit testing is that test case may perpetuate same incorrect assumption made by module designer. Particularly important when OO development has been used. Regression Test Newly Added features do not introduce errors to other features that are already working. Load Test (also called Stress Test) The product continues to work under extreme usage. Test system's ability to cope with a specified load (e.g. transactions per second). Plan tests to increase load incrementally. Go beyond design limit until system fails (this test particularly important for distributed systems). Platform Test The product works on all the target hardware and software platforms.
  • 196. Top Down Test This approach tests high levels of system before detailed components. This is appropriate when developing the system top-down, as it is likely to show up structural design errors early. Validation (as distinct from verification) can begin early. Its disadvantage is that stubs needs to be generated (extra effort) and might be impractical if component is complex (e.g. converting an array into a linked list; unrealistic to generate random list; therefore end up implementing unit anyway). Test output may be difficult to observe (needs creation of artificial environment). This is not appropriate for OO systems (except within a class). Bottom Up Test This is opposite of top-down testing. This testing test low- level unit then works up hierarchy. Its advantages and disadvantages of bottom-up mirror those of top- down. In this testing there is need to write test drivers for each unit. These are as reusable as the unit itself. Combining top-down development with bottom-up testing means that all parts of system must be implemented before testing can begin, therefore does not accord with incremental approach discussed above. Back To Back Test Comparison of test results from different versions of the system (e.g. comparing the prototype with previous version or different configuration). The process
  • 197. involves running the first system, saving test case results. Then running the second system, also saving its results. Finally comparing the result files. It is important to note that no difference does imply any bugs. Both systems may have made the same mistake. MAINTENANCE
  • 198. Authentication is the process of identifying users. Authorization is the process of granting access to users based on identity. Together, authentication and authorization provide the means to keep your application secure from intruders. The kinds of security measures used in our System are as follows: User Authentication Only the Valid users, who are present in the pre-defined list of Users stored in User Master table, are granted permissions to enter the System. Any user apart from Record of Users is denied access. User Authorization A privilege is a right to execute a particular type of SQL statement or to access another user’s object. Some examples of privileges include the right to  Connect to the database (create a session)  Create a table  Select rows from another user’s table  Execute another user’s stored procedure Privileges are granted to users so that they can accomplish tasks required for their jobs. A privilege should be granted only to a SYSTEM SECURITY MEASURES
  • 199. user who absolutely requires it to accomplish necessary task. Excessive granting can compromise security. Data Manipulation Language Operations We can grant privileges to use the various DML statements like DELETE, INSERT, SELECT, and UPDATE to perform operations on a table or view. We grant these privileges only to users and roles that need to query or manipulate a table’s data. With selective INSERT, a privileged user can insert a row with values for the Selected columns. All other columns receive NULL or the column’s default value. With selective UPDATE, a user can update only specific column values of a row. Selective INSERT and UPDATE privileges are used to restrict a user’s access to sensitive data. Data Definition Language Operations In our system we have used DDL operations to maintain the table level security. We have a system, which keeps a track of each and every user gaining access into the system at any time to perform any changes on the various tables. The administrator can see the listing of these users along with the access dates.
  • 200. For security measure I have taken ‘Password’ as ‘Varchar2’ data type, so that a user can use in this field both integer and alphabets. The cost estimation depends upon the following: • Project complexity • Project size • Degree of structural uncertainty • Human, technical, environmental, political – can affect the ultimate cost of software and effort applied to develop it. • Delay estimation until late in the project. • Base estimates on similar projects that have already been completed. • Use relatively simple decomposition techniques to generate project cost and effort estimates. COST ESTIMATION
  • 201. • Use one or more empirical models for software cost and effort estimation. Project complexity, project size and the degree of structural uncertainty all affects the reliability of estimates. For complex, custom systems, a large cost estimation error can make the difference between profit and loss. A model is based on experience and takes the form: D = f (Vi) Where D is one of a number of estimated values (e.g. effort, cost, project duration) and (Vi) are selected independent parameters (e.g. estimated LOC (Line of Code) or FP (Functional parameters)) New Hardware & Software: Intel Pentium – IV Processor Windows Xp Oracle 9i Developer 2000(Form 9i,Report 9i) DIFFERENT PHASES OF PROPOSED SOFTWARE DEVELOPMENT System Study : 1. SRS (System Requirement Study) Documents and approval 2. Advance Amount (50% of develop charges+full cost of the SW)
  • 202. 3. Starting Of development (Interface Design and Approval) 4. Development 5. Presentation of New System 5.1 2nd partial development charges (Rest 50%). 6. User training. 7. Implementation. 8. Support. 10. Support for the futuristic changes. Price Quotation • The process will start after the system study and with an advance amount of 50% from the corporate as advance. The rest in at the time of implementation. • The project will approximately require 8 man months (8 people for 1 month) to be completed. • The development cost for this proposed software will be Rs 11,500 (per man month) * 8 (man months) = Rs 92,000/- • Cost of original software (Oracle 9i) Rs 80,000 (approx.), (Developer 9i) Rs 28,000 (approx.) excluding 4% LST. Total: Rs 1,90,000 (Excluding LST on Software)
  • 203. The system provides various reports for the concerned senior officers of RELIANCE CARE that helps in decision-making. Supervisor is the person who is responsible for generating various reports, these are following: - (1) Daily Customer Report: - This report contains total number of Customers, daily log in the system. REPORTS
  • 204. (2) Weekly Customer Report: - This report contains total number of Customer, weekly log in the system. (3) Monthly Customer Report: - This report contains total number of Customer, monthly log in the system. (4) Complaint daily Report: - This report contains how many problems, daily entered in the system. (5) Complaint weekly Report: - This report contains how many problems, weekly entered in the system. (6) Complaint monthly Report: - This report contains how many problems, monthly entered in the system. (7) Report on Time to resolve: - This report contains the time taken in rectification of a particular problem/complaint. (8) Report on Time taken from Start to Close the Complaints :- This report contains the time taken between entry and closing of a complaint. (9) Report on Total Complaints allotted to each Problem Solver :- This report contains how many Problem/Complaint has been allotted to Problem Solver. (10) Type of Problem Daily Report :- This report contains total number of complaints of a particular type, daily logged in the system.
  • 205. (11) Type of Problem Weekly Report :- This report contains total number of complaints of a particular type, weekly logged in the system. (12) Type of Problem Monthly Report :- This report contains total number of complaints of a particular type, monthly logged in the system. (13) Report on different Users : This report contains total number of Users working in a organization. (14) Complaint Status Report :- This report contains status of all problem logged in a system. (15) Report on Graphical Representation of Complaints :- This report contains the graphical representation of complaints (such as colorful bar graph) solved/on hold/unsolved per Problem Solver.
  • 206. PERT CHART PERT (Project Evaluation and Review Technique) charts consist of a network of boxes and arrows. The boxes represent activities and the arrows represent task dependencies. PERT is organized by events and activities or tasks. PERT have more advantages and they are likely to be used for more complex projects. Through PERT chart the various task paths are defined. PERT enables the calculation of critical path. Each path consists of combination of tasks, which must be completed. The time and the cost associated with each task along a path are calculated, and the path that requires the greatest amount of elapsed time is the critical path. Calculation of the critical path enables project manager to monitor this series of task more closely than others to shift resources to it, if it begins to fall behind schedule. PERT controls time and cost during the project and also facilitate finding the right balance between completing a project on time and completing it within the budget. There are thus not one but many critical paths, depending on the permutations of the estimates for each task. This makes analysis of critical path in PERT charts very complex. The PERT chart PERT / GANTT CHART
  • 207. representation of CRM PACKAGE FOR CTS problem is shown below. GANTT CHART Gantt charts (developed by Henry L. Gantt) are a project control technique that can be used for several purposes including scheduling, budgeting and resource planning. A Gantt chart is a bar chart with each bar representing an activity. The bars are drawn against a time line. The length of each bar is proportional to the length of time planned for the activity. Gantt chart can take different form depending on their intended use. The Gantt chart of CRM PACKAGE FOR CTS is drawn for the time management and is given as : 4th Sep – 15th Mar 24th Dec-25th Feb28th Oct-24th Feb 10th Oct-15th Jan18th Sep-Octth April 10th Oct-20th Jan 28th Oct-25th Jan 24th Jan-25th Feb 10th Oct-10th Mar Code Database Part Design GUI Part Finish Integrate and Test Design Database Part Start Report Generation PartCode GUI Part Write User Manual Analysis Part 4th Sep-15th Mar
  • 208. Stage GANTT CHART Stage 1. Stage 2. Stage 3. Stage 4. Stage 5. DAYS 30 Days 40 Days 45 Days 15 Days 10 Days System Analysi System Design Coding Testin g Imple mentat
  • 209. (1) Enhancement of our proposed system would be in terms of connectivity with the rest of the departments so that information is made available throughout the organization, which leads to efficiency and speeding up, of a number of processes in the organization. (2) After successfully implementing the system, it can be added in the system that automatically display the Customer details when the customer make a call after identifying the customer’s phone number. (3) When the developed system runs successfully, it can also be used in other areas with certain changes according to the requirements of that area. (4) Online Customer register facility and can see the solution in the system itself by entering Call Tracking No. thus reducing the workload on the Problem-Solvers. (5) Integration of IVRS (Integrated Voice Recognition System) for automated telephonic Problem/Complaint entry system can be incorporated to minimize the workload on the Computer FUTURE SCOPE
  • 210. Operator. After entering the complaint the system can automatically assign the Complaint to the Problem-Solver on the basis of Problem/Complaint type, thus reducing the workload on the Supervisor. BOOK:  Oracle 9i Handbook by Ivan Bayross  Oracle 9i Complete Reference from Oracle Press  Mastering Oracle SQL by Sanjay mishra  Oracle Developer 2000 (FORMS 5.0) by Ivan Bayross  Oracle Developer / 2000 forma by Albert Lulushi.  Developer 2000 – Forms 6.0, STG Materials  Element of System Analysis and Design by IGNOU Course Material  Software Engineering By Ian Sommeville Or IGNOU Materials. BIBLIOGRAPHY
  • 211. WEBSITES:  www.Goggle.com  www.ddj.com  www.otn.oracle.com Data base A store of integrated data capable of being directly addressed for multiple uses; it is organized so that various files can be accessed through a single reference based on the relationship among records in the file rather than the physical location. Data base management system, the software that determines that how data must be structured to produce the user’s view; manages, stores, and retrieves data and enforces procedures. Data dictionary A structured repository of data about data; a list of terms and their definitions for all data items and data stores of a system. GLOSSARY
  • 212. Data flow Movement of data in a system from a point of origin to a specific destination – Indicated by a line and arrow. Data flow diagram Graphic representation of data movement, processes, and files (data stores) used in support of an information system. Data security Protection of data from loss, disclosure, modification, or destruction. Design Process of developing the technical and operational specification of a candidate system for implementation. DFD See data flow diagram. Documentation A means of communication; a written record of a phase of a specific project; it establishes design and performance criteria for phases of the project. Entity Also called a data aggregate; something of interest to the user about which to collect or store data; represents a number of data elements. Form A physical carrier of data, of information. Form design Evaluating present document and creating new or improved forms that offer useful information for action. Functionality A definition of the facilities, performance, and other factors that the user requires in the finished product. Information A meaningful set of data that tells something about the data relationships.
  • 213. Initial investigation An exploratory activity that determines whether a user request is valid and feasible before a course of action is recommended. Password Identify authenticator; a key that allows access to a program, system, or procedure. PERT See program evaluation and review techniques. Phase A set of tasks or activities that, when completed, brings a project to a critical milestone. Physical design A design that produces the working system by design specifications that tell programmers exactly what the candidate system must do. Physical record The way data are physically recorded on a storage medium. Process A procedure that transforms input into useful output; in a data flow diagram – indicated by a bubble or a circle. Project evaluation and review technique (PERT) A flow system model used to manipulate various values as a basis for determining the critical path, to interpret these relationships and to relate them back to the real world as a control technique. Prototyping A working system to explore implementation or processing alternatives and evaluate results. Record A collection of aggregates or related items of data treated as a unit. Relation Two – dimensional table.
  • 214. Security The protection of data or hardware against accidental or intentional damage from a defined threat. Source code A procedure or format that allows enhancement on a software package. System A regular or orderly arrangement of components or parts in a connected and interrelated series or whole; a series or group of components necessary to some operation. System design Detailed concentration on the technical and other specifications that will make the new system operational. System security See security. Systems testing Tests the whole system by the user after major programs and subsystems have been tested. Unit testing Changes made in an existing or new program.