Data Management Library Tandem DDE Gateway User’s Guide Abstract This manual for applications programmers describes the Tandem DDE Gateway: its configuration, its operation, and how to develop a client application. Part Number 110838 Edition Second Published Product Version Release ID Supported Releases January 1995 Tandem DDE Gateway D30 D30.00 This manual supports D30 and all subsequent releases until otherwise indicated in a new edition.
Document History Edition Part Number Product Version Earliest Supported Release Published First 092229 C30.09 March 1993 Second 110838 Tandem DDE Gateway C30 Tandem DDE Gateway D30 D30.00 January 1995 New editions incorporate any updates issued since the previous edition. A plus sign (+) after a release ID indicates that this manual describes function added to the base release, either by an interim product modification (IPM) or by a new product version on a .99 site update tape (SUT).
New and Changed Information New Features and The Tandem DDE Gateway User’s Guide includes the following new features and Changed Information changed information: Section New and Changed Information Section 2 The [ApplicationDdeDicts] section has been added to the Gateway Configuration File. There are three new options for the Gateway Configuration File: ClientResponseDdeTimeout, NumberOfUmsSessions and UmsPollingInterval.
New and Changed Information New Features and Information (This page left intentionally blank) iv 110838
Contents New and Changed Information About This Manual ix Notation Conventions Section 1 iii xi Introduction to the Tandem DDE Gateway Features 1-2 Dynamic Data Exchange (DDE) 1-6 Client Programming 1-8 Tandem Server Communication Model 1-8 Tandem DDE Gateway Communication Approaches Element-by-Element Approach 1-9 Binary-Pass-Through Approach 1-11 Client Programming Considerations 1-13 Section 2 1-9 Workstation Configuration Windows Configuration File [Tdmgw] Section 2-3 2-3 Gateway Configur
Contents Section 4 Creating Client Applications Example Application 4-1 DDE Functions 4-4 DDE Initiate Function 4-4 DDE Terminate Function 4-5 DDE Execute Function 4-5 DDE Poke Function 4-7 DDE Request Function 4-9 Example Client Application DDE Function Calls Error Handling 4-12 Logging 4-13 Tandem DDE Gateway Failures 4-11 4-14 The Tandem DDE Gateway Browser 4-14 Running the Browser 4-14 Configuring the Browser 4-16 Application Design Considerations 4-17 Tandem Transaction Monitoring Facility (TMF)
Contents Section 5 The Tandem DDE Gateway Bridge Program, continued Running the Bridge Program 5-4 FastSort Program 5-5 Tandem DDE Gateway Dictionary Report 5-6 Merging Message Definitions from Many DDL Dictionaries Section 6 5-7 Data Conversion Automatic Data Conversion 6-1 Data Conversion Library 6-3 TdmgwConvCfTextToTdmAlphaNum 6-4 TdmgwConvCfTextToTdmDispNum 6-5 TdmgwConvCfTextToTdmTwosComp 6-6 TdmgwConvTdmAlphaNumToCfText 6-7 TdmgwConvTdmDispNumToCfText 6-7 TdmgwConvTdmTwosCompToCfText 6-8 Sect
Contents Section 8 Extending the Tandem DDE Gateway, continued User Hook Library TdmgwHookDdeRequestPostConvert 8-10 TdmgwHookEnableUserHooks 8-12 TdmgwHookGetRequestDdeSize 8-12 TdmgwHookIsConvSupported 8-13 TdmgwHookPostReplyMessage 8-15 TdmgwHookPreSendMessage 8-15 Tandem DDE Gateway Dictionary Structure 8-17 tagDdeDictHeader Structure 8-18 tagDdeDictElementData Structure 8-18 Section 9 Index Figures Troubleshooting Index–1 Figure 1-1. Tandem DDE Gateway Component Figure 1-2.
About This Manual This manual describes the Tandem DDE (Dynamic Data Exchange) Gateway. The Tandem DDE Gateway allows applications based on Microsoft Windows software to use the DDE protocol to communicate with Tandem Pathway server classes and Guardian processes through Remote Server Call (RSC). Tandem DDE Gateway The Tandem DDE Gateway requires only one other Tandem product, Remote Server and Related Products Call (RSC).
About This Manual Manual Organization Credits Your Comments Invited x This manual consists of the following sections and appendixes: Section Contents 1 2 3 4 5 6 7 8 9 Index Describes the Tandem DDE Gateway functions and architecture. Describes the Tandem DDE Gateway workstation configuration files. Describes how to run the Tandem DDE Gateway. Describes how to create client applications that use the Gateway. Describes how to use the Tandem DDE Gateway Bridge program. Describes data conversion.
Notation Conventions General Syntax Notation UPPERCASE LETTERS The following list summarizes the notation conventions for syntax presentation in this manual. Uppercase letters indicate keywords and reserved words; enter these items exactly as shown. Items not enclosed in brackets are required. For example: MAXATTACH lowercase italic letters Lowercase italic letters indicate variable items that you supply. Items not enclosed in brackets are required.
Notation Conventions General Syntax Notation Ellipsis ... An ellipsis immediately following a pair of brackets or braces indicates that you can repeat the enclosed sequence of syntax items any number of times. For example: M address-1 [ , new-value ]... [ - ] {0|1|2|3|4|5|6|7|8|9}... An ellipsis immediately following a single syntax item indicates that you can repeat that syntax item any number of times. For example: "s-char...
1 Introduction to the Tandem DDE Gateway The Tandem DDE (Dynamic Data Exchange) Gateway allows Windows applications to use the DDE protocol to communicate with Tandem Pathway server classes and Guardian processes through the Tandem Remote Server Call (RSC). Figure 1-1 shows the DDE environment. Figure 1-1.
Introduction to the Tandem DDE Gateway Features Client applications that use the Tandem DDE Gateway do not need to refer to Pathway server class names, Guardian process names, or Expand node names. The client application refers just to a transaction type and an application, and the Tandem DDE Gateway uses configuration information to access the appropriate resources on the Tandem through the configured communication path.
Introduction to the Tandem DDE Gateway Features You can drive the DDE protocol from your client application in a number of ways, depending on the capabilities of the client tools you choose to use and the needs of your application. You can use the special verbs built into many client tools to drive the DDE protocol. These are very convenient because they often include automatic error handling and other ease-of-use features.
Introduction to the Tandem DDE Gateway Features Figure 1-2. Automatic Message Layout and Data Conversion Tandem System Windows Workstation DDL Dictionary (Message Layouts) Client Application Tandem DDE Gateway Tandem DDE Gateway Dictionary Tandem DDE Gateway Bridge Program Download Tandem DDE Gateway Dictionary 002 You enter the message layouts for the Tandem servers that will be used by your client application into a Tandem Data Definition Language (DDL) dictionary.
Introduction to the Tandem DDE Gateway Features The Tandem DDE Gateway supports DDE hot and warm data links. These links allow the Tandem system to send data automatically to your client application. Client applications that require feeds of continuously changing information, alerts, or measurements such as investment trading, process control, computer performance management, and computer operations management will benefit.
Introduction to the Tandem DDE Gateway Dynamic Data Exchange (DDE) 2. Call DdeClientTransaction with the XTYP_ADVSTART transaction type. (DDE hot and warm links are also known as ADVISE links.) The DDE Management Library callback routine will be called with the XTYP_ADVDATA transaction type whenever a message is sent by the Tandem application. 3. Call DdeGetData to retrieve the data from buffers within the DDE Management Library. Microsoft Word for Windows 2.0 1. Execute Word for Windows. 2.
Introduction to the Tandem DDE Gateway Dynamic Data Exchange (DDE) Figure 1-3. DDE Client-Server Interaction Initiate (Application, Topic) DDE Client Ack ("I can help with that topic") Poke (One named item, format, value) DDE Server Ack ("Thanks") Execute (Command (Parameters)) Ack ("Done") Request (One named item, format) Data value Terminate Terminate ("You're forgotten") 003 DDE always takes place between two Windows applications: a DDE client application and a DDE server application.
Introduction to the Tandem DDE Gateway Client Programming one, column one of a spreadsheet”) and its clipboard format must be identified. The DDE server can then process the data item and return an acknowledgment to the DDE client. A DDE client can ask the DDE server to perform some processing by using the DDE Execute function. The DDE client sends a command and parameters that will be understood by the DDE server (such as “save the spreadsheet”).
Introduction to the Tandem DDE Gateway Client Programming PROCEDURE DIVISION. BEGIN-TRANSACTION. (not really needed for this read-only transaction) SEND READ-REQUEST-MESSAGE TO EMPLOYEE-SERVER REPLY CODE 1 999 YIELDS READ-REPLY-MESSAGE. IF REPLY-CODE = 1 END-TRANSACTION ELSE ABORT-TRANSACTION. Tandem DDE Gateway Communication Approaches The SCOBOL SEND verb sends a message containing one binary number (EMPLOYEE-NUMBER) to a Pathway server called EMPLOYEE-SERVER.
Introduction to the Tandem DDE Gateway Client Programming the Bridge program. You can configure a memory cache on the workstation for the data dictionary to ensure good performance. Element-by-Element DDE Communication To explain the element-by-element approach, the client application steps necessary to perform the transaction to retrieve employee data (described above in SCOBOL) are shown in Figure 1-4. Figure 1-4.
Introduction to the Tandem DDE Gateway Client Programming The employee number sent with the DDE Poke function is supplied in CF_TEXT format. The Tandem DDE Gateway, using the workstation-based DDE Gateway Dictionary (created by the Bridge program), performs the necessary data conversion and places the data item at the correct offset in a buffer. Note that you do not need to define a message layout or perform data conversions in the client application.
Introduction to the Tandem DDE Gateway Client Programming Binary-Pass-Through DDE Communication To explain the binary-pass-through approach, the steps that the client application must perform to retrieve employee data (as described above in SCOBOL) are shown in Figure 1-5. Use client code to define both the READ-REQUEST-MESSAGE and the READ-REPLYMESSAGE structures.
Introduction to the Tandem DDE Gateway Client Programming 3. Use the DDE Execute function to tell the Tandem DDE Gateway to start a Tandem Transaction Monitoring Facility (TMF) transaction. Use the command [BEGINTRANSACTION]. (This step is not really needed for this read-only transaction; it is used only to illustrate the procedure.) 4. Use the DDE Poke function to pass the data in the READ-REQUEST-MESSAGE structure to the Tandem DDE Gateway.
Introduction to the Tandem DDE Gateway Client Programming Tools and languages that support calls to Windows DLLs can call the Microsoft DDE Management Library (DDEML) to communicate with the Tandem DDE Gateway. For a full description of the Microsoft DDE Management Library, see the manuals provided with your Windows C language development environment. Alternatively, you can order the Microsoft Windows 3.1 Programmer's Reference Library from Microsoft Press.
Introduction to the Tandem DDE Gateway Client Programming Table 1-1.
Introduction to the Tandem DDE Gateway Client Programming (This page left intentionally blank) 1–16 110838 Tandem Computers Incorporated
2 Workstation Configuration You must configure the Tandem DDE Gateway before you use it to access the Tandem system. The Tandem DDE Gateway views the environment in which it operates as a set of “objects” of various categories. You can name the following categories of Tandem DDE Gateway objects and assign them attributes with configuration files (“INI” files) on the workstation: ApplicationName objects represent the client application’s view of the application environment.
Workstation Configuration Figure 2-1. Workstation Configuration Files Client Application [INITIALIZESERVICE(READ-EMPLOYEE, PAYROLL)] ..... [INITIALIZESERVICE(ORDER-STOCK)] ..... Client Application ServiceName Objects Tandem DDE Gateway READ-EMPLOYEE ORDER-STOCK ApplicationName Objects ApplicationName PortName Pathway PAYROLL PORT2 \ATHENS.
Workstation Configuration Windows Configuration File Windows initialization (INI) files, such as WIN.INI or TDMGW.INI, are structured as in the following example: [SectionName1] Keyword1=string Keyword2=string ; Comment line beginning with a semicolon ..... [SectionName2] Keyword1=string ..... Configuration options are grouped into sections, identified by the square brackets.
Workstation Configuration Gateway Configuration File The Tandem DDE Gateway looks for an initialization file named GATEWAY.INI in the TDMGW directory. Gateway Configuration File You can specify the name and location of the Tandem DDE Gateway initialization file in the [Tdmgw] section of the Windows initialization file (WIN.INI) as described in the preceding section. Otherwise, the Tandem DDE Gateway program (TDMGW.EXE) will look for a TDMGW.
Workstation Configuration Gateway Configuration File Each of these entries is described in detail in the following paragraphs. DdeDict If you intend to use the element-by-element approach, this entry should contain the file name of the Tandem DDE Gateway Dictionary created by the Bridge program on the Tandem system and downloaded to the workstation.
Workstation Configuration Gateway Configuration File Default The default value is 500. Each cache entry requires about 140 bytes of memory. Example ElementCacheEntries=123 Try starting with zero and check out your client application’s performance— other workstation disk caches (such as the Windows SMARTDRV program) might provide adequate performance by themselves. Then, as necessary, increase ElementCacheEntries.
Workstation Configuration Gateway Configuration File Default If the ServiceMapSection option is not specified, then the Tandem DDE Gateway looks for a section labeled ServiceMap. If this section is not found, the Tandem DDE Gateway will not start.
Workstation Configuration Gateway Configuration File [ApplicationDdeDicts] Section This optional section of the configuration file is used to associate application names with Tandem DDE Gateway dictionaries. Dictionaries are needed by client applications that use the element-by-element DDE Poke and DDE Request functions.
Workstation Configuration Gateway Configuration File characters starting with a letter for this configuration option. You can enter up to 64 ApplicationName objects in this section. PortName Enter the PortName, as configured in the [Ports] section, through which the application can be accessed. You can use up to 30 alphanumeric and hyphen characters starting with a letter for this configuration option. A maximum of 16 PortNames can be configured in the [Ports] section.
Workstation Configuration Gateway Configuration File Default If no ApplicationName option is specified in the [ApplicationHost Environments] section to correspond to an ApplicationName specified in the [Application Ports] section, then an ApplicationHostEnvironmentName of DEFAULT is used. If the ApplicationHostEnvironmentName value is omitted, DEFAULT is used, which causes the RSC options for the PortName associated with the ApplicationName to be used.
Workstation Configuration Gateway Configuration File If you do not name a PortConfigurationFile and a PortConfigurationSection for a PortName object, then the default attributes for the port will be picked up from the file and section with the default names, as described below. Note In the current release the defaults RSCSHELL.DLL and TDMCVMAP.DLL are used for the CommunicationsLibrary and DataConversionMappingLibrary options.
Workstation Configuration PortName Object Configuration Default The default is the name of the PortName object you are configuring. CommunicationsLibrary Enter that name of the communications DLL provided with the Tandem DDE Gateway. This must be RSCSHELL.DLL in the current release. Default The default value is RSCSHELL.DLL, so it is not necessary to specify this value in this release. DataConversionMappingLibrary Enter the name of the data conversion related DLL provided with the Tandem DDE Gateway.
Workstation Configuration PortName Object Configuration UseRscSecurity RscIniFile RscIniSection Each of these attributes is explained in detail in the following paragraphs. Example [ATHENS-CONFIG] PollingInterval=200 NumberOfInterprocessSessions=3 NumberOfIdsSessions=1 UseRscSecurity=1 RscIniFile=C:\COMM\RSCLAN.
Workstation Configuration PortName Object Configuration NumberOfInterprocessSessions You configure each PortName object (port) with one or two pools of RSC data communications sessions. You can configure one pool of RSC interprocess sessions that you can use to communicate directly with Pathway server classes or Guardian processes.
Workstation Configuration PortName Object Configuration The SessionType attribute that you specify for a ServiceName object indicates whether the transaction type defined by the ServiceName will use a session from the interprocess session pool or the IDS session pool. You will need as many RSC sessions in an IDS session pool as there might be concurrent DDE conversations (tied to RSC IDS sessions) with the Tandem DDE Gateway from your client application.
Workstation Configuration [AutomaticStartup] Section Example UseRscSecurity=1 (Prompt for a User ID and password.) RscIniFile Enter the name of the file containing the RSC configuration options. These options are described in the RSC documentation listed in the preface. Default RscIniFile=RSC.INI If only a file name and extension (no directory) is specified, then the following search path is used: The current directory in effect when the Tandem DDE Gateway was started.
Workstation Configuration Example Gateway Configuration Files You can specify the AutomaticStartupOption attribute for each PortName object defined in the [Ports] section using the following syntax: PortName=AutomaticStartupOption PortName You must have declared this PortName in the [Ports] section (or it can be the automatically defined DEFAULT PortName).
Workstation Configuration Example Gateway Configuration Files Workstation That Accesses Two Applications Through a Single Connection One file called TDMGW.INI is needed in the current directory in effect when you start the Tandem DDE Gateway. This file contains the following configuration options: [Configuration] DdeDict=C:\SUBDIR\DDEDICT.DIC ElementCacheEntries=200 ServiceMapFile=C:\SUBDIR\SERVICE.INI ServiceMapSection=SERVICEMAP DdeGatewayTextFile=C:\SUBDIR\GERMAN.
Workstation Configuration Service Map Configuration File MOSCOW-PORT=, MOSCOW-CONFIG [ATHENS-CONFIG] PollingInterval=200 NumberOfInterprocessSessions=2 RscIniFile=C:\COMM\RSC.INI RscIniSection=NETBIOS [MOSCOW-CONFIG] PollingInterval=500 NumberOfInterprocessSessions=1 RscIniFile=C:\COMM\RSC.
Workstation Configuration Service Map Configuration File On the Tandem system, create an Enform report that reads the Data Definition Language (DDL) Dictionary containing your message definitions. Review the Data Definition Language (DDL) Reference Manual for details on how to do this.
Workstation Configuration Service Map Configuration File SessionTypeFlag This flag indicates the type of RSC session over which this transaction type is processed. The session types available for RSC are: 0=Interprocess session type (this is the default value) 1=Intelligent Device Support (IDS) session type To use either session type, you must define a session pool by using the NumberOfInterprocessSessions or NumberOfIdsSessions options when you configure PortName objects.
Workstation Configuration Startup by Client Application Example [ServiceMap] READ-EMPLOYEE=EMPLOYEE-SERVER,42,,128 UPDATE-EMPLOYEE=EMPLOYEE-SERVER,145,100,28,1 LOG-UPDATE=\BERLIN.$LOG,120 Startup by Client Application You can explicitly start the Tandem DDE Gateway for your client application. Also, many client applications such as Microsoft Excel will automatically prompt you for startup of a DDE server if the server is not already executing on the workstation.
Workstation Configuration Error Text Overrides File Error Text You can override error message text returned by the Tandem DDE Gateway to make Overrides File messages more specific to your client application or to translate the messages into nonEnglish languages. You must identify the name of the error text overrides file using the DdeGatewayTextFile option of the [Configuration] section in the Tandem DDE Gateway configuration file (TMDGW.INI).
Workstation Configuration Error Text Overrides File (This page left intentionally blank) 2–24 110838 Tandem Computers Incorporated
3 Running the Tandem DDE Gateway You must start the Tandem DDE Gateway before your client program can use DDE to communicate with it. You can start the Tandem DDE Gateway from the Windows Program Manager, the Windows File Manager, or your own client application. If you have not specified the TdmgwConfigurationFile option in the WIN.INI file, you must ensure that the current disk directory is set to the directory containing the TDMGW.INI file before starting the Tandem DDE Gateway.
Running the Tandem DDE Gateway Connecting and Disconnecting Ports (To connect more than one selected PortName object, press the control key while you click additional PortName objects, release the control key, and click Connect.) If a PortName object appears not to be connected to your client application, but still does not appear in the Connect dialog PortName object list box, there may have been a data communications error.
Running the Tandem DDE Gateway Reading and Clearing Error Messages Reading and Clearing When the Tandem DDE Gateway encounters an error, an error message is displayed. Error Messages 011 If the Tandem DDE Gateway is iconized when an error occurs, then the workstation will beep and the Tandem DDE Gateway icon will flash. The error message will be automatically cleared when your client application successfully starts its next DDE conversation.
Running the Tandem DDE Gateway Reading and Clearing Error Messages (This page left intentionally blank) 3–4 110838 Tandem Computers Incorporated
4 Creating Client Applications This section describes the DDE functions that you use in your client application to communicate with the Tandem DDE Gateway, error handling, using the Browser program to speed client application development, and client application design considerations. You should follow these steps when creating a client application that uses the Tandem DDE Gateway: 1. Review this manual thoroughly. 2. Install and configure Remote Server Call (RSC). 3.
Creating Client Applications Example Application An example User Hook Library implementing a new data conversion and a supplemental data conversion. Example client applications using a number of different tools and DDE communication approaches. The client applications access the Pathway server through the Tandem DDE Gateway.
Creating Client Applications Example Application Figure 4-1.
Creating Client Applications DDE Functions DDE Functions You can use five different DDE functions to communicate with the Tandem DDE Gateway from your client application, including the following: DDE Initiate, which starts a DDE conversation. DDE Terminate, which ends a DDE conversation. DDE Execute, which causes the Tandem DDE Gateway to execute the provided command. This command, for example, could start a TMF (Transaction Monitoring Facility) transaction or send a message to a Tandem server.
Creating Client Applications DDE Functions be no lengthy user dialogs (such as input of data) within the DDE conversation. TMF transactions must be wholly contained within one DDE conversation. DDE Terminate Function The DDE Terminate function is used to end a DDE conversation. If you began a Tandem TMF transaction in a DDE conversation, but you did not end or abort it, then the TMF transaction will be automatically aborted by the DDE Terminate function.
Creating Client Applications DDE Functions are initialized to binary zeros. The first INITIALIZESERVICE command of a DDE conversation allocates data communications resources for use by the current DDE conversation. Configure the ServiceName specified as the first parameter of the INITIALIZESERVICE command as a ServiceName object. Configure the ApplicationName specified as the second parameter of the INITIALIZESERVICE command as an ApplicationName object.
Creating Client Applications DDE Functions BEGINTRANSACTION Command The BEGINTRANSACTION command is used to begin a TMF transaction on the Tandem system. Example [BEGINTRANSACTION] ENDTRANSACTION Command The ENDTRANSACTION command is used to end a TMF transaction on the Tandem system. Example [ENDTRANSACTION] ABORTTRANSACTION Command The ABORTTRANSACTION command is used to abort a TMF transaction on the Tandem system.
Creating Client Applications DDE Functions output by the Bridge. (The Browser also allows you to use “cut and paste” to transfer the DataElementName into your client application.) You can subscript the DataElementName parameter with up to seven (7) subscripts (starting at 1) if the data element is defined in the Tandem DDL as being in a table. The Tandem DDE Gateway does no subscript limit checking (except to ensure that a buffer is not overrun).
Creating Client Applications DDE Functions If the DataElementValue is too large or too long to fit in its intended place in the message, then it will lose trailing characters (if alphanumeric) or leading digits (if numeric). Examples: POKE POKE POKE POKE POKE Note ("READ-REQUEST.EMPNUM", "23") ("MONTHLY-COUNT(12,2)", "-47") ("UPDATE-REQUEST.SALARY", "12939.93") ("UPDATE-REQUEST.FIRST-NAME", "ROGER") ("UPDATE-REQUEST.COMMENT-FIELD", "") The examples above all use literals for the DataElementValue.
Creating Client Applications DDE Functions Element-by-Element Approach To use the element-by-element approach, the DataElementName parameter is set to a data element name from the Tandem DDE Gateway Data Dictionary you created with the Bridge program. The data element name uniquely identifies a data item by using all the levels in the data naming hierarchy for the message (such as READREPLY.EMPLOYEE-TABLE.FIRST-NAME).
Creating Client Applications Example Client Application DDE Function Calls Numeric data elements are returned as text strings with a leading sign (if negative), an embedded decimal point (if there are decimal places), no leading zeros, and no insignificant trailing zeros. Examples: REQUEST (“READ-REPLY.FIRST-NAME”) REQUEST (“MONTHLY-COUNT(12,2)”) Binary-Pass-Through Approach To use the binary-pass-through approach, set the DataElementName to the reserved name _TDMGW-BINARY-BUFFER.
Creating Client Applications Error Handling EXECUTE ([BEGINTRANSACTION]) EXECUTE ([SEND]) REQUEST ("REPLY-HEADER.REPLY-CODE"), into MyVariableReplyCode if MyVariableReplyCode = 1 EXECUTE([ENDTRANSACTION]) else EXECUTE([ABORTTRANSACTION]) TERMINATE Note Error Handling This code is for illustration purposes only—it is not from any particular client application development tool. The DDE Execute, Poke, and Request functions can return a DDE “not processed” error to your client application.
Creating Client Applications Error Handling same data element, and so an unsupported clipboard format is not really an error condition. Client application tools that hunt for supported clipboard format generally do not return an error until they have completed their hunting and not found any supported clipboard formats. A DDE “not processed” error that is caused by an unsupported clipboard format will return a _TDMGW-ERROR-MSG-TYPE of N (no error).
Creating Client Applications The Tandem DDE Gateway Browser Tandem DDE Gateway Failures Client applications, especially those written in the C programming language, can cause the Tandem DDE Gateway to fail. This can happen if the client application passes data in a DDE Poke function that is invalid for the clipboard format being used—for example, when a CF_TEXT data value has no terminating byte of binary zeros.
Creating Client Applications The Tandem DDE Gateway Browser Select a message and click the Poke button to copy the selected message's data element names to the Windows clipboard decorated with your Poke text (defined using the Options then Poke and Request Text menu selections). Select a message and click the Request button to copy the selected message's data element names to the Windows clipboard decorated with Request text.
Creating Client Applications The Tandem DDE Gateway Browser 015 Configuring the Browser The Browser has a number of configuration options. You can set these configuration options with either the Browser interface or by using an editor such as Windows Notepad and modifying the BROWSER.INI file. These are the configuration options: The default Tandem DDE Gateway Dictionary. Poke and Request Text (to decorate data elements that you copy to the clipboard).
Creating Client Applications Application Design Considerations DdeDict Enter the default Tandem DDE Gateway Dictionary that you want shown in the Open Dictionary dialog box. Default: DDEDICT.DIC MessageFilterPrefix Enter up to 40 characters to restrict which messages are shown by the Browser. If you specify a MessageFilterPrefix, only messages that start with the specified string of characters are displayed. The text is not case-sensitive. Default: No text (no restriction).
Creating Client Applications Application Design Considerations Note Tandem DDE Gateway Message Buffers The term “asynchronous” means the same as the Tandem term “nowait” in the preceding description. The DDE Execute function with the INITIALIZESERVICE command allocates buffers within the Tandem DDE Gateway to store data items that you send with DDE Poke functions and data items that you request with DDE Request functions. These buffers are initialized to binary-zeroes by the INITIALIZESERVICE command.
Creating Client Applications Application Design Considerations previous read transaction), then puts these fields into the old record portion of an update transaction message. When the server compares (at the data group level) the old message record and the record read from the database, there could be differences. For most cases, the Tandem DDE Gateway remedies this situation by automatically initializing the buffers (in the Tandem DDE Gateway) to binary zeros.
Creating Client Applications Application Design Considerations large number of DDE Request functions could be required to transfer the details for all guests within the message to storage in the client application. Consider the alternatives listed below when dealing with large tables in messages to ensure good client application performance. Use DDE Poke or DDE Request functions against whole rows of the table (containing a number of data elements). Use the group name for the row in the DDE function.
Creating Client Applications Application Design Considerations Use the Tandem DDE Gateway binary-pass-through approach. Use the TdmgwBinaryElement registered clipboard format. For details, see the descriptions of DDE Poke and DDE Request in the DDE Functions topic earlier in this section of the manual. Develop a custom data conversion function for your binary data, possibly using a clipboard format other than CF_TEXT. Implement the custom conversion function in the Tandem DDE Gateway User Hook Library.
Creating Client Applications Application Design Considerations Note The preceding considerations are based on the use of Microsoft Excel, version 4.0. Other versions of Microsoft Excel may not operate in the same manner. The Tandem DDE Gateway accepts data in the Microsoft Excel Fast Table Format. This registered clipboard format is called "XlTable". Generally, you should not need to know the details of this clipboard format because it is automatically handled by the Tandem DDE Gateway.
5 The Tandem DDE Gateway Bridge Program You use the Tandem DDE Gateway Bridge program to create a Tandem DDE Gateway Dictionary that is used when your client application communicates with the Tandem DDE Gateway using the element-by-element approach. The Tandem DDE Gateway Dictionary assists with automatic data conversion and ensures that data is placed at the correct byte offset in the message buffers within the Tandem DDE Gateway.
The Tandem DDE Gateway Bridge Program Preparing Your Data Definition Language (DDL) Source DDE Gateway for a data element name (qualified with all hierarchical levels) is 100 characters. This directive shortens names that exceed this limit without changing the data element names themselves. TDMGW-MESSAGE-FLAG to provide a numeric flag that you want associated with all data elements in a message structure.
The Tandem DDE Gateway Bridge Program Preparing Your Data Definition Language (DDL) Source Syntax TDMGW-DDEALIAS=AliasName Default Data element name has no alias. TDMGW-MESSAGE-FLAG Directive This directive provides a numeric flag that you want associated with all data elements in a message structure. You can use this flag in a User Hook Library to implement application-specific automatic data conversions. Specify an integer number between 0 and 4294967294 for the value of this directive.
The Tandem DDE Gateway Bridge Program Running the Bridge Program The DDL source produces the following data element names that you use in elementby-element DDE Poke and DDE Request functions: EMPLOYEE-READ-REPLY EMPLOYEE-READ-REPLY.EMPNUM EMPLOYEE-READ-REPLY.FN EMPLOYEE-READ-REPLY.LN Running the Bridge The Bridge program reads the Tandem DDL dictionary and produces an unsorted Program Tandem DDE Gateway Dictionary and a Tandem DDE Gateway Dictionary Report.
The Tandem DDE Gateway Bridge Program Running the Bridge Program For example, if your DDL dictionary contains payroll application messages that start with “PY” (such as PY010-EMPLOYEE-ADD), and accounts payable application messages that start with “AP” (such as AP910-PO-DELETE), then enter “PY” to have only the payroll application messages copied to the Tandem DDE Gateway Dictionary. Prompts from the Bridge program will show defaults in angle brackets.
The Tandem DDE Gateway Bridge Program Running the Bridge Program $DATA MYSUBVOL 15> SORT /IN $DISK.ZTDMGW.
The Tandem DDE Gateway Bridge Program Running the Bridge Program Note Merging Message Definitions from Many DDL Dictionaries The last line showing the number of dictionary file records output by the Bridge program shows 5 records, although only 4 records are displayed. This number includes an additional count (1) for an internal dictionary header record generated by the Bridge program. You can create one Tandem DDE Gateway Dictionary from many Tandem DDL dictionaries. Just follow these steps: 1.
The Tandem DDE Gateway Bridge Program Running the Bridge Program (This page left intentionally blank) 5–8 110838 Tandem Computers Incorporated
6 Data Conversion Your client application can use two different approaches to sending data to the Tandem DDE Gateway. Your choice of approach determines the way in which you convert data between Tandem and workstation data representations and define message layouts.
Data Conversion Automatic Data Conversion You can also add your own automatic data conversion functions, or supplement the logic in the ones provided, by creating a User Hook Library. For details on creating a User Hook Library, see Section 8, “Extending the Tandem DDE Gateway.” Table 6-1 shows DDL data types as they are categorized in the Tandem DDL Dictionary and the automatic data conversion for each data type.
Data Conversion Data Conversion Library Table 6-1. Automatic Data Conversion (Page 2 of 2) DICTOBL “Structure” Number 19 Tandem Data Type Description Logical*2 Tandem DDE Gateway Conversion Notes Two's complement binary conversion. 21 Logical*4 Two's complement binary conversion. 22 Binary 8 signed Two's complement binary conversion. 23 Binary 8 unsigned Two's complement binary conversion. Negative sign removed on DDE Poke functions.
Data Conversion Data Conversion Library The Tandem DDE Gateway data conversion functions and related constants are defined in the C language header file TDMGW.H, which is located in the EXTEND\ subdirectory. If you are using the C language, then link using the DATACONV.LIB import library, which is also located in the EXTEND\ subdirectory.
Data Conversion Data Conversion Library lpAlphaNum Pointer to the start of where the converted string is placed. For SQL Varchar data structures, it points to the prefixed LEN count. nCString Zero = Pad the converted value with trailing spaces up to nAlphaNumLength bytes. Nonzero = Terminate the converted value with a null character. nVarchar Zero = lpAlphaNum does not point to an SQL Varchar data structure. Non-zero = lpAlphaNum points to the start of an SQL Varchar data structure.
Data Conversion Data Conversion Library nSignType Display numeric sign type to be used for the converted data: TDMGW_CONV_NOT_SIGNED = No sign TDMGW_CONV_SLI_SIGNED = Leading embedded sign TDMGW_CONV_STI_SIGNED = Trailing embedded sign TDMGW_CONV_SLS_SIGNED = Leading separate sign TDMGW_CONV_STS_SIGNED = Trailing separate sign nDecimalPlaces Number of implied decimal places in the Tandem display numeric.
Data Conversion Data Conversion Library nTwosCompNumberLength Length of Tandem two's complement number in bytes (must be 1, 2, 4, or 8). nSignType Indicates whether the Tandem two's complement number is signed TDMGW_CONV_BIN_SIGNED = Sign TDMGW_CONV_NOT_SIGNED = No sign nDecimalPlaces Number of implied decimal places in the Tandem two's complement number. If this value is negative, then this is the scaling of the Tandem representation.
Data Conversion Data Conversion Library Parameters lpElementValue Pointer to where the start of the converted string is placed. The string may be preceded by a minus sign and contain a decimal point (such as -12, +42.76). Leading zeros and insignificant trailing zeros are not returned. lpDisplayNumber Pointer to the Tandem display numeric to be converted. nDisplayNumberLength Length of the Tandem display numeric (including any separate sign).
Data Conversion Data Conversion Library nSignType Indicates whether the Tandem two's complement number is signed: TDMGW_CONV_BIN_SIGNED = Sign TDMGW_CONV_NOT_SIGNED = No sign nDecimalPlaces Number of implied decimal places in the Tandem two’s complement number. If this value is negative, then this is the scaling of the Tandem representation.
Data Conversion Data Conversion Library (This page left intentionally blank) 6–10 110838 Tandem Computers Incorporated
7 Using DDE Hot and Warm Data Links DDE hot and warm data links allow a client application to inform a DDE server that the client requires information about a category of data and requires the server to automatically notify it of new or changed data in that category. Your client application creates a DDE hot or warm data link with the Tandem DDE Gateway and specifies the name of a message.
Using DDE Hot and Warm Data Links Developing a Tandem Program to Create UMS Messages a. Workstation configuration for Unsolicited Message Service (UMS) applications. The particular configuration options of interest are group_alias and session_alias. b. Developing the part of a UMS application that resides on the Tandem system. Note Developing a Tandem Program to Create UMS Messages 3. Install the Tandem DDE Gateway and configure your workstation.
Using DDE Hot and Warm Data Links Developing a Tandem Program to Create UMS Messages 05 DDE-ITEM-NAME 03 UMS-USER-DATA. 05 FIRST-NAME 05 LAST-NAME 05 SALARY 05 TERMINATING-NULL-BYTE RSC-HEADER Example PIC X(101). PIC PIC PIC PIC X(15). X(20). 9(6).9(2). X.
Using DDE Hot and Warm Data Links Developing a Tandem Program to Create UMS Messages Considerations You should put the data to be forwarded by the Tandem DDE Gateway to your client application here. For compatibility with most client applications and tools, the user data should be ANSI (ISO 8859/1) characters with no imbedded binary numbers or other nonprintable data. For English language data, ANSI is effectively the same as ASCII. Most tools require a terminating byte of binary zeros.
Using DDE Hot and Warm Data Links Microsoft Visual Basic UMS Client Applications DDE-NUM-TIMES-DELIVERED is the number of DDE conversations over which the message data was delivered to client applications. The value is zero if no client has a DDE hot or warm link to the message.
Using DDE Hot and Warm Data Links Microsoft Visual Basic UMS Client Applications (This page left intentionally blank) 7–6 110838 Tandem Computers Incorporated
8 Extending the Tandem DDE Gateway You can extend the Tandem DDE Gateway in a number of ways to make developing your client application easier. You can— Replace the provided RSC logon dialog and associated processing. If your application uses RSC configured security, you can develop a workstation security dynamic link library (DLL) to work with the RSC Access Control Server that you develop on the Tandem system.
Extending the Tandem DDE Gateway Returning Error Messages Returning Error You can return errors to the Tandem DDE Gateway from RSC logon functions and Messages User Hook Library functions. When there is no error, return a non-zero value from the function. You can return an error to the Tandem DDE Gateway, which will then display the error message and, for User Hook Library functions, return a DDE “not processed” error to your client application.
Extending the Tandem DDE Gateway Creating an RSC Logon Function and Dialog Example MAKE files (with a MAK file extension) are provided for the RSC logon function and the User Hook Library. You can find them in the EXTEND\ subdirectory. The MAKE files use an object module called LIBENTRY.OBJ. This is the standard entry prologue for dynamic link libraries (DLLs) and is provided with your C language development environment.
Extending the Tandem DDE Gateway User Hook Library If you return a non-zero in the bCancel parameter, then connection attempts for the PortName will be aborted.
Extending the Tandem DDE Gateway User Hook Library There is always a User Hook Library. The default User Hook Library provided with the Tandem DDE Gateway performs no processing other than to return a flag when you start the Tandem DDE Gateway to indicate that no other User Hook Library functions are to be called. Follow these steps to develop a User Hook Library: When User Hook Library Functions Are Called 1. Copy the files USERHOOK.* from the EXTEND\ subdirectory. 2.
Extending the Tandem DDE Gateway User Hook Library can understand. Built-in data conversion functions will still be called for the accepted clipboard format, but you can modify the input or output of the function. If you want to implement a new data conversion, accept the clipboard format that you can convert to or from and set the pbConvertWithOnlyHookCode flag; no built-in data conversion functions will then be called.
Extending the Tandem DDE Gateway User Hook Library amount of storage to be allocated for the converted data. This storage is allocated by the Tandem DDE Gateway and the TdmgwHookDdeRequest function is called. In this function you convert the data from the Tandem representation to the clipboard format accepted with the prior TdmgwHookIsConvSupported function.
Extending the Tandem DDE Gateway User Hook Library hMainWnd Window handle of Tandem DDE Gateway main window. ulInitializeServiceSerialNumber Number incremented with each INITIALIZESERVICE command. Starts at zero when the Tandem DDE Gateway is started. Rolls over to zero after 4,294,967,295. lpServiceName Current ServiceName object (from INITIALIZESERVICE command). pstructElementData Description of current data element. (See the “Tandem DDE Gateway Dictionary Structure” topic.
Extending the Tandem DDE Gateway User Hook Library Parameters TdmgwHookDdeRequest Return Value Zero = Error. Non-zero = No error. hMainWnd Window handle of Tandem DDE Gateway main window. ulInitializeServiceSerialNumber Number incremented with each INITIALIZESERVICE command. Starts at zero when the Tandem DDE Gateway is started. Rolls over to zero after 4,294,967,295. lpServiceName Current ServiceName object (from INITIALIZESERVICE command).
Extending the Tandem DDE Gateway User Hook Library Prototype BOOL FAR PASCAL TdmgwHookDdeRequest (HWND hMainWnd, unsigned long ulInitializeServiceSerialNumber, LPSTR lpServiceName, struct tagDdeDictElementData far * pstructElementData, WORD cfFormat, void far * lpRequestDataElementValue, void far * lpBufferOffset, struct tagTdmgwErrorMsg far * pstructErrMsg); in in in in in out in out Parameters Return Value Zero = Error. Non-zero = No error. hMainWnd Window handle of Tandem DDE Gateway main window.
Extending the Tandem DDE Gateway User Hook Library in the pbSupportedFormat parameter and zero in the pbConvertWithOnlyHookCode parameter. The TdmgwHookDdeRequestPostConvert function is called after the automatic data conversion is used. You can modify the converted data before it is returned to your client application. The data is pointed to by the parameter lpRequestDataElementValue and is in the clipboard format cfFormat.
Extending the Tandem DDE Gateway User Hook Library TdmgwHookEnableUserHooks The function is called when the Tandem DDE Gateway starts. Return a bit-wise logical or (|) of the following constants defined in the TDMGW.
Extending the Tandem DDE Gateway User Hook Library Prototype BOOL FAR PASCAL TdmgwHookGetRequestDdeSize (HWND hMainWnd, unsigned long ulInitializeServiceSerialNumber, LPSTR lpServiceName, struct tagDdeDictElementData far * pstructElementData, WORD cfFormat, unsigned int far * puRequestElementDdeSize, struct tagTdmgwErrorMsg far * pstructErrMsg); in in in in in in/out out Parameters Return Value Zero = Error. Non-zero = No error. hMainWnd Window handle of Tandem DDE Gateway main window.
Extending the Tandem DDE Gateway User Hook Library If pbSupportedFormat is zero, then you can do the data conversion in your User Hook Library by returning non-zero in pbSupportedFormat and non-zero in pbConvertWithOnlyHookCode. If pbSupportedFormat is non-zero, you can force the client application to hunt for another clipboard format by setting pbSupportedFormat to zero.
Extending the Tandem DDE Gateway User Hook Library pbConvertWithOnlyHookCode Zero = Convert with built-in automatic data conversion functions Non-zero = Convert with User Hook Library functions. pstructErrMsg See “Returning Error Messages” topic. TdmgwHookPostReplyMessage This function may be called when your client application does a DDE Execute function with a SEND command.
Extending the Tandem DDE Gateway User Hook Library TdmgwHookPreSendMessage This function may be called when your client application does a DDE Execute function with a SEND command. You must enable the function with TdmgwHookEnableUserHooks function by returning a value with the TDMGW_HOOK_ENABLE_PRE_SEND_MSG bit set. The function is called immediately before the request message is sent to the Tandem server.
Extending the Tandem DDE Gateway Tandem DDE Gateway Dictionary Structure To enable this User Hook Library function, return the TDMGW_HOOK_ENABLE_UMS_POST_REC constant from the TdmgwHookEnableUserHooks function.
Extending the Tandem DDE Gateway Tandem DDE Gateway Dictionary Structure All string fields are terminated with a byte of binary zeros. Note Caution tagDdeDictHeader Structure The Tandem DDE Gateway Browser provides some code generation capabilities. The structure of the Tandem DDE Gateway Dictionary may change from release to release. Data elements in the structures will not likely be removed, or their size altered, but new data elements may be added at the end of the structures.
Extending the Tandem DDE Gateway Tandem DDE Gateway Dictionary Structure unsigned int uSubMult[7]; unsigned int uType; signed char cDecimalPlaces; signed char cBitFieldOffset; signed char cBitFieldLength; char szElement[TDMGW_MAX_ELEMENT_STRLEN+1]; }; Data Elements ulUserMessageFlag Flag set using the Bridge directive TDMGW-MESSAGEFLAG. ulUserElementFlag Flag set using the Bridge directive TDMGW-ELEMENTFLAG.
Extending the Tandem DDE Gateway Tandem DDE Gateway Dictionary Structure (This page left intentionally blank) 8–20 110838 Tandem Computers Incorporated
9 Troubleshooting This section explains how to solve problems that you may encounter while using the Tandem DDE Gateway. The Tandem DDE Gateway gives unexpected “Element not found” messages when DDE Poke or DDE Request functions are performed, or the Browser gives unexpected “Message has only one element” error messages. Most likely the Tandem DDE Gateway Dictionary was not sorted on the Tandem system before being downloaded to the workstation.
Troubleshooting When you connect a Tandem DDE Gateway port, either automatically when the Tandem DDE Gateway is started or with a menu selection, Remote Server Call (RSC) attempts to locate a number of files. RSC looks for its error file (specified with the RSC ERROR_FILE option), the RSC dynamic-link library (DLL), and an RSC initialization file.
Troubleshooting being used matches the one used by your Tandem program, the RSC session or group alias matches the one used by your Tandem program, and that you will actually connect the TDP being used by your Tandem program. On the Tandem system, use RSC status commands to check the TDP, connection, and RSC terminal actually being used. Check which Tandem DDE Gateway configuration file is being used. The default could have been overridden by the TdmgwConfigurationFile option in the WIN.INI file.
Troubleshooting (This page left intentionally blank) 9–4 110838 Tandem Computers Incorporated
Index A ABORTTRANSACTION command 4-7 adding automatic data conversions 8-1 altering exchanged messages 8-1 ANSI characters 7-4 application design considerations 4-17 using Microsoft Excel 4-21 using MicroVisual Basic 4-22 using Powersoft PowerBuilder 4-22 application development tools, creating 8-1 application prefix, specifying 5-4 ApplicationDdeDicts section 2-8 ApplicationHostEnvironmentName 2-9 ApplicationHostEnvironments section 2-9 ApplicationName 2-1, 2-8 parameter 4-6 ApplicationPorts section 2-8 As
Index Bridge directives extending the Tandem DDE Gateway 8-1 TDMGW-C-STRINGS 5-1, 5-2 TDMGW-DDEALIAS 5-2 TDMGW-ELEMENT-FLAG 5-2, 5-3 TDMGW-IPC 5-1, 5-2 TDMGW-MESSAGE-FLAG 5-2, 5-3 Bridge program 5-1 running 5-4 Browser as a development tool 4-14 Browser configuration options DdeDict 4-17 MessageFilterPrefix 4-17 PokeBeginning 4-16 PokeEnding 4-16 RequestBeginning 4-16 RequestEnding 4-16 Browser tool described 1-4 BROWSER.EXE program 4-14 BROWSER.
Index CF_TEXT application design considerations 4-19 clipboard format 6-1 Registered clipboard format 4-8, 4-9, 4-10 CLEARERROR command 4-7, 4-12 clearing error messages 3-3, 4-7 client application compatibility concerns 7-4 connected to Tandem system by DDE hot links 7-1 creating 4-1 data, logging 4-13 DDE function call examples 4-11 developing 7-1 example 4-1 illustrated 2-1 logging data 4-13 starting Tandem DDE Gateway 2-22 using the Gateway 1-2 client programming considerations 1-13, 4-11 different app
Index Configuration error 9-1 configuration files Browser configuration file 4-16 Error Text Overrides configuration file 2-23 example 2-17 Gateway configuration files 2-4 Service Map 2-19 Windows configuration files 2-3 configuration options configuration files 2-3 default values 2-3 Configuration section 2-4 Connect dialog box 3-1 connecting ports 3-1 considerations application design 1-13, 4-17 literal storage 4-21 converting data 6-1 creating a Tandem DDE Gateway Dictionary 5-1 creating application dev
Index data elements containing special characters 4-20 copied to clipboard 4-15 displayed order 4-15 finding in a long list 4-15 sorting 4-15 data exchange formats, negotiation 1-8 data not arriving at application 9-2 data types COBOL conversion 1-3 hardware representations of 1-3 DATACONV.DLL data conversion functions 6-4 DATACONV.
Index DDE (continued) Initiate function 4-4 Initiate function, described 1-7 interaction, illustrated 1-6 Poke function 4-7, 6-1 binary-pass-through approach 4-9 element-by-element approach 4-7 Poke function, described 1-7 protocol 1-3 Request function 4-9 binary-pass-through approach 4-11 DataElementName parameter 4-10 element-by-element approach 4-10 Request function, described 1-8 requests from client applications 1-2 Terminate function 4-5 Terminate function, described 1-8 Verbs, examples 1-15 DDE hot
Index DDE warm data links creating a client appliction that uses 7-1 defined 1-5 described 7-1 establishing overview 1-5 startup parameters 7-5 uses 1-5 using Microsoft Visual Basic 7-5 DDE-ERROR-RETURN values 7-4 DDE-ITEM-NAME 7-3 DDE-NUM-TIMES-DELIVERED defined 7-5 values 7-5 DdeClientTransaction function 4-18 DdeDict 2-5 DdeGatewayTextFile 2-7 DDEML See DDE Management Library DDL data types, categorized 6-2 DDL dictionary 1-4 DDL source file directives 5-2 example 5-3 preparing 5-1 Debugging Log DDE mes
Index default values (continued) port attributes 2-12 PortConfigurationFile 2-11 PortConfigurationSection 2-12 PortName 2-9, 2-11 RscIniFile 2-16 RscIniSection 2-16 ServiceMapFile 2-6 ServiceMapSection 2-7 Tandem DDE Gateway dictionary name 2-8 TDMGW-C-STRINGS directive 5-2 TDMGW-DDEALIAS directive 5-3 TDMGW-ELEMENT-FLAG directive 5-3 TDMGW-IPC directive 5-2 TDMGW-MESSAGE-FLAG directive 5-3 TdmgwConfigurationFile 2-3 UmsPollingInterval 2-13 UseRscSecurity 2-15 [ApplicationDdeDicts] section 2-8 [Application
Index DLL RSC logon function 8-3 User Hook Library 8-4 duplicate data element names 5-6 Dynamic Data Exchange See DDE dynamic link library 8-4 E Element not found message 9-1 element-by-element approach data conversion 6-1 DDE Poke function 4-7 DDE Request function 4-10 described 1-10 illustrated 1-10 procedure 1-10/11 requirements 1-9 ElementCacheEntries 2-5 ENDTRANSACTION command 4-7 error handling 4-12 error information, retrieving 4-12 error message text override file example 2-23 error messages cleari
Index examples ABORTTRANSACTION 4-7 BEGINTRANSACTION 4-7 Browser configuration file 4-17 CLEARERROR 4-7 client application 4-1 ClientResponseDdeTimeout 2-7 configuration files 2-17 DataElementValue 4-9 DDE function calls 4-11 DDE Request function 4-11 DdeDict 2-5 DdeGatewayTextFile 2-7 DDL source file 5-3 ElementCacheEntries 2-6 ENDTRANSACTION 4-7 error message text override file 2-23 INITIALIZESERVICE 4-6 NumberofIdsSessions 2-15 NumberofInterprocessSessions 2-14 NumberOfUmsSessions 2-15 PollingInterval 2
Index examples (continued) [ApplicationDdeDicts] 2-8 [ApplicationHostEnvironments] section 2-10 [ApplicationPorts] section 2-9 [Automatic Startup] section 2-17 [Ports] section 2-12 [ServiceMap] section 2-22 EXAMPLES subdirectory 1-9 DDE Management Library examples 1-14 Execute function, described 1-8 F failures, Tandem DDE Gateway 4-14 FastSort program 5-5 flashing icon 4-7, 4-12 formats, numeric data elements 4-11 function prototype TdmgwConvCfTextToTdmAlphaNum 6-4 TdmgwConvCfTextToTdmDispNum 6-5 TdmgwCon
Index functions (continued) RSC logon 8-3 TdmgwHookDdePoke 8-7 TdmgwHookDdePokePreConvert 8-8 TdmgwHookDdeRequest 8-9 TdmgwHookDdeRequestPostConvert 8-10 TdmgwHookEnableUserHooks 8-12 TdmgwHookGetRequestDdeSize 8-12 TdmgwHookIsConvSupported 8-13 TdmgwHookPostReplyMessage 8-15 TdmgwHookPreSendMessage 8-16 TdmgwHookUmsPostReceiveMessage 8-1, 8-7 TdmgwRscLogon 8-3 User Hook Library 8-4 G Gateway configuration file PortName Object Configuration section 2-12 [ApplicationDdeDicts] section 2-8 [ApplicationHostEnv
Index I icon, flashing 4-7, 4-12 IDS sessions example application 4-1 NumberOfIdsSessions option 2-15 SessionTypeFlag option 2-21 supported 1-2 implementing a transaction binary-pass-through approach 1-9 element-by-element approach 1-9 import library DATACONV.
Index M MAKE files 8-3 MaxReplyLength ServiceName objects 2-20 MaxReplyLength attribute 4-11 MaxSendLength ServiceName objects 2-20 MaxSendLength attribute 4-6 memory cache for data dictionary 1-9 memory model, C language 4-21 merging DDL dictionaries procedure 5-7 Message has only one element message 9-1 MESSAGE-VERSION field 7-3 Microsoft C 4-2 Microsoft DDE Management Library See DDE Management Library Microsoft DDESpy program 4-13 Microsoft Excel 1-1, 4-2, 4-21 Microsoft Visual Basic 1-1, 4-2, 4-21, 4-
Index O objects ApplicationName 2-1 PortName 2-1 ServiceName 2-1 Options menu Clipboard in Lowercase 4-15 Display Element Names Backwards 4-15 options, Log DDE messages 4-13 P parameters ApplicationName 4-6 DataElementName 4-8 DataElementValue 4-8 ServiceName 4-6 Pathway SCOBOL IDS requester 4-1 Pathway SCOBOL requester 4-1 Plain button 4-15 Poke button 4-15 Poke data not validated 6-1 Poke function described 1-7 PollingInterval 2-13 port attributes default values 2-12 PortConfigurationFile 2-11 PortConfig
Index Ports section 2-10 Powersoft PowerBuilder 1-1, 4-2, 4-22 preparing DDL source 5-1 programs Bridge 5-4 BROWSER.EXE 4-14 example 4-2 TDMGW.
Index RSC UMS feature data not arriving at application 9-2 developing applications that use 7-1 RscIniFile 2-16 RscIniSection 2-16 RSCSHELL.
Index ServiceName objects (continued) MaxReplyLength 2-20 MaxSendLength 2-20 ServerClassOrGuardianProcess 2-20 ServiceName 2-20 SessionTypeFlag 2-21 ServiceName parameter 4-6 SessionType attribute 4-6 SessionTypeFlag ServiceName objects 2-21 special characters 4-20 and CF_TEXT 4-19, 4-20 defined 4-19 starting the Tandem DDE Gateway 2-22, 3-1 subscripted tables 4-19 subscripts DataElementName parameter 4-10 syntax DDE Execute function 4-5 DDE Initiate function 4-4 DDE Poke function 4-7 DDE Request function
Index Tandem DDE Gateway (continued) Dictionary 1-4 See also Dictionary structure 8-17 extending 1-2 extensions compiling 8-2 debugging 8-2 linking 8-2 failures 4-14 interfacing client tools 1-14 objects ApplicationName 2-1 PortName 2-1 ServiceName 2-1 program (TDMGW.
Index TDMGW.EXE Tandem DDE Gateway program 2-4 TDMGW.H C language header file 6-4 TDMGW.
Index TMF ABORTTRANSACTION command 4-7 BEGINTRANSACTION command 4-7 considerations 4-17 ENDTRANSACTION command 4-7 Transaction Delivery Process See TDP U UMS client applications Microsoft Visual Basic 7-5 UMS messages changing 8-1 developing a program to create 7-2 developing client applications to receive 7-5 examining 8-1 UmsPollingInterval 2-13 User Hook Library 8-4 calling functions 8-5 described 1-6 performing data validation 6-1 procedure for developing 8-5 UseRscSecurity 2-15 UseRscSecurity attribut
Index Windows configuration files [Tdmgw] section 2-3 Windows dynamic link library See DLL Windows USER library 4-8, 4-10 workstation configuration 2-1 Z zero length data 7-5 Special characters [ApplicationDdeDicts] section 2-8 ApplicationName 2-8 Tandem DDE Gateway dictionary name 2-8 [ApplicationHostEnvironments] section 2-9 ApplicationHostEnvironmentName 2-9 ApplicationName 2-9 [ApplicationPorts] section 2-8 ApplicationName 2-8 PortName 2-9 [Automatic Startup] section 2-16 AutomaticStartupOption 2-17 Po
Index _TDMGW-BINARY-BUFFER DataElementName parameter 4-9, 4-11 _TDMGW-ERROR-MSG-NUMBER DataElementName 4-12 _TDMGW-ERROR-MSG-SUBSYS DataElementName 4-12 _TDMGW-ERROR-MSG-TEXT DataElementName 4-12 _TDMGW-ERROR-MSG-TYPE DataElementName 4-12 110838 Tandem Computers Incorporated Index–23