[Search for users] [Overall Top Noters] [List of all Conferences] [Download this site]

Conference ilbbak::ibi_focus

Title:FOCUS, from INFORMATION BUILDERS
Moderator:ZAYIUS::BROUILLETTE
Created:Thu Feb 19 1987
Last Modified:Mon May 05 1997
Last Successful Update:Fri Jun 06 1997
Number of topics:615
Total number of notes:1779

536.0. "error 246: computational statement ..." by MLCADG::FERRARIF (Fabio Ferrari) Tue Nov 10 1992 11:41

	Hi People, 

	We are writing a procedure to compute a lot of percentages and
	discounts, and we are getting a strange error we are not able to solve.
	The error is :

        (FOC246) COMPUTATIONAL STATEMENT REFERS TO MORE THEN ONE DATA PATH
	
        Follows a brief description of the calculation and of the files,  
	and the source code we are working on.

	Thanx in advance for any help.

	Fabio/Barbara  (7793-2564)  
			MLNAD0::ferrarif


	We are working with the following two files:

        LO_KI_SP (FILE_A)
		this file is divided into three segments, referring to 
		relations of a RDB (The .MAS was generated via AUTORDB, and
		appended with a few modifications)
                       
	+------------+       +------------+      +------------+
	| top level  +------>| med level  +----->| low level  |
	+------------+       +------------+      +------------+

	EN_MA (FILE_B) 	
		a single segment file, from the same RDB (Still used AUTORDB)


	The detail of the calculation is :

		Value_1 :from low_level, computed to divide by 100
		perc_1 ... to perc_5: from med_level, computed to divide by 100 
		percm_1 ... to percm_5: from file_b, computed to divide by 100 

                Value_2 = value_1 + ((value_1 * perc_1) +    
                                     (value_1 * perc_2) +    
                                     (value_1 * perc_3) +    
                                     (value_1 * perc_4) +    
                                     (value_1 * perc_5))     
	
			This is repeted 5 times, depending on priority.

                Value_3 = Value_2 + ((value_2 * percm_1) +    
                                     (value_2 * percm_2) +    
                                     (value_2 * percm_3) +    
                                     (value_2 * percm_4) +    
                                     (value_2 * percm_5))     
                                                    
			This is repeted 5 times, depending on priority.

	Here is the code.

-***************************************
-* 
-* fields with prefix CO_ are coming from top level in file_a
-* fields with prefix KI_ are coming from med level in file_a
-* fields with prefix SP_ are coming from low level in file_a
-* 
-* fields with prefix MA_ are coming from file_b
-* 
-***************************************
-* Data Extraction
-***************************************
-*
SET HOLDDEFAULT = ALPHA
SET ALL = PASS
-*
JOIN LO_SYS_ID IN LO_KI_SP TO ALL MA_LO_SYS_ID IN EN_MA AS JF1
-RUN
-*
DEFINE FILE LO_KI_SP
-*  S
FIX_1A/A13=EDIT (SP_AFTER_ADJ,'$9999999999999');
FIX_A1/D14.2=EDIT (FIX_1A);
SIGN_1/A1=EDIT (SP_AFTER_ADJ,'9$$$$$$$$$$$$$');
SP_ADJ_AFT/D14.2=IF SIGN_1 EQ '-' THEN (FIX_A1 /-100) ELSE (FIX_A1 /100);
-*
KI_PR_1/I2= EDIT (KI_CALC_PR_1);
KI_PR_2/I2= EDIT (KI_CALC_PR_2);
KI_PR_3/I2= EDIT (KI_CALC_PR_3);
KI_PR_4/I2= EDIT (KI_CALC_PR_4);
KI_PR_5/I2= EDIT (KI_CALC_PR_5);
-*
MA_PR_1/I2= EDIT (MA_CALC_PR_1);
MA_PR_2/I2= EDIT (MA_CALC_PR_2);
MA_PR_3/I2= EDIT (MA_CALC_PR_3);
MA_PR_4/I2= EDIT (MA_CALC_PR_4);
MA_PR_5/I2= EDIT (MA_CALC_PR_5);
-* 
K_PERC_1/A5=EDIT (KI_PERC_1,'$99999');                             
KI_PER_1/P5=EDIT (K_PERC_1);
KI_PER_SEG_1/A1=EDIT (KI_PERC_1,'9$$$$');
KI_PER_NUM_1/D6.4=IF KI_PER_SEG_1 EQ '-' THEN (KI_PER_1 / -10000) ELSE
                  IF KI_PER_SEG_1 EQ '+' THEN (KI_PER_1 /  10000) ELSE
                                              (KI_PER_1 * 0);

