Extension nodes provide a mechanism for extending the functionality of a SAS Enterprise Miner installation. Extension nodes can be developed to perform any essential data mining activity (that is, sample, explore, modify, model, or assess [SEMMA]). Although the Enterprise Miner nodes that are distributed by SAS are typically designed to satisfy the needs of a diverse audience, extension nodes provide a means to develop custom solutions.
Developing an extension node is conceptually simple.
An extension node consists of the following:
  • one or more SAS source code files stored in a SAS library or in external files that are accessible by the Enterprise Miner server
  • an XML file defining the properties of the node
  • two graphic images stored as .gif files.
When properly developed and deployed, an extension node integrates into the Enterprise Miner workspace so that, from the perspective of the end user, it is indistinguishable from any other node in Enterprise Miner. From a developer's perspective, the only difference is the storage location of the files that define an extension node's functionality and appearance. Any valid SAS language program statement can be used in the source code for an extension node, so an extension node's functionality is virtually unlimited.
Although the anatomy of an extension node is fairly simple, the fact that an extension node must function within an Enterprise Miner process flow diagram requires special consideration. An extension node's functionality typically allows for the possibility that the process flow diagram contains predecessor nodes and successor nodes. As a result, your extension node typically includes code designed to capture and process information from predecessor nodes, and to prepare results to pass on to successor nodes.
Also, the extension node deployment process involves stopping and restarting the Enterprise Miner server. Because software development is inherently an iterative process, these features introduce obstacles to development not typically encountered in other environments.
Fortunately, a solution is readily available: the Enterprise Miner SAS Code node. The SAS Code node provides an ideal environment in which to develop and test your code. You can place a SAS Code node anywhere in a process flow diagram. Using the SAS Code node's Code Editor, you can edit and submit code interactively while viewing the SAS log and output listings. You can run the process flow diagram path up to and including the SAS Code node and view the Results window without closing the programming interface. Predefined macros and macro variables are readily available to provide easy access to information from predecessor nodes. There are also predefined utility macros that can assist you in generating output for your extension node. In short, you can develop and test your code using a SAS Code node without ever having to actually deploy your extension node.
After you have determined that your server code is robust, you will need to develop and test the XML properties file. The XML properties file is used to populate the extension node's Properties panel, which enables users to set program options for the node's SAS program.