Example #3: The Quotation Application

 

Analysis and Design

 

Our virtual company’s main business is telecommunications cabling. Various customers will phone in with requests for quotes (RFQ) – after taking some details, the Quoters will forward on these details to the Quote Manager. The Quote Manager will accept or decline the requests and allocate resources to them. An Account Manager will arrange to meet with the client to further discuss their requirements and an Engineer will schedule a time to perform a site inspection where the work will be carried out. Once all this has been completed, a final quote with a price will be emailed to the customer.

 

The manual forms used in this quotation process are shown in Figure 163:

 

 

Figure 163.

 

 

Step 1: Design User Roles:

 

The first step is to work out how many different roles are at work here in our process;

 

  1. The Quoter

 

The employee that takes the initial details of the RFQ.

 

  1. The Quote Manager

 

The manager who approves RFQs and allocates resources for follow up.

 

  1. The Account Manager

 

The manager who arranges one or more appointments with the customer to discuss their requirements.

 

  1. The Engineer

 

The employee who performs one or more site inspections to determine additional requirements and to ensure the site is safe for work to commence.

 

So, there are four different roles in this work process.

 

 

Step 1: Design User Roles – Summary:

 

For this example, the need for four distinct user roles has been identified; Quoter, Quote Manager, Account Manager and Engineer.

 

 

Step 2: Design Forms:

 

The next step in the analysis phase is to work out what the screens in our final system will look like. All the relevant information in our process is represented on several manual forms. These will be the model for our automated forms.

 

 

Step 2: Design Forms – Summary:

 

For this example, the need for nine screens has been identified. All the employees in our virtual company will be able to create an RFQ. Only Quote Managers will be able to approve or decline those RFQs. Only Account Managers will be able to arrange customer appointments. Only Engineers will be able to schedule site inspections.

 

 

Step 3: Design Workflow:

 

The final step in our analysis phase is to define the workflow itself.

 

In this example, the workflow is as follows:

 

Figure 164.

 

Step 3: Design Workflow – Summary:

 

For this example, the workflow is a sequence with a decision gate and two ‘splitters’. These splitters will spawn off new instances of different workflows which are themselves loops – one for appointments and the other for site inspections. In both of these sub-workflows, a decision gate governs whether the sub-workflow ends and returns flow back to the main workflow or whether the sub-workflow iterates through another pass.

 

This completes the analysis phase for the Quotation system.

 

 

Implementation

 

Step 4: Implement User Types and Users:

 

For this example, four new user types will be created:

 

Using the ‘User Types’ maintenance screen, create four new user types all with the same levels of access. Figure 165 shows an example for the Quoter user type.

 

Note:

‘Task List’ and ‘Items List’ will allow in-process workflows to be shown to the user.

Figure 165.

 

 

After creating the four new user types, the user maintenance tree should look something like Figure 166:

Figure 166.

 

Create two new users ‘Karen’ and ‘Rod’ and make them both members of the ‘Quoter’ user type:

Figure 167.

 

 

Create a new user ‘Craig’ and make him a member of both the ‘Quote Manager’ and ‘Quoter’ user types:

Figure 168.

 

 

Create two new users ‘John’ and ‘David’ and make them both members of the ‘Account Manager’ and ‘Quoter’ user types:

Figure 169.

 

 

Create two new users ‘George’ and ‘Hamish’ and make them both members of the ‘Engineer’ and ‘Quoter’ user types:

Figure 170.

 

Step 4: Implement User Types and Users – Summary:

 

At this point, four new user types and seven new users have been defined.

 

Note:

See the previous examples for a detailed description of adding user types and users.

 

 

Step 5: Implement Forms:

 

Select Admin Forms from the top menu bar:

Figure 171.

 

 

Kontinuum’s form maintenance section will be displayed. Click on the ‘Forms’ node in the tree control in the left-hand pane of the browser. Select ‘Add Folder’ in the context-sensitive menu that appears:

Figure 172.

 

The ‘Folders’ maintenance screen will appear in the right-hand pane of the browser. Fill out the required fields and click on the ‘Submit’ button.

Figure 173.

 

A total of nine forms will be created under this folder. The first is a form called ‘Request For Quote’ with the attributes listed in the tables below:

 

 

Form Name:                  Request For Quote

Form Database Name:   RequestForQuote

 

Subform Details:

 

Subform

Type

Subform Name

Subform Order

Appear In Column

Use data from Auxiliary Form

