ibm-information-center/dist/eclipse/plugins/i5OS.ic.rbam6_5.4.0.1/dspficf.htm

159 lines
9.4 KiB
HTML

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html
PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html lang="en-us" xml:lang="en-us">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta name="security" content="public" />
<meta name="Robots" content="index,follow" />
<meta http-equiv="PICS-Label" content='(PICS-1.1 "http://www.icra.org/ratingsv02.html" l gen true r (cz 1 lz 1 nz 1 oz 1 vz 1) "http://www.rsac.org/ratingsv01.html" l gen true r (n 0 s 0 v 0 l 0) "http://www.classify.org/safesurf/" l gen true r (SS~~000 1))' />
<meta name="DC.Type" content="reference" />
<meta name="DC.Title" content="Example: Wait for input from a display file and an ICF file" />
<meta name="abstract" content="This example shows a program waiting for input from a display file and an ICF file, using a data queue." />
<meta name="description" content="This example shows a program waiting for input from a display file and an ICF file, using a data queue." />
<meta name="DC.Relation" scheme="URI" content="explq.htm" />
<meta name="DC.Relation" scheme="URI" content="qcomm.htm" />
<meta name="copyright" content="(C) Copyright IBM Corporation 1998, 2006" />
<meta name="DC.Rights.Owner" content="(C) Copyright IBM Corporation 1998, 2006" />
<meta name="DC.Format" content="XHTML" />
<meta name="DC.Identifier" content="dspficf" />
<meta name="DC.Language" content="en-us" />
<!-- All rights reserved. Licensed Materials Property of IBM -->
<!-- US Government Users Restricted Rights -->
<!-- Use, duplication or disclosure restricted by -->
<!-- GSA ADP Schedule Contract with IBM Corp. -->
<link rel="stylesheet" type="text/css" href="./ibmdita.css" />
<link rel="stylesheet" type="text/css" href="./ic.css" />
<title> Example: Wait for input from a display file and an ICF file</title>
</head>
<body id="dspficf"><a name="dspficf"><!-- --></a>
<!-- Java sync-link --><script language="Javascript" src="../rzahg/synch.js" type="text/javascript"></script>
<h1 class="topictitle1"> Example: Wait for input from a display file and an ICF file</h1>
<div><p>This example shows a program waiting for input from a display file
and an ICF file, using a data queue.</p>
<div class="section"><br /><img src="rbafn544.gif" alt="This example is different from the usual use of data queues because there is only one job. The data queue serves as a communications object within the job rather than between two jobs." /><br /></div>
<div class="section"><p>The following example is different from the usual use of data
queues because there is only one job. The data queue serves as a communications
object within the job rather than between two jobs. </p>
<p>In this example,
a program is waiting for input from a display file and an ICF file. Instead
of alternately waiting for one and then the other, a data queue is used to
allow the program to wait on one object (the data queue). The program calls
QRCVDTAQ and waits for an entry to be placed on the data queue that was specified
on the display file and the ICF file. Both files specify the same data queue.
Two types of entries are put on the queue by display data management and
ICF data management support when the data is available from either file. ICF
file entries start with <samp class="codeph">*ICFF</samp> and display file entries start
with <samp class="codeph">*DSPF</samp>.</p>
</div>
<div class="section"><p>The display file or ICF file entry that is put on the data queue
is 80 characters in length and contains the field attributes described in
the following list. Therefore, the data queue that is specified using the
CRTDSPF, CHGDSPF, OVRDSPF, CRTICFF, CHGICFF, and OVRICFF commands must have
a length of at least 80 characters. </p>
<dl><dt><strong>Position (and Data Type)</strong></dt>
<dd><strong>Description</strong></dd>
<dt class="dlterm">1 through 10 (character)</dt>
<dd>The type of file that placed the entry on the data queue. This field will
have one of two values: <ul><li><samp class="codeph">*ICFF</samp> for ICF file</li>
<li><samp class="codeph">*DSPF</samp> for display file</li>
</ul>
<p>If the job receiving the data from the data queue has only one display
file or one ICF file open, then this is the only field needed to determine
what type of entry has been received from the data queue.</p>
</dd>
<dt class="dlterm">11 through 12 (binary)</dt>
<dd>The unique identifier for the file. The value of the identifier is the
same as the value in the open feedback area for the file. This field should
be used by the program receiving the entry from the data queue only if there
is more than one file with the same name placing entries on the data queue.</dd>
<dt class="dlterm">13 through 22 (character)</dt>
<dd>The name of the display file or ICF file. This is the name of the file
actually opened, after all overrides have been processed, and is the same
as the file name found in the open feedback area for the file. This field
should be used by the program receiving the entry from the data queue only
if there is more than one display file or ICF file that is placing entries
on the data queue.</dd>
<dt class="dlterm">23 through 32 (character)</dt>
<dd>The library where the file is located. This is the name of the library,
after all overrides have been processed, and is the same as the library name
found in the open feedback area for the file. This field should be used by
the program receiving the entry from the data queue only if there is more
than one display file or ICF file that is placing entries on the data queue.</dd>
<dt class="dlterm">33 through 42 (character)</dt>
<dd>The program device name, after all overrides have been processed. This
name is the same as that found in the program device definition list of the
open feedback area. For file type *DSPF, this is the name of the display device
where the command or Enter key was pressed. For file type *ICFF, this is the
name of the program device where data is available. This field should be used
by the program receiving the entry from the data queue only if the file that
placed the entry on the data queue has more than one device or session invited
prior to receiving the data queue entry.</dd>
<dt class="dlterm">43 through 80 (character)</dt>
<dd>Reserved.</dd>
</dl>
</div>
<div class="section"><p>The following example shows coding logic that the program previously
described might use: </p>
<pre> .
.
.
.
OPEN DSPFILE ... /* Open the Display file. DTAQ parameter specified on*/
/* CRTDSPF, CHGDSPF, or OVRDSPF for the file. */
OPEN ICFFILE ... /* Open the ICF file. DTAQ parameter specified on */
/* CRTICFF, CHGICFF, or OVRICFF for the file. */
.
.
DO
WRITE DSPFILE /* Write with Invite for the Display file */
WRITE ICFFILE /* Write with Invite for the ICF file */
CALL QRCVDTAQ /* Receive an entry from the data queue specified */
/* on the DTAQ parameters for the files. Entries */
/* are placed on the data queue when the data is */
/* available from any invited device or session */
/* on either file. */
/* After the entry is received, determine which file */
/* has data available, read the data, process it, */
/* invite the file again and return to process the */
/* next entry on the data queue. */
IF 'ENTRY TYPE' FIELD = '*DSPF ' THEN /* Entry is from display */
DO /* file. Since this entry*/
/* does not contain the */
/* data received, the data*/
/* must be read from the */
/* file before it can be */
READ DATA FROM DISPLAY FILE /* processed. */
PROCESS INPUT DATA FROM DISPLAY FILE
WRITE TO DISPLAY FILE /* Write with Invite */
END
ELSE /* Entry is from ICF */
/* file. Since this entry*/
/* does not contain the */
/* data received, the data*/
/* must be read from the */
/* file before it can be */
/* processed. */
READ DATA FROM ICF FILE
PROCESS INPUT DATA FROM ICF FILE
WRITE TO ICF FILE /* Write with Invite */
LOOP BACK TO RECEIVE ENTRY FROM DATA QUEUE
.
.
.
END</pre>
</div>
</div>
<div>
<div class="familylinks">
<div class="parentlink"><strong>Parent topic:</strong> <a href="explq.htm" title="This includes examples of three methods for processing data queue files.">Examples: Use a data queue</a></div>
</div>
<div class="reltasks"><strong>Related tasks</strong><br />
<div><a href="qcomm.htm" title="Data queues are a type of system object that you can create, to which one HLL procedure or program can send data, and from which another HLL procedure or program can receive data.">Use data queues</a></div>
</div>
</div>
</body>
</html>