4:
5: --
6: -- Global Variables
7: --
8: G_Tab_Tbl BSC_TEMPLATE.Tab_Tbl_Type;
9: G_Csf_Tbl BSC_TEMPLATE.Csf_Tbl_Type;
10: G_Group_Tbl BSC_TEMPLATE.Group_Tbl_Type;
11: G_Ind_Tbl BSC_TEMPLATE.Ind_Tbl_Type;
12: G_Var_Tbl BSC_TEMPLATE.Var_Tbl_Type;
5: --
6: -- Global Variables
7: --
8: G_Tab_Tbl BSC_TEMPLATE.Tab_Tbl_Type;
9: G_Csf_Tbl BSC_TEMPLATE.Csf_Tbl_Type;
10: G_Group_Tbl BSC_TEMPLATE.Group_Tbl_Type;
11: G_Ind_Tbl BSC_TEMPLATE.Ind_Tbl_Type;
12: G_Var_Tbl BSC_TEMPLATE.Var_Tbl_Type;
13: G_Cal_Tbl BSC_TEMPLATE.Cal_Tbl_Type;
6: -- Global Variables
7: --
8: G_Tab_Tbl BSC_TEMPLATE.Tab_Tbl_Type;
9: G_Csf_Tbl BSC_TEMPLATE.Csf_Tbl_Type;
10: G_Group_Tbl BSC_TEMPLATE.Group_Tbl_Type;
11: G_Ind_Tbl BSC_TEMPLATE.Ind_Tbl_Type;
12: G_Var_Tbl BSC_TEMPLATE.Var_Tbl_Type;
13: G_Cal_Tbl BSC_TEMPLATE.Cal_Tbl_Type;
14: G_Period_Tbl BSC_TEMPLATE.Period_Tbl_Type;
7: --
8: G_Tab_Tbl BSC_TEMPLATE.Tab_Tbl_Type;
9: G_Csf_Tbl BSC_TEMPLATE.Csf_Tbl_Type;
10: G_Group_Tbl BSC_TEMPLATE.Group_Tbl_Type;
11: G_Ind_Tbl BSC_TEMPLATE.Ind_Tbl_Type;
12: G_Var_Tbl BSC_TEMPLATE.Var_Tbl_Type;
13: G_Cal_Tbl BSC_TEMPLATE.Cal_Tbl_Type;
14: G_Period_Tbl BSC_TEMPLATE.Period_Tbl_Type;
15: G_Drill_Tbl BSC_TEMPLATE.Drill_Tbl_Type;
8: G_Tab_Tbl BSC_TEMPLATE.Tab_Tbl_Type;
9: G_Csf_Tbl BSC_TEMPLATE.Csf_Tbl_Type;
10: G_Group_Tbl BSC_TEMPLATE.Group_Tbl_Type;
11: G_Ind_Tbl BSC_TEMPLATE.Ind_Tbl_Type;
12: G_Var_Tbl BSC_TEMPLATE.Var_Tbl_Type;
13: G_Cal_Tbl BSC_TEMPLATE.Cal_Tbl_Type;
14: G_Period_Tbl BSC_TEMPLATE.Period_Tbl_Type;
15: G_Drill_Tbl BSC_TEMPLATE.Drill_Tbl_Type;
16:
9: G_Csf_Tbl BSC_TEMPLATE.Csf_Tbl_Type;
10: G_Group_Tbl BSC_TEMPLATE.Group_Tbl_Type;
11: G_Ind_Tbl BSC_TEMPLATE.Ind_Tbl_Type;
12: G_Var_Tbl BSC_TEMPLATE.Var_Tbl_Type;
13: G_Cal_Tbl BSC_TEMPLATE.Cal_Tbl_Type;
14: G_Period_Tbl BSC_TEMPLATE.Period_Tbl_Type;
15: G_Drill_Tbl BSC_TEMPLATE.Drill_Tbl_Type;
16:
17: -- Assign default value to global variable
10: G_Group_Tbl BSC_TEMPLATE.Group_Tbl_Type;
11: G_Ind_Tbl BSC_TEMPLATE.Ind_Tbl_Type;
12: G_Var_Tbl BSC_TEMPLATE.Var_Tbl_Type;
13: G_Cal_Tbl BSC_TEMPLATE.Cal_Tbl_Type;
14: G_Period_Tbl BSC_TEMPLATE.Period_Tbl_Type;
15: G_Drill_Tbl BSC_TEMPLATE.Drill_Tbl_Type;
16:
17: -- Assign default value to global variable
18:
11: G_Ind_Tbl BSC_TEMPLATE.Ind_Tbl_Type;
12: G_Var_Tbl BSC_TEMPLATE.Var_Tbl_Type;
13: G_Cal_Tbl BSC_TEMPLATE.Cal_Tbl_Type;
14: G_Period_Tbl BSC_TEMPLATE.Period_Tbl_Type;
15: G_Drill_Tbl BSC_TEMPLATE.Drill_Tbl_Type;
16:
17: -- Assign default value to global variable
18:
19: G_num_of_tabs Number(3) := 3;
725: 'FEM.SOURCE_LANG AS SOURCE_LANG, '||
726: 'SUBSTR(FEM.MEANING,1,35) AS NAME, '||
727: 'SUBSTR(FEM.MEANING,1,40)||'' ''||SUBSTR(FEM_DESC.MEANING,1,40) AS HELP '||
728: 'FROM '||
729: BSC_TEMPLATE.LOOKUP_VALUES_TABLE||' FEM, '||
730: BSC_TEMPLATE.LOOKUP_VALUES_TABLE||' FEM_DESC '||
731: 'WHERE '||
732: 'FEM.LOOKUP_TYPE = ''BSC_TPLATE_TAB_NAME'' AND '||
733: 'FEM.LOOKUP_CODE = :1 AND '||
726: 'SUBSTR(FEM.MEANING,1,35) AS NAME, '||
727: 'SUBSTR(FEM.MEANING,1,40)||'' ''||SUBSTR(FEM_DESC.MEANING,1,40) AS HELP '||
728: 'FROM '||
729: BSC_TEMPLATE.LOOKUP_VALUES_TABLE||' FEM, '||
730: BSC_TEMPLATE.LOOKUP_VALUES_TABLE||' FEM_DESC '||
731: 'WHERE '||
732: 'FEM.LOOKUP_TYPE = ''BSC_TPLATE_TAB_NAME'' AND '||
733: 'FEM.LOOKUP_CODE = :1 AND '||
734: 'FEM_DESC.LOOKUP_TYPE = ''BSC_UI_COMMON'' AND '||
768: 'FEM.SOURCE_LANG AS SOURCE_LANG, '||
769: 'SUBSTR(FEM.MEANING,1,30) AS NAME, '||
770: 'SUBSTR(FEM.MEANING,1,80) AS HELP '||
771: 'FROM '||
772: BSC_TEMPLATE.LOOKUP_VALUES_TABLE||' FEM '||
773: 'WHERE '||
774: 'FEM.LOOKUP_TYPE = ''BSC_TPLATE_TAB_CSF'' AND '||
775: 'FEM.LOOKUP_CODE = :1 ';
776:
903: 'FEM.SOURCE_LANG AS SOURCE_LANG, '||
904: 'SUBSTR(FEM.MEANING,1,50) AS NAME, '||
905: 'SUBSTR(FEM.MEANING,1,80) AS HELP '||
906: 'FROM '||
907: BSC_TEMPLATE.LOOKUP_VALUES_TABLE||' FEM '||
908: 'WHERE '||
909: 'FEM.LOOKUP_TYPE = ''BSC_TPLATE_TAB_IND_GROUPS'' AND '||
910: 'FEM.LOOKUP_CODE = :1 ';
911:
1049: NULL AS DIM_LEVEL1_NAME,NULL AS DIM_LEVEL2_NAME,NULL AS DIM_LEVEL3_NAME,NULL AS DIM_LEVEL4_NAME,
1050: NULL AS DIM_LEVEL5_NAME,NULL AS DIM_LEVEL6_NAME,NULL AS DIM_LEVEL7_NAME,NULL AS DIM_LEVEL8_NAME,
1051: NULL AS DIM_LEVEL1_TEXT,NULL AS DIM_LEVEL2_TEXT,NULL AS DIM_LEVEL3_TEXT,NULL AS DIM_LEVEL4_TEXT,
1052: NULL AS DIM_LEVEL5_TEXT,NULL AS DIM_LEVEL6_TEXT,NULL AS DIM_LEVEL7_TEXT,NULL AS DIM_LEVEL8_TEXT
1053: FROM '||BSC_TEMPLATE.LOOKUP_VALUES_TABLE||' FEM, '
1054: ||BSC_TEMPLATE.LOOKUP_VALUES_TABLE||' FEM_DS
1055: WHERE FEM.LOOKUP_TYPE =''BSC_TPLATE_TAB_AO_NAMES'' AND
1056: FEM.LOOKUP_CODE = ''0'' AND
1057: FEM_DS.LOOKUP_TYPE =''BSC_TPLATE_TAB_DSERIES_NAME'' AND
1050: NULL AS DIM_LEVEL5_NAME,NULL AS DIM_LEVEL6_NAME,NULL AS DIM_LEVEL7_NAME,NULL AS DIM_LEVEL8_NAME,
1051: NULL AS DIM_LEVEL1_TEXT,NULL AS DIM_LEVEL2_TEXT,NULL AS DIM_LEVEL3_TEXT,NULL AS DIM_LEVEL4_TEXT,
1052: NULL AS DIM_LEVEL5_TEXT,NULL AS DIM_LEVEL6_TEXT,NULL AS DIM_LEVEL7_TEXT,NULL AS DIM_LEVEL8_TEXT
1053: FROM '||BSC_TEMPLATE.LOOKUP_VALUES_TABLE||' FEM, '
1054: ||BSC_TEMPLATE.LOOKUP_VALUES_TABLE||' FEM_DS
1055: WHERE FEM.LOOKUP_TYPE =''BSC_TPLATE_TAB_AO_NAMES'' AND
1056: FEM.LOOKUP_CODE = ''0'' AND
1057: FEM_DS.LOOKUP_TYPE =''BSC_TPLATE_TAB_DSERIES_NAME'' AND
1058: FEM_DS.LOOKUP_CODE = ''0'' AND
1090: SUBSTR(FEM_SUBACCOUNT.MEANING,1,80) AS DIM_LEVEL3_NAME,NULL AS DIM_LEVEL4_NAME,
1091: NULL AS DIM_LEVEL5_NAME,NULL AS DIM_LEVEL6_NAME,NULL AS DIM_LEVEL7_NAME,NULL AS DIM_LEVEL8_NAME,
1092: NULL AS DIM_LEVEL1_TEXT,NULL AS DIM_LEVEL2_TEXT,NULL AS DIM_LEVEL3_TEXT,NULL AS DIM_LEVEL4_TEXT,
1093: NULL AS DIM_LEVEL5_TEXT,NULL AS DIM_LEVEL6_TEXT,NULL AS DIM_LEVEL7_TEXT,NULL AS DIM_LEVEL8_TEXT
1094: FROM '||BSC_TEMPLATE.LOOKUP_VALUES_TABLE||' FEM, '
1095: ||BSC_TEMPLATE.LOOKUP_VALUES_TABLE||' FEM_DS, '
1096: ||BSC_TEMPLATE.LOOKUP_VALUES_TABLE||' FEM_ATYPE, '
1097: ||BSC_TEMPLATE.LOOKUP_VALUES_TABLE||' FEM_ACCOUNT, '
1098: ||BSC_TEMPLATE.LOOKUP_VALUES_TABLE||' FEM_SUBACCOUNT
1091: NULL AS DIM_LEVEL5_NAME,NULL AS DIM_LEVEL6_NAME,NULL AS DIM_LEVEL7_NAME,NULL AS DIM_LEVEL8_NAME,
1092: NULL AS DIM_LEVEL1_TEXT,NULL AS DIM_LEVEL2_TEXT,NULL AS DIM_LEVEL3_TEXT,NULL AS DIM_LEVEL4_TEXT,
1093: NULL AS DIM_LEVEL5_TEXT,NULL AS DIM_LEVEL6_TEXT,NULL AS DIM_LEVEL7_TEXT,NULL AS DIM_LEVEL8_TEXT
1094: FROM '||BSC_TEMPLATE.LOOKUP_VALUES_TABLE||' FEM, '
1095: ||BSC_TEMPLATE.LOOKUP_VALUES_TABLE||' FEM_DS, '
1096: ||BSC_TEMPLATE.LOOKUP_VALUES_TABLE||' FEM_ATYPE, '
1097: ||BSC_TEMPLATE.LOOKUP_VALUES_TABLE||' FEM_ACCOUNT, '
1098: ||BSC_TEMPLATE.LOOKUP_VALUES_TABLE||' FEM_SUBACCOUNT
1099: WHERE FEM.LOOKUP_TYPE =''BSC_TPLATE_TAB_AO_NAMES'' AND
1092: NULL AS DIM_LEVEL1_TEXT,NULL AS DIM_LEVEL2_TEXT,NULL AS DIM_LEVEL3_TEXT,NULL AS DIM_LEVEL4_TEXT,
1093: NULL AS DIM_LEVEL5_TEXT,NULL AS DIM_LEVEL6_TEXT,NULL AS DIM_LEVEL7_TEXT,NULL AS DIM_LEVEL8_TEXT
1094: FROM '||BSC_TEMPLATE.LOOKUP_VALUES_TABLE||' FEM, '
1095: ||BSC_TEMPLATE.LOOKUP_VALUES_TABLE||' FEM_DS, '
1096: ||BSC_TEMPLATE.LOOKUP_VALUES_TABLE||' FEM_ATYPE, '
1097: ||BSC_TEMPLATE.LOOKUP_VALUES_TABLE||' FEM_ACCOUNT, '
1098: ||BSC_TEMPLATE.LOOKUP_VALUES_TABLE||' FEM_SUBACCOUNT
1099: WHERE FEM.LOOKUP_TYPE =''BSC_TPLATE_TAB_AO_NAMES'' AND
1100: FEM.LOOKUP_CODE = ''1'' AND
1093: NULL AS DIM_LEVEL5_TEXT,NULL AS DIM_LEVEL6_TEXT,NULL AS DIM_LEVEL7_TEXT,NULL AS DIM_LEVEL8_TEXT
1094: FROM '||BSC_TEMPLATE.LOOKUP_VALUES_TABLE||' FEM, '
1095: ||BSC_TEMPLATE.LOOKUP_VALUES_TABLE||' FEM_DS, '
1096: ||BSC_TEMPLATE.LOOKUP_VALUES_TABLE||' FEM_ATYPE, '
1097: ||BSC_TEMPLATE.LOOKUP_VALUES_TABLE||' FEM_ACCOUNT, '
1098: ||BSC_TEMPLATE.LOOKUP_VALUES_TABLE||' FEM_SUBACCOUNT
1099: WHERE FEM.LOOKUP_TYPE =''BSC_TPLATE_TAB_AO_NAMES'' AND
1100: FEM.LOOKUP_CODE = ''1'' AND
1101: FEM_DS.LOOKUP_TYPE =''BSC_TPLATE_TAB_DSERIES_NAME'' AND
1094: FROM '||BSC_TEMPLATE.LOOKUP_VALUES_TABLE||' FEM, '
1095: ||BSC_TEMPLATE.LOOKUP_VALUES_TABLE||' FEM_DS, '
1096: ||BSC_TEMPLATE.LOOKUP_VALUES_TABLE||' FEM_ATYPE, '
1097: ||BSC_TEMPLATE.LOOKUP_VALUES_TABLE||' FEM_ACCOUNT, '
1098: ||BSC_TEMPLATE.LOOKUP_VALUES_TABLE||' FEM_SUBACCOUNT
1099: WHERE FEM.LOOKUP_TYPE =''BSC_TPLATE_TAB_AO_NAMES'' AND
1100: FEM.LOOKUP_CODE = ''1'' AND
1101: FEM_DS.LOOKUP_TYPE =''BSC_TPLATE_TAB_DSERIES_NAME'' AND
1102: FEM_DS.LOOKUP_CODE = ''0'' AND
1161: SELECT '||G_Ind_Tbl(k_indicator).Indicator|| ' AS INDICATOR,
1162: FEM.LANGUAGE AS LANGUAGE,FEM.SOURCE_LANG AS SOURCE_LANG,
1163: SUBSTR(FEM.MEANING,1,50) AS NAME,
1164: SUBSTR(FEM.MEANING,1,25)|| '' '' ||SUBSTR(FEM_DESC.MEANING,1,25) AS HELP
1165: FROM '||BSC_TEMPLATE.LOOKUP_VALUES_TABLE||' FEM, '||BSC_TEMPLATE.LOOKUP_VALUES_TABLE||' FEM_DESC
1166: WHERE FEM.LOOKUP_TYPE =''BSC_TPLATE_TAB_KPIS'' AND
1167: FEM.LOOKUP_CODE = :1 AND
1168: FEM_DESC.LOOKUP_TYPE = :2 AND
1169: FEM_DESC.LOOKUP_CODE = :3 AND
1299: FEM.LANGUAGE AS LANGUAGE,
1300: FEM.SOURCE_LANG AS SOURCE_LANG,
1301: SUBSTR(FEM.MEANING,1,20) AS NAME,
1302: SUBSTR(FEM.MEANING,1,80) AS HELP
1303: FROM '||BSC_TEMPLATE.LOOKUP_VALUES_TABLE||' FEM
1304: WHERE FEM.LOOKUP_TYPE =''BSC_TPLATE_TAB_DSERIES_NAME'' AND
1305: FEM.LOOKUP_CODE = ''0''';
1306:
1307: l_debug_stmt := l_sql_stmt;
1372: FEM.LANGUAGE AS LANGUAGE,
1373: FEM.SOURCE_LANG AS SOURCE_LANG,
1374: SUBSTR(FEM.MEANING,1,20) AS NAME,
1375: 1,SYSDATE,1,SYSDATE
1376: FROM '||BSC_TEMPLATE.LOOKUP_VALUES_TABLE||' FEM
1377: WHERE FEM.LOOKUP_TYPE =''BSC_TPLATE_TAB_DIM_SET_NAME'' AND
1378: FEM.LOOKUP_CODE = ''0''';
1379:
1380: l_debug_stmt := l_sql_stmt;
1479: ''XXX'' AS NAME,
1480: ''XXX'' AS HELP,
1481: SUBSTR(FEM_ALL.MEANING,1,15) AS TOTAL_DISP_NAME,
1482: SUBSTR(FEM_COMP.MEANING,1,15) AS COMP_DISP_NAME
1483: FROM '||BSC_TEMPLATE.LOOKUP_VALUES_TABLE||' FEM_ALL, '
1484: ||BSC_TEMPLATE.LOOKUP_VALUES_TABLE||' FEM_COMP
1485: WHERE FEM_ALL.LOOKUP_TYPE =''BSC_UI_COMMON'' AND
1486: FEM_ALL.LOOKUP_CODE = ''ALL'' AND
1487: FEM_COMP.LOOKUP_TYPE =''BSC_UI_COMMON'' AND
1480: ''XXX'' AS HELP,
1481: SUBSTR(FEM_ALL.MEANING,1,15) AS TOTAL_DISP_NAME,
1482: SUBSTR(FEM_COMP.MEANING,1,15) AS COMP_DISP_NAME
1483: FROM '||BSC_TEMPLATE.LOOKUP_VALUES_TABLE||' FEM_ALL, '
1484: ||BSC_TEMPLATE.LOOKUP_VALUES_TABLE||' FEM_COMP
1485: WHERE FEM_ALL.LOOKUP_TYPE =''BSC_UI_COMMON'' AND
1486: FEM_ALL.LOOKUP_CODE = ''ALL'' AND
1487: FEM_COMP.LOOKUP_TYPE =''BSC_UI_COMMON'' AND
1488: FEM_COMP.LOOKUP_CODE = ''COMPARISON'' AND
1506: SUBSTR(FEM.MEANING,1,30) AS NAME,
1507: SUBSTR(FEM.MEANING,1,80) AS HELP,
1508: SUBSTR(FEM_ALL.MEANING,1,15) AS TOTAL_DISP_NAME,
1509: SUBSTR(FEM_COMP.MEANING,1,15) AS COMP_DISP_NAME
1510: FROM '||BSC_TEMPLATE.LOOKUP_VALUES_TABLE||' FEM, '
1511: ||BSC_TEMPLATE.LOOKUP_VALUES_TABLE||' FEM_ALL, '
1512: ||BSC_TEMPLATE.LOOKUP_VALUES_TABLE||' FEM_COMP
1513: WHERE FEM.LOOKUP_TYPE =''BSC_TPLATE_TAB_DIM_LEVEL_NAME'' AND
1514: FEM.LOOKUP_CODE = '''||G_Drill_Tbl(l_drill_ind).dim_level_id||''' AND
1507: SUBSTR(FEM.MEANING,1,80) AS HELP,
1508: SUBSTR(FEM_ALL.MEANING,1,15) AS TOTAL_DISP_NAME,
1509: SUBSTR(FEM_COMP.MEANING,1,15) AS COMP_DISP_NAME
1510: FROM '||BSC_TEMPLATE.LOOKUP_VALUES_TABLE||' FEM, '
1511: ||BSC_TEMPLATE.LOOKUP_VALUES_TABLE||' FEM_ALL, '
1512: ||BSC_TEMPLATE.LOOKUP_VALUES_TABLE||' FEM_COMP
1513: WHERE FEM.LOOKUP_TYPE =''BSC_TPLATE_TAB_DIM_LEVEL_NAME'' AND
1514: FEM.LOOKUP_CODE = '''||G_Drill_Tbl(l_drill_ind).dim_level_id||''' AND
1515: FEM_ALL.LOOKUP_TYPE =''BSC_UI_COMMON'' AND
1508: SUBSTR(FEM_ALL.MEANING,1,15) AS TOTAL_DISP_NAME,
1509: SUBSTR(FEM_COMP.MEANING,1,15) AS COMP_DISP_NAME
1510: FROM '||BSC_TEMPLATE.LOOKUP_VALUES_TABLE||' FEM, '
1511: ||BSC_TEMPLATE.LOOKUP_VALUES_TABLE||' FEM_ALL, '
1512: ||BSC_TEMPLATE.LOOKUP_VALUES_TABLE||' FEM_COMP
1513: WHERE FEM.LOOKUP_TYPE =''BSC_TPLATE_TAB_DIM_LEVEL_NAME'' AND
1514: FEM.LOOKUP_CODE = '''||G_Drill_Tbl(l_drill_ind).dim_level_id||''' AND
1515: FEM_ALL.LOOKUP_TYPE =''BSC_UI_COMMON'' AND
1516: FEM_ALL.LOOKUP_CODE = ''ALL'' AND
1617: FEM.LANGUAGE AS LANGUAGE,
1618: FEM.SOURCE_LANG AS SOURCE_LANG,
1619: SUBSTR(FEM.MEANING,1,25) AS NAME,
1620: SUBSTR(FEM.MEANING,1,80) AS HELP
1621: FROM '||BSC_TEMPLATE.LOOKUP_VALUES_TABLE||' FEM
1622: WHERE FEM.LOOKUP_TYPE =''BSC_TPLATE_TAB_AO_NAMES'' AND
1623: FEM.LOOKUP_CODE =:1';
1624:
1625:
1904: );
1905: END IF;
1906: BSC_MESSAGE.Add(
1907: X_Message => x_msg_data,
1908: X_Source => 'bsc_template.create_tab_template',
1909: X_Mode => 'I');
1910: BSC_MESSAGE.Add(
1911: X_Message => l_debug_stmt,
1912: X_Source => 'bsc_template.create_tab_template',
1908: X_Source => 'bsc_template.create_tab_template',
1909: X_Mode => 'I');
1910: BSC_MESSAGE.Add(
1911: X_Message => l_debug_stmt,
1912: X_Source => 'bsc_template.create_tab_template',
1913: x_type => 3,
1914: X_Mode => 'I');
1915: RETURN FALSE;
1916:
1916:
1917: WHEN BSC_ERROR THEN
1918: BSC_MESSAGE.Add(
1919: X_Message => l_debug_stmt,
1920: X_Source => 'bsc_template.create_tab_template',
1921: X_Mode => 'I');
1922:
1923: RETURN(FALSE);
1924:
1924:
1925: WHEN OTHERS THEN
1926: BSC_MESSAGE.Add(
1927: X_Message => SQLERRM,
1928: X_Source => 'bsc_template.create_tab_template',
1929: X_Mode => 'I');
1930:
1931: BSC_MESSAGE.Add(
1932: X_Message => l_debug_stmt,
1929: X_Mode => 'I');
1930:
1931: BSC_MESSAGE.Add(
1932: X_Message => l_debug_stmt,
1933: X_Source => 'bsc_template.create_tab_template',
1934: x_type => 3,
1935: X_Mode => 'I');
1936:
1937: IF (DBMS_SQL.IS_OPEN(l_cursor)) then