HideDeleteButton

Uneditable

 

 

 

 

 

 

 

 

RFQ Details

One

RFQDetails

1

1

 

 

 

 

Question Details:

 

Question

Type

Name

PK

Show In Task List

Question Order

Appear Column

Column Width

Data Type

Size

Input Mask

Pixels from Left

Pixels from Top

 

 

 

 

 

 

 

 

 

 

 

 

 

Client Ref. #

Text Box

ClientRefNo

No

Yes

1

1

 

VARCHAR

40

None

 

 

Priority

List Box

Priority

No

No

1

2

 

VARCHAR

6

None

 

 

Internal Ref. #

Label

InternalRefNo

Yes

Yes

2

1

 

IDENTITY

 

None

 

 

Required By

Input Mask Box Calendar

RequiredBy

No

No

2

2

 

DATETIME

 

Australian Date Format

 

 

Client

Pre Search List Box

Client

No

No

3

1

 

VARCHAR

40

None

 

 

 

Question Rules:

 

Question Name

Default Value / Selection

Required

Uneditable

 

 

 

 

ClientRefNo

 

1

 

Priority

[High][Medium][Low]

 

 

Client

[Telstra][Optus]

 

 

 

Subform Details:

 

Subform

Type

Subform Name

Subform Order

Appear In Column

Use data from Auxiliary Form

HideDeleteButton

Uneditable

 

 

 

 

 

 

 

 

Customer Details

One

CustomerDetails

2

1

 

 

 

 

Question Details:

 

Question

Type

Name

PK

Show In Task List

Question Order

Appear Column

Column Width

Data Type

Size

Input Mask

Pixels from Left

Pixels from Top

 

 

 

 

 

 

 

 

 

 

 

 

 

Name

Text Box

CustName

No

No

1

1

 

VARCHAR

40

None

 

 

Phone

Text Box

CustPhone

No

No

1

2

 

VARCHAR

14

Australian Phone Number

 

 

Address

Text Box

CustAddress

No

No

2

1

 

VARCHAR

40

None

 

 

Fax

Text Box

CustFax

No

No

2

2

 

VARCHAR

14

Australian Phone Number

 

 

ABN

Text Box

CustABN

No

No

3

2

 

VARCHAR

10

None

 

 

Suburb

Text Box

CustSuburb

No

No

3

1

 

VARCHAR

40

None

 

 

City

Text Box

CustCity

No

No

4

1

 

VARCHAR

40

None

 

 

 

WebAndFlo2005External.Spacer

CustSpacer1

No

No

4

2

 

 

 

None

 

 

Contact Name

Text Box

CustContactName

No

No

5

2

 

VARCHAR

40

None

 

 

State

Text Box

CustState

No

No

5

1

 

VARCHAR

40

None

 

 

Contact Number

Text Box

CustContactNumber

No

No

6

2

 

VARCHAR

14

Australian Phone Number

 

 

Postcode

Text Box

CustPostcode

No

No

6

1

 

VARCHAR

4

None

 

 

 

Subform Details:

 

Subform

Type

Subform Name

Subform Order

Appear In Column

Use data from Auxiliary Form

HideDeleteButton

Uneditable

 

 

 

 

 

 

 

 

Site Details

One

SiteDetails

3

1

 

 

 

 

Question Details:

 

Question

Type

Name

PK

Show In Task List

Question Order

Appear Column

Column Width

Data Type

Size

Input Mask

Pixels from Left

Pixels from Top

 

 

 

 

 

 

 

 

 

 

 

 

 

Name

Text Box

SiteName

No

No

1

1

 

VARCHAR

40

None

 

 

Phone

Text Box

SitePhone

No

No

1

2

 

VARCHAR

14

Australian Phone Number

 

 

Address

Text Box

SiteAddress

No

No

2

1

 

VARCHAR

40

None

 

 

 

WebAndFlo2005External.Spacer

SiteSpacer1

No

No

2

2

 

 

 

None

 

 

 

WebAndFlo2005External.Spacer

SiteSpacer1

No

No

3

2

 

 

 

None

 

 

Suburb

Text Box

SiteSuburb

No

No

3

1

 

VARCHAR

40

None

 

 

City

Text Box

SiteCity

No

No

4

1

 

VARCHAR

40

None

 

 

 

WebAndFlo2005External.Spacer

SiteSpacer3

No

No

4

2

 

 

 

None

 

 

Contact Name

Text Box

