Go Premium for a chance to win a PS4. Enter to Win

x
  • Status: Solved
  • Priority: Medium
  • Security: Public
  • Views: 1137
  • Last Modified:

cobol/400 problem

hello friends,
I 'm trying to write data to subfile in cobol/400 . When i was moving the data to subfile ,the subfile's first field value replaces the indicator values . e.g i have 2 indicators in SFLCTL (IN45 - CLEAR IN99-DSPLAY )
SO if i moves value e.g james to empname
(first field) then indicator values also changes (IN45 contains 'J' and IN99 contains 'A') . Similarly if make changes to IN45 to '1' using EVAL in debugger then  
empname contains value - 1ames .
So the screen is not showing as the data is incorrect . i.e problem is after write & Read
my subfile screen doesn't stop .

HOPE U GOT MY QUERY .
Thanks n waiting..
0
raj28
Asked:
raj28
1 Solution
 
daveslaterCommented:
Hi
here is the documentation from the DDS manual. you need the INDARA keyword in your forrmat


INDARA (Indicator Area) keyword for display files
Use this file-level keyword to remove option and response indicators from the buffer (also called the record
area) and place them in a 99-byte separate indicator area.
This keyword has no parameters.
Specifying INDARA provides the following advantages:
v Simplifies COBOL programming when both option and response indicators are used. If the same
indicator is used as a response indicator and as an option indicator, both indicators always have the
same value, regardless of the order in which they are specified in the DDS.
v Assists the RPG programmer using program-described WORKSTN files.
If you specify INDARA, you can add, change, or delete option and response indicators in the DDS and
re-create the file without re-creating the high-level language program. This is true because the field
locations in the buffer have not changed and therefore the level check data has not changed. However, if
the program is to take advantage of the new indicators, it would still need to be changed and re-created.
If you specify INDARA, some high-level languages may require that you specify in your program that a
separate indicator area is to be used. See the appropriate high-level language manual.
If you specify INDARA, the LOGINP and LOGOUT keywords do not log response or option indicators
when your program sends I/O operations. This is because response and option indicators do not appear in
the input or output buffers.
Option indicators are not valid for this keyword.
Example:
The following example shows how to specify the INDARA keyword.
|...+....1....+....2....+....3....+....4....+....5....+....6....+....7....+....8
00010A INDARA
00020A CF01(01 ’End program’)
00030A R PROMPT
00040A ACTNBR 10 B 2 2
00050A 41 ERRMSG(’Account number +
00060A not found’ 41)
A
INDARA has been specified; option indicator 41 and response indicators 01 and 41 are removed from the
buffer for record format PROMPT and placed in the separate indicator area. Only ACTNBR, a named
output/input field, remains in the buffer for record format PROMPT.
134 OS/400 DDS Reference: Display Files V5R1
0
 
raj28Author Commented:
Hi Dave ..
I'm using COPY DDS-ALL-FORMATS for display file and using
indicators directly in program.
I don't want to define seperate indicator area . I think without INDARA it should work .
any suggestions ???
Thanks n waiting.
0
 
tliottaCommented:
raj28:

Although I'd use a separate indicator area, it's not required, AFAIK. But what _is_ required is that the formats copied into your COBOL source match the formats of the DSPF. If indicators are included in the DSPF buffer area, then those indicators must have space allocated in the buffer definitions in COBOL.

Do a DSPFFD FILE(yourdspf) and compare the buffer layout against your COBOL definitions in your compiled program. (You might want to do a DSPPGMREF to verify that the format-levels match also.) If they all match, verify that you're MOVEing values into the proper buffer locations.

Tom
0

Featured Post

Veeam Task Manager for Hyper-V

Task Manager for Hyper-V provides critical information that allows you to monitor Hyper-V performance by displaying real-time views of CPU and memory at the individual VM-level, so you can quickly identify which VMs are using host resources.

Tackle projects and never again get stuck behind a technical roadblock.
Join Now