+ All Categories
Home > Documents > CUSTOMER CARE ADMINISTRATION-developer-2000 and oracle 9i

CUSTOMER CARE ADMINISTRATION-developer-2000 and oracle 9i

Date post: 18-Aug-2015
Category:
Upload: akash-gupta
View: 30 times
Download: 3 times
Share this document with a friend
Popular Tags:
292
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
Transcript

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

Customer

(2) Problem Assignment Process

Valid Assign to Supervisor

Assigned Take Details of Customer& D1 Master DataBase Problems

Update

(3) Problem Solving Process

Assigned Take Problem Details Problem

Solution D1 Master DataBase

Information Change Prior Status

Mail to

Assigns 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 Solver

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

CUSTOMER DAILY REPORT:

PARAMETER FORM:

CUSTOMER MONTHLY REPORT:

PARAMETER FORM:

COMPLAINT WEEKLY REPORT:

PARAMETER FORM:

COMPLAINT MONTHLY REPORT:

PARAMETER FORM:

COMPLAINT STATUS REPORT:

DIFFERENT USER REPORT:

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.


Recommended