What happens, in the blob, when p/opts are eliminated

  • Thread starter Frosty the Coder
  • Start date

Frosty the Coder

Legendary Poster
List,

Issue:
Continuing the XE to 9.0 upgrade.

In XE a UBE had 11 p/opts. In 9.0, it only has six.
Options 2, 4, 5, 6 and 9 were eliminated.

We have an APPL, that calls an NER to get the values of that UBE's p/opts.

In XE, that NER had a "dow counter < 12" loop.
W/in that loop, UBE name, version ID, and counter are passed to B9090001, "Get processing option data", returning the value.

In 9.0, the APPL failed, throwing an "PO Option ID in version is invalid".
I thought this was caused by the "dow counter < 12" loop, and changed it to "dow counter < 7".
I still get the error.

Thoughts:
I know that data structures and bsvws sequence their columns.
This is why you shouldn't delete or insert columns.

I'm assuming that p/opts work in the same fashion. Is this correct?

If so, would I use a "dow counter < 12" loop but not call B9090001 for those p/opts that were eliminated?

If not, what am I missing, overlooking, and/or not understanding about how this should work?

Please AND Thanks
 
Hi,

If a data structure member is deleted, the rest of the members are not renumbered. So in your case you need to specifically request members 1,3,7,8,10,11 or use the 12 loop and handle the error returned for a missing member accordingly.

By the way, you know that is a client only function, right?

Craig
 
Craig,

Thank you for confirming that re-sequencing doesn't occur.

Does "client only" mean the bsfn won't work from HTML?
 
Other than the C/S flag, what prevents a BSFN from running on a server?
Is there something specific w/in the code of this bsfn that won't run on a server?

If not, could I copy B9090001 and mark my copied object as client/server?

I realize that I could copy one of the object specific "get processing option" bsfns,
and modify it to look at the UBE that I'm interested in,
but having an "any object, any version, any sequence #" seems like a good thing.
 
That flag is set because the function will not compile or work on the excluded platform. That particular function uses a client only lib, from what I remember. Other functions that perform O/S specific operations or call O/S specific APIs will be marked that way as well.

So may need to do the App specific function that returns the options.

Craig
 
Thanks for the clarification and help in general.

I guess we'll copy/mod one of the "object specific" bsfns.
 
Hello Graig,

There're some NERs that can run on the html client. They're called Interpretive NERs. For more info, please check Doc ID 632000.1.

BR,


Luis.
 
Back
Top