| subroutine calls from dictionaries | Index Level | System Administration Tips For D3 |
| Syntax | |
| Category | Article |
| Type | Article |
| Description |
overview of D3, The Update processor, and application prototyping considerations.
Contributed by Jim Jobson (Original article was published in PickWorld under the title, "Why Direct Marketers Choose Advanced Pick: AP's Powerful Data Model, the Update processor and the Ability to Customize are Major Factors") 1. Catalog and Direct Marketing companies have to solve a significant database problem. 2. The Update processor has several qualities which make it more powerful than (Unix) utilities such as vi, including consistency. 3. Terms such as cruising, zooming, double clutching and hot keys are part of an intriguing D3 vernacular. 4. D3 is a database environment containing Fourth Generation tools. 5. Applications development in D3 is fun because it can be accomplished quickly and easily. 6. Increased productivity will prove to be a selling point in the buying decisions of end-users. 7. Sophisticated users who learn the Update processor appreciate the power that they have over their database. The Pick System is well known in many vertical markets but is especially popular in the direct marketing and catalog industries. This article is about why the Pick System, and especially D3 provides the ideal platform for direct marketing, telemarketing, mail order and similar applications. Pick is well suited for many applications outside these arenas; the concepts discussed here will apply to those situations as well. D3 makes sense to direct marketers for many reasons, including the D3 data model and the rapid applications development environment. Direct marketers have a need for Unix, as well, since direct marketers communicate with electronic devices such as automated credit card authorization services, shipping manifest scales and order taking centers that transmit orders via modem lines. Most of Rigden's clients are on Unix/Pick platforms. This is an efficient way to go, since all of the applications available to Unix users are now available to Pick users. For example, users need to transmit and receive credit card authorizations from an outside service. The actual data transmissions and receptions are done more efficiently with Unix. Communications are initiated from Act I (in the D3 environment). The data is exported from D3 to Unix. Once in Unix, an application called MLINK transmits and receives data through the modem line. Eventually the data is imported back to D3 and the Act I database is updated. Having D3 work with Unix is valuable in that D3 works with any hardware platform that Unix works on. Companies such as SCO and AT&T have the resources to port their versions of Unix to all the newest hardware technology. This means that D3 can 'piggy back' to whatever platform makes sense at the time. The end result is that D3 works on the current and fastest machines. It has been estimated that approximately 30 percent of the third party software installations in the catalog industry are running on a Pick System. One reason is that a major strength of Pick is the data management capabilities that are available. Many argue that in this particular aspect, Pick is superior to anything in the market. I feel that this is an accurate perception, but is even more true in D3 than with any of the other versions. Catalog and Direct Marketing companies have to solve a significant data base problem. The direct marketer needs to manage customer, inventory, catalog, pricing, order, financial, list management, sales analysis and many other databases. The customer file alone can be substantial, containing customer inter action and order history, demographics, credit history, segmentation, etc. Another major reason Pick makes sense for direct marketers is that these companies always need a great deal of development. Enhancements are needed for two reasons. First, direct marketing companies are often unique and creative. They need substantial enhancements in order to get started, because the application is expected to fit the users needs rather than the other way around. Direct Marketing is an emerging industry and is becoming more of a force all the time. Ideas, rules, methodologies, laws and philosophies are evolving; software needs to be versatile and evolve with the times. Even smaller direct marketing comanies require initial enhancements and on going programming. These type of companies require a system that lends itself to rapid and cost effective customization. I decided over 4 years ago to build a new direct marketing application (Act I). I chose Advanced Pick as the platform because I saw that two major reasons for Pick's popularity in direct marketing, the inherent database capabilities and built in tools for rapid applications development, are stronger with D3 than with any other platform. The D3 data model is more robust than any other version, including R83. A few subtle features provide new dimensions and make D3 a provocative database tool. In this article I intend to show that D3 makes sense to direct marketers because it addresses their needs in a complete and comprehensive manner. D3 makes sense in many other arenas and the principles described below can be applied to them. Improvements to the Pick Data Model with Advanced Pick As in all versions of Pick, D3 is comprised of files, which are populated by items. The data is described in a dictionary level of the file and natural languages (such as Access) allow the user to manipulate the data. This time proven technology still works wonders, however some additional features greatly enhance an already powerful system. File-defining item extensions There are two types of dictionary items in Pick, attribute-defining items and file-defining items. There is one file-defining item for each data file. The file-defining item has been an integral part of the Pick Data Model from the beginning. On R83 the file-defining item or 'DL' id (for Data Level id) defines the base FID (start ing frame-id for the file), contains the modulo (number of contiguous frames the file was last created with) and allows for file resize definition. These features are still true in D3, but the enhancements allow for data to be updated through the dictionaries (as opposed to FlashBASIC programs). D3 is a complete database environment. Much of the data updating in D3 comes as a result of additional features in the dictionaries and new processing codes. For the first time, updating with Pick comes from dictionary definition and doesn't necessarily require FlashBASIC programming. The file-defining item has several attributes which come into play. The correlative (attribute 8) allows the developer to add processing codes, which will be evoked as the item is filed. While some processing codes are only relevant in the context of the Update processor, others will be evoked regardless of how the item was updated. A FlashBASIC program call can be placed in the correlative. The program will be called when the item is filed and can be used for editing, update historical or other related files, print documents, etc. The macro (attribute 15) contains a default dictionary list consisting of attribute-defining items. This dictionary list will be evoked when the program is updated (from the 'u' or 'update' verb). Sophistication involves the ability to add a multi-valued list of macros which will be evoked in different situations (based on definition from a FlashBASIC program from the input conversion). These 'multiple views' allow the user to see data displayed in different ways for the same data file. The output macro (attribute 16) displays the default dictionary listing when access (sort or list) commands are used. If there is no definition for the output macro, the system will use the macro defining item (attribute 15) to display default access listings. The input-conversion (attribute 14) can call a FlashBASIC program from the Update processor. The program will be called before the item is entered (but after it has be accessed). The description (attribute 17) can be used for online documentation of any file or attribute in D3. The file-defining item is used as a centralized description for the default screen parameters and rules for updating a file. This makes it easy for the developer to program and maintain data files for use in sophisticated applications. Attribute-Defining Extensions Input-conversion : New correlatives are an important part of attribute-defining items and a new dictionary attribute called 'input-conversion' (attribute 14) has been added to the dictionary. The input-conversion is only meaningful in the context of the Update processor, and is used for edit patterns, display only fields, input rules (such as required fields) and to call FlashBASIC programs. A FlashBASIC program call from the input conversion attribute will be evoked as soon as data is entered (into that attribute). New Processing Codes New processing codes and the ability to call FlashBASIC programs (custom processing codes) from dictionaries (both file-defining and attribute-defining items) allow for more functionality with less code than before. A good example is that the bridge correlative (which updates a related file defined by the 'bridge') is evoked any time an item is updated. The bridges and B-trees are maintained by the system regardless of how an item is updated (from FlashBASIC, editor, Update processor, copy, t-load, etc.). Other processing codes that involve updating include time, date, user and seconds stamps and the item-id correlative. Input conversion processing codes include edit pattern (alpha, numeric, hard coded, etc), numeric range, must-input, character update and many others. The B-trees (secondary indexed sort files), can be evoked from the Update processor or FlashBASIC. They allow the user rapid access to the database and are extremely useful in large databases. Even files with several million records can be 'sorted' in a matter of seconds through B-trees. A new feature called 'hot keys' allows the user to call any desired FlashBASIC program from any data element using only a few simple keystrokes. The Update processor : Innovation with Advanced Pick All of the functionality described is connected with proper use by the Update processor. Critics of the Update processor point out that it is not 'pretty' and the scrolling bothers users not yet familiar with this tool. They point out that they can't compete with products built with 'PC Quality' screens, etc. I would like to point out several facts about the Update processor. The Update processor is a new tool to Pick and is the primary user interface for experienced users on D3. It is not, however a panacea, and other techniques, such as the 'ed' (old editor) and FlashBASIC programs still work. The Update processor is not necessarily an end user environment, but consider the functionality of the Update processor and compare it with 'ed'. There is so much more that can be done with the Update processor than with ed, that there is no contest. All of the screen techniques that work with R83 or other versions work with D3, as does all R83 functionality, including procs. Use with 'Traditional' Screens At Rigden we use an attractive state-of-the-art fixed format screen environment called Symbion. This application was created by Colorado developer Gary Huffer (president of Symbion Corporation) and features PC Quality windows (panels), with on line help, popup panels, pull down menus and action bars, full screen editing with function keys, arrow keys and many other user friendly features. Symbion does not generate source code, but paints the panels and runs the application through a set of sophisticated parameter tables. Symbion was developed using FlashBASIC and is portable to all versions of Pick, including D3. Mr Huffer agrees with me, that the B-trees, file-defining item extensions and other features make the D3 data model complete. At Rigden, we develop the Act I application with the Update processor and 'convert' to Symbion only after the database has been established and proven. Symbion works on all versions of Pick, but because of B-trees and new processing codes, it works best with D3. The developer can choose which environment to put end users on, the Update processor or a fancy screen environment such as Symbion. The good news is that both environments work quite well with D3. Update processor as Full Screen Editor The Update processor is a full screen editor with many word processing type functions. Of course there are many full screen editing products and utilities on every operating system. Unix has for example a full screen editor (referred to as 'vi' or Visual Editor'). The vi editor is unique in terms of functionality as is the D3 Update processor. Both tools allow for full screen editing of data, including recall and maintenance of the data. If you think that the Update processor is difficult to learn, then try your hand at vi for comparison purposes. The Update processor has several qualities which make it more powerful than utilities such as vi, including consistency. Most of the functionality of the Update processor works at TCL, document entry, software development (building programs and dictionary items), and data entry with similar functionality. Consistency between environments means that the Update processor has discovered a sense of economy not often achieved by a product of this magnitude. Update processor Full screen editor functionality includes : Cursor movements Adding/editing text Deleting text Exiting and filing items Cut and paste Search and replace Prestore commands Spelling checker Using the Update processor, you can move the cursor to any position on the screen; insert, delete, or replace text; cut and paste; search for and replace text; and undo mistakes. A spelling checker is available to check text as you enter it. The Update processor as a Database Tool The Update processor also operates as a database tool. This is achieved by using the D3 data dictionary structure. Virtually all of the full screen and document entry functions of the Update processor are available when using the Update processor in the database environment arena. The combination of full screen editor and database tool is very powerful as we will see. The ability to define ad hoc data entry routines and to then elegantly peruse the database (with few keystrokes) makes for an extremely useful and provocative applications development and end user environment. Even the terms that have organically arisen from early Advanced Pick users suggest a lively system. Terms such as cruising, zooming, double clutching and hot keys are part of an intriguing D3 vernacular. Rapid Prototying One of the greatest features of D3 and the Update processor is that applications can be prototyped and built much quicker than in other environments. I will attempt to detail the reasons why this is true. The most efficient way to build applications in D3 is by using the Update processor as a prototyping tool. Through skillful use of the Update processor, it is possible to model an application simply by defining the database (creating files and dictionaries). Processing codes and FlashBASIC programs are added to provide extensions to the application. The application is tested (data is entered) by using the Update processor. Since the Update processor is a system utility and one of the many Pick "natural languages," testing can begin immediately upon defining the data base structure. Please note that final polish such as "user friendly" screen environments (such as Symbion) are added on top of the data model, but not until the data relationships have been established and proven. The only way to prove a datastruc ture is by using it (entering data). In D3, applications can be built rapidly, with few keystrokes and with very little actual program (FlashBASIC) source code. It is very simple to build systems in this environment once you have the knowledge. The best way to understand how applications are put together is to build one yourself from scratch. Software development is time consuming and expensive. Generally, developers begin to prototype after needs analysis and system design phases are 'complete'. The system can be developed 'from scratch' (using new code) or by using a Fourth Generation Language, or a combination of coding and 4GL. D3 is a database environment containing Fourth Generation tools. In application development scenarios, the initial prototype (complete with data entry screens and reports) is based on the original system design. Once the prototype phase has been achieved, it is often clear that the design (file structure) was flawed and more programming must be done to correct the faults to meet the original specifications. In most instances, users change their minds and come up with new ideas about the application after considerable programming has occurred. It often takes many attempts at programming and reprogramming before the file structure is stabilized and further stages of development begins. Many companies go broke during this process. D3 contains many advantages for the software developer, especially increased productivity. For the end-user, this fact translates to cost effective development. Let us examine how this works. With D3, the developer can reach the prototype phase in a fraction of the time compared to other techniques. This is achieved by skillfully utilizing the Update processor, processing codes such as the bridge correlative, B-trees, FlashBASIC calls from dictionaries and other functions. Prototyping may be defined as the development of a database as the first step towards building a complete application. The developer can 'finish' the application with additional sophistication and end-user interfaces (such as screens, windows, menus etc.). The reason that prototyping is so rapid in D3 is that it only takes a few minutes to create files and dictionaries. Once that is done, it is possible to immediately enter data and test the design. If the file structure is faulty or the developer wishes to experiment with alternative structures, it is possible to reconfigure the database by changing or adding to the dictionaries. Many alternative database configurations can be tested in a short amount of time. In D3 there is less need for programs and program code, resulting in less source code than other environments. The cost of maintenance increases in direct relationship to the amount of source code generated. Much of the 'programming' in the Pick environment has been replaced or simplified with powerful processing codes, invoking operations at the dictionary level, which enables the FlashBASIC routines to be smaller and more powerful. The main point is that the developer can quickly build database and update environments without coding. This means that testing can occur almost immediately. Once the database is firmly established, the developer can focus on finishing the application by putting in user-specific functionality. Applications development in D3 is fun because it can be accomplished quickly and easily. Productivity is an extremely important factor in direct marketing, but also in any other business arenas. Since software develop ment has always been a costly proposition, increased productivity will prove to be a selling point in the buying decisions of end-users. End Userablity of the Update processor As I have pointed out, fancy screen environments are available on D3 and the end user doesn't necessarily have to use the Update Proces sor. Beginning users are often intimidated by the wealth of functionality and control key sequences of UP. Let's look further at this issue, however. The Update processor is functionally very powerful and should definitely be considered as an end user environment with some, though not necessarily all situations. At Rigden, we have successfully installed many companies who use the Update processor as the only screen environment and end user interface. We have proven that data entry screens (such as order entry) take only a few hours of training and practice before the user has mastered all that is needed. Sophisticated users who learn the Update processor appreciate the power that they have over their database. I know many users who prefer the Update processor as a screen environment. Admittedly, it took a little getting used to, but once done they have no interest in going back to fixed format screens or whatever they used previous ly. System Features The D3 data model, Update processor and ability to develop applications quickly, are certainly highlights of D3. The complete environment needs to be considered in order to fully appreciate this system. The following features are all significant factors in terms of increased productivity, and also a fun and easy environment to develop in. There are several features of D3 that once one understands how to benefit from the features, it is difficult to go back (to whatever else was used before). These features are important to developers because the environment lends itself to higher productivity. It is meaningful to end users because faster programming results in cost effective customization. One of the most important features is that D3 works with Unix. This means that D3 can work on any environment that Unix works with. The end result is that D3, partly due to hardware environments, is much faster than anything previously available. To log onto D3, first logon as a 'user' and then to an 'account'. This is a beneficial feature, known as the double logon. The user logon features the ability to evoke any verb, macro or FlashBASIC program. This means that it is relatively easy to impose sophisticated security software, since the system access by a user can be controlled by a FlashBASIC program. The user logon has other implications, most notably, that each file can be stamped with the users logon id. This is valuable in security and other functions such as operator productivity reports. The best thing here is that the developer can define 'user stamps' on any file(s) with a processing code (correlative). Once logged on to the system, there are other prominent features. The first thing to notice is that D3 is case insensitive. This means that the user can type in lower or upper case and the system will recognize the commands. This is definitely a big deal. In every other version of Pick or Pick-like products that I have encountered, upper case is dominent throughout the system. If you don't think this is a big deal, try D3 for several days, typing only in lower case. You will be surprised how easy it is to convert and then how difficult it is to go back to UPPER CASE ONLY. What a drag. If you insist on upper case only, no problem. D3 has a verb 'case-on' that will allow the system to be case sensitive. There is a database for the users (see 'users' file on account 'dm'). This points to another great feature of D3, which is that most of the system functions are easily accessed in a database. For example, each user has their own unique 'TCL stack' item stored in the 'tcl-stack' file which brings us to the next valuable function, TCL. D3 TCL contains the ability to easily recall the last TCL command. Using the D3 full screen editor (Update processor), it is easy to search for, recall, modify and execute any TCL command. The TCL item can be deleted or cleared out at any time, at the discretion of the user. I find that an ongoing record of TCL commands is a valuable and time saving development tool. Since the TCL stack is an item in a file, it is easy for the developer to utilize any desired functionality (such as the '.' versions of TCL stack). D3 contains many time saving productivity tools. These features include limitless item size, direct pathing (replacing need for Q-pointers), level pushing, shorter and easier syntax ('save-list' and 'get-list' are also 'gl' and 'sl'), and an easy-to-use phantom processor. There are many other features of D3, which make it useful such as the Output processor. New extensions to FlashBASIC make it a more useful language. I appreciate the 'file' statement which opens and dimensions the file based on dictionary definition. Now even FlashBASIC uses the dictionaries to the fullest, making D3 a complete database tool. The root and key statements allow easy access to B-trees from within FlashBASIC. As with the rest of D3, a much easier syntax is available in FlashBASIC than in other versions of Pick. Examples are the 'file' command, 'exit' command and simpler 'if' sentence syntax. In this article, I have attempted to show why D3 makes sense for direct marketers and other business applications as well. D3 has powerful database and applications generator features, both of which are impor tant to direct marketers. The speed of the newest hardware platforms functioning with Unix provides D3 users with all the functionality from Pick, Unix and DOS applications (DOS can be run under Unix). All of these features make sense for many vertical and horizontal markets in addition to direct marketing. Rigden developed Act I using the latest tools contained in D3. |
| Options | |
| See Also | |
| Example | |
| Warnings | |
| Compatibility | D3 7.0 AP |
| subroutine calls from dictionaries | Index Level | System Administration Tips For D3 |