THE ASSEMBLY PROCESS
ProDoc assembles documents in a two-phase process. During the first phase, called the assembly phase, ProDoc asks questions and then uses the answers to "cut and paste” the appropriate clauses, paragraphs and words together to create the basic document. In the second phase, ProDoc asks fill-in-the-blank questions then inserts the answers into the assembled document. This is a general description, but there are exceptions to this scheme.
MASTER FORMS
The basic forms that ProDoc uses during the assembly process are called master forms (templates). This is a standard word processing document, which contains special codes called tokens in places where questions are to be asked or text is to be inserted, or at the beginning or end of blocks of text.
SUPPLEMENTAL FORMS
When you subscribe to a ProDoc volume, it contains master forms (templates). You may also add your
own forms to ProDoc as supplemental forms. The process of creating your own supplemental forms is discussed in Appendix D of this manual.
OBJECTS
An object is a set of instructions which tells ProDoc to ask a question, insert text, perform a calculation, etc. Most of these objects are stored in database files. There are five basic types of objects used in ProDoc:
Questions - Question objects tell ProDoc to ask a question. There are two categories of questions - assembly questions and merge questions. Assembly questions are processed during the
assembly phase and the answers are used to determine what clauses, paragraphs and words to insert into and delete from the document. Merge questions are normally processed during the second (merge) phase. Their answers are usually merged into the document. On occasion, a merge question may be asked early in the assembly phase when the information is needed earlier for some special purpose.
Processors - Processor objects tell ProDoc to calculate a value, manipulate pieces of text to create something different or to import a text file into the current document. There are assembly phase processors and merge phase processors.
Delete - Delete objects tell ProDoc to delete blocks of text if a particular condition exists. For example, if the user answers a question indicating they do not want a particular provision in the document, the delete object will omit the corresponding clause from the document. Delete objects are processed during the assembly phase.
Loop - Loop objects tell ProDoc to repeat sections of the master form if a particular condition exists. For example, a loop object may check to see how many sellers there are on a deed and then loop that many times creating one signature line for each seller.
Special - There are two objects, which do not contain instructions in a database. They are processed internally by ProDoc to perform a specific task. These objects are formatting objects and numbering objects. Formatting objects are used to tell ProDoc to use certain formatting characteristics such as line spacing and margin settings. Numbering objects are used for automatically numbering paragraphs in a finished document.
Most objects include logical instructions which ProDoc processes in order to determine what to do. For example, question objects often include logic, which determines whether to show a default answer and delete objects always include logical instructions, which determine whether or not to delete text.
TOKENS
When ProDoc is processing a master form, it is looking for tokens. You can think of tokens in the same manner as you think of simple merge codes you would use in WordPerfect or Word, except that they are much more flexible and powerful. When ProDoc finds a token, it looks for a matching object in the database file and then performs the instructions stored in that object. As mentioned above, the objects tell ProDoc when to ask a question, perform a calculation, delete or insert text or run a script. There are no special keys or techniques required to create a token. A token is simply a six-character word with a tilde (~) in front of it that you type into the form. A typical token would look like ~P1000V.
The first character in a token tells ProDoc what kind of object it represents. The most common types of tokens are:
A - assembly questions (for example ~A1000V) P - merge questions (for example ~P1000V) I - assembly insert (for example ~I1000V) M - merge insert (for example ~M1000V)
162
C - calculator assembly (for example ~C1000V) D - delete (for example ~D1000V)
E - end delete (tells ProDoc where to stop deleting (for example ~E1000V) L - repeat a section of the master form (for example ~L1200V)
ELOOP - end of the master form section to be repeated (~ELOOPV) F - format instruction (for example ~FLNSPV is a line spacing instruction) N - auto numbering instruction (for example ~NR001V)
To summarize, a token is simply a name that ProDoc uses to locate the corresponding object (instructions) in its database. The first character in the token tells ProDoc what kind of object it represents.
VOLUMES
ProDoc provides a simple method for organizing your master forms into a useful forms library. Forms are grouped together in sets called volumes. A volume normally contains forms for a specific area of law or subject, such as real estate, family law, corporations, etc. This method of grouping forms together by subject makes it much easier to find and maintain those forms. A ProDoc system can contain an unlimited number of volumes.
SCOPE
A large ProDoc system may contain many volumes and many thousands of objects. If all objects for all volumes were stored in a single database, it would become an extremely large database and it would be very difficult to manage. When the volume is installed, all of the forms as well as the object database files are copied into a separate directory just for that volume. An example of an object that applies only to a particular volume would be the name of the seller in a real estate transaction. This information is only relevant to the real estate volume - it would not be useful in an adoptions volume. Therefore, that object is stored in the real estate volume’s directory so that when ProDoc is assembling a deed it looks in the real estate directory for the database which contains the instructions. This type of object is said to have a volume scope.
Sometimes, however, there are certain questions or instructions, which will always be the same, no matter which volume you are assembling. An example of this would be a law firm’s name. It doesn’t matter whether you are preparing a will or a deed, the law firm's name will be the same in each of those two volumes. This type of object is said to have a global scope. When ProDoc processes a global object, it looks in the main ProDoc directory for the database which contains the appropriate instructions. The benefit of this mechanism is that, when you are producing forms from more than one volume in a single case, you will only have to enter the law firm's name one time instead of once for each volume you are using.
In addition to volume and global objects, you can also have supplemental objects. A supplemental object is volume specific but it is an object created by you. Your objects (questions) are stored in separate databases so that you do not have to worry about interfering with objects, which were shipped to you as part of a volume.
When ProDoc finds a token in a document, it looks at the last (sixth) character to determine what scope the object is and therefore which database to search for instructions. The three possibilities are V for volume objects, G for global objects and S for supplemental objects.
THE ASSEMBLY PHASE
The assembly phase is the initial processing stage where ProDoc processes some initial questions and then cuts and pastes text in the master form in order to create an interim form which contains all of the necessary text and clauses needed for the final document. The questions to be asked and other objects to be processed during this phase are contained in a database list, which is created for each master form.
After this list of objects has been processed, ProDoc begins scanning the master form for additional objects to process.
Delete objects: When ProDoc finds a delete object, it checks to see how a question was answered or whether some other condition exists and it determines whether to begin deleting text from the form. If text is to be deleted, ProDoc begins cutting text out of the master form one character at a time. ProDoc does not stop deleting text until it finds the appropriate end delete token which stops the deletion process.
Processor objects: When ProDoc finds a processor object, it checks to see how a question was answered or whether some other condition exists and it determines whether to insert text into the form. For example, it may check to see whether the Plaintiff is male or female and then insert the proper object (him or her) into the document.
Most questions asked in the assembly phase are assembly questions (~A), which are used to determine what clauses, paragraphs, nouns, etc. are to be inserted into or cut out of a document. An example of this would be a question asking the user to select any special provisions he wants in the document or asking what is the gender of the plaintiff. Occasionally, however, the author of a volume may include merge questions (~P) in the assembly phase question list. The most common reason for doing this is to get an answer that will be used in the text of a subsequent question. For example, What is the name of the Petitioner? ANSWER: Jane Doe, and then How many children does Jane Doe have?. It is sometimes helpful to include the person’s name in the text of a question and the only way to have that name available is to ask for it with a preceding question.
In volumes, which are subscription items, assembly questions are always contained in a separate database list. Assembly question tokens (~Axxxx) however, can be contained at the very top of a master form. If ProDoc finds an assembly question token at the beginning of a master form, it will ask that question during the assembly phase. This feature allows you, the user, to use our assembly questions in your own forms even though you do not have access to the assembly phase question list.
Here’s how this feature can be very useful. Suppose you are creating a supplemental form in which you would like to use one of our volume codes (say ~I0001V) which inserts either him or her in the document.
You can use this code and, if you have already produced a regular document which processes an assembly question asking if the plaintiff is male or female (say ~A1000V), then the insert code will work just fine.
On the other hand, if you have not previously created a document, which asked this question, then your supplemental form won’t be able to determine which pronoun to insert. To solve this problem, you can insert the assembly question token at the very beginning of your supplemental form. When ProDoc processes the form, it will check to see whether the question has already been answered and, if not, it will ask the question.
THE MERGE PHASE
When ProDoc reaches the merge phase, it has created an intermediate form which is the same as the final assembled document except that it lacks fill in the blank information. ProDoc then asks the
fill-in-the-blank questions to get the missing information.
You can select whether you want to see the intermediate form during the merge phase. Normally, users elect to have the intermediate form displayed as ProDoc jumps to each merge question and stops for the user to fill in the blanks. Some users, however, prefer to have ProDoc not show the form and instead simply pop up the questions as the tokens are found.
After all of the blanks are filled in, the document is completed and ProDoc stores it on disk in the directory selected by you.