Writer instructions | ||
Purpose | Use this page to display a banner announcement on each page of the space. Create the Space announcements page in the master space, outside of the Home branch. You can version the Space announcements page to enable different banners to be published into different target spaces, however, the banner that is displayed in the versioned (master) space itself only displays the most recently-published banner. If you find errors in the banner area of your versioned space and you are sure the Space announcements page is set up correctly, try publishing the page to the same space. For more information, see Space-announcements-banners. | |
Removing | When an announcement is no longer needed, remove the BMC Space Banner macro. | |
Translation | Localized spaces using the L10n Viewport theme must change the name of this page to Space announcements l10n. See Configuring-the-Scroll-ViewPort-theme-for-translated-spaces. | |
Usage | Choose one or none of the following BMC Space Banner macros. If your space requires another kind of announcement, you can use this page in coordination with your team lead and editors. |
Optional IMS functions to use database
IMS provides a number of optional functions that you can use with your databases. Some of these optional functions impact File-AID for IMS’s browse/edit processing. This section describes the affect of these optional functions on certain File-AID for IMS/ISPF screens and commands.
Most of the IMS optional functions referred to in this section are described in IBM’s IMS Administration Guide: DB. You should see to this guide if you require information about when to use an optional function or how it works. This section describes only special File-AID for IMS/ISPF processing associated with certain IMS optional functions.
Logical Relationships
You can use File-AID for IMS to browse databases that are involved in any of the three types of logical relationships— unidirectional, bidirectional physically paired, or bidirectional virtually paired— including databases that contain recursive structures. There are no File-AID for IMS restrictions that affect browsing databases with logical relationships.
You can use File-AID for IMS to edit databases that are involved in any of the three types of logical relationships, including databases that contain recursive structures, based on the File-AID for IMS restrictions described in the following paragraphs. File-AID for IMS supports the editing of databases with logical relationships through physical DBDs or logical DBDs. When you want to edit a logical child segment, we recommend that you use a logical DBD where the logical child has been defined as part of a concatenated segment. This process minimizes the impact of the insert, delete, and replace rule restrictions on logical children.
Virtual Logical Child Segments
When a bidirectional virtually paired logical relationship is implemented, a physical DBD is generated to define the physical hierarchy for the database containing the logical parent segment type. As part of that physical DBD, a segment definition is included for the virtual logical child segment type. When you use this physical DBD to access the database, File-AID for IMS includes the virtual logical child segment type when it displays the segment types in the database (for example, on the Data Base Location screen or the Character screen).
Because the virtual logical child is actually representing a real logical child segment type, you can access and maintain real logical child segments through the corresponding virtual logical child segments when using the logical parent’s physical DBD. The restrictions you can encounter when editing real logical child data through the logical parent’s physical DBD are described throughout the remainder of this section.
When you access real logical child segments from the logical parent’s viewpoint (through a physical DBD), the order in which the real logical children are seen is determined by the key defined for the virtual logical child segment type. When you access concatenated segments from the logical parent’s viewpoint (through a logical DBD), the order in which the concatenated segments are seen is also determined by the virtual logical child’s key. The key for a virtual logical child can be made up of multiple, non-contiguous pieces of data. On any screen within File-AID for IMS where the key values of segments are shown, the key value for a virtual logical child that is made up of multiple pieces of data is shown as one continuous key value.
For example, assume that the key to a virtual logical child consists of the data in positions 3 through 6, 25 through 27, and 11 through 15, respectively. File-AID for IMS collects the data from the different locations in the segment and places it into one, 12-position key field to display the key value for this segment. The order in which multiple pieces of key data are displayed in a key field is determined by the order of the sequence FIELD statements for the virtual logical child in the DBD source code.
Insert, Delete, and Replace Rules
When you insert, delete, or replace logical child segments and their physical or logical parents, IMS validates your actions based on the segments’ RULES= operand in the physical DBDs that define the logical relationship. The RULES= coding format and validation process is explained in IBM’s IMS Administration Guide: DB.
Because File-AID for IMS maintains your databases through DL/I calls, IMS performs the update rules validation process for File-AID for IMS exactly as for any application program. When inserting a segment that is involved in a logical relationship, the insert rule coded for the destination parent segment (either a physical or logical parent) determines the validation that IMS performs.
For example, you can insert a logical child segment only if the insert does not violate the destination parent’s insert rule. To prevent IMS from performing unintentional operations during editing, File-AID for IMSapplies additional restrictions during the insertion of logical children and destination parents as described in the following table:
Destination Parent’s Insert Rule File-AID Restrictions
Rule | Restrictions | Other Remarks |
---|---|---|
P | None. | IMS requires that the destination parent be inserted through a physical path before any logical children may be connected to it. |
L | A logical child may be inserted only when it is part of a concatenated segment. | File-AID for IMS provides this restriction because IMS inserts the destination parent if one does not already exist. Because the user does not have a view of the destination parent segment contents, this operation is prohibited. |
V | Same as above. | When connecting a logical child to an existing destination parent by inserting a concatenated segment with the INSERT command, the existing destination parent’s non-key data is overlaid by the zeros/blanks from File-AID for IMS’s initialized I/O area. File-AID for IMS issues a warning message before this happens. To avoid this problem, use the REPEAT command with the concatenated segment. |
When deleting a segment that is part of a logical relationship, the delete rule validation process described in IBM’s IMS Administration Guide: DB takes place. File-AID for IMS does not place any additional restrictions on the deletion of logically related segments.
When you make changes to an existing database segment that is part of a logical relationship, File-AID for IMS issues a DL/I REPL call to update the database. The replace rule validation process described in IBM’s IMS Administration Guide: DB takes place. File-AID for IMS does not place any additional restrictions on the replacement of logically related segments.
Key Specification Screen
When the target of an INSERT or REPEAT command is a logical child or concatenated segment, you must specify up to three key values on the Key Specification screen for the target segment:
- You must specify the Destination Parent Concatenated Key (DPCK) of the logical parent that the logical child you are creating is to be connected to.
- You must specify the key value for the logical child or concatenated segment you are creating. When you work with a bidirectional virtually paired or a bidirectional physically paired logical relationship, a logical child segment is created through the physical path (from the physical parent’s viewpoint) or the logical path (from the logical parent’s viewpoint). Because a logical child segment type is defined in each path, each has its own defined key field. The relative starting position and length of the key in one path may not match the relative starting position and length of the key in the other path.
- When you create a logical child segment where the two key definitions do not match, File-AID for IMS provides a key value entry field where you must specify the alternate path logical child key. When the alternate path logical child key is defined within the Destination Parent Concatenated Key of the segment being created, File-AID for IMS does not provide a separate key value entry field.
Key-Only Segments
When defining a logical DBD, you can specify whether an application program has KEY or DATA sensitivity to each segment type through the SOURCE= keyword on the SEGM statement. When you edit a database through a logical DBD, the following File-AID for IMS restrictions apply to key-only segments:
- If the logical DBD used contains any non-concatenated segments that are key-only or any concatenated segments where both the logical child and the destination parent are key-only, File-AID for IMS prevents you from entering the edit mode. This process helps to avoid problems that might occur with the REPEAT ALL command or when establishing position in a database.
- If either the logical child or the destination parent portions of a concatenated segment are key-only, the INSERT and REPEAT commands are not allowed with the concatenated segment. Because File-AID for IMS does not have DATA sensitivity to both portions of the concatenated segment, a successful DL/I ISRT call cannot be made.
- When the logical DBD you used defines a logical relationship from the physical parent’s viewpoint and either the logical child or destination parent portions of the concatenated segment are key-only, you cannot use the REPEAT ALL command on any segment in the hierarchical path above the concatenated segment. As with previous restriction, a successful DL/I ISRT call cannot be made without DATA sensitivity to both portions of the concatenated segment.
When browsing a database using a logical DBD that has a key-only segment, you may encounter one of following situations:
- When positioned on a key-only segment while in Formatted or Unformatted mode, the informational message "KEY-ONLY SPECIFIED" and a blank screen body are displayed.
- When positioned on a key-only segment while in Unformatted mode, a segment length that is zero and the literal ** KEY-ONLY ** is displayed next to the length.
- When the NEXT primary command is used in Formatted or Unformatted mode to navigate in a hierarchically sequential manner through a database (using the NEXT command without a SEGMENT-NAME operand), a key-only segment occurrence is skipped over by IMS and the next data-sensitive segment occurrence retrieved.
- When Character mode is switched to/from Formatted or Unformatted mode while positioned on a key-only segment, the first segment line on the Character screen contains a literal KEY-ONLY - NO DATA.
- When another segment occurrence becomes the current segment (that is, the key-only segment is no longer the first segment line), the KEY-ONLY - NO DATA segment line no longer appears on the screen.
- When in Character mode, a screen filled with a hierarchically sequential listing of the segments following the current segment in a database is displayed. Because IMS skips over key-only segments when processing an unqualified GN DL/I call, key-only segments do not appear on the Character screen (except as described in the previous situation).
Repeat Command
When editing a database that contains a logical relationship, you can use the REPEAT command to create single occurrences of any of the defined segment types. When you want to repeat substructures within a logically related database by adding the ALL operand to the REPEAT command, the following File-AID for IMSrestrictions apply depending on the DBD you use:
- When you’re editing through a physical DBD that defines the logical relationship from the logical parent’s viewpoint and the substructure to be repeated contains the logical parent segment, the logical child segment under the logical parent is not repeated. If a logical DBD defines the logical relationship from the logical parent’s viewpoint and the substructure to be repeated contains the concatenated segment, neither the concatenated segment nor any of its dependents are repeated.
- When you’re editing through a physical DBD that defines a logical relationship from the physical parent’s viewpoint, most substructures can be repeated (see to the next bullet). If a logical DBD defines the logical relationship from the physical parent’s viewpoint and the substructure to be repeated contains the concatenated segment, the concatenated segment and its physical dependents are repeated. Logical dependents to the concatenated segment are not repeated. When editing through a physical or logical DBD as described in the previous bullet, an additional restriction exists.
- When you’re editing from the physical parent’s viewpoint and the logical child segment defined under the logical parent has a unique key, REPEAT ALL is not allowed on the physical parent or any segment above it in the current hierarchical path.
Nonkeyed and Nonunique Segments
When a segment type is defined in a DBD without a sequence or key field, the segment is considered nonkeyed by File-AID for IMS. When a segment type defined as having a key field with duplicate key values allowed in occurrences of the segment, it is considered nonunique by File-AID for IMS.
File-AID for IMS and IMS have several restrictions that apply when you browse or edit databases that contain nonkeyed and/or nonunique segments. The restrictions are intended to prevent data corruption when database navigation produces ambiguous or unpredictable results.
- The following restrictions apply when your current segment position is on a nonkeyed or nonunique segment, or subordinate of a nonkeyed or nonunique segment:
- The ALL operand cannot be used with the REPEAT command.
- The PARENT command cannot be used to position to a nonkeyed or nonunique segment.
- The RECOVERY command is not supported, if the root segment of the database is nonunique.
- When the INSERT or REPEAT command is used to create a nonkeyed or nonunique segment, database position is changed to the first parent with a unique concatenated key and the message POSITION CHANGED is displayed.
- You can receive informational messages “I902”, “I905”, “I905A”,“I906”,“I906A”, or “I906B” as you navigate within a database.
- The following restrictions apply when processing the CHILD command:
- When a segment to be retrieved using the CHILD command is nonkeyed or nonunique, or subordinate to a nonkeyed or nonunique segment, the FIRST, LAST, or MAX operands are only supported for DL/I processing with a disposition of OLD.
- When a CHILD command fails to retrieve a segment that is a child of the current segment:
- Your original database position does not change, if your current segment position is on a key unique segment.
- You are positioned at the next segment in the database hierarchy and the message POSITION CHANGED is displayed, if your original database position is on or subordinate to a nonkeyed or nonunique segment, and you are using BMP or DL/I processing with a disposition of SHR.
- Your database position remains at the requested child’s level and the message POSITIONED BEYOND TWINS is displayed, if your original database position is on or subordinate to a nonkeyed or nonunique segment, and you are using DL/I processing with a disposition of OLD. A blank screen body displays in this situation.
- The following restrictions apply when processing the TWIN command:
- When a segment to be retrieved using the TWIN command is nonkeyed or nonunique, or subordinate to a nonkeyed or nonunique segment, the FIRST, LAST, or MAX operands are only supported for DL/I processing with a disposition of OLD.
- When a TWIN command fails to retrieve a twin under the current parent segment:
- Your current segment position does not change, if your original database position is on a key unique segment.
- You are positioned at the next segment in the database hierarchy and the message POSITION CHANGED is displayed, if your current segment position is on a nonkeyed or nonunique segment, and you are using BMP or DL/I processing with a disposition of SHR.
- You remain positioned at the twin level and the message POSITIONED BEYOND TWINS is displayed, if your current segment position is on a nonkeyed or nonunique segment, and you are using DL/I processing with a disposition of OLD. A blank screen body displays in this situation.
Special care must be taken when executing the GOB, GOF, GOH/GOT, GOL, or GOM commands with databases that contain nonkeyed or nonunique segments. These commands are intended to provide a means to position to a previously displayed database segment. As long as these positions are associated with segments that have unique concatenated keys, the segment returned by the command will be accurate.
When a nonkeyed or nonunique segment, or a segment subordinate to a nonkeyed or nonunique segment is the target of one of above commands, File-AID for IMS verifies the segment type returned by the command, as follows:
- If the segment type is the same as that which was originally displayed, the message SEGMENT MAY CHANGE is displayed. The message is a reminder to notify you that insertion or deletion of segments in the path of the target segment may result in retrieval of a segment that is different from the originally displayed segment.
- If the segment type differs from that which was originally displayed, an error message is displayed.
Variable Length Segments
File-AID for IMS enables you to browse/edit variable length segments the same as fixed length segments, with the following differences:
- In Formatted mode:
When you browse/edit a variable length segment, the first two bytes of data shown are always the contents of the Segment Size field. The segment layout you use for the segment must include the Segment Size field.
When in edit mode, you can change the length of the segment by typing directly over the Segment Size field. If you attempt to shorten or lengthen the segment beyond its defined minimum or maximum length, an error is returned. The long message for the error indicates the allowable minimum or maximum length.
When the variable length segment you’re browsing/editing is a logical child or concatenated segment, the segment’s appearance depends on what you specified for the segment in the Segment/Layout XREF function. If you specified that the segment layout for the logical child contains the logical child’s Destination Parent Concatenated Key (DPCK), the layout also contains two bytes for the Segment Size field (immediately before the DPCK). If the layout you provide does not include the Segment Size field, the Size field is associated and displayed with the first two positions of the DPCK. This process also causes the remaining data fields in the segment to be misaligned with the data-names.
Conversely, if the segment/layout XREF specifies that the segment layout for the logical child or concatenated segment does not contain the logical child’s DPCK, File-AID for IMS generates both the two-byte Size field and the DPCK.
When the variable length segment you’re browsing/editing is a concatenated segment, you can be restricted. If the logical child portion of the concatenated segment is variable length, you cannot browse or edit the segment in this mode. This limitation applies regardless of whether the destination parent portion of the concatenated segment is fixed or variable in length. You can avoid this restriction by making the logical child portion of the segment key-only (allowing you to browse/edit the destination parent portion) or the destination parent portion of the segment key-only (allowing you to browse/edit the logical child portion).
You can browse/edit a concatenated segment with a fixed length logical child and variable length destination parent without restriction.
- In Unformatted mode:
- There are no restrictions affecting the browsing/editing of any variable length segment.
- The segment-length line displays the segment’s current length, minimum defined length, and maximum defined length. For a concatenated segment, the current, minimum, and maximum lengths are displayed for both the logical child and the destination parent.
- When editing a variable length segment, you can change the segment’s current length by either typing over the segment length displayed on the segment-length line or typing over the two-byte Segment Size field displayed as part of the segment contents. If you type over both, the value in the two-byte Segment Size field overrides the value on the segment length line. After your next keyboard interaction, the segment is expanded/contracted. When you edit a concatenated segment with a variable length logical child and destination parent, you can change their lengths independently of each other.
- In Character mode:
- You can increase the length of a variable length segment by typing data past the current end of the segment. Deleting data from the end of a segment does not decrease its length.
- You cannot increase the length of a concatenated segment, regardless of whether the logical child, destination parent, or both are variable length.
- You should not type over the two-byte Segment Size field.
Segment Edit/Compression Facility
If you use a DBD that invokes a segment edit/compression facility routine, File-AID for IMS places no restrictions on the use of the routine.
Related topics