SiteContactName

No

No

5

2

 

VARCHAR

40

None

 

 

State

Text Box

SiteState

No

No

5

1

 

VARCHAR

40

None

 

 

Contact Number

Text Box

SiteContactNumber

No

No

6

2

 

VARCHAR

14

Australian Phone Number

 

 

Postcode

Text Box

SitePostcode

No

No

6

1

 

VARCHAR

4

None

 

 

 

Subform Details:

 

Subform

Type

Subform Name

Subform Order

Appear In Column

Use data from Auxiliary Form

HideDeleteButton

Uneditable

 

 

 

 

 

 

 

 

Work Details

One

SiteDetails

4

1

 

 

 

 

Question Details:

 

Question

Type

Name

PK

Show In Task List

Question Order

Appear Column

Column Width

Data Type

Size

Input Mask

Pixels from Left

Pixels from Top

 

 

 

 

 

 

 

 

 

 

 

 

 

Description Of Work

Text Area

WorkDescription

No

No

1

1

90

VARCHAR

2000

None

 

 

 

 

Note:

See previous examples for a detailed description of adding forms, subforms and questions.

 

Under the ‘Quotation’ folder, create another form called ‘RFQ Acceptance’ using the attributes listed in the tables below:

 

Form Name:                  RFQ Acceptance

Form Database Name:   RFQAcceptance

 

Subform Details:

 

Subform

Type

Subform Name

Subform Order

Appear In Column

Use data from Auxiliary Form

HideDeleteButton

Uneditable

 

 

 

 

 

 

 

 

RFQ Details

One

RFQDetails

1

1

RequestForQuote

 

 

Customer Details

One

CustomerDetails

2

1

RequestForQuote

 

 

Site Details

One

SiteDetails

3

1

RequestForQuote

 

 

Work Details

One

WorkDetails

4

1

RequestForQuote

 

 

RFQ Acceptance

One

RFQAcceptance

5

1

 

 

 

 

Question Details:

 

Question

Type

Name

PK

Show In Task List

Question Order

Appear Column

Column Width

Data Type

Size

Input Mask

Pixels from Left

Pixels from Top

 

 

 

 

 

 

 

 

 

 

 

 

 

Accept RFQ?

Radio Buttons

AcceptRFQ

No

No

1

1

 

BIT

 

None

 

 

Appointment Assigned To

List Box

Appointment Assigned To

No

No

2

1

 

VARCHAR

40

None

 

 

Inspection Assigned To

List Box

Inspection Assigned To

No

No

3

1

 

VARCHAR

40

None

 

 

 

Question Rules:

 

Question Name

Default Value / Selection

Required

Uneditable

 

 

 

 

AcceptRFQ

[Yes,,1][No,,0]

1

 

AppointmentAssignedTo

sqlset{select user_name from webandflo.dbo.user_type_users where user_type_name = 'Account Manager'}

1

 

InspectionAssignedTo

sqlset{select user_name from webandflo.dbo.user_type_users where user_type_name = 'Engineer'}

1

 

 

 

Under the ‘Quotation’ folder, create two more forms called ‘Initiate Appointment’ and ‘Initiate Site Inspection’ using the attributes listed in the tables below:

 

Form Name:                  Initiate Appointment

Form Database Name:   InitiateAppointment

 

Subform Details:

 

Subform

Type

Subform Name

Subform Order

Appear In Column

Use data from Auxiliary Form

HideDeleteButton

Uneditable

 

 

 

 

 

 

 

 

Initiation Details

One

InitiationDetails

1

1

 

 

 

 

Question Details:

 

Question

Type

Name

PK

Show In Task List

Question Order

Appear Column

Column Width

Data Type

Size

Input Mask

Pixels from Left

Pixels from Top

 

 

 

 

 

 

 

 

 

 

 

 

 

Client Ref. #

Text Box

ClientRefNo

Yes

No

1

1

 

VARCHAR

40

None

 

 

Internal Ref. #

Text Box

InternalRefNo

Yes

Yes

2

1

 

INT

 

None

 

 

 

Question Rules:

 

Question Name

Default Value / Selection

Required

Uneditable

 

 

 

 

ClientRefNo

 

1

 

InternalRefNo

 

1

 

 

Form Name:                  Initiate Site Inspection

Form Database Name:   InitiateSiteInspection

 

Subform Details:

 

Subform

Type

Subform Name

Subform Order

Appear In Column

