FBOOLEV32 SOMETIMES RETURNS A WRONG VALUE IN CASE OF ALTERNATION TO TEST

(Doc ID 1505167.1)

Last updated on NOVEMBER 04, 2016

Applies to:

Oracle Tuxedo - Version 11.1.1.2.0 and later
Information in this document applies to any platform.

Symptoms

ALTERNATION expression failed if the first expression has a too short length.
  
 
  If the first expression in case of ALTERNATION test has a too short length, even if the second expression is the right one, the test will return a wrong value.
  
  If the second expression is too short, but the first one is the right one, the test will return the expected value.
  
  
  For every test, the field value of FLD_117 is : 742900RBTT
  

  Evaluation (1) of
  Fboolco32 : FLD_117 %% '(742900XYZT|742900RBTT)'
  Fboolev32() returns TRUE as expected.
  
  Evaluation (2) of
  Fboolco32 : FLD_117 %% '742900(RBTT|RB)'
  Fboolev32() returns TRUE as expected.
  
  Evaluation (3) of
  Fboolco32 : FLD_117 %% '742900(RB|RBTT)'
  Fboolev32() returns FALSE : it is UNEXPECTED !!!
  
  
  HOWEVER, it is stranger (evaluation (4)) :
  Fboolco32 : FLD_117 %% '742900(XY|RBTT)'
  Fboolev32() returns TRUE as expected.

 

Changes

 Checking within the documentation if such an expression  (FLD_117 %% '(742900XYZT|742900RBTT)')  is supported :

   Extracted from the Boolean Expression documentation

"The regular expressions allowed are described on the tpsubscribe(3c)  reference page in the Oracle Tuxedo ATMI C Function Reference."

 


   If you have a look at the tpsubscribe(3C) page :

"RE | RE

Either the left RE or the right RE. (left to right alternation) "

 

   ALTERNATION expression is allowed.

 

Cause

Sign In with your My Oracle Support account

Don't have a My Oracle Support account? Click to get started

My Oracle Support provides customers with access to over a
Million Knowledge Articles and hundreds of Community platforms