K_PERC_2/A5=EDIT (KI_PERC_2,'$99999');
KI_PER_2/P5=EDIT (K_PERC_2);
KI_PER_SEG_2/A1=EDIT (KI_PERC_2,'9$$$$');
KI_PER_NUM_2/D6.4=IF KI_PER_SEG_2 EQ '-' THEN (KI_PER_2 / -10000) ELSE
                  IF KI_PER_SEG_2 EQ '+' THEN (KI_PER_2 /  10000) ELSE
                                              (KI_PER_2 * 0);

K_PERC_3/A5=EDIT (KI_PERC_3,'$99999');
KI_PER_3/P5=EDIT (K_PERC_3);
KI_PER_SEG_3/A1=EDIT (KI_PERC_3,'9$$$$');
KI_PER_NUM_3/D6.4=IF KI_PER_SEG_3 EQ '-' THEN (KI_PER_3 / -10000) ELSE
                  IF KI_PER_SEG_3 EQ '+' THEN (KI_PER_3 /  10000) ELSE
                                              (KI_PER_3 * 0);

K_PERC_4/A5=EDIT (KI_PERC_4,'$99999');
KI_PER_4/P5=EDIT (K_PERC_4);
KI_PER_SEG_4/A1=EDIT (KI_PERC_4,'9$$$$');
KI_PER_NUM_4/D6.4=IF KI_PER_SEG_4 EQ '-' THEN (KI_PER_4 / -10000) ELSE
                  IF KI_PER_SEG_4 EQ '+' THEN (KI_PER_4 /  10000) ELSE
                                              (KI_PER_4 * 0);

K_PERC_5/A5=EDIT (KI_PERC_5,'$99999');
KI_PER_5/P5=EDIT (K_PERC_5);
KI_PER_SEG_5/A1=EDIT (KI_PERC_5,'9$$$$');
KI_PER_NUM_5/D6.4=IF KI_PER_SEG_5 EQ '-' THEN (KI_PER_5 / -10000) ELSE
                  IF KI_PER_SEG_5 EQ '+' THEN (KI_PER_5 /  10000) ELSE
                                              (KI_PER_5 * 0);
-*
KI_DEL_FLAG/I1=IF KI_DELETE_FL IS 'D' THEN 0 ELSE
               IF KI_DELETE_FL IS 'H' THEN 0 ELSE 1;
SP_DEL_FLAG/I1=IF SP_DELETE_FL IS 'D' THEN 0 ELSE
               IF SP_DELETE_FL IS 'H' THEN 0 ELSE 1;
-*
M_PERC_1/A5=EDIT (MA_PERC_1,'$99999');
MA_PER_1/P5=EDIT (M_PERC_1);
MA_PER_SEG_1/A1=EDIT (MA_PERC_1,'9$$$$');
MA_PER_NUM_1/D6.4=IF MA_PER_SEG_1 EQ '-' THEN (MA_PER_1 / -10000) ELSE
                  IF MA_PER_SEG_1 EQ '+' THEN (MA_PER_1 /  10000) ELSE
                                              (MA_PER_1 * 0);
-*
M_PERC_2/A5=EDIT (MA_PERC_2,'$99999');
MA_PER_2/P5=EDIT (M_PERC_2);
MA_PER_SEG_2/A1=EDIT (MA_PERC_2,'9$$$$');
MA_PER_NUM_2/D6.4=IF MA_PER_SEG_2 EQ '-' THEN (MA_PER_2 / -10000) ELSE
                  IF MA_PER_SEG_2 EQ '+' THEN (MA_PER_2 /  10000) ELSE
                                              (MA_PER_2 * 0);
