SURVENT Utilities

5.1 SURVENT Utility Programs

CfMC has an extensive library of system-wide functions and utilities. These are documented in the Utilities manual. The utilities documented in this chapter are specific to Survent users only. They are:


Updates suspended interviews so they can be resumed by a changed questionnaire, or tells you whether they may be resumed properly. If they cannot be resumed properly, it tells you where the changes that caused that are.


Displays the list of active devices and/or studies under the CfMC server. You may clear devices if necessary.


Reads an ASCII questionnaire, typically from a word processor or editor, and converts it into a PREPARE specification file that can be used to create a questionnaire.


Lets you add area codes to an existing ZONETABL file on the fly (or you can pick up the most recent version from the CfMC distribution area).


Lets you add, change, or recode data in an existing CfMC data (TR) file (single user only).


Reads a questionnaire (QFF) file or variables (DB) file and a data (TR) file, and produces a spread (ASCII) data file, a map of the new locations and matching data definitions for tabulation packages.


Reads a quota file (QUO), displays the quota values, and allows you to change the values. Can also add quota files together.


Reads a quota file and phone sample file and reports statistics on % of job done, time to completion and completion rates.


Provides from simple to complete menus for the CfMC utility programs and some operating system functions.


Allows monitoring of interviews from outside SURVSUPR. Can control access to stations and rate the interviewer being monitored.


Allows you to VIEW and ALTER a completed interview; this has the same function as the “VIEW” command in Survent or the Supervisor, but has menus of studies and interviewers to choose from and has some other extra commands.


Prints a list of the time and question suspended at, exports a separate CfMC (TR) data record for each suspended interview, and a second file with a list of all the question labels and their responses.

For complete documentation on all other Utility programs, see the Utilities manual. For your information, here is a short description of each of the utilities that are documented in the Utilities manual:

General Utilities


Display information on variables DB files, fix them, or copy items from one DB file to another.


Makes the CfMC MSGFILE that contains all the program messages, allowing the user to change the wording or add languages to the messages.

Data Display Utilities


Produces a summary report on the binary punches in the data, column by column, called a marginal or holecount. Allows bases, weights, and print controls.


Shows responses to open questions (VAR and TEX) or other questions across cases or within a case across questions.


Produces cross-tabulations with counts and percentages across variables. Counts all values in string or numeric fields. Allows bases, weights, and a banner. Has print output, delimited output, or html output.

Data-Modifying Utilities


Allows you direct access to the data in a CfMC data (TR) file to display and/or edit quickly and easily.


Used to code open-ends and edit verbatims in a systematic manner.


Used to translate, sort, copy and otherwise manipulate data files.


Converts ASCII or binary card image files into System (TR) files with valid case checking.


Combines two files into one by matching on a key in each record of the files.


Recovers data (TR) files that have been structurally corrupted by reading cases one at a time out of the file and building a new one.


Used to edit verbatims in a systematic manner.

Note: Many data display and modifying utilities run under the Mentor program. Example specification files to run these utilities in batch mode are available in the \CFMC\SPX subdirectory or group SPX.CFMC.

There are also utilities specific to Survent’s Telephone Number Management System. For information on these utilities, see Chapter 6: TELEPHONE NUMBER MANAGEMENT SYSTEM.


These are utilities that provide a menu for the CfMC programs. They work on all supported platforms. You can modify the menus to meet your shop’s needs.

There are three versions of the menu. SUPRMENU is the simplest version, the one that supervisors and the like will probably want to use. CFMCMENU has all the programs that a standard project manager might want to use, and PROGMENU has every relevant program.

CFMCMENU and PROGMENU have two options: one to use study files under the CfMC server, and one to use local files.

The benefits of using one of the menus include:

  • Ease of getting new people using the software
  • Not having to remember the program name
  • Being able to run programs with help available

Here is the simplest version. It will only run on study files (studies that are running under the CfMC server). To run it, enter:



Option 1 runs the SURVSUPR program. Option 2 runs Survent in VIEW mode. Options 3-5 are standard Survent utilities. Information on options H through R are listed in the Utilities manual. Look in this help screen (option Y) for more information on each item.

The standard project manager’s menu is called “CFMCMENU”. To run it, type:



Look in this manual’s index or the help screen (item Y) for more information on each item. Items 5-8, I, L, N and + are described in the Utilities manual.

Here is the most complete version. This is called the programmers’ menu. From this menu, you can run almost any CfMC program. To run it, enter:



Look in this manual’s index or the help screen (item Y) for more information on each item. Items O, J, L, and N-R and described in the Utilities manual.


MAKEPREP takes an ASCII file and makes a preliminary PREPARE spec file from it (makes CAT or VAR questions only, 132 characters maximum). This is basically a way to convert a word-processed version of the questionnaire into basic PREPARE specs. Make sure you keep the file as a flat ASCII file, not a word processor program file.

The only modification you’ll have to make to the file is to insert an open curly brace ( { ) on a separate line before each question begins. A close curly brace ( } ) after the question is optional. After the last question, close it off by adding two lines: one with a close curly brace, and one more line with END on it to tell MAKEPREP you’re done. Remove any extra blank lines in your file after the END line. If you want to mark response lists for CAT questions, precede the list with ~ or ~> (see below). The syntax to run the program is:

MAKEPREP infile listfile outspecfile

NOTE: You must specify all parameters from the operating system prompt. You will get an error if you specify file names at the Spec File/List File prompts, since this does not allow for the required outspecfile name. You may specify a dash before either or both of the listfile and outspecfile names to indicate purging of same-named files (instead of renaming).

