SQLphone developer site home page
Working with large flowcharts
Tips for managing large flowcharts.
Basic layout tips
- Use short names for boxes, this reduces box size.
- Reduce font size, this reduces box size. The font select dialogs (menu > flowchart > fonts) display standard font sizes, but you can type-in smaller values.
- Switch to zoom-to-fit mode (menu > flowchart > zoom) when you need to connect a condition to an off-screen box.
Reducing flowchart lines
There is a trick to reduce the number of flowchart lines. This uses the following SQLphone feature: If a condition is met, and no line flows from that condition, SQLphone looks for a box having exactly the same name as the condition. If it finds this box, it jumps to it. The following sections show examples of this feature in action.
Catch-all boxes
Example: You need to log the end of a call, even when a caller hangs-up.
Problem: Your flowchart is hard to manage, because it has many lines connecting the HangUp
condition of every box to a SQL box that logs the call-end.
Solution: Rename the SQL box to "HangUp", and remove all lines that join from HangUp conditions.

The same idea can be used for other conditions, for example: NoData, NoDigits, SQLFailure
Retries exceeded
Example: Whenever a caller exceeds 3 tries to enter any data, you tell them they cannot proceed.
Problem: You have lots of Digits boxes, each with a "Tries > 3" condition.
And lots of duplicated Play boxes, each speaking the same "your tries are exceeded" message.
Solution: Rename one of the Play boxes as "Tries > 3". Delete all the other Play boxes.

Menu switch
Example: You have a menu of options, each option branches to a different part of the flowchart.
Problem: The flowchart is getting big and unmanageable, because it is really several flowcharts with one switch at the top.
Solution: In the Digits box that speaks the menu options, store the selected option in a memory called "Menu".
Create conditions "Menu = 1", Menu = 2", etc. for all the possible options. Don't have any lines exiting these conditions.
Instead have boxes called "Menu = 1", Menu = 2", etc. These boxes represent the entry points to the sub-flowcharts.

Box goto
SQLphone does not have a Goto feature, to jump from one box to another. But it's easy to make your own goto using a SQL box.
Example: You want to join a condition to a box, which creates a long line across your flowchart.
Problem: This long line looks messy, you cannot easily see where it starts and ends.
Solution: Create a memory called "Box". Create a SQL box that selects a value into the "Box" memory, this is the "jump from" box.
Add a condition of type "Box = value". Create the "goto box" and give it the same name as the condition.