Use data from Auxiliary Form

HideDeleteButton

Uneditable

 

 

 

 

 

 

 

 

Initiation Details

One

InitiationDetails

1

1

 

 

 

 

Question Details:

 

Question

Type

Name

PK

Show In Task List

Question Order

Appear Column

Column Width

Data Type

Size

Input Mask

Pixels from Left

Pixels from Top

 

 

 

 

 

 

 

 

 

 

 

 

 

Client Ref. #

Text Box

ClientRefNo

Yes

No

1

1

 

VARCHAR

40

None

 

 

Internal Ref. #

Text Box

InternalRefNo

Yes

Yes

2

1

 

INT

 

None

 

 

 

Question Rules:

 

Question Name

Default Value / Selection

Required

Uneditable

 

 

 

 

ClientRefNo

 

1

 

InternalRefNo

 

1

 

 

Note:

These two forms are simply to provide primary keys to the two sub-workflows that will be described later.

 

Under the ‘Quotation’ folder, create four more forms using the attributes listed in the tables below. The ‘Schedule Appointment’, ‘Appointment Outcome’, ‘Schedule Site Inspection’ and ‘Inspection Outcome’ complete the forms for the two sub-workflows.

 

Form Name:                  Schedule Appointment

Form Database Name:   ScheduleAppointment

 

Subform Details:

 

Subform

Type

Subform Name

Subform Order

Appear In Column

Use data from Auxiliary Form

HideDeleteButton

Uneditable

 

 

 

 

 

 

 

 

Appointment Details

One

AppointmentDetails

1

1

 

 

 

 

Question Details:

 

Question

Type

Name

PK

Show In Task List

Question Order

Appear Column

Column Width

Data Type

Size

Input Mask

Pixels from Left

Pixels from Top

 

 

 

 

 

 

 

 

 

 

 

 

 

Appointment Date

Input Mask Box Calendar

AppointmentDate

No

No

1

1

 

DATETIME

 

Australian Date Format

 

 

Appointment Time

Text Box

AppointmentTime

No

No

2

1

5

VARCHAR

5

None

 

 

Contact Name

Text Box

CustContactName

No

No

3

1

 

VARCHAR

40

None

 

 

Contact Number

Text Box

CustContactNumber

No

No

4

1

 

VARCHAR

12

Australian Phone Number

 

 

Meeting Type

Radio Buttons

MeetingType

No

No

5

1

 

BIT

 

None

 

 

Location

Text Area

Location

No

No

6

1

90

VARCHAR

2000

None

 

 

 

Question Rules:

 

Question Name

Default Value / Selection

Required

Hidden

Validation

 

 

 

 

 

AppointmentDate

 

1

 

sqlval{select case when ‘@@Form.Me’ < (select RequiredBy from Quotation1v1.dbo.RFQDetails where InternalRefNo = @@Session.InternalRefNo) then 1 else 0 end}

MeetingType

1 / [Face To Face,,1][Phone,,0]

1

 

 

Location

 

 

if{@@Form.MeetingType,0,1}

 

 

Form Name:                  Appointment Outcome

Form Database Name:   AppointmentOutcome

 

Subform Details:

 

Subform

Type

Subform Name

Subform Order

Appear In Column

Use data from Auxiliary Form

HideDeleteButton

Uneditable

 

 

 

 

 

 

 

 

Initial Requirements

Multi Row Growing

InitialRequirements

1

1

 

 

 

 

Question Details:

 

Question

Type

Name

PK

Show In Task List

Question Order

Appear Column

Column Width

Data Type

Size

Input Mask

Pixels from Left

Pixels from Top

 

 

 

 

 

 

 

 

 

 

 

 

 

Requirement

List Box

Requirement

No

No

1

1

30

VARCHAR

30

None

 

 

Requirement Details

Text Area

RequirementDetails

No

No

2

1

80

VARCHAR

2000

None

 

 

Price

Text Box

Price

No

No

3

1

 

MONEY

 

Dollars And Cents

 

 

 

Question Rules:

 

Question Name

Default Value / Selection

Required

Uneditable

 

 

 

 

Requirement

[Materials Required][Machinery Required][Accessibility To Site][Ground Surface/Reinstatement][Details of Work Required][Prework Required]

 

 

 

Subform Details:

 

Subform

Type

Subform Name

Subform Order

Appear In Column

Use data from Auxiliary Form

HideDeleteButton

Uneditable

 

 

 

 

 

 

 

 

