SQABasic "CustomDriverCommands" Library

 MODULE DESCRIPTION:

      Used to implement custom driver commands that should not or cannot become
      part of the core DDE.  A driver command is a record whose first field
      (field #1) has a record type or value of "C". The second field (field #2)
      in such a record would then be the actual driver command.

      The DDE will first try to match the driver command (field #2) to core
      DDE driver commands.  If no match is found, the DDE routes the
      record to this library to see if the user has implemented a matching
      custom driver command.

      The call to CustomDDEDriverCommand comes from the
      DDDriverCommands library.

      The developer can implement their routines in this file, or any number
      of SBL files.  Note, however, that the namespace for public routines and
      other public items is shared with the Core DDE.  So you cannot
      duplicate the name of any public item or routine in your custom libraries.


Declarations Constants Global Variables User-Defined Types Routine Details

User Dependencies:

(stuff the developer's library/script $INCLUDES at compile time.)
(Note: The order of items may matter and may be different for your code.)

Internal Dependencies:

(stuff this library needs at compile time.)

Exported Declarations

Function CustomDDEDriverCommand  BasicLib CustomDriverCommands 

Constants



    (none)

Globals


    (none)

User-Defined Types



    (none)

Routine Details



  Sub CDCSampleKeyword(DriverCommand As String, guiInfo As AUGUIInfo, statusInfo As AUStatusInfo)

 DESCRIPTION:

      This simply shows an example of how a sample driver command can be
      implemented and documented.

         COMMAND         Fld# PARAMETER
      ==============      ====================================================
      SampleKeyword       3 - AParameter string.


 ERRORS:

      (none)  (List/Describe ERRORS "thrown" by this routine.)

 Orig Author: Carl Nagle
 Orig   Date: JAN 31, 2002
 History:

      JAN 31, 2002    Original Release




  Function CustomDDEDriverCommand (DriverCommand As String,
                                   guiInfo As AUGUIInfo,
                                   statusInfo As AUStatusInfo) As Integer

 DESCRIPTION:

      This function allows the custom implementation and extension of the
      core DDE.  This routine will be called if the record extracted from
      the current test table is a Command Record (field #1="C") and the
      value of field #2--the Driver Command--does not match any of the
      driver commands in the core DDE.

      The format of the record is expected to match that for all records
      processed by the core Drivers.  Minimally, that means the record is
      a collection of fields delimited by some character--like commas or TABS.

      The first field will have already been parsed and routed as a Command
      Record ("C").

      The second field will have already been routed through the DDDriverCommands
      routine and no match to core DDE Driver Commands will have occurred.

      The remaining fields can contain anything.  The routines that
      parse the remainder of the record will determine what each subsequent
      field in the record contains.  So, those remaining fields can be
      whatever you need them to be.

      Note, however, that the entire record will have already received
      processing of DDVariables.  That is, each field in the record will
      have already had all expressions converted to their final values.
      All DDVariables would have already had their values assigned and/or
      extracted.

      This routine is called from the DDDriverCommands library.

 PARAMETERS:

      DriverCommand   PreParsed DriverCommand (field #2) from the record.
      AUGUIInfo       from the calling Driver (Cycle, Suite, or Step)
      AUStatusInfo    from the calling Driver (Cycle, Suite, or Step)
                      (See ApplicationUtilities User-Defined Types for
                      the information available to you for the record
                      being processed.)

 RETURNS:

      Returns DDU_SCRIPT_NOT_EXECUTED if no appropriate match is found.
      This custom processing should return the following values:

            INCREMENTS *GENERAL* STATUS COUNTERS AUTOMATICALLY--BUT NOT TEST PASS/FAIL COUNTERS
            ===================================================================================
            DDU_NO_SCRIPT_FAILURE       = -1      'we DID process the record (failures may have been logged)
            DDU_SCRIPT_WARNING          = -2      'a process failure OR unrecognized command
            DDU_GENERAL_SCRIPT_FAILURE  = 0       'a general failure in the command handling
            DDU_INVALID_FILE_IO         = 2       'an IO failure in command handling

            DOES NOT INCREMENT ANY STATUS COUNTERS AUTOMATICALLY
            =======================================================================
            DDU_SCRIPT_NOT_EXECUTED     = 4       'generally means noone tried to process the record
            DDU_EXIT_TABLE_COMMAND      = 8       'force immediate exit of current test table
            DDU_IGNORE_RETURN_CODE      = 16      'drivers ignore this one

      The routines for incrementing counters can be found in the ApplicationUtilities library.

 ERRORS:

      (none)  (List/Describe ERRORS "thrown" by this routine.)

 Orig Author: Carl Nagle
 Orig   Date: JAN 31, 2002
 History:

      JAN 31, 2002    Original Release


Copyright (C) SAS Institute
GNU General Public License: http://www.opensource.org/licenses/gpl-license.php 
==============================================================================