CUSTOMER CARE ADMINISTRATION-developer-2000 and oracle 9i
-
Upload
akash-gupta -
Category
Documents
-
view
31 -
download
3
Transcript of CUSTOMER CARE ADMINISTRATION-developer-2000 and oracle 9i
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.
OBJECTIVE
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.
PROPOSED SYSTEM
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).
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.
PROJECT CATEGORY
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.
SYSTEM ANALYSIS
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 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
AnalysisAnalysis
DesignDesign
CodeCode
TestTest
System/Information Engineering
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.
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 ,
SOFTWARE REQUIREMENT SPECIFICATION
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)
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
SOFTWARE AND HARDWRE SPECIFICATION
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
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"
SYSTEM DESIGN
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
PROCESS LOGIC
Master DB
No
Yes
No
Yes
Computer Operator takes details from Customer
System automatically generates CTN
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
Stores the solved details in Database
Reopen call & store date & time
Close the Call& And store date & time
Info. Send
Reassign problem
Supervisor checks theProblem status fromDatabase
Reopen
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 DetailsPD : Problem/Complaint Details Pwd : Password
COMPLETE STRUCTURE OF THE PROGRAM
Problem Solver
Supervisor
Customer
Computer Operator
CUSTOMERCARE
ADMINISTR-TION
VariousReports
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
Customer
Supervisor
ProblemSolver
ComputerOperator
ProblemEntry &
CTNGeneration
UserLogin
Reports
Problem
Status
CallClosing
ProblemAssignment
Solve& Send
CustomerLogin
Closed Check from Print Details of Customers & Problems Various report
(FIRST LEVEL DFD)
(1) Complaint Entry Process
Valid Customer
Valid StoreComputerOperator
D1 Master DataBase
Store
Call Track No.
Customer, Problem
Details entry &
Submit
CTNGeneratio
n
Second Level DFD
(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 Problems
Problem-solver
Store Date & Time
ProblemSolving
SendingInformationCustomer
(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
Closes
Reassign
Reopen
Assign
Problem Solver
SendingReminder
(5) Report Generation
Report 1
Report 2
Report 3
ValidSupervisor Report 4
Report 5
Report 6
Take various Report 7 Details
D1 Master DataBase
Report 1: Report on different CustomersReport 2: Report on Problem/ComplaintReport 3: Report on Time to resolveReport 4: on time taken from start to close the complaints/ProblemsReport 5: Report on total complaints allotted to each Problem SolverReport 6: Report on different type of Problem/complaintReport 7: Graphical representation of complaints solved/on hold/unsolved per
ReportGeneration
Problem SolverSupervisor
End UserCustomer Interacts
SendInformation
Reports
Generates
Problem/complaint
Reopen
Store
Assign
Reassign
Close
Solve
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
Complaint
CallTime Character 10 Time of receiving
Complaint
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-
Solver
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
InformationStatu
s
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
OUTPUT SCREEN & DESCRIPTION FOR
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.
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.
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:
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.
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
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:\FINAL\USER_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:\FINAL\CUSTOMER_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:\FINAL\OP_MOD.FMX');
ELSIF :USER_ID LIKE 'SO%' THEN
OPEN_FORM('C:\FINAL\SO_MOD.FMX');
ELSIF :USER_ID LIKE 'SU%' THEN
OPEN_FORM('C:\FINAL\SU_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_TR
UE);
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_FA
LSE);
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:\FINAL\PROBLEM_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:\FINAL\OP_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:\FINAL\PROJECT_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:\FINAL\SO_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_ti
me=: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,SYSDAT
E,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=:cal
l_time,
assign_date=:assign_date,assign_time=:assign_time,reopen_date=:reopen_date,
reopen_time=:reopen_time,reassign_date=:reassign_date,reassign_time=:reassig
n_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:\FINAL\CUSTOMER_MASTER.FMX');
USER DETAILS :
OPEN_FORM('C:\FINAL\USER_MASTER.FMX');
PROBLEM ENTRY :
OPEN_FORM('C:\FINAL\PROBLEM_ENTRY.FMX');
ASSIGNMENT :
OPEN_FORM('C:\FINAL\PROBLEM_ASSIGNMENT.FMX');
REASSIGNMENT :
OPEN_FORM('C:\FINAL\PROBLEM_MASTER.FMX');
CHECKING :
OPEN_FORM('C:\FINAL\PROBLEM_STATUS.FMX');
SOLVER DETAILS :
OPEN_FORM('C:\FINAL\PROBLEM_SOLVER.FMX');
CUSTOMER DAILY REPORT :
Run_product(reports,'c:\final\
cust_daily_report.rep',synchronous,runtime,filesystem,'
');
CUSTOMER WEEKLY REPORT :
Run_product(reports,'c:\final\
cust_weekly_report.rep',synchronous,runtime,filesyste
m,' ');
CUSTOMER MONTHLY REPORT :
Run_product(reports,'c:\final\
cust_monthly_report.rep',synchronous,runtime,filesyste
m,' ');
COMPLAINT DAILY REPORT :
Run_product(reports,'c:\final\
complaint_daily.rep',synchronous,runtime,filesystem,'
');
COMPLAINT WEEKLY REPORT :
Run_product(reports,'c:\final\
complaint_weekly.rep',synchronous,runtime,filesystem,
' ');
COMPLAINT MONTHLY REPORT :
Run_product(reports,'c:\final\
complaint_monthly.rep',synchronous,runtime,filesyste
m,' ');
SOLVING TIME REPORT :
Run_product(reports,'c:\final\
solving_time.rep',synchronous,runtime,filesystem,' ');
PROCESSING TIME REPORT :
Run_product(reports,'c:\final\
processing_time.rep',synchronous,runtime,filesystem,'
');
TOTAL COMPLAINT REPORT :
Run_product(reports,'c:\final\
total_complaint.rep',synchronous,runtime,filesystem,'
');
PROBLEM DAILY REPORT :
Run_product(reports,'c:\final\
total_type_daily.rep',synchronous,runtime,filesystem,'
');
PROBLEM WEEKLY REPORT :
Run_product(reports,'c:\final\
total_type_weekly.rep',synchronous,runtime,filesystem
,' ');
PROBLEM MONTHLY REPORT :
Run_product(reports,'c:\final\
total_type_monthly.rep',synchronous,runtime,filesyste
m,' ');
USER DETAILS REPORT :
Run_product(reports,'c:\final\user_details.rep',synchronous,runtime,filesystem,'
');
COMPLAINT STATUS REPORT :
Run_product(reports,'c:\final\
complaint_status.rep',synchronous,runtime,filesystem,' ');
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.
The code is called efficient when it is easy to understand,
tested and maintained works properly. The code in this software
CODE EFFICIENCY
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 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
OPTIMIZATION OF CODE
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: 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.
VALIDATION CHECKS
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 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
IMPLEMENTATION AND MAINTENANCE
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.
SYSTEM TESTING
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
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 CaseAction /
InputExpected 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 ResultActual
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 ResultPass /
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 idAfter 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
Pass
being changed
except the
user id
Customer master Form
S.No Test Case Action / Input Expected ResultActual
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 displayedData are
displayedPass
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 CaseAction /
InputExpected 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
displayedPass
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
prompt the
message not to
save
Message
“Cust id and
Cust name
should not
be blank”
displayed in
case of
letting name
or code
textbox
blank
Pass
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
SYSTEM SECURITY MEASURES
to a 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.
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,
COST ESTIMATION
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
PERT / GANTT CHART
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 Feb
28th Oct-24th Feb 10th Oct-15th Jan18th Sep-Octth April
10th Oct-20thJan 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.
DAYS30
Days
40
Days
45
Days
15
Days
10
Days
System
AnalysiSystem
DesignCoding
Testin
g
Imple
menta
(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 Operator. After entering the complaint the
FUTURE SCOPE
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.
Data flow Movement of data in a system from a point of origin
to a specific destination – Indicated by a line and arrow.
GLOSSARY
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.