-*
M_PERC_3/A5=EDIT (MA_PERC_3,'$99999');
MA_PER_3/P5=EDIT (M_PERC_3);
MA_PER_SEG_3/A1=EDIT (MA_PERC_3,'9$$$$');
MA_PER_NUM_3/D6.4=IF MA_PER_SEG_3 EQ '-' THEN (MA_PER_3 / -10000) ELSE
                  IF MA_PER_SEG_3 EQ '+' THEN (MA_PER_3 /  10000) ELSE
                                              (MA_PER_3 * 0);
-*
M_PERC_4/A5=EDIT (MA_PERC_4,'$99999');
MA_PER_4/P5=EDIT (M_PERC_4);
MA_PER_SEG_4/A1=EDIT (MA_PERC_4,'9$$$$');
MA_PER_NUM_4/D6.4=IF MA_PER_SEG_4 EQ '-' THEN (MA_PER_4 / -10000) ELSE
                  IF MA_PER_SEG_4 EQ '+' THEN (MA_PER_4 /  10000) ELSE
                                              (MA_PER_4 * 0);
-*
M_PERC_5/A5=EDIT (MA_PERC_5,'$99999');
MA_PER_5/P5=EDIT (M_PERC_5);
MA_PER_SEG_5/A1=EDIT (MA_PERC_5,'9$$$$');
MA_PER_NUM_5/D6.4=IF MA_PER_SEG_5 EQ '-' THEN (MA_PER_5 / -10000) ELSE
                  IF MA_PER_SEG_5 EQ '+' THEN (MA_PER_5 /  10000) ELSE
                                              (MA_PER_5 * 0);
-*
-* *********************************
-*
CALC_FI_1/D14.5=IF  KI_PR_1      EQ  1  THEN KI_PER_NUM_1 ELSE 0;
CALC_FI_2/D14.5=IF  KI_PR_2      EQ  1  THEN KI_PER_NUM_2 ELSE 0;
CALC_FI_3/D14.5=IF  KI_PR_3      EQ  1  THEN KI_PER_NUM_3 ELSE 0;
CALC_FI_4/D14.5=IF  KI_PR_4      EQ  1  THEN KI_PER_NUM_4 ELSE 0;
CALC_FI_5/D14.5=IF  KI_PR_5      EQ  1  THEN KI_PER_NUM_5 ELSE 0;
-*
SC_1/D14.5=(SP_ADJ_AFT * CALC_FI_1) +
                (SP_ADJ_AFT * CALC_FI_2) +
                (SP_ADJ_AFT * CALC_FI_3) +
                (SP_ADJ_AFT * CALC_FI_4) +
                (SP_ADJ_AFT * CALC_FI_5);
-*
NET_1/D14.2=(SP_ADJ_AFT + SC_1);
-*
CALC_FI_1/D14.5=IF  KI_PR_1      EQ 2 THEN KI_PER_NUM_1 ELSE 0;
CALC_FI_2/D14.5=IF  KI_PR_2      EQ 2 THEN KI_PER_NUM_2 ELSE 0;
CALC_FI_3/D14.5=IF  KI_PR_3      EQ 2 THEN KI_PER_NUM_3 ELSE 0;
CALC_FI_4/D14.5=IF  KI_PR_4      EQ 2 THEN KI_PER_NUM_4 ELSE 0;
CALC_FI_5/D14.5=IF  KI_PR_5      EQ 2 THEN KI_PER_NUM_5 ELSE 0;

SC_2/D14.5=(NET_1 * CALC_FI_1) +
                (NET_1 * CALC_FI_2) +
                (NET_1 * CALC_FI_3) +
                (NET_1 * CALC_FI_4) +
                (NET_1 * CALC_FI_5);

NET_2/D14.2=(NET_1 + SC_2);
-*
CALC_FI_1/D14.5=IF  KI_PR_1      EQ 3 THEN KI_PER_NUM_1 ELSE 0;
CALC_FI_2/D14.5=IF  KI_PR_2      EQ 3 THEN KI_PER_NUM_2 ELSE 0;
CALC_FI_3/D14.5=IF  KI_PR_3      EQ 3 THEN KI_PER_NUM_3 ELSE 0;
CALC_FI_4/D14.5=IF  KI_PR_4      EQ 3 THEN KI_PER_NUM_4 ELSE 0;
CALC_FI_5/D14.5=IF  KI_PR_5      EQ 3 THEN KI_PER_NUM_5 ELSE 0;
-*
SC_3/D14.5=(NET_2 * CALC_FI_1) +
                (NET_2 * CALC_FI_2) +
                (NET_2 * CALC_FI_3) +
                (NET_2 * CALC_FI_4) +
                (NET_2 * CALC_FI_5);