Outcome Details

One

OutcomeDetails

2

1

 

 

 

 

Question Details:

 

Question

Type

Name

PK

Show In Task List

Question Order

Appear Column

Column Width

Data Type

Size

Input Mask

Pixels from Left

Pixels from Top

 

 

 

 

 

 

 

 

 

 

 

 

 

Comments

Text Area

Requirement

No

No

1

1

90

VARCHAR

2000

None

 

 

Requirement Finalised?

Radio Buttons

RequirementFinalised

No

No

2

1

 

BIT

 

None

 

 

 

Question Rules:

 

Question Name

Default Value / Selection

Required

Uneditable

 

 

 

 

RequirementFinalised

[Yes,,1][No,,0]

 

 

 

Form Name:                  Schedule Site Inspection

Form Database Name:   ScheduleSiteInspection

 

Subform Details:

 

Subform

Type

Subform Name

Subform Order

Appear In Column

Use data from Auxiliary Form

HideDeleteButton

Uneditable

 

 

 

 

 

 

 

 

Inspection Details

One

InspectionDetails

1

1

 

 

 

 

Question Details:

 

Question

Type

Name

PK

Show In Task List

Question Order

Appear Column

Column Width

Data Type

Size

Input Mask

Pixels from Left

Pixels from Top

 

 

 

 

 

 

 

 

 

 

 

 

 

Inspection Date

Input Mask Box Calendar

InspectionDate

No

No

1

1

 

DATETIME

 

Australian Date Format

 

 

Inspection Time

Text Box

InspectionTime

No

No

2

1

5

VARCHAR

5

None

 

 

Contact Name

Text Box

SiteContactName

No

No

3

1

 

VARCHAR

40

None

 

 

Contact Number

Text Box

SiteContactNumber

No

No

4

1

 

VARCHAR

12

Australian Phone Number

 

 

 

Question Rules:

 

Question Name

Default Value / Selection

Required

Hidden

Validation

 

 

 

 

 

InspectionDate

 

1

 

sqlval{select case when '@@Form.Me' < (select RequiredBy from Quotation1v1.dbo.RFQDetails where InternalRefNo = @@Session.InternalRefNo) then 1 else 0 end}

 

Form Name:                  Inspection Outcome

Form Database Name:   InspectionOutcome

 

Subform Details:

 

Subform

Type

Subform Name

Subform Order

Appear In Column

Use data from Auxiliary Form

HideDeleteButton

Uneditable

 

 

 

 

 

 

 

 

Manholes

One

Manholes

1

1

 

 

 

 

Question Details:

 

Question

Type

Name

PK

Show In Task List

Question Order

Appear Column

Column Width

Data Type

Size

Input Mask

Pixels from Left

Pixels from Top

 

 

 

 

 

 

 

 

 

 

 

 

 

Does Manhole need pumping?

Radio Buttons

ManholePumping

No

No

1

1

 

BIT

 

None

 

 

Is manhole safe to work in?

Radio Buttons

ManholeSafe

No

No

2

1

 

BIT

 

None

 

 

Does open manhole pose any hazards?

Radio Buttons

OpenManholeHazard

No

No

3

1

 

BIT

 

None

 

 

 

Question Rules:

 

Question Name

Default Value / Selection

Required

Uneditable

 

 

 

 

ManholePumping

[Yes,,1][No,,0]

 

 

ManholeSafe

[Yes,,1][No,,0]

 

 

OpenManholeHazard

[Yes,,1][No,,0]

 

 

 

Subform Details:

 

Subform

Type

Subform Name

Subform Order

Appear In Column

Use data from Auxiliary Form

HideDeleteButton

Uneditable

 

 

 

 

 

 

 

 

Pits

One

Pits

2

1

 

 

 

 

Question Details:

 

Question

Type

Name

PK

Show In Task List

Question Order

Appear Column

Column Width

Data Type

Size

Input Mask

Pixels from Left

Pixels from Top

 

 

 

 

 

 

 

 

 

 

 

 

 

Are pits suitable for task?

Radio Buttons

PitsSuitable

No

No

1

1

 

BIT

 

None

 

 

Are pits & lids in good condition?

Radio Buttons

PitsAndLidsCondition

No

No

2

1

 

BIT

 

None

 

 

 

Question Rules:

 

Question Name

Default Value / Selection

Required

Uneditable

 

 

 

 

PitsSuitable

[Yes,,1][No,,0]