Outspecfile name becomes the study name enclosed in brackets ([ ]) at the top of the file. Make this a 4- to 8-character name and do not include an extension or you will get an error when resuming the file in the Script Composer or compiling. No header options are put out, just the study name. Modify this yourself if necessary.


  • Question types are passed as VAR unless a recode table is indicated for CAT, or unless you specifically put in a !qtype line in which case it will be created as the question type specified. Note: Any line beginning with an exclamation point will be read as a question type line and will override the default type of VAR.
  • Blank lines are passed to the outspecfile.
  • A { in column 1 starts a new question and ends the previous question. As an option, you may indicate the end of a question with a closing brace (}).
  • {- indicates a comment block and will be passed to the outspecfile as {!COMMENT. Nothing but {- may be on this line. {- like { ends the previous question, if any.
  • After { in column 1, you may specify any of the parameters allowed on the question label line, such as label:, #, col.wid, HIDE, ALIAS=.
  • A line with ~ in column 1 indicates that a recode table follows and the question will be passed as a CAT type to the outspecfile.


  • ~> means that the response codes are to the right of the text and should be moved to the left in the outspecfile.
  • ~>(special character) means look for this character in addition to a blank when looking for the start of the response code and do not pass any to the outspecfile.

Here is an example if your response list looks like this:

EX: YES.......01

you would put ~>. on the line above the response list in your file to start the recode table, move codes left, and indicate that the codes start after the character “.”.

~>. YES.......01

and the outspecfile would look like this:

01 YES
02 NO

NOTE: The length of the response code to move is determined by the first code found.

What you will get as an output from MAKEPREP is a PREPARE spec file that you can read into the Script Composer or open in an editor to have a specification-literate person modify to add logic conditions, change question types, etc. There will be a header statement at the front with the name of the outspecfile (so you probably either want to use a 4-8 character name for this or be prepared to modify the header). The END statement will be the last line.

You may want to delete this line or change it to ~END.

Any questions with large response lists should be marked as CAT questions before running MAKEPREP. If you don’t, you will probably see errors about the question not fitting on the screen.

If you check for a good header and remove the END line, you will be able to make modifications in the Script Composer.


QUOTAMOD displays quotas or updates a quota file (QUO). It can also add separate quota files to a larger master quota file in the event that the network/host has crashed, or change the value of the master quota.

It looks at the quota file referenced by your SET CFMCQUOTA=name path (DOS, UNIX). Otherwise, it defaults to the local directory quota file. To use QUOTAMOD, at the operating system prompt, enter:


You will get the standard Spec File and List File prompts. You can also specify CON CON or the specific file names on the program line. See 2.2 USING PREPARE for more information on these prompts.

First, you are prompted for a study name. This is the name of the file holding the quotas. The file will have QUO as an extension, but you just enter the first part of the name. You can enter $filename if the file is elsewhere or use the CFMCQUOTA variable.

Choose an option by entering the upper-case letter(s).


CASEID Changes the ID in the quota file. This is the ID that would be used if the data file case ID is not already set higher.

G Global scratch area is displayed. SPC,M and N statements put things into and take things out of the global scratch area.


I In_ASCII lets you read in an ASCII file of quota statements with changes to the quota file. The changes should be in the format of:

<quota name> [+-=] <number> (named quota)
EX: Males +5

#<quota name> [+-=] <number> (numbered quota)

EX: #152 -5

+<number> adds to the current quota value -<number> subtracts from the current quota value =<number> changes the current quota value to the number specified here. = is the default and will be used if no +/-/= is specified.

The file should have one change per line and should end with a line with END on it.

EX: -->I
       Filename from which to import quotas or Quit
    -->QCHANG Bank card +2
       Genpurp -5
       Retail=175 survent_totaltime=15:43:20

M Modify lets you change the current quota values on quotas. See the S option or N option to modify from a “menu”. Use the same syntax as In_ASCII option, or use a quotaname pattern to modify many quotas. Name patterns may use * (all), ? (letters or numbers), or # (numbers).

<quota name> [+-=] <number> or
#<numbered quota> [+-=]<number> or
-->Bluecoll +10
-->#257 -2

N Numbered quotas displays the current quota values for numbered quotas. You will be prompted to Show or Enter. If you choose Show, you must specify a block of numbered quotas to show, or ZERO to show filled and zero quotas also.


When you enter “S 1 ZERO” you will see a display beginning with the first numbered quota. You could enter “S 15 ZERO” which displays quotas beginning with quota number 15.

The number used for your MAXIMUM_QUOTA_NUMBER value in your header statement will limit what you can see here.

MOD allows you to modify the quotas on the screen. Just move to the appropriate quota field (by using the arrow keys on monitors, and Ctrl-U, D, L, or R on terminals) and enter the replacement value.

ZERO will display quotas with no current value. The default is that they are not shown.

O Out_ASCII outputs an ASCII file with the current quota names and values. You are prompted for the filename; the default name is studyAQU. If you wanted to make many changes to your quota values, use the OUT_ASCII option, modify the AQU file in the editor, then use the IN_ASCIIoption to read those changes back in. If you use the option OUT_ASCII,SAVE_COUNTS, then the QUOTAMOD variables will be saved such that when you import to a new file it will update their values. See Using QUOTAMOD Variables below for a discussion on using the OUT_ASCII option to set system variables. NOTE: You could also use the SHOW/MODIFY option to make quota changes.

OUTN OUTNonzero is the same as OutASCII except it only outputs the nonzero quotas.

P Print_all prints the show quota screen(s) to the currently opened >PRINT_FILE or LIST FILE. If you say P <filename> (i.e., “P QLIST”), it prints to the specified file.

Q Quit this study. The beginning prompt “Enter Study name or QUIT” will again appear, giving you a chance to work on another study.

RESET Reset all .R quotas to zero. These quotas are created when in Triplequota mode. These can be used to show the filling of quotas on some regular basis, then reset at the start of the next period (day, week, etc.).

S Show quotas will display current quota values for named quotas and allows you to modify quotas.


NOTE: UNIX users will be prompted with Ctrl-G (top), Ctrl-E (End), Ctrl-T (next), and Ctrl-V (previous).

If you are using Triplequotas mode, the display will look like this:


This allows you to change your target quota, without resetting the actual quota value, if you decide to have more or less of a particular group.

<mask> optional; if used, will limit the quotas you see. The mask can include the following characters:

or @ all characters, however many # numeric characters; one per # ? alphabetic characters; one per ?


Displays all quotas beginning with TAR and ending with anything else (or nothing else). This will match: TAR, TARGET, TAR_G1, etc. SHOW MALE## Displays all quotas beginning with MALE and ending with exactly two numbers. This will match: MALE01, MALE99, etc.


Displays all quotas beginning with DOG and ending with exactly one letter. This will match: DOGS, DOGY, etc.

MODIFY Allows you to modify the quotas displayed, by highlighting the quota wanted and typing in a new value. The highlighting is done by moving on the screen using the arrow keys (monitors) or Ctrl-U,D,R,L (terminals) to move up, down, right, and left.

-ZERO Display only nonzero quotas.

SORT Display the quotas in sorted ASCII order

Using QUOTAMOD variables

The QUOTAMOD OUT option writes 5 lines at the bottom of the OUT file in addition to the quota values. Here are the lines written:


The four times are totals across all interviewers; for example, if four interviewers each were logged onto the study for two hours, the total time would be eight hours even if they were all logged on at the same time. These values can also be seen by using the”STUDY <studyname>” command in SURVSUPR. The QUOTARPT utility uses these values to calculate the time on the study and time left to finish.

The “next_caseid” variable is the value to be assigned to the next data record collected by Survent. This also can be modofied from the Supervisor during the “modid” command. The “unique_number” variable has the value of the unique number assigned by the “!SPC,A,N” statement. It is used to guarantee that each case gets a unique number independent of the case id.

If you use the Quotamod OUT,SAVE_COUNTS option when exporting the .AQU file, the variables are written without the “*” character in front of their name. If you then import this file with the IN option, the values are reset to whatever you specify. You can also just edit the file and remove the “*” of items you want to be updated. For example, saying “Survent_totaltime =010:00:00” will set the value of survent_totaltime to 10 hours. You might need to do this if you were re-compiling and mistakenly deleted the QUOTA file.


QUOTARPT is a report that combines information from the quota file (QUO) and phone sample file (FON) to produce an overview of how far along in a project you have gotten. It is most useful for studies using TARGET or DOUBLE quotas: it prints the current value and target value, the % complete, the number of interviews needed to complete the quota, the number of completes in the group per hour and the number of interviewer hours needed to finish the quota up. This should allow you to schedule the correct number of interviewers on the study to complete it according to schedule.

QUOTARPT is very fast because it operates on summary numbers in the QUOTA and PHONE files instead of reading through the whole file. Reports are generated in less than 30 seconds on most systems.

To run QUOTARPT, you may specify any of the following:

QUOTARPT <study> Runs a report on the study in question

QUOTARPT <study> LOCAL Runs a report using local files instead of files in the CfMC system area

QUOTARPT ALL Runs a report on all studies in the study area

QUOTARPT USELIST Runs a report on a list of studies you maintain If you say “QUOTARPT <study>” the program runs a report on the study specified. The report is displayed on the screen and stored in the file <study>^QRT. “QUOTARPT <study> LOCAL” will do the same operation on files in the local directory instead of in the CfMC live study area.

QUOTARPT ALL runs reports on all files found in the CFMC quota directory. This will also write a <study>^QRT file for each study that it runs on, but will not put the reports on the screen. Be sure to delete old studies if you don’t want them to continue to be reported on.

QUOTARPT LIVE runs on studies currently being accessed by the CfMC SERVER. This is useful because you can set up a job to run every 10 minutes or every hour to provide updated values throughout the day without having to re-run the QUOTARPT program.

QUOTARPT USELIST says to use the file called USELIST in the CFMCFONE directory. You would have the studies you want reported on listed, 1 per line. This is the same file used by the FONERUN program to keep phone files updated daily.

Here is a sample of the report format using a small phone file and a quota file with target quotas:


The quotas with targets are listed first; they are sorted in “TARGET SIZE” order, so that the largest quotas are listed first. After the quotas with targets are listed, the program reports the sum of the quotas, the highest value seen in each column, and the lowest value seen.

Following that is a list of the quotas that had no target or whose targets are set to “0”; these will not have statistics listed, just counts.

After the quota information, information from the phone file is listed. This includes the total sample in the file, how many have been called, resolved, or hidden. Also listed are the hours on the study and hours in the interview from the quota file variables, then the total number of dials on the study and number of dials per hour.

This is the optimal report run on a study with a phone file and target quotas. You can also run on studies using “Double” or ordered “Numbered” quotas, but this requires modification of DEFINE statements at the top of the file QRPT^SPX in the CFMC SUPPORT directory. Youcan modify this file and save it locally, and QUOTARPT will use the modified file if you run reports there.

You can also run QUOTARPT on studies with no phone file or with single quotas without any spec file modifications, but you will only get the information the program can ascertain without target quotas or phone sample file information.


The RECODE utility lets you modify or add data to a CfMC data (TR) file. It can also be used to code open-ends from Survent interviewing (see SPC,P or View mode for other ways to do this).

Only one person can modify at a time. Use Coding mode or View mode for more than one person at a time.

To run RECODE, enter:


and you will see the starting screen:


After entering the name of your data file, you will be asked to specify which of the four operations you want to do.

1 Recode open-end using an existing/modified code list.

If you choose 1), you will be prompted for a base definition. The base will determine who gets data entered for them in this run. Enter the base definition in the box shown on the screen.

If you enter enough characters, you will be prompted with a second box to enter the rest (if any) of the base definition. RECODE then asks if you have some pre-defined variables to use. If yes, you must enter thename of the DB file to get variables out of.

Now you’re asked to supply a name for the new question you are creating, and then a data location and length for that question. You’re then asked for the label or question number of the original CAT or FLD question that has the categories to recode, and a description of the open-end response to be coded. This description can consist of a column location and length, a label or a question number.

You can then review the choices you’ve made.


RECODE will print some messages as it does its work, ending with this message before the program ends:


2 Recode open-end into a new code list.

If you choose 2), you are prompted for a base definition. The base will determine who is recoded in this run. Enter the base definition in the box shown on the screen. If you enter enough characters, you will be prompted with a second box to enter the rest (if any) of the base definition.

RECODE then asks if you have some pre-defined variables to use. If yes, you must enter the name of the DB file from which to get the variables.

Now you’re asked to supply a name for the new question you are creating, and then a data location and length for that question. You are then prompted for a description of the open-end response to be coded. This description can consist of a column location and length, a label or a question number.

You can then review the choices you’ve made:


RECODE will print some messages as it does its work. When it is done, it will display the following message and then end the program.


3 Create a new question and do data entry.

If you choose 3), you will be prompted for a base definition. The base will determine who gets data entered for them in this run. Enter the base definition in the box shown on the screen.

If you enter enough characters, you will be prompted with a second box to enter the rest (if any) of the base definition. RECODE then asks if you have some pre-defined variables to use. If yes, you must enter the name of the DB file from which to get the variables.

Now you’re asked to supply a name for the new question you are creating and then a data location and length for that question. You can then review the choices you’ve made:


RECODE will display some messages indicating the work it is doing for the new question, followed by a final recap of what was done before the program ends.


4 Recode or enter new data using an existing questionnaire

If you choose 4), you will be prompted for the name of the questionnaire file to use, and if you want to use existing cases or add new cases to the data file.

If you choose to modify existing cases, you will be asked if you wish to pause between interviews and for the DB file from which to get the variables.

Then you are prompted for a base definition. The base will determine who is recoded in this run. Enter the base definition in the box shown on the screen. If you enter enough characters, you will be prompted with a second box to enter the rest (if any) of the base definition.

RECODE then asks if you have some pre-defined variables to use. If yes, you must enter the name of the DB file from which to get variables.

Now you will be given a chance to review the choices you’ve made so far.


Upon pressing Enter , you will see the message “… Please wait, building ‘recode interviews’ procedure” if you chose to modify/add data to existing cases or “ … Please wait, building ‘add interviews’ procedure” if you chose to add new cases to the file.

When the recoding is done, you see this screen:



REFORMAT is a utility program that has the following uses:

  • Reformatting data files from CfMC compressed column binary to ASCII format.
  • Expanding CAT questions (spreading multi-punches).
  • Generating other program language specification files to match the reformatted data.
  • Converting TEX questions into ASCII data in conjunction with your other data types.
  • Producing a delimited ASCII data file for spreadsheets.

REFORMAT produces two or more files:

  • A spread ASCII data file (with an extension of RFT), which may
  • be used as input to programs that use ASCII format. This may be a delimited file, fixed format or cardimage format.
  • A map file (RFL), which shows the variable text and codes, where the data was moved to and, optionally, where it was moved from. This fixed format map can also be used to programmatically generate code to import the data to other packages.
  • A definitions file (DEF) for data definitions to export to other data processing packages. For instance, using the keyword SSS_XML, REFORMAT will export data definitions in “Triple S” XML format, a popular data format for market research.

REFORMAT needs a data file (usually a CfMC TR file) and a questionnaire file (QFF) or variables file (DB) as input. The data file is usually the TR file created while interviewing with Survent. The questionnaire file is usually the QFF used to create the TR file, and the variables DB file would be the one created at the time the questionnaire was compiled. The questionnaire specification file may contain compiler commands to control the creation of the spread data file (see 3.2.4 DATA CONTROL COMMANDS, REFORMAT Data Controls and Use). In addition, the REFORMAT utility allows you to choose from several options that will affect the format of both the RFL and RFT files. Some of these options override compiler commands in the questionnaire specification file.

Additionally, you may create a QFF or DB file simply as a data definition vehicle and spread any type of file (ASCII, binary, or CfMC FON file).

NOTE: You can produce a map of the data with only the QFF file. In addition to the RFL and RFT files, you can generate any other CfMC file to match the newly reformatted data (e.g., DEF). You can generate Survent or Mentor specification files. Also, you can generate files for other data processing systems such as COSI, SAS or SPSS.

REFORMAT will process any questions that put something in the data. Here is a list of Survent question types that will be reformatted:

CATegory EXPression FieLD
PHONE subtypes: G and T.
SPC subtypes: 3,4,6,7,9,F,L,N, and V TEXt

REFORMAT is a menu-driven program. Self-documenting screens guide you to produce both a map and a spread data file, or only the spread data file or map file. You are also offered several options (described below) that will affect the data and map file formats. A final review or recap screen allows you to change previously selected options before the map and spread files are made.

To use the program, at the operating system prompt, enter:


Or enter the proper code from one of the CfMC Menu programs. First, you are asked the name of the data file to use. Most likely your file will be a standard CfMC TR data file, since if you have a questionnaire you have usually collected the data in a TR file using Survent.

Then you are asked whether you are using the questionnaire file or a variables file for the reformat. Use the Questionnaire file if you are exporting all the variables, or if you have specifically set it up with the special compiler commands to control the reformat. Use the Variables DB file if you will just be doing a few variables that you want to list or give a subset of the variables to do. You can also use the DB file to get variables to use as a filter so that when you reformat the data you only use certain cases.

If you choose to use a questionnaire file, you will be prompted for a questionnaire file name.

The data is spread in the order that variables appear in the questionnaire. If you wish to change the order of the data spread, you must change the order of the questions in the questionnaire and recompile. Also, compiler commands can be placed in the questionnaire and after recompilation can further control the type of data spread (see below). Skip logic and conditional statements are ignored when REFORMAT spreads the data set; only the basic variable is used.

If you choose to use a variables DB file, you will be prompted for its name.

The program will then prompt for a FILTER to subset the records to be exported. If you have provided a DB file name, you can use the variables in the DB file to describe the filter, otherwise you will need to use data location references to describe the filter. This is the same screen seen in other CfMC utilities like SCAN and LIST that ask for a filter:


The next screen asks for the name to use for the output files. This can be from 1-8 characters in DOS or 1-14 characters in UNIX. This is the name the .rft (data), .rfl (map), and .def (data definition) files will be created with.

If you are using a variables DB file for the reformat, you will now be prompted for which variables you want to use. You can list specific variables in the order you want them, or you can ask for a subset of the variables based on variable type, variable name, or variables in a particular section of the questionnaire, eg. from question 23 to question 35. If you use specific variables, you can enter up to 20 variables in whatever order you wish them to be exported. NOTE: These are the same screens seen when requesting variables in the SCAN or LIST utilities.

The next screen will be the Map file options screen. It displays information about the options as follows:

The REFORMAT map (RFL) file prints all the information about the variables being reformatted. The map file is written in a fixed format to allow you to write programs that read it and create programs or documents using fixed position references. Here are the map file defaults and options:


The column on the left displays the options you can choose from, and the defaults are on the right.

Choose all the items you want to change. Here is a brief description of the options:

  • By default, the map file includes information about where the data came from and where it was spread to. If you wish to create a listing for someone that only includes where the data was spread TO, choose this option.
  • By default, the program provides page headings with the name of the study, the page number, and column headings for the information listed for each question. If you want to exclude this information, choose this option. This may be useful to do, for instance, if you had a program to read the map file output and create variables for some program whose data definitions are not supported by CfMC.
  • If you do not want to have page breaks in the map file, choose this option. This would be useful if you had a printer that could not properly print the pages with page breaks.
  • Use this option to change the page length from the standard 66 lines per page.
  • Changes the page width, you may want to wrap the map at 80 or 132 for printing portrait or landscape mode.
  • By default, the program prints the variable names at the top when writing delimited files. Choose this option to use “A”-“Z” type names like those used by some spreadsheets by default.
  • The map file includes a complete code list for every code list question by default. If you choose this option, the program will write one line with the notation “This uses the same code list as question XXX” for any question that used the SAMEAS feature in the questionnaire to use the same code list as a prior question.

Specifying the type of ASCII Data File to Create

Now we tell the program which type of file to write. This is dependent on the client or application you will be using the file for. Here is what the screen looks like:


1 Fixed format ASCII data spreads the data in the same relative position for every question across respondents. Records will be as long as necessary for the data spread. When CfMC writes data definitions for other packages, it must have the data in this format to match.
2 Delimited data is spread with a varying width (blanks stripped) for each question separated by the delimiter of your choice between variables. The variable names are recorded in the first record. You can choose the delimiter, common delimiters are TAB, comma, and blank. Quotes are placed around variables with string data, thus data from SPC subtypes 3, 4, 7, 9, and V; PHONE subtype G; and VAR is quoted. Numeric and code data is recorded without quotes around it.
3 Card-image data generates a case ID and record ID for each 80- column record generated, and then the data that fits on that record. By default, the record IDs will be numbered sequentially from 01 to nn for the number of records created for each respondent; you may override this to allow more records by saying “CARD_IMAGE:3” which forces record IDs to start at 001 and go to 999. The same number of records are written for each respondent regardless of the amount of data in their particular data record. Record descriptions in the MAP file are written in record number/column format (e.g., 2/23 means record number 2, column 23, or absolute position 103). You can specify the width of a record ID, naming a value from 1-9. If the width you specify is too short, REFORMAT will put asterisks (*) into the 10 field instead of a value for those records requiring the larger space.

Creating a Data Definition File to Match the Reformatted Data

A popular option is to spread the data in fixed format and produce a matching set of data definitions in some other command language for data processing. If you have CfMC’s Mentor program, you can use that to process the data using the standard CfMC TR file, but if you do not, or you are sending the data to someone who does not, they may have one of the languages CfMC supports for REFORMAT conversions. The types of data definition files supported are as follows:

  • CfMC Survent: Questionnaire specifications matching the spread output
  • CfMC Mentor: Mentor tabsets matching the spread data
  • COSI: Variable definitions export to CfMC companion WINDOWS-based tabulation/printing/charting package
  • SPSS: Definitions to load into this data processing package
  • SAS: Another popular data processing package
  • QUANTUM: A tabulation package
  • UNCLE: Another tabulation package
  • Triple-S XML: A data standard for various market research applications

The RFT file exported using these options is created with all response list items spread as response codes (except that SAS multi-response CAT questions are spread as 0/1 variables). LOOP variables are spread such that there is a separate iteration for each item answered in code list order (see {!RFT_UNWIND_LOOPS).

Note that non-CfMC packages, although supported, follow rules generated by our clients that may or may not match the types of variables you wish to export for those packages. If you wish to automatically create your own definitions, it is often useful to run a program using the MAP file as a basis for further variable creation.

The data definition file(s) created by REFORMAT contain generally include the question text, new location, type of variable, and code list where applicable. In addition to variable definitions, some exports include automatic table-creating specifications (Mentor, QUANTUM).

The variables created for other packages will generate new names to create separate variables in cases where there is a multi-response question or there are questions inside of a loop. For multiple response CAT questions, numbers 01 through 99 are added to the end of the variable name; if there are more than 99 response codes, an ASCII lettering sequence from AA to ZZ is used.

For LOOPS, letters A through Z are added to the end of the variable name.

For multi-response questions within loops, the name extension is 01A for the first name. For example, a question named HOSPITAL that has 10 responses and 5 loop iterations will have its iterations named HOSPITAL01A through HOSPITAL10E.

!SPC and !PHONE data types do not get exported to data definition formats. So, if you want to include these you will need to create a !VAR,A or hidden !VAR statements in the location of these statements.

The exported file is saved with a different name extension depending on the package. Survent makes a “qsp” file. For Mentor or Cosi, it is “def”. For SPSS it is “sps”, SAS is “sas”, QUANTUM is “qua”, UNCLE is “unc” and SSS_XML is “xml”.

Other Data Conversion Options

In addition to the controls you can have in the questionnaire using {!RFT_xxxx} statements, REFORMAT has some other data conversion options. Here is the screen:


Option 0: This allows you to only convert “named” variables, so you don’t get things used for calculations or other internal purposes.

Option 1: This allows conversion of alphanumeric exceptions on numeric questions to numeric values. The rule applied is that the converted exceptions will be numbered for example 997,998, and 999 and have 1 more digit than the maximum value in the range.

So if the range is 1-9, the alphabetic exceptions would be numbered 97,98, and 99. This is for some packages that need numeric values.

Option 2: This changes the code list to be a numbered code list that starts a 1 and goes to “n”, where “n” is the number of codes in the list. This will renumber all codes in the order they are in the code list, and change alphabetic codes to numeric as well.

Option 3: This writes the “Text” of the response into the data instead of the code. It is useful for Excel or database applications where you want to see the printed text instead of the coded value. You must specify the width to use for the code text if you are writing a fixed format file; the maximum is 1000 characters per response and the minimum is 10. This length will apply to ALL coded responses written to the data, so this is best used with a variable length delimited file.

Option 4: Writes multiple response CAT or FLD questions as separate “0/1” variables. That is, one variable is written for each possible answer, with a 1 for yes, and a 0 for no. If this option is chosen, you are prompted as to which types of variables to change, you can choose any of single response !CAT type, multi- response !CAT type (most likely), single response !FLD type, or multi-response !FLD type. Since multi-response !CAT data is binary and unreadable in an ASCII export file, it is often converted this way; the default is for the program to export it the same as multi-response !FLD questions look, that is, with one variable consisting of each response listed after the previous response in the order chosen.

Option 5: This appends CAT question data (in the format specified by the REFORMAT compiler command in your questionnaire file) after all other data. This is useful if you want to leave all other data where it was originally but JUST spread the CAT questions (perhaps because the program you will be processing the data with does not deal with punch data). This also puts the TEXT data at the end of the record.

Option 6: This causes REFORMAT to spread the data for multiple-response CAT questions only. Single response CAT questions are left unchanged from the original data. This option would most likely be used in combination with option 5. For example, if only a few of your CAT questions are multiple- response and you want your reformatted data columns to match the original data file as closely as possible, then use option 6 to spread only the multiple-response CAT questions and option 5 to append them to the end of the spread data file.

Spreading TEX Question as Part of the Standard Data Set

TEXT questions contain long open-end responses. By default the program ignores these when writing out the dataset because of their potential size. If you have a delimited file there is no particular reason to exclude these, but if you are making a fixed format file the size of these can make it hard to use the file so use caution. If you make a CARD IMAGE file the maximum size you can specify is 74 columns (that is all that will fit on one “card”).

If you want to include these in your fixed format dataset, you ust specify the maximum width for a TEXT questions’ data (10-5000), and that width will be applied to ALL text questions in the spread output of the file.

After entering the relevant information, you will be presented with the final review screen. Check your options carefully and press Enter to process the data, or S to save the Mentor specifications for the run to a file before processing the data. The program will run, you will see a list of the questions processed and notes telling you the new files that were created.

Processing the Data

NOTE: The actual ~REFORMAT keywords to control these options for batch mode processing are in Appendix B: TILDE COMMANDS, ~REFORMAT, in the MENTOR manual, or the UTILITIES manual.

If the program runs successfully, it will produce two files <data file name>^RFT and <QFF file name>^RFL. Possible reasons for the program not running would be core size limitations if your files are very large, or a QFF and TR file that do not match. In this case you will get a warning that REFORMAT has found too many responses in the data, meaning it does not match the QFF file.

(WARN #891) There were too many responses found in the data here! Error on question 0.10 and case ID 0001

The program will attempt to write data successfully even if errors are found when matching the data to the variables, so it is your responsibility to check the integrity of the data set you create.

The program exits after processing the data file. Within the data records, the original data is spread according to the map file, including any of the REFORMAT program options you may have chosen. The first line of a delimited output RFT file will be a delimited list of the names of the variables written to the file (i.e., ~REFORMAT option DELIMIT_NAME_FIRST is the default.).

5.7.1 Spread Data File Format (RFT) file

The data record has the following format:

The case ID starts in column 1. If using card-image format, a two-column record ID is next. Otherwise the spread data begins in the first column after the case ID (continuing through the actual length of the data) that is interpreted with the RFL file.

The ASCII data records can be up to 100,000 columns long. Here is a sample fixed format data record:

EX:  00013	7	5	MRS. SALLY FIELDS	101 AZ

If using delimited format, the first record will be the variable names in quotes and separated by your delimiter. The next record is the first actual data record, with the delimiter placed between the case ID and each succeeding variable. Quotes are placed around string variables. Here is a sample comma delimited data record with variable names first:

EX: "case_ident","yrshouse","Numadult","Name","CdtyP01",CdtyP02","State" "00013",7,5,"MRS. SALLY FIELDS",1,0,"AL"

Rules for Spreading Data Variables and Controlling Variables from the Questionnaire

Data from all data-generating questions except TEXT questions is included in the data records by default unless specifically excluded by the !-RFTON command in the questionnaire or because you are getting a subset of the variables from a variables DB file (see 3.2.4 DATA CONTROL COMMANDS, REFORMAT Data Controls And Use). TEXT questions may be included as an option.

Numeric or string data (from NUM, FLD, VAR, and all other string type questions) is moved directly into the next available data column by default.

In addition to the controls listed above for CATegory and FieLD questions, you can control the spreading of CAT question binary data directly from the questionnaire using the following compiler commands:

{!RFT_CAT_01} This spreads the data as either a code of ‘1’ or ‘0’ to mark the presence or absence of each of the possible codes.

{!RFT_CAT_RESP} The response codes themselves are placed in the data in response order, up to the maximum number of responses (this is the default).

{!RFT_UNWIND_CODES} The response codes are placed in the data, but they are positioned in their relative position from the response list, e.g. if you have the 3rd response, it will be written to the third code location in the variable. Data will look like “bbbb03bb…” where “b” is blank. This will also affect FLD question output.

{!RFT_CAT_PUNCH} Punches 1-9,0,X, and Y for single response CAT questions are placed in the data. The same punches are spread for multipleresponse CAT questions, but in a grid of column sets (number of columns times the maximum responses allowed). Punches are spread in their column set relative to their column position to the start or base column.

{!RFT_CAT_SPREAD} Punches 1-9,0,X, and Y for multiple- response CAT questions are placed in the data. Responses are spread as one punch per column in response list order regardless of the original column order. This is like the default of 1’s and 0’s except that each column will either have the original punch or be blank.

NOTE: Response list order means the order that responses appear in on the actual response table and not the order in which they were given.

Response codes that contain only carets (^) will appear as carets in the spread data file when responses are spread as codes.

EX:  01 YES
     02 NO
     ^^ DK/NA <-- this response will appear as two carets ^^ in the spread data file.

Data from LOOPs is spread according to the controlling response; the third controlling response’s data will go into the third data space. Or, you can force the program to place the data sequentially for each response answered using the {!RFT_SAVE_LOOPS} command in the questionnaire.

5.7.2 Map of the RFT File (RFL file)

The map file (RFL extension) lists information about the question data, recode values, questions and responses, and additional information depending on the question type. Here is some sample output using a CAT question formatted with the default CAT reformat options and REFORMAT program Option 2 for LOTUS format:


The record types printed are identified by the letter in column one:

Letter	Description

Q	Question description information
X	Extra line for some CATs, NUM, EXP, and SPC questions
T	Text line
R	Recode item for CAT and FLD questions
L	LOOP data line
D	LOOP data location description line

Q line question descriptions include:

Item	Description

Q=label	The question label or number (e.g., CAT01) Type	 Question type (e.g., CAT)
FromLocation	Data location and width in the original data (e.g., [1/29])
ToLocation	Recode item for CAT and FLD questions

NOTE: For TEX questions this will say ‘–> Not Moved’

Comma-delimited format adds from one to three columns to the original data width (one comma plus “double quotes” around text data).

For CATquestions:

RefmtType	The Reformat type

Type=1/0	(default, see {!RFT_CAT_01} or option 7) 
Type=CODE	Question type (e.g., CAT)
Type=PUNCH	Data location and width in the original data (e.g., [1/29])
Type=SPREAD     Recode item for CAT and FLD questions
Type=MOVE	(see option 5)

For FLD questions:

RefmtType	The Reformat type

Type=MFLD	for multiple-response FLD questions
TYPE=	        is not specified for single-response FLD questions

For LOOP questions:

RefmtType	The Reformat type 

Type=UNWIND     (see {!RFT_UNWIND_LOOPS}) 
MaxResp	        The number of separate responses allowed (e.g., Max=1)
LotusItem	For comma-delimited format only; this is the Lotus column number for this data (e.g., Item#=6)

X line extra descriptions include:

The column grid that determines the data location in the RFT file for multiple-response CAT questions is spread in either response code or punch format.

Here is an example for a multiple-response CAT question spread as codes:


X 1st=[41.2] 2nd=[44.2] 3rd[47.2] where the first two-character response code will be in 41.2, the second in 44.2, and the third in 47.2.

For multiple-response CAT questions spread as punches, the grid of columns indicates where each response will be punched. Responses are spread as punches (one punch per column set) in the order that they appear on the recode table. If the example question was answered 08,04,01,07, then the punch for response 01 would go in the 1st=[41.3], 04 in 2nd=[44.3], 07 in 3rd=[47.3], and 08 in 4th=[50.3]. The position of a punch in its column set is determined by its column position relative to the start of the base column. Here is an example:


In this example, if the responses were 01, 03, 05 (or any other order of these same responses) then the punches would be spread as follows: a 1 punch in column 41, a 1 punch in column 45 (column two of the second column set which is offset by one column from the base column of 41), and a 2 punch in column 49 (column three of the third column set which is offset by two columns from the base column of 41). Columns 50, 51 and 52 would be blank since only three of a possible four responses were chosen.

For FLD questions, the X line appears only for multiple-response FLD questions in the same format as multiple-response CAT questions spread as responses ({!RFT_CAT_RESPONSE}). The X line indicates the columns in the RFT file for each of the possible responses. Here is an example:


In this example, there are 10 possible responses and each response uses four columns for a total of 40 columns. For NUM questions, the X line indicates the valid range of responses and any allowed exception codes.

EX: X Range=1-5000	Exceptions=DK,NA

For EXP questions, the X line contains the expression for as many lines as are needed.

EX: X (Numqn*100)/2

For PHONE questions, the X line indicates the subtype and gives a brief description of that PHONE’s subtype.

EX: X SubType=G	Phone Record Information

For SPC questions, the X line indicates the subtype and gives a brief description of that SPC’s subtype.

EX: X SubType=V	Suspend/Terminate Question Number

R line recode descriptions (CAT or FLD) include:

  • response code
  • for CAT questions, the original data location and punch
  • for CAT questions, location and punch or response code in the spread data file
  • response text (truncated at column 80 for long lines or multiple lines)

R lines To Location for CAT questions vary for the reformat type chosen:

  • For {!RFT_CAT_01}, {!RFT_CAT_SPREAD}, or {!RFT_CAT_PUNCH} for single response you will see the to location and punch in the spread data file.
  • For {!RFT_CAT_RESP} and {!RFT_UNWIND_CODES} or option 5 in the REFORMAT program you will see X.width and the response code, where X refers to the spread data column locations on the X line.
X 1st=[32.2] 2nd=[34.2] 3rd=[36.2] R 03 1/30^3 --> X.2=03 YELLOW

In this example, if 03 was the first response for this question, then the code 03 would be in columns 32 and 33 in the spread data file. For {!RFT_CAT_PUNCH} for a multiple-response question you will see X+offset (where X refers to the column is set on X line and offset is the number of columns this column is offset from the base column for this question) and the punch.

X 1st=[41.3] 2nd=[44.3] 3rd=[47.3] 4th=[50.3] R 03 1/36^1 --> X+1^1 YELLOW

where: X is the base column (in this case 41 in the first column set)

NOTE: The ToLocation field format is determined by whether a single ASCII record or ASCII card images are produced.

T Lines text lines contain:

the text of the question truncated at column 80 for each line of text.

L Line LOOP Data Lines print:

The original data location of the loop controlling response and the corresponding location in the spread data file for the maximum number of times the LOOP was executed. LOOP lines for each question executed inside the LOOP will print the original data location for each LOOP iteration and its corresponding location in the spread data file (see the LOOP example after the D line description).

D Line LOOP Description only prints:

for the {!RFT_UNWIND_LOOPS} compiler option, after the L lines indicating how spread data locations will vary from the original data file (see the LOOP example below).

{!RFT_UNWIND_LOOPS} (the default), puts aside the total number of columns for the LOOP controlling question. LOOP data is spread according to the responses chosen in the controlling question, leaving blank data columns for responses not chosen. For an UNWIND_LOOPS example, see the following page.

NOTE: With UNWIND_LOOPS, LOOP data is not spread in the order responses were given for the controlling question, but in the order responses appear in the recode table.

Here is an example of UNWIND_LOOPS where the LOOP controlling question allows up to ten responses but the maximum times through the LOOP is four. The data location for each LOOP controlling response in the spread data file is determined by which responses were chosen. For instance, if the LOOP controller question was answered 09, 05, 01, then response 01 would go into columns 25 and 26 (continuing for all the questions executed inside the LOOP), response 05 would start in columns 45 and 46, and response 09 in columns 65 and 66.


The double-lined arrow (=⇒) indicates that there is no direct correspondence to the original data locations. Loop data from the original data locations could go into any one of the ten locations listed above depending on which responses from the controlling question were chosen.

Here is the first question executed in the LOOP.


The actual spread data location for a particular response would be its X line location plus the LOOP offset for the loop iteration in which it was answered. For instance, if 04 was the second response for the BRANDS question for response 08 of the LOOP controlling question, then 04 would be in columns 141 and 142 (the X line location for the first response 29.2 plus the LOOP controller location offset 112).

For {!RFT_SAVE_LOOPS} there is a direct correspondence (indicated by the single –> arrow) between the original data locations for each LOOP iteration and the location in the spread data file. The data would be placed sequentially for each response answered. Using the example above, the LOOP and LOOP questions would show four original data locations and four spread data locations.

NOTE: {!RFT_UNWIND_LOOPS} spreads LOOP data according to the response code order of the controlling question and not in the order the responses were given. The {!RFT_SAVE_LOOPS} option will maintain the original response order so that your spread LOOP data will be in the same order as your TR data file.

~REFORMAT Command Language for Batch Mode operations

You can execute REFORMAT in batch mode by choosing to save the spec file by using the S option on the recap screen and then running that saved file through Mentor, or by writing your own command language file to execute REFORMAT commands. Here is a list of the relevant commands and their meanings:

The following commands are required:

~INPUT <filename> <filetype> Name of the data file to process
~QFFFILE <qff file name> Name of the questionnaire file to process
~REFORMAT Invokes the default REFORMAT options
~END Ends the program

The following are ~REFORMAT options, placed after the ~REFORMAT command and before the ~END command:

1 File type options:

DELIMITER=COMMA/TAB/SPACE/<char> Write delimited file with delimiter of <char>

DELIMIT_NAME_FIRST Write name of variable on first line of delimited file

DELIMIT_FIXED_LENGTH Write fixed-length variables instead of the default that strips blanks from the end of variables.

CARD_IMAGE:# Write card image file (80 byte records); by default it writes a case id and 2 character card ID on each record; say :3 to generate a 3-digit card ID.

2 Miscellaneous options:

DO_WHAT_YOU_CAN If there are data errors, attempt to make file anyway

EXPORT_LEVEL=# Used with {!Export_Level=#} in prepare, controls which variables to write. Variables >= the Export Level will be written.

-USE_CFM_LABELS Says to exclude any questions that were not specifically labeled by the user.

3 Map file options:

-MAP_FILE Don’t make map file

MAPFILE=( Start list of map file options:

-FROM_FILE_INFO Don’t include data locations data came FROM, only TO

-HEADERS Don’t include page headings

-FORM_FEED Don’t include form feed at page breaks

PAGE_LENGTH=# Change page length from 66 lines per page to #

EXCEL_NAMES Use “AA” – “ZZ” type variable names in delimited files instead of real names

SAMEAS_IN_MAP Write “SAME RESPONSE LIST AS QUESTION xx ABOVE” instead of remaking list if list uses “SAMEAS” feature in Survent.

4 CAT/FLD question options:

APPEND_CAT_DATA Leave other data alone, spread category question data and TEXT data at the end

MULTI_CAT_01 Write 0/1 codes (and matching variables) for multi-response category questions

SINGLE_CAT_01 Write 0/1 codes and variables for single- response category questions

MULTI_FLD_01 Write 0/1 codes and variables for multi- response field questions

SINGLE_FLD_01 Write 0/1 codes and variables for single- response field questions

-EXPAND_SINGLE_CATS Don’t expand single response category questions; leave as punches

RENUMBER_RESPONSES Changes the response codes to sequential numbered codes starting at 1 and going to n, where “n” is the number of responses. For instance, if you have a code list with “A/B/C/D/E” codes, they will be converted to “1/2/3/4/5”. If you have response codes of “1/2/3/4/5/9” it is converted to “1/2/3/4/5/6”. “5/4/3/2/1” codes would be converted to “1/2/3/4/5”.

SINGLE_CAT_RESPONSE Expand single response category questions as response codes (override 0/1 coding)

USE_RESPONSE_TEXT=#### Writes the text of the response to the reformat file instead of the code, #### is the maximum length of response and can be 10-1000. This is useful for conversion to databases or spreadsheets where the text is preferable. If not specified, the program will export all the text up to the maximum length of text on the response list. The maximum value is 1000. If you ask for “mentor” specs, and the longest text on the response list is 72 characters or less, reformat will build a FIELD variable in the exported ^def file, so mentor can create crosstabs with the text, otherwise the data from this will be converted to a VAR (string) type for export to other softwares.

5 NUMERIC question options:

RECODE_ALPHA_EXCEPTIONS Changes alphabetic exception codes to numeric values. For example, the values will be made to be 97,98 and 99 if the range is 1-9.

6 TEX question options:

APPEND_CAT_DATA Leaves other data alone, spread category question data and TEXT data at the end

TEXT_AS_VAR=# Expand TEX questions in standard text area using length of #

DO_TEXT_DATA=# Write “H” header lines and “T” lines for TEX data and wrap at position #

-DO_TEXT_DATA Don’t write “H” header lines or “T” lines

TEXT_HOLD_SIZE=# Allow # TEX questions per case instead of125

7 Data definition file (DEF) options:

SURVENT_SPECS Survent variables matching spread data,

HARDCOPY associated Survent files




MENTOR Mentor table definitions (.def)

CLN Mentor Cleaning specs (.cln)

COSI_SPECS COSI import file (.def)

QUANTUM_SPECS Quantum table definitions (.qua)

SPSS_SPECS SPSS variables (.sps)

SAS_SPECS SAS variables (.sas)

SSS_XML Triple-S XML variables (.xml)

UNCLE_SPECS Uncle table definitions (.unc)

~SPEC_RULES Command Language affecting definition files from REFORMAT

These commands affect the creation of the “definition” files created by reformat:


ABSOLUTE_QUANTUM_LOCATIONS Puts locations in “absolute” format instead of the default “card/column” format


SPSS_LABEL_TRUNCATION Causes labels to be truncated to allow older versions of SPSS to use them.


ONLY_NUMERIC_EXCEPTIONS Checks to make sure numeric variables do not have alphabetic exceptions

RECODE_ACCEPTABLE_LEVEL=x Gives errors if response lists are not in the allowable format, possible options are:

  • Minimum_width_sequential_numeric: must be numeric, with each value 1 greater than the previous value; all entries must be the same width.
  • Sequential_numeric: must be numeric and sequential.
  • Numeric: must be numeric.
  • Alphanumeric: must be alphanumeric (a-z or 0-9).

Special_characters: any characters, eg _ ,..

RECODE_WARNING_LEVEL=x Same as above, but it gives you a warning.

5.7.3 Header and Text record using the “ Do_Text_Data” option

Although this is not one of the options in the utility menus, you can get a “header” and “text” records listed separately from the data records. This lets you see the text separately from the data, and provides some additional information in the header records. See the Utilities manual for more on the ~reformat commands.

Below is a description of the header record if you ever use the “DO_TEXT_DATA” option.

Header Record Type Layout The HEADER record has the following format:

Column	Description

1	H
2-11	case ID (left-justified)
12-15	blank
16-19	study ID (first four characters of study name)
20-22	blank
23-26	interviewer ID
30-37	study name (left-justified)
38-39	blank
40-45	flags
46	blank
47-54	case flags
EX: H0001 bank intv bank1 Flags: A

Here is a list of possible case flags:

Flag	Description

A	Altered
C	Cleaned
E	Error
F	had webSurvent fast resume
L	Locked
R	Was resumed
S	Sequence error in webSurvent
U	Updated
l	Data created by Random Data Generation(RDG)
r	Resume error
u	Resume update error

Tex Record Type Layout

If spreading TEX data separately, you will only get text records for those cases with TEX question responses (and you have the option of writing only these responses to the spread data file or suppressing them).

The text record has the following format:

Columns	Information

1	T
2-3	QQ
4-9	Question number
10	Blank
11-?	Text (continuing through the actual length of the text, breaking at column 80 or your specified length) to additional lines if needed.

Note: Each additional text line begins with the same format as the first line, i.e. TQQ. text. You will get a separate text record for each TEX question answered. The text records come after the data records for a case in the spread data file.

EX: TQQ010.10 Bank of California

TEX,B questions with no answer will also generate a record. Starting in column 11 is the string ‘<blank>’.

EX: TQQ020.00 <blank>

Use the TEXT_AS_VAR option to put TEX data into the regular data area instead of this option. Note: For a similar output, but providing question labels instead of question numbers and in a more readable format, use the LIST utility and ask for “ALL TEXT QUESTIONS”.


The SURVMON program can be run on any station on your network.

To run SURVMON, enter:


The program will list the active studies, the server each is running on and the number of active interviewers on each study. If a particular study had been run on a different server then this information is also provided, but only for problem debugging purposes.

At the program prompt you have a list of choices:

  • enter the name of the study you want to monitor
  • review the quotas for an active study
  • set the pause time for TEX and non-TEX question
  • quit

After entering the name of the study you want to monitor (and any password that has been assigned to it), the following information is displayed:

  • current time
  • study comment
  • list of all supervised and unsupervised stations by station number and their corresponding interviewer ID. This can be eliminated by using “SURVMON NO_LIST” or “MONITOR, NOLIST”.

The information shown on this screen is updated every 30 seconds, so every time you return to this screen you will get updated information.

In addition, if the questionnaire contains any SPC,E,1 statements the text from the last one executed will display along with the interviewer ID and station number. Enter either the station number (LDEV) or the ID of the interviewer you want to monitor.

Also, you will see the case ID, starts, and completes between interviews. There can be up to five monitors per interviewer. Restricting Access

The parameter STUDY= on the SURVMON command line restricts the monitor to a particular study. This is used to allow clients to view their own studies but no others. This parameter may be used in conjunction with the NO_LIST parameter to restrict the interviewer list.

To set up a command file for SURVMON using the STUDY= parameter, copy the file MONITOR in the CfMC GO directory (or GO group); and add “STUDY=<varname>“ to the SURVMON command line. Then save the file and call it MONSTUDY or such. You would then enter “MONSTUDY MYSTUDY” to monitor the study called MYSTUDY.

EX:  SURVMON STUDY=%1	        (DOS)
     survmon study=$1 con con	(UNIX)

Rating the Monitored Session


The END_MON_SURV causes the program to automatically run a Survent interview at the end of each monitored interview, usually so that the interviewer may be rated by the monitor. The syntax is:

END_MON_SURV <monitorname>

where ”<monitorname>” must be an interviewer ID in the EMPLOYEE ID file. The program sends the following command:

SURVENT con con “INIT:m%s1^qff;%s2;Y;;%s3;%s4;%s5;%s6;%s7;%s8;%s9;”

Where ”%s1”-”%s9” are filled in as follows:

%s1 = monitor name from END_MON_SURV command
%s2 = monitor name from END_MON_SURV command
%s3 = case id of last interview
%s4 = interviewer id monitored
%s5 = device number of monitored interviewer
%s6 = # of starts so far
%s7 = # of completes so far
%s8 = study name being monitored
%s9 = device number of supervisor or monitor

The parameters fill in questions in the Survent questionnaire you write for the monitor. This way each monitor will create their own data file with the monitor’s ratings in it. You MUST have a questionnaire for any monitor who wishes to use this facility.

Note that two monitors cannot run the same questionnaire from different stations.

Use ”-END_MON_SURV” to turn this feature off. “END_MON_SURV” with no ID will say what the present ID is between colons, e.g. :smcr: or :: if not set. This command also works in the SURVSUPR program.

Here is a simple example questionnaire to do monitor rating:

~prep compile -specs
''test monitor quality control
{ lcaseid:
last caseid \_..........
!var,,10 }
{ intvid:
\ainterviewer id \_....
!var,,4 }
{ intvldev:
interviewer ldev \_....
!var,,4 }
{ nstart:
# starts \_.....
!var,n,5 }
{ ncomplt:
# completes
!var,n,5 }
{ studynm:
study name
!var,,10 }
{ suprldev:
supervisor ldev
!var,,10 }
{ evalstuf:
here would be evaluation from ldev \:suprldev: of
\:intvid: on dev \:intvldev
caseid \:lcaseid: who has started \:nstart:
and completed \:ncomplt:
on study \:studynm:
!var }
!var }

Stop Monitoring/Send a Message to Interviewer

Press Ctrl-Y (DOS) or Ctrl-BREAK (UNIX) to interrupt the SURVMON program. At the prompt you will be able to:

  • enter a message to be sent to the interviewer being monitored (and continue monitoring)
  • unless you specified NO_LIST as described above, enter ‘Q’ to quit monitoring this station
  • press Enter to continue monitoring the station (no message sent)

You may send an approximately 80-character message to the interviewer. The message will appear on the interviewer’s screen when the next question displays. NOTE: After sending a message SURVMON must resynchronize the external monitor and interviewer station; you may notice a delay for approximately two questions before this is accomplished.

Enter ‘Q’ to quit monitoring the station. You will be returned to the main program prompt. From here you can enter the name of another study to monitor, press Enter for the current study, display quotas for the current or another study, change the wait time for questions or quit and exit the program.

QSS Enter the command QSS to show the quotas for any of the active studies listed. Quotas cannot be updated from SURVMON. See 4.4.2 SURVSUPR MAIN MENU for information on modifying quotas for an active study.

WAIT <nonTEX question delay> Before entering the name of the study to monitor, you can set the time to wait before the program clears the screen. Enter the command WAIT followed by a number. This number says how many tenths of seconds to wait before clearing the screen of non-TEX questions. The number can be between 1 and 50. The TEX question delay is set to five times the non-TEX delay.


QUIT Enter QUIT to exit the program


  • It is not necessary for the external monitor and the interviewing station being monitored to be the same terminal type (UNIX).
  • An interviewer has no knowledge of whether or not they are being monitored.
  • Do not monitor a simulated interview which is using the random data generator. This may cause an unrealistic strain on the system.
  • A message is sent to the CfMC SERVER and entered into the log file when monitoring either starts or ends, including: date and time, station number of the external monitor, and the number of the monitored station.
  • The compiler command -ALLOW_MONITOR will affect what you can monitor.
  • The monitor screen displays a message in the bottom right corner indicating who is being monitored. “MON #1234” indicates device #1234 is being monitored, while “MON FRED” says an interviewer with the ID of FRED is being monitored.
  • If using an EIS predictive dialer, you can also use the PHONE command. The syntax:

# is your extension. This gives direct listening to the line of the device being monitored. Both you and the monitored device must be on the dialer.


The MAKECFG program has two purposes, to rebuild the CfMC server’s stations and studies configuration files, and to display the currently active stations and studies.

In UNIX, The stations file is built in the /cfmc/cfg directory (stat761.cfg); ALL study servers on the system look to this file to be sure there are no stations running under multiple servers.

The “studies” file in UNIX is in the local $CFMC/ipcfiles directory for each study server (stdy761.cfg). In DOS, all files are stored together in \CFMC\IPCFILES (DOS) because you cannot have more than one server on the network.

To rebuild the configuration files you say “makecfg makenewfiles” or “makecfg clearmyenv”.

The “makenewfiles” option will rebuild the files. The “clearmyenv” option will clear out all entries for a particular server, but will leave entries from other servers in the stations file (UNIX only).

On all platforms you can execute the command CLEARIPC that will run MAKECFG with the “MAKENEWFILES” option.

To run MAKECFG, enter:


Your standard Spec File and List File prompts will appear. You may also enter CON CON or specific file names on the program line. See 2.2 USING PREPARE if you need more information on these prompts.

Once the List File prompt has been answered, then the following will appear:

Option	Description

Help	        Re-displays the initial HELP screen
Show stations	Lists all active stations and servers in the stations file
Show studies	Lists all actice studies in the studies file
Find server	Searches for an active SERVER process. If found, the station number of that SERVER process is returned

QUIT Exits the program.

There are a few additional options not shown on the help screen but that are in the program. You need to enter the password “BAD IDEA” first at the program prompt. Then you can enter HELP at the next program prompt. The “BAD IDEA” password is to remind you there are things you can do here that will disable the server or interviewing stations if you execute then improperly while the server is live. You could inadvertently clear the wrong device, study, or the server itself. Please proceed with caution.

CLEAR Clears stations from the server’s STATIONS file.

This will not abort current interviews, just clear the station record so the device can be re-started. Here is the syntax and an example of CLEAR:

CLEAR <station(s)>
EX: CLEAR 60,72

The stations can be specified individually or as a range. This can be useful for cleaning up the STATION7 file after a system crash.

EX: CLEAR 50-80

CLEAR_STUDY Clears the study from the STUDIES file. This will not clear interviewers off the study. It will just clear the entry so it can be reloaded later. This is used if files are loaded, etc.

Here is the syntax and an example of CLEAR STUDY:



If the system thinks there’s a server there already, you can clear it out by doing the following:


NOTE: Use all BAD IDEA commands with caution.

MAKE SERVER Causes a server record to be made in case it has somehow gotten lost.

Here is the syntax of MAKE SERVER:


The following are also unlisted, but do not require the use of BAD IDEA first:

DUMP Dumps all information about a device.

DUMP <ldev>

FINDTTY Displays the information about a device from the TTY file (mailbox, terminal type, time zone, extension).

FINDTTY <ldev>

SAFE Turns security back on commands after having said BAD IDEA to use CLEAR or MAKE SERVER commands.

SC Shows stations that were previously running in the Stations file but have since quit or have been cleared. This shows the date and time cleared.

SL Shows live stations (same as SHOW STATIONS).

SS Shows study information.

To clear stations under the current CFMCCFG server only (DOS/Unix), you can use the command line parameter CLEARMYENV. Since all stations information is stored in the same STATIONS file, if you have multiple servers running, you may want to clear the entries for one server and not the others.

The CLEARMYENV command operates on the assumption that the current setting of the CFMCCFG variable is the environment that you want cleared, therefore, the CFMCCFG variable MUST be set and must be pointing to the correct directory structure.

Here are examples for UNIX and DOS:

setenv CFMCCFG /mycfmc/ipcfiles/ (UNIX)

WEBS Shows station information for web survent sessions, including the password and process ID.


FIXRESUM is a utility program that reads suspended interview files and a questionnaire file to verify that the suspended interviews can be resumed by the questionnaire. This is used when you have made changes to a questionnaire and wish to be able to restart suspended interviews with the modified questionnaire.

You can test the compatibility of the new version with the old suspend files using FIXRESUM, and if the suspend files will not resume properly, you can note where the inconsistency occurred, and modify the file again to try to make it resumable by Survent. Using the rules below, you should be able to make changes to questionnaires and resume old suspend files with the new version. If not, you will have to resume them with the old questionnaire version if you wish to save them.

In any case, if you have old suspends to save, be sure to save the old version of the questionnaire (QFF file, QPX file, or QSP file) so that you can resume them in the case where the changes are too drastic to resume them with the newer version.


Survent uses the same process as FIXRESUM to update changed suspend files. If the date and time stamp of the questionnaire doesn’t match the date/time in the suspended interview it is trying to resume, Survent itself will attempt to update the suspend file, so it is not necessary to run FIXRESUME (see below).

If Survent cannot fix up the file, one of three things will occur depending on the setting of the “FAILEDRESUME: xxxx” option in the server’s parmfile (see 4.4.4 SERVER parmfile PARAMETERS). By default, it will start the interview over at the beginning. If the FAILEDRESUME option is set to “BLOW”, it will blow up and save a data file of the answers so far. If it is set to “STARTHERE”, it will go forward as far as it can, then resume the interview at the place where the old suspend file no longer matches the new questionnaire.

This is the preferred option if you want the best chance of resuming old suspended interviews and completing the interviews.

When running FIXRESUM, always back up the resume files you are modifying and save the corresponding questionnaire file. If the FIXRESUM run is partial due to an incomplete fix, you will still be able to resume the complete interview using the old version of the questionnaire and the old suspend file. Once FIXRESUM has been run and does a partial fixup, you cannot resume the new file using the old version. If FIXRESUM should fail completely, you can still resume the suspend files with the old questionnaire.


FIXRESUM is useful to check whether the changes you made are resumable with the new version. If the changes you are making will cause many suspends to be lost, you can find that out now rather than when you are live in the field. Also, if you run FIXRESUM and all files are fixed successfully, this speeds up the resume because Survent doesn’t have to attempt to do the FIXRESUM procedure when resuming.

Running the FIXRESUM program

When you run FIXRESUM, it will first prompt you for the new questionnaire file name; you may enter a fully qualified filename, or the study name. If the CFMCQFL variable is set, it will look for the questionnaire file in the standard QFF directory, otherwise it will look in the local directory. Here is an example using a full filename:

Type qfile name (or 'quit')--> /usr/cfmc/rel7_6/qff/test1.qff

FIXRESUM will next ask whether you want to test the suspend files for compatibility or actually fix them up:

We have the study opened; study code: TEST1
Now to adjust suspended interviews to match this version of the questionnaire
Do you want to T)est fixing or R)eally fix resume files?

You should choose “T” to test the suspend files and see whether your changes were acceptable. If you type “R” and you are using the “FAILEDRESUME: STARTHERE” option, the program will do a partial fix up of the files it cannot totally fix up and you will not be able to recover the original file to make it work with your changed new version. Once you are satisfied that you have done the best you can to fix up the changes, and you want to go ahead and lose parts of some of the interviews, type “R”.

At this point you will be prompted for the files to work on in the resume directory or group. You may enter the keyword “ALL” or a filename mask. The special characters “*” for “ALL, “?” for alphabetic characters, and “#” for numeric filename characters are allowed.

If you have defined the CFMCRESUME variable (DOS or UNIX), FIXRESUM will look in that directory or group for the suspended files. If the CFMCRESUME variable has not been set, FIXRESUM will look in the local subdirectory <study>.R_.

FIXRESUM will read each suspend file along with the new questionnaire and attempt to reconstruct the suspend file so that the responses will match that of the new questionnaire. If FIXRESUM cannot match the suspend file and new questionnaire, it will display the question it was on when it was stopped so that you can possibly fix the problem with that question and recompile the questionnaire to try to get it to match the old suspends. Survent will only fully resume suspended interviews that FIXRESUM can successfully recover.

Here is an example that uses FIXRESUM to update a set of files after testing and changes have been completed:


If FIXRESUM is unable to correctly reconstruct a suspend file, and you decide not to resume it with the old questionnaire file version that you saved, you may run the SUSPRES program to print out the responses in the suspend file to a ASCII file (^SUS) and save the data to a CfMC data file (^TR). If you want to save some suspends as if they were completes, you can append them to the data file using the COPYFILE utility or Mentor commands.

Note: You may enter QUIT at the qfile name prompt instead of a questionnaire file name.

Testing Changes

You can test your questionnaire changes to see if your suspend interviews from the previous version can be resumed with the new version without modifying the suspend files directly.

The prompt says, “Do you want to T)est fixing or R)eally fix RESUM files?” Choose T to test.

5.11.1 FIXRESUM Guidelines

Below is a list of guidelines to maximize the chances that FIXRESUM or Survent will be able to recover all previously suspended interviews.

NOTE: Failure to follow these guidelines may mean that you will not be able to resume interviews suspended prior to your changes!

If possible keep some interviewers using the old version of the questionnaire to complete the interviews suspended prior to the changes. This is the only way to guarantee that all previously suspended interviews can be resumed.

Because this is not usually practical, follow these guidelines for changing a questionnaire already in the field:

1 Back up your originals: Save at least the original questionnaire (QFF), data (TR), phone (FON, FNX), and suspend files in a backup directory or account. You may also want to save the quota (QUO) file (although it is not usually needed), and the spec (QPX) file (although it can be somewhat replicated by using the ~PREPARE MAKE_SPEC_FILES QSP option to create a QSP file). This step is essential to assist in debugging and possibly recovering from any problems. Never overwrite any of these original files!

2 Make the necessary modifications to your existing spec file. We strongly recommend that you hardcode all your data locations. Hardcoding data locations may be accomplished by using the HARD_CODE compiler command at the beginning of the spec file and then using the QSP file as your input file for all changes and subsequent runs. If you do not do this you must make sure that any added or deleted questions do not cause the data locations for questions to change. Hardcoding may also be done by using SAVE_COLUMN and RESTORE_COLUMN compiler commands, or by putting all the new questions in the work area (WORK_START= on the header). FIXRESUM will be unable to reconstruct any suspended interviews containing questions that have had their data locations changed.

NOTE: If you are changing your data locations, you will most likely have larger problem than just the fact that you cannot resume some of your suspend files; data collected in the two different versions of the questionnaire will not correspond. When making the following modifications to a questionnaire, note these conditions:

  • Modifying existing questions: You should be able to change the text or the IF condition on any question without concern. If you change the valid set of answers to any question, you will want to think about how this affects any suspended interviews. For example, you may increase the range on a NUM question without concern, but deleting a response from a CAT question will definitely cause a problem for any suspended interview that originally had that same response.

NOTE: Changing the data position on any question will always cause FIXRESUM to fail to recover any suspended interview where that question was executed.

  • Adding new questions: Do not overwrite any data locations with the added questions. Before adding any new questions, use the CHK file to note the highest data column (at the end of the file), and only specify new data locations greater than that column.
  • Deleting questions: Delete a question by using one of the following methods:
    1. Add the HIDE option on the question line (See 2.3.5 QUESTION LABEL LINE, Question Options for an example.)
    2. Replace the original question with a GOTO question that does not actually do anything.
    3. Use HIDE_ALL and -HIDE_ALL compiler commands around the questions to be removed. Survent re-executes all answered questions when it resumes an interview. By hiding or changing the deleted questions to GOTOs, the program will no longer execute the question, but it will insure that the question will still be found for interviews suspended prior to the changes.
    4. Moving questions: If the questions to be moved have no data (DISPLAY, GOTO, etc.) or have data but are labeled, you need to replace the original question with a GOTO question and move the question to wherever it needs to be. If the questions to be moved have data and no label, you may attempt the above procedure, but FIXRESUM will probably not be able to recover those suspended interviews.

The following modifications will cause FIXRESUM to be unsuccessful in recovering suspend files in most cases:

  1. Moving the SUSPEND block. It is recommended to always put suspend and resume blocks at the end of a questionnaire and leave them there. Naming the SUSPEND question (i.e., {Suspblock: !SUSPEND}) can help too, so if you add or remove questions before it and then try to resume interviews that were collected before the change, you will eliminate the “Can’t find SUSPEND block” message you would otherwise find (if not labeled, Survent uses an internal QQ number that changes every time you compile.)
  2. Adding, deleting, or modifying LOOP or ROTATE blocks. If an interview is suspended while in a block of questions where the LOOP or ROTATE was added or modified, the suspended interview cannot be recovered. If a LOOP question is dropped, an interview cannot be recovered if the LOOP question had actually been executed prior to the suspend. If the LOOP or ROTATE question was skipped, the suspended interview can be recovered.
  3. Compile and test your new questionnaire. Make certain that your new questionnaire contains the appropriate modifications.
  4. Run FIXRESUM on your suspended interview files. If you have made substantial changes to your questionnaire, you may want to test FIXRESUM on a couple of suspended interviews, before running it on all of them. If FIXRESUM is unsuccessful in resuming, try to determine which modifications are causing the problem, and correct them. Then run FIXRESUM on all your suspended interview files.
  5. Run SUSPRES on any suspended interviews that FIXRESUM could not fix up. SUSPRES will list out all the responses that were in those suspended interviews.
  6. Re-enter the suspended interviews not fixed by FIXRESUM. If you are running without a phone file, just start an interview and enter all the responses from the output from SUSPRES. If you are running with a phone file, you will need to put a PHONE,5 question at the top of the interview to put it in “get specific” mode. Then run FONEUTIL and do the L option with the select of [1087^NB].

This will list out the phone number, suspend record and call back time (if any) of all the suspended interviews. Delete all the suspend records associated with these suspends. Then run Survent and perform a get-specific on the phone numbers of the suspended interviews. You will have to do this twice, because the first time it will give you an error since the suspend record is missing. Be sure to give a callback status so you can get the number again. The second time you get the number, you will want to enter all the responses from the output from SUSPRES and then re-suspend the interview. It is important that you set the call back time correctly if there was one to begin with.

This step is laborious enough that it may be easier to save the old files (questionnaire, phone, and quota), then resume and complete these interviews on the old questionnaire. Start interviewing with your new questionnaire.


SUSPRES is a utility that allows you to examine files containing suspended interviews. It displays the suspend comment, if any, and the number of the question where the interviewer suspended the interview. You may examine a particular suspend file or all of the files for a study. In addition, SUSPRES produces a file (whose name will be: <suspend file name>.SUS in DOS and UNIX, containing all of the responses (including the suspend block) for the suspended interviews. This is useful if a suspend file cannot be resumed and the responses must be re- entered, or you just want to see what responses were entered in a particular suspend file. A suspended interview may not be resumable if changes have been made to a questionnaire (i.e., by removing questions), which alter the data locations assigned to the data file in such a way that the FIXRESUM utility cannot match the suspended interview to the new questionnaire. A TR data file will also be produced, which you can add to existing data.

SUSPRES writes all Suspend records to one file, instead of writing each to a separate file. This means users will no longer have problems reading many files as some operating systems (such as DOS) allow reading a limited number of files.

The name of the file will be the same as the study file (eg. but placed within the ${CFMCRESUME}<study>.r_ directory, for instance, /cfmc/resume/bank.r_/ Be careful that you remember that this is a file of suspended records, NOT the study data file.

Also, Suspres will report on files that are NOT suspend files instead of trying to read and write them.

When running SUSPRES, it will prompt you for a study code and will then look for the resume directory or group. If you have defined the SET CFMCRESUME variable, SUSPRES will look in that directory (DOS/UNIX) for the suspend files for that study.

Under DOS or UNIX, if the variable SET CFMCRESUME has not been defined, then you may only run SUSPRES from the directory which contains the suspend file subdirectory (<studyname>.R_).

After typing the study code you will be prompted to enter either the name of a particular suspend file, ALL to view all suspend files, or QUIT. NOTE: For filename, wild cards * (all), ? (alpha), # (numeric) are allowed.

Suspres v. 7Dec2012(,) ... DOS (C) CfMC 1978 - 2013
Type qfile name-->quik
Enter filename, "all" or Q)uit -->all (or SQUIK* or SQUIK##) (C:\TESTS\quik.r_\SQUIK01.) comment = 'first suspend'
suspend at question #0.60.......
(C:\TESTS\quik.r_\SQUIK02.) comment = 'second suspend' suspend at question #0.50.......

A SUS file is made for each suspend file that SUSPRES opens. The file contains the suspend file comment and the number of the question where the interview was suspended, followed by information about the questions answered.

Question	Question	Data	
label	number	location	Response
SEX	: qq#0.10	[ 5.01]	FLD (f)

The actual response to a TEX type question appears immediately after the TEX question. Each line begins with the greater-than “>“ symbol. NOTE: Unasked TEX questions will have a data location of [ 0.00]. If the questionnaire contains a SUSPEND block, those responses will appear at the end of the SUS file.

Here is a sample SUS file of suspended interview responses:



This program will let you add area codes to an existing zone table file. Since area codes are being added so quickly, users cannot wait for each update to receive a new file. You can add area codes whenever you want. Be careful about adding area codes into the table before the area is activated, or your interviewers will be unable to successfully dial those numbers.

NOTE to predictive/preview/auto dialer users: Make sure that the dialer program has the same area codes added to its database or the dialer may reject these numbers even though CfMC thinks they’re okay.

MAKEZONE will read a spec file that is basically an ASCII version of the zone table. This spec file is the zone source file and is supplied as part of each update. The exact name of the file is operating machine dependent.

/cfmc/survent/zonetabl.src	(UNIX)

To add a new area code into the ZONETABL do the following:

  • Make backup copies of the current ZONETABL and zone source files.
  • Try dialing a couple of the numbers that your current zone table is rejecting and verify that the phone rings. If it does ring, then the area code has been activated. If it doesn’t ring and you get a fast busy signal, then the area code has not been activated and you probably should not add that area code into the zone table.
  • Check the current zone source file to see if the area code exists. If it does not exist, find the area code it split off from, and if it has no exceptions, you can copy that line to the appropriate place for the new area code and change the area code to the new area code.

The current zone source has been updated with comments about area codes that are not currently activated, but are planned to be activated in the near future. Many of these new area codes have test numbers which you can use to see if the area code has been activated. The source file will also have comments in it for when the file was last updated.

If the old area code has exceptions, you cannot update this area code with 100% accuracy. Contact the Support Hotline or check the CfMC bulletin board for information about this area code. CfMC may not have 100% accurate information for some time after the area code is activated. We must rely on our supplier to give us a list of exchanges for the new area code. If you need 100% accuracy and CfMC has not yet received updated information, then your only recourse is to use a Mentor procedure that converts the new area code to the old one. See the file FIXAC^SPX in the Survent directory/group for an example of how to do this.

  • After adding the area code(s) into the zone source file, run MAKEZONE and at the Spec File prompt put in the name of the zone source file. At the List File prompt put in a valid file name to save any error messages. If you get error messages, try to figure out what you did wrong. Most likely you did not supply a proper time zone or daylight savings setting for the area code you added.
  • If MAKEZONE runs successfully, it will create a file called ZONETABL in the local directory/group. You can then use the Mentor spec file ZONE2DOC to convert the Zonetabl back to the source file. Compare the new ZONEDOC file with the zone source file to make sure it contains all your changes.
  • If ZONEDOC has all your proper changes, you can rename the ZONETABL file into the CONTROL directory/group and rename the ZONEDOC file into the Survent directory/group.
  • Use FONEBULD to add some numbers into a dummy phone file.

Make sure you use a cross-section of numbers that contain both new and old area codes, plus some known bad area codes like 999. If this works, everything is okay. If it doesn’t, retrace your steps to see what went wrong.

NOTE: If you are unable to figure out what is wrong, then use your backup of the ZONETABL and contact the Support Hotline for assistance.