-*
NET_3/D14.2=(NET_2 + SC_3);
-*
CALC_FI_1/D14.5=IF  KI_PR_1      EQ 4 THEN KI_PER_NUM_1 ELSE 0;
CALC_FI_2/D14.5=IF  KI_PR_2      EQ 4 THEN KI_PER_NUM_2 ELSE 0;
CALC_FI_3/D14.5=IF  KI_PR_3      EQ 4 THEN KI_PER_NUM_3 ELSE 0;
CALC_FI_4/D14.5=IF  KI_PR_4      EQ 4 THEN KI_PER_NUM_4 ELSE 0;
CALC_FI_5/D14.5=IF  KI_PR_5      EQ 4 THEN KI_PER_NUM_5 ELSE 0;
-*
SC_4/D14.5=(NET_3 * CALC_FI_1) +
                (NET_3 * CALC_FI_2) +
                (NET_3 * CALC_FI_3) +
                (NET_3 * CALC_FI_4) +
                (NET_3 * CALC_FI_5);
-*
NET_4/D14.2=(NET_3 + SC_4);
-*
CALC_FI_1/D14.5=IF  KI_PR_1      EQ 5 THEN KI_PER_NUM_1 ELSE 0;
CALC_FI_2/D14.5=IF  KI_PR_2      EQ 5 THEN KI_PER_NUM_2 ELSE 0;
CALC_FI_3/D14.5=IF  KI_PR_3      EQ 5 THEN KI_PER_NUM_3 ELSE 0;
CALC_FI_4/D14.5=IF  KI_PR_4      EQ 5 THEN KI_PER_NUM_4 ELSE 0;
CALC_FI_5/D14.5=IF  KI_PR_5      EQ 5 THEN KI_PER_NUM_5 ELSE 0;
-*
SC_5/D14.5=(NET_4 * CALC_FI_1) +
                (NET_4 * CALC_FI_2) +
                (NET_4 * CALC_FI_3) +
                (NET_4 * CALC_FI_4) +
                (NET_4 * CALC_FI_5);
-*
-* *********************************
SP_KI_DISC/D14.2=(NET_4 + SC_5);
-* *********************************
-*
MA_CA_FI_1/D14.5=IF  MA_PR_1       EQ 1 THEN MA_PER_NUM_1 ELSE 0;
MA_CA_FI_2/D14.5=IF  MA_PR_2       EQ 1 THEN MA_PER_NUM_2 ELSE 0;
MA_CA_FI_3/D14.5=IF  MA_PR_3       EQ 1 THEN MA_PER_NUM_3 ELSE 0;
MA_CA_FI_4/D14.5=IF  MA_PR_4       EQ 1 THEN MA_PER_NUM_4 ELSE 0;
MA_CA_FI_5/D14.5=IF  MA_PR_5       EQ 1 THEN MA_PER_NUM_5 ELSE 0;
-*
MSC_1/D14.5 =   (SP_KI_DISC * MA_CA_FI_1) +
                (SP_KI_DISC * MA_CA_FI_2) +
                (SP_KI_DISC * MA_CA_FI_3) +
                (SP_KI_DISC * MA_CA_FI_4) +
                (SP_KI_DISC * MA_CA_FI_5);
-*
MNET_1/D14.2=(SP_KI_DISC + MSC_1);
-*
MA_CA_FI_1/D14.5=IF  MA_PR_1      EQ 2 THEN MA_PER_NUM_1 ELSE 0;
MA_CA_FI_2/D14.5=IF  MA_PR_2      EQ 2 THEN MA_PER_NUM_2 ELSE 0;
MA_CA_FI_3/D14.5=IF  MA_PR_3      EQ 2 THEN MA_PER_NUM_3 ELSE 0;
MA_CA_FI_4/D14.5=IF  MA_PR_4      EQ 2 THEN MA_PER_NUM_4 ELSE 0;
MA_CA_FI_5/D14.5=IF  MA_PR_5      EQ 2 THEN MA_PER_NUM_5 ELSE 0;

