× The internal search function is temporarily non-functional. The current search engine is no longer viable and we are researching alternatives.
As a stop gap measure, we are using Google's custom search engine service.
If you know of an easy to use, open source, search engine ... please contact support@midrange.com.



Joe,

>I guess I just can't explain my position to you: using an indicator, I had
>visibility, using a BIF I no longer do.  IBM wants me to use the BIF, but
>does not give me the visibility that I had with the indicator.  Can you see
>this point, or am I just not being clear?

I see your point, but just don't see the lack of visibililty as a big deal.
>From your original post the other day, you didn't even seem aware of it yet and
so were arguing from a theory viewpoint.  In practice, I just don't find it big
deal.  But then, that may be because of my style of coding, which may not match
yours.

> you have to add one INFDS for every file.  Even at a couple of
>minutes per change, modifying 1000 programs means dozens of hours of work.
>If you have a change management system, it's even more complex.  Saying
>"just add INFDS for every file" may be more work than you imagine.

But it is not like you would just go add it to every program as a project in and
of itself.  You would have no need to add it to every existing program.  In your
scenario it is only necessary for debugging.  Perhaps this is presumptious of
me, but I figure that means you are already making changes to the program.

After all, it seems like you do not use the BIFs in any existing code, or you
would have known this prior to this thread.  No matter what else you are doing
to the program, it seems to me the source would already be checked out in your
change mangement system and it is a siimple matter of adding a F-spec keyword
for the INFDS, and a single D-spec with an external DS and a unique Prefix().

In my DB paradigm, every file already has a unique prefix used on each fieldname
in the record format.  So it makes for a natural method to add a prefix to INFDS
fields.

I look at it this way -- you're already in the program making changes which need
testing.  So to me the change management impact is nill.  And the time to add
one F-spec keyword and one D-spec *is* trivial.  Maybe I type faster. <g>

I see absolutely no reason to go through 1000 existing programs which do not use
the BIFs just to add the INFDS.  But if I did, I'd write a program to do it for
me.  This is simple too, change management issues aside.

>This is exactly the point that I just don't seem to get across to you.  What
>you do is NOT what I do!  I do NOT do the single step.  And in fact, I may
>not have an IF immediately following my I/O operation.

Therein may lie the difference.  I consider it standard practice to ALWAYS test
completion codes immediately.  Just because a CHAIN to some file will "never"
fail is no excuse for not using defensive coding.

IMHO, every chain to a file should be followed by:

        Chain   filename
        If      Not %found( filename )
        Clear   *All    RecFmt
        Endif

except in those very rare circumstances where you *want* to retain the previous
field values when a Chain fails.  Likewise error conditions like record locks
should, IMHO, be tested *immediately* not somewhere else in the code.

>If I do not, then I
>have to wait until I get to the IF statement to see the results of my I/O
>operation, where I didn't have to before.  Can you NOT see that this is
>different?  The fact that it only matters slightly to you doesn't make it
>not different - it only makes it less important to YOU.

OK, you win.  It is not important to ME because I always test my I/O immediately
after the operation, not somewhere else in the code.  I also don't go changing
1000 programs unless I am already changing it.  And I also find adding a F-spec
keyword and one D-spec with Prefix() to take a trivial amount of time.  Note
that I don't even think adding the INFDS is really necessary.  I offered that as
a means for you to tell at any given breakpoint the status of a previous IO
operation to a file elsewhere in the program.

I don't find that a need in real life.  Perhaps you do.

>IBM is the vendor.  I am the customer.  If every time I made a change, my
>clients had to change how they ran their business, I suspect I would be out
>of clients very soon.

But IBM never said you "had to change" how you coded.  Your existing code is
fine.  You can continue to code that way if you prefer.

They have added a new alternative.  If you don't like it, that's fine by me.
Some people won't like the new /free format either.

I was merely trying to say that, in my perhaps limited experience, it just isn't
the issue you make it out to be.  And I tried to offer suggestions as to why in
a practical sense it made little difference.  At least with my coding style.

>Again, you and I have very different views on the concept of "trivial".  I
>think in terms of users with thousands of programs, where implementing a
>change like yours could actually cost thousands of dollars.

Again, I fail to see your point.  You don't go adding the INFDS just for the
sake of doing it.  Where is the cost?

You'd have to already be modifying the program and starting to use the BIFs.
Even at that, IMHO it is not necessary to have the INFDS to debug.  But if you
want access to the I/O status, the INFDS seems like a logical place to get it.

I just don't see how this can cost thousands of dollars.  Of course, my world
view is smaller than SSA's was...

>Well, I outlined how it affects me.  Evidently since it doesn't affect you,
>then it's inconsequential.  I think that's a rather narrow view,

I wasn't meaning to suggest that if a change doesn't affect me, that it's
inconsequential.  The V5R1 library list change didn't affect me either, but I
consider that implementation a big mistake because it can affect existing code
(even though it doesn't affect mine).

But the BIFs aren't like that.  You don't have to use them.  You don't have to
use /free.  If you choose to use the BIFs, you need to understand how they work.
Many people seem to get tripped up on which operations affect which BIFs.  I
suspect this throws off way more people than the lack of being able to see the
value of a function during debug.

Doug



As an Amazon Associate we earn from qualifying purchases.

This thread ...

Follow-Ups:
Replies:

Follow On AppleNews
Return to Archive home page | Return to MIDRANGE.COM home page

This mailing list archive is Copyright 1997-2024 by midrange.com and David Gibbs as a compilation work. Use of the archive is restricted to research of a business or technical nature. Any other uses are prohibited. Full details are available on our policy page. If you have questions about this, please contact [javascript protected email address].

Operating expenses for this site are earned using the Amazon Associate program and Google Adsense.