MSC_2/D14.5 =    (MNET_1 * MA_CA_FI_1) +
                (MNET_1 * MA_CA_FI_2) +
                (MNET_1 * MA_CA_FI_3) +
                (MNET_1 * MA_CA_FI_4) +
                (MNET_1 * MA_CA_FI_5);

MNET_2/D14.2=(MNET_1 + MSC_2);
-*
MA_CA_FI_1/D14.5=IF  MA_PR_1      EQ 3 THEN MA_PER_NUM_1 ELSE 0;
MA_CA_FI_2/D14.5=IF  MA_PR_2      EQ 3 THEN MA_PER_NUM_2 ELSE 0;
MA_CA_FI_3/D14.5=IF  MA_PR_3      EQ 3 THEN MA_PER_NUM_3 ELSE 0;
MA_CA_FI_4/D14.5=IF  MA_PR_4      EQ 3 THEN MA_PER_NUM_4 ELSE 0;
MA_CA_FI_5/D14.5=IF  MA_PR_5      EQ 3 THEN MA_PER_NUM_5 ELSE 0;

MSC_3/D14.5 =    (MNET_2 * MA_CA_FI_1) +
                (MNET_2 * MA_CA_FI_2) +
                (MNET_2 * MA_CA_FI_3) +
                (MNET_2 * MA_CA_FI_4) +
                (MNET_2 * MA_CA_FI_5);

MNET_3/D14.2=(MNET_2 + MSC_3);
-*
MA_CA_FI_1/D14.5=IF  MA_PR_1      EQ 4 THEN MA_PER_NUM_1 ELSE 0;
MA_CA_FI_2/D14.5=IF  MA_PR_2      EQ 4 THEN MA_PER_NUM_2 ELSE 0;
MA_CA_FI_3/D14.5=IF  MA_PR_3      EQ 4 THEN MA_PER_NUM_3 ELSE 0;
MA_CA_FI_4/D14.5=IF  MA_PR_4      EQ 4 THEN MA_PER_NUM_4 ELSE 0;
MA_CA_FI_5/D14.5=IF  MA_PR_5      EQ 4 THEN MA_PER_NUM_5 ELSE 0;

MSC_4/D14.5 =    (MNET_3 * MA_CA_FI_1) +
                (MNET_3 * MA_CA_FI_2) +
                (MNET_3 * MA_CA_FI_3) +
                (MNET_3 * MA_CA_FI_4) +
                (MNET_3 * MA_CA_FI_5);

MNET_4/D14.2=(MNET_3 + MSC_4);
-*
MA_CA_FI_1/D14.5=IF  MA_PR_1      EQ 5 THEN MA_PER_NUM_1 ELSE 0;
MA_CA_FI_2/D14.5=IF  MA_PR_2      EQ 5 THEN MA_PER_NUM_2 ELSE 0;
MA_CA_FI_3/D14.5=IF  MA_PR_3      EQ 5 THEN MA_PER_NUM_3 ELSE 0;
MA_CA_FI_4/D14.5=IF  MA_PR_4      EQ 5 THEN MA_PER_NUM_4 ELSE 0;
MA_CA_FI_5/D14.5=IF  MA_PR_5      EQ 5 THEN MA_PER_NUM_5 ELSE 0;

MSC_5/D14.5 =    (MNET_4 * MA_CA_FI_1) +
                (MNET_4 * MA_CA_FI_2) +
                (MNET_4 * MA_CA_FI_3) +
                (MNET_4 * MA_CA_FI_4) +
                (MNET_4 * MA_CA_FI_5);
-*
-* *****************************************************************************
SP_ALL_DISC/D14.2=(MNET_4 + MSC_5);
-* *****************************************************************************
-*
END
-*
-RUN
TABLE FILE LO_KI_SP 
PRINT ...
ON TABLE HOLD ...
END
-RUN
T.RTitleUserPersonal
Name
DateLines
536.1CHECK FILE filename PICTURESU2PLY::MADDENMon Nov 23 1992 14:502
    do a 'check file picture' of your join structure.   All fields in the 
    	calculation must be in a single